1 2009-04-09 Robert Dewar <dewar@adacore.com>
3 * sem_ch7.adb, sem_ch10.adb, sem_prag.adb, sem_ch12.adb, sem_util.adb,
4 exp_ch13.adb, sem_ch6.adb, exp_disp.adb, sem_ch8.adb, sem_warn.adb,
5 sem_cat.adb: Code clean up: use Is_Package_Or_Generic_Package where
6 possible to replace an OR of two separate tests.
8 2009-04-09 Robert Dewar <dewar@adacore.com>
10 * binderr.adb, errout.adb, errutil.adb: New circuitry for handling
13 * erroutc.adb, erroutc.ads (Warnings_Suppressed): Now tests global
14 warning status as well.
16 * opt.ads (Maximum_Messages): New name for Maximum_Errors.
18 * switch-b.adb, switch-c.adb: Change name Maximum_Errors to
21 * bindusg.adb, usage.adb: Update line for -gnatm switch
23 * gnat_ugn.texi: Update documentation for -gnatmnn compiler switch and
26 2009-04-09 Robert Dewar <dewar@adacore.com>
28 * sem_ch10.adb: Minor reformatting.
30 2009-04-09 Bob Duff <duff@adacore.com>
32 * exp_ch11.adb (Expand_Exception_Handlers, Prepend_Call_To_Handler):
33 Set Sloc of generated nodes for calls to Undefer_Aborts and
34 Save_Occurrence to No_Location, so the debugger ignores them and
35 therefore does not jump back and forth when single stepping.
37 2009-04-09 Robert Dewar <dewar@adacore.com>
39 * switch-b.adb: Minor reformatting.
41 2009-04-09 Robert Dewar <dewar@adacore.com>
43 * sem_aggr.adb, exp_ch5.adb, sem_ch3.adb, exp_atag.adb, layout.adb,
44 sem_dist.adb, exp_ch7.adb, sem_ch5.adb, sem_type.adb, exp_imgv.adb,
45 exp_util.adb, sem_aux.adb, sem_aux.ads, exp_attr.adb, exp_ch9.adb,
46 sem_ch7.adb, inline.adb, fe.h, sem_ch9.adb, exp_code.adb, einfo.adb,
47 einfo.ads, exp_pakd.adb, checks.adb, sem_ch12.adb, exp_smem.adb,
48 tbuild.adb, freeze.adb, sem_util.adb, sem_res.adb, sem_attr.adb,
49 exp_dbug.adb, sem_case.adb, exp_tss.adb, exp_ch4.adb, exp_ch6.adb,
50 sem_smem.adb, sem_ch4.adb, sem_mech.adb, sem_ch6.adb, exp_disp.adb,
51 sem_ch8.adb, exp_aggr.adb, sem_eval.adb, sem_cat.adb, exp_dist.adb,
52 sem_ch13.adb, exp_strm.adb, lib-xref.adb, sem_disp.adb, exp_ch3.adb:
53 Reorganize einfo/sem_aux, moving routines from einfo to sem_aux
55 2009-04-09 Robert Dewar <dewar@adacore.com>
57 * exp_util.adb (Silly_Boolean_Array_Xor_Test): Simplify existing code.
59 * atree.h: Add Elist26
61 * gnat_ugn.texi: Complete documentation deprecating -gnatN for non-gcc
64 2009-04-09 Javier Miranda <miranda@adacore.com>
66 * exp_disp.adb (Export_DT): Addition of a new argument (Index); used to
67 retrieve from the Dispatch_Table_Wrappers list the external name.
68 Addition of documentation.
69 (Make_Secondary_DT): Addition of a new argument (Suffix_Index) that is
70 used to export secondary dispatch tables (in the previous version of
71 the frontend only primary dispatch tables were exported). Addition of
73 (Import_DT): New subprogram (internal of Make_Tags). Used to import a
74 dispatch table of a given tagged type.
75 (Make_Tags): Modified to import secondary dispatch tables.
77 * sem_ch3.adb (Analyze_Object_Declaration): Code cleanup.
78 (Constant_Redeclaration): Code cleanup.
80 * einfo.ads (Dispatch_Table_Wrapper): Renamed to
81 Dispatch_Table_Wrappers. Update documentation.
83 * einfo.adb (Dispatch_Table_Wrapper, Set_Dispatch_Table_Wrapper):
84 Renamed to Dispatch_Table_Wrappers.
86 * sem_util.adb (Collect_Interface_Components): Improve handling of
89 * atree.ads (Elist26, Set_Elist26): New subprograms
91 * atree.adb (Elist26, Set_Elist26): New subprograms
93 2009-04-09 Javier Miranda <miranda@adacore.com>
95 * sem_ch3.adb (Build_Derived_Record_Type): Fix typo.
96 (Derive_Progenitor_Subprograms): Handle interfaces in subtypes of
99 2009-04-09 Robert Dewar <dewar@adacore.com>
101 * s-direio.adb: Minor reformatting
103 * exp_ch4.adb (Expand_Concatenate): Avoid overflow checks for String
105 2009-04-09 Robert Dewar <dewar@adacore.com>
107 * exp_ch4.adb (Expand_Concatenate): Improve handling of overflow cases
109 2009-04-09 Pascal Obry <obry@adacore.com>
111 * a-cihama.adb, a-cihama.ads, a-coinve.adb, a-coinve.ads,
112 s-tpoben.adb, s-tpoben.ads, s-finimp.adb, s-finimp.ads,
113 a-convec.adb, a-convec.ads, a-finali.adb, a-finali.ads,
114 a-filico.ads: Add some missing overriding keywords.
116 2009-04-09 Pascal Obry <obry@adacore.com>
118 * a-cihama.adb, a-cihama.ads, a-coinve.adb, a-coorma.ads, a-cihase.adb,
119 a-cihase.ads, a-cohama.adb, a-cohama.ads, a-coorse.adb, a-coorse.ads,
120 a-coormu.adb, a-coormu.ads, a-cohase.adb, a-cohase.ads: Minor
123 2009-04-09 Ed Schonberg <schonberg@adacore.com>
125 * sem_ch6.adb (Check_Overriding_Indicator): Do not generate warning on
126 missing overriding indicator if the new declaration is not seen as
129 2009-04-09 Thomas Quinot <quinot@adacore.com>
131 * exp_ch4.adb (Expand_Concatenate): Add circuitry to properly handle
132 overflows in computation of bounds.
134 2009-04-09 Pascal Obry <obry@adacore.com>
136 * a-cihama.adb, a-cgcaso.adb, a-cihase.adb, a-cohase.adb: Fix some
139 2009-04-09 Robert Dewar <dewar@adacore.com>
141 * sem_attr.adb (Check_Stream_Attribute): Check violation of
142 restriction No_Streams
144 * gnat_rm.texi: Clarify No_Streams restriction
146 * g-socket.adb: Minor reformatting.
148 2009-04-09 Thomas Quinot <quinot@adacore.com>
150 * g-socket.ads: Mark Initialize and Finalize as obsolesent interfaces.
152 2009-04-09 Geert Bosch <bosch@adacore.com>
154 * exp_fixd.adb (Build_Conversion): Accept new optional Trunc argument.
155 (Set_Result): Likewise.
156 (Expand_Convert_Float_To_Fixed): Have Set_Result truncate the
157 conversion, as required by RM 4.6(31).
159 2009-04-08 Robert Dewar <dewar@adacore.com>
161 * checks.adb (Enable_Overflow_Check): Do not enable if overflow checks
164 * exp_ch4.adb (Expand_Concatenate): Make sure checks are off for all
167 2009-04-08 Robert Dewar <dewar@adacore.com>
169 * sem_ch12.adb (Analyze_Package_Instantiation): Remove test for
170 No_Local_Allocators restriction preventing local instantiation.
172 2009-04-08 Thomas Quinot <quinot@adacore.com>
174 * sem_eval.adb: Minor comment fix
176 2009-04-08 Thomas Quinot <quinot@adacore.com>
178 * g-socket.adb, g-socket.ads (GNAT.Sockets.Sockets_Library_Controller):
179 New limited controlled type used to automate the initialization and
180 finalization of the sockets implementation.
181 (GNAT.Sockets.Initialize, Finalize): Make these no-ops
183 2009-04-08 Vincent Celier <celier@adacore.com>
185 * prj-attr.adb: New read-only project-level attribute Project_Dir
187 * prj-proc.adb (Add_Attributes): New parameter Project_Dir, value of
188 read-only attribute of the same name.
189 (Process_Declarative_Items): Call Add_Attributes with Project_Dir
190 (Recursive_Process): Ditto
192 * snames.adb: Add new standard name Project_Dir
194 * snames.ads: Add new standard name Project_Dir
196 2009-04-08 Thomas Quinot <quinot@adacore.com>
198 * checks.adb: Minor reformatting
200 2009-04-08 Vincent Celier <celier@adacore.com>
202 * vms_data.ads: Add documentation for new style keyword
203 OVERRIDING_INDICATORS
205 2009-04-08 Robert Dewar <dewar@adacore.com>
207 * sem_ch3.adb (Check_Completion.Post_Error): Post error on spec if the
208 spec is in the current unit.
210 2009-04-08 Ed Schonberg <schonberg@adacore.com>
212 * sem_util.adb (Is_Protected_Self_Reference): Add guard to check for
215 * usage.adb, gnat_ugn.texi: add info on -gnatyO: overriding indicators
217 2009-04-08 Vincent Celier <celier@adacore.com>
219 * vms_data.ads: Add VMS equivalent for -gnatyO (OVERRIDING_INDICATORS)
221 2009-04-08 Thomas Quinot <quinot@adacore.com>
223 * checks.ads: Minor reformatting
225 2009-04-08 Robert Dewar <dewar@adacore.com>
227 * gnat_rm.texi: Update documentation of pragma Obsolescent
229 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow identifiers to
230 be omitted, and allow Entity parameter to be omitted.
232 2009-04-08 Thomas Quinot <quinot@adacore.com>
234 * exp_util.adb: Minor comment fix
236 2009-04-08 Robert Dewar <dewar@adacore.com>
238 * g-socket.ads: Fix bad syntax in pragma Obsolescent
240 * par-ch2.adb (Scan_Pragma_Argument_Association): Check for error of
241 argument with no identifier following one that has an identifier. Was
242 missed in some cases.
244 * sem_prag.adb (Analyze_Pragma, case Check_Policy): Allow Policy
246 (Analyze_Pragma, case Obsolescent): Allow Message, Version identifiers
248 * snames.adb: Add Name_Policy
250 * snames.ads: Add Name_Policy
252 2009-04-08 Robert Dewar <dewar@adacore.com>
254 * gnat_rm.texi: Minor reformatting
256 * par-ch2.adb: Minor reformatting
258 2009-04-08 Robert Dewar <dewar@adacore.com>
260 * exp_attr.adb, sem_attr.adb, sem_util.adb: Code clean up.
262 2009-04-08 Robert Dewar <dewar@adacore.com>
264 * sem_cat.adb (Check_Categorization_Dependencies): Handle Preelaborate
265 properly in the presence of Remote_Types or Remote_Call_Interface.
267 * sem_util.adb: Add comment.
269 2009-04-08 Robert Dewar <dewar@adacore.com>
271 * ug_words: Add /ASSUME_VALID for -gnatB
273 * vms_data.ads: Add /ASSUME_VALID for -gnatB
275 * sem_cat.adb: Add clarifying commment
277 * a-direio.ads (Bytes): Make sure value is non-zero
279 2009-04-08 Ed Schonberg <schonberg@adacore.com>
281 * sem_util.adb (Is_Variable): If the prefix is an explicit dereference
282 that does not come from source, check for a rewritten function call in
283 prefixed notation before other forms of rewriting.
285 2009-04-08 Robert Dewar <dewar@adacore.com>
287 * Makefile.rtl: Remove s-strops and s-sopco? from the run time, since
288 these are now obsolescent units used only for bootrapping with an
291 2009-04-08 Robert Dewar <dewar@adacore.com>
293 * gnat_rm.texi: Add documentation for pragma Thread_Local_Storage
295 * sem_ch3.adb: Minor comment updates
297 2009-04-08 Ed Schonberg <schonberg@adacore.com>
299 * inline.adb (Back_End_Cannot_Inline): restrict warning to subprograms
300 that come from source.
302 2009-04-08 Tristan Gingold <gingold@adacore.com>
304 * gcc-interface/utils.c, gcc-interface/decl.c, gcc-interface/gigi.h:
305 Add support for pragma Thread_Local_Storage
307 2009-04-08 Ed Schonberg <schonberg@adacore.com>
309 * inline.adb (Back_End_Cannot_Inline): Do not mark a body as inlineable
310 by the back-end if it contains a call to a subprogram without a
311 previous spec that is declared in the same unit.
313 * errout.ads: Update comments on uses of dirs
315 2009-04-08 Robert Dewar <dewar@adacore.com>
317 * exp_ch4.adb (Expand_Concatenate): Make sure nodes are properly typed
319 2009-04-08 Tristan Gingold <gingold@adacore.com>
321 * sem_prag.adb: Restrict pragma Thread_Local_Storage to library level
323 Set Has_Gigi_Rep_Item flag to TLS variables (to ease gigi work).
325 2009-04-08 Vincent Celier <celier@adacore.com>
328 (Add_Source): Add the mapping of the unit name to source file name in
329 the Unit_Sources_HT hash table, if the unit name is not null.
331 * prj.adb (Reset): Reset hash table Tree.Unit_Sources_HT
333 * prj.ads (Unit_Sources_Htable): New hash table instantiation
334 (Project_Tree_Data): New component Unit_Sources_HT
336 2009-04-08 Thomas Quinot <quinot@adacore.com>
338 * sem_ch8.adb: Minor reformatting.
339 Minor code reorganization.
341 2009-04-08 Robert Dewar <dewar@adacore.com>
343 * snames.h, einfo.adb, einfo.ads, sem_prag.adb, snames.adb,
344 snames.ads, freeze.adb, par-prag.adb: Add implementation of
345 pragma Thread_Local_Storage, setting new flag
346 Has_Pragma_Thread_Local_Storage in corresponding entities.
348 2009-04-08 Emmanuel Briot <briot@adacore.com>
350 * prj.ads: Update comment on switches file
352 * prj-nmsc.adb: Code clean up. Use renaming clauses.
354 2009-04-08 Robert Dewar <dewar@adacore.com>
356 * exp_ch4.adb (Expand_Concatenate): Further fixes to bounds handling
358 2009-04-08 Thomas Quinot <quinot@adacore.com>
360 * ali-util.adb: Minor comment fix
362 2009-04-08 Ed Schonberg <schonberg@adacore.com>
364 * sem_ch8.adb (Analyze_Use_Type): Improve error message when clause
365 appears in a context clause, and the enclosing package is mentioned in
366 a limited_with_clause.
367 (Use_One_Type): Reject clause if type is still incomplete.
369 2009-04-08 Emmanuel Briot <briot@adacore.com>
371 * prj-nmsc.adb (Check_File, Process_Sources_In_Multi_Language_Mode):
372 avoid copies of Source_Data variables when possible, since these
373 involve calls to memcpy() which are done too many times.
375 2009-04-08 Robert Dewar <dewar@adacore.com>
377 * exp_ch4.adb (Expand_Concatenate): Clean up code
379 2009-04-07 Thomas Quinot <quinot@adacore.com>
381 * exp_ch4.adb (Expand_Concatenate): Add missing conversion to index
382 type for the case of concatenating a constrained array indexed by an
385 2009-04-07 Ed Schonberg <schonberg@adacore.com>
387 * sem_ch6.adb (Check_Conformance): when checking conformance of an
388 operation that overrides an abstract operation inherited from an
389 interface, return False if only one of the controlling formals is an
392 2009-04-07 Ed Schonberg <schonberg@adacore.com>
394 * sem_ch8.adb (Analyze_Object_Renaming): additional error messages
395 mandated by AI05-105.
397 2009-04-07 Vincent Celier <celier@adacore.com>
399 * prj-nmsc.adb (Get_Mains): Warn if a main is an empty string
401 2009-04-07 Thomas Quinot <quinot@adacore.com>
403 * usage.adb: Minor fix in usage message.
405 * sem_ch10.adb (Remove_Homonyms): Fix subtype of formal in body to
406 match declaration; the correct subtype is Node_Id, not Entity_Id,
407 because the expected node kind is an identifier, not a defining
410 * switch-c.adb: Minor reformatting.
412 * uintp.adb: Minor reformatting.
414 2009-04-07 Robert Dewar <dewar@adacore.com>
416 * exp_ch13.adb: Minor reformatting
418 2009-04-07 Robert Dewar <dewar@adacore.com>
420 * sem_warn.adb (Check_Infinite_Loop_Warning.Test_Ref): Add defence
421 against missing parent.
423 2009-04-07 Thomas Quinot <quinot@adacore.com>
425 * xoscons.adb: Minor reformatting
427 2009-04-07 Robert Dewar <dewar@adacore.com>
429 * rtsfind.ads: Remove obsolete string concatenation entries
431 2009-04-07 Robert Dewar <dewar@adacore.com>
433 * exp_ch4.adb (Expand_Concatenate): Redo handling of bounds
435 2009-04-07 Ed Schonberg <schonberg@adacore.com>
437 * sem_ch10.adb (Check_Body_Required): Handle properly imported
440 2009-04-07 Gary Dismukes <dismukes@adacore.com>
442 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case
443 Attribute_Address): When Init_Or_Norm_Scalars is True and the object
444 is of a scalar or string type then suppress the setting of the
447 * freeze.adb (Warn_Overlay): Also emit the warnings about default
448 initialization for the cases of scalar and string objects when
449 Init_Or_Norm_Scalars is True.
451 2009-04-07 Bob Duff <duff@adacore.com>
453 * s-secsta.ads, g-pehage.ads, s-fileio.ads: Minor comment fixes
455 2009-04-07 Bob Duff <duff@adacore.com>
457 * gnat_rm.texi, s-fileio.adb (System.File_IO.Open): New feature: A
458 Form parameter of Text_Translation=No allows binary mode for Text_IO
461 * gnat_rm.texi: Document Form parameter Text_Translation=xxx.
463 2009-04-07 Javier Miranda <miranda@adacore.com>
465 * exp_ch5.adb (Expand_Assign_Array): Add implicit conversion when
466 processing the bounds for bit packed arrays or VM target machines.
468 2009-04-07 Thomas Quinot <quinot@adacore.com>
470 * g-sothco.ads (Int_Access): Remove extraneous access type (use
471 anonymous access instead).
472 (Get_Socket_From_Set): Fix incorrectly reverted formals
473 Last and Socket to match the underlying C routine.
475 * g-socket.adb, g-socket.ads
476 (Get): Use named parameter associations instead of positional ones in
477 call go Get_Socket_From_Set, since this routine has two formals of the
479 (Image): New procedure.
481 * g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
482 g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi.adb, g-socthi.ads:
483 (C_Ioctl, Syscall_Ioctl): use "access C.int" instead of "Int_Access"
484 for type of Arg formal.
486 * sem_warn.adb: Minor reformatting
488 2009-04-07 Ed Schonberg <schonberg@adacore.com>
490 * sem_util.adb (Has_Tagged_Component): Fix typo in loop that iterates
491 over record components.
493 2009-04-07 Nicolas Roche <roche@adacore.com>
496 Don't include resolvLib.h on VxWorks 6 (kernel and rtp). This library
497 has disappeared between VxWorks 6.4 and VxWorks 6.5
498 In RTP mode use time.h instead of times.h
500 2009-04-07 Robert Dewar <dewar@adacore.com>
502 * exp_ch4.adb (Expand_N_Op_Concat): Improve lower bound handling
504 2009-04-07 Kevin Pouget <pouget@adacore.com>
506 * exp_dist.adb: Modify Build_From_Any_Fonction procedure to correct
507 expanded code for constrained types.
509 2009-04-07 Ed Schonberg <schonberg@adacore.com>
511 * sem_ch4.adb (Analyze_Overloaded_Selected_Component): implement
512 AI05-105: in an object renaming declaration, anonymousness is a name
515 * sem_ch8.adb (Analyze_Object_Renaming): Ditto.
517 2009-04-07 Arnaud Charlet <charlet@adacore.com>
519 * g-comlin.adb (Expansion): Fix old regression: also return directory
522 2009-04-07 Robert Dewar <dewar@adacore.com>
525 (Expand_N_Op_Concat): Call Expand_Concatenate for all cases
526 (Expand_Concatenate): New name for Expand_Concatenate_String which has
527 been rewritten to handle all types.
528 (Expand_Concatenate_Other): Remove
530 2009-04-07 Ed Schonberg <schonberg@adacore.com>
532 * lib-xref.adb (Generate_Reference): A default subprogram in an
533 instance appears within the tree for the instance, but generates an
534 implicit reference in the ALI.
536 2009-04-07 Javier Miranda <miranda@adacore.com>
538 * sem_ch3.adb (Build_Derived_Record_Type): When processing a tagged
539 derived type that has discriminants, propagate the list of interfaces
540 to the corresponding new base type. In addition, propagate also
541 attribute Limited_Present (found working in this patch).
543 2009-04-07 Robert Dewar <dewar@adacore.com>
545 * exp_ch4.adb: Rewrite concatenation expansion.
547 2009-04-07 Ed Schonberg <schonberg@adacore.com>
549 * sem_ch8.adb (Restore_Scope_Stack): First_Private_Entity is only
550 relevant to packages.
552 2009-04-07 Robert Dewar <dewar@adacore.com>
554 * sem_attr.adb: Minor reformatting
556 * sem_ch6.adb: Minor reformatting
558 2009-04-07 Tristan Gingold <gingold@adacore.com>
560 * socket.c: Add more protections against S_resolvLib_ macros.
562 2009-04-07 Thomas Quinot <quinot@adacore.com>
564 * sem_attr.adb: Minor reformatting
566 2009-04-07 Ed Schonberg <schonberg@adacore.com>
568 * sem_ch6.adb (New_Overloaded_Entity): New predicate
569 Is_Overriding_Alias to handle properly types that inherit two homonym
570 operations that have distinct dispatch table entries.
572 2009-04-07 Emmanuel Briot <briot@adacore.com>
574 * s-regexp.adb (Create_Mapping): Ignore excaped open parenthesis when
575 looking for the end of a parenthesis group
577 2009-04-07 Tristan Gingold <gingold@adacore.com>
579 * gsocket.h Don't #include resolvLib.h if __RTP__ is defined.
581 * socket.c Don't use resolvLib_ macros if not defined.
583 2009-04-07 Robert Dewar <dewar@adacore.com>
585 * g-socket.adb: Minor reformatting.
587 * g-socthi-mingw.adb: Minor reformatting
589 * g-sothco.ads: Minor reformatting
592 (Expand_Concatenate_String): Complete rewrite to generate efficient code
593 inline instead of relying on external library routines.
595 * s-strops.ads, s-sopco5.ads, s-sopco5.adb, s-sopco4.ads, s-sopco4.adb,
596 s-sopco3.ads, s-sopco3.adb, s-strops.adb: Note that this unit is now
599 2009-04-07 Ed Schonberg <schonberg@adacore.com>
602 (Eval_Attribute): for attributes of array objects that are not strings,
603 attributes are not static if nominal subtype of object is unconstrained.
605 2009-04-07 Ed Schonberg <schonberg@adacore.com>
607 * sem_ch6.adb (New_Overloaded_Entity): If two implicit homonym
608 operations for a type T in an instance do not override each other,
609 when T is derived from a formal private type, the corresponding
610 operations inherited by a type derived from T outside
611 of the instance do not override each other either.
613 2009-04-07 Robert Dewar <dewar@adacore.com>
615 (Osint.Fail): Change calling sequence to have one string arg
616 (Make.Make_Failed): Same change
617 All callers are adjusted to use concatenation
619 2009-04-07 Robert Dewar <dewar@adacore.com>
621 * exp_ch4.adb: Fix documentation typo
623 2009-04-07 Robert Dewar <dewar@adacore.com>
625 * tbuild.ads: Minor reformatting
627 2009-04-07 Javier Miranda <miranda@adacore.com>
629 * exp_disp.adb (Make_DT): Avoid the generation of the OSD_Table
630 when compiling under ZFP runtime.
632 2009-04-07 Robert Dewar <dewar@adacore.com>
634 * g-comlin.adb: Minor reformatting
636 2009-04-07 Thomas Quinot <quinot@adacore.com>
638 * socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
639 g-socthi-vxworks.ads, g-socthi-mingw.adb, g-socthi-mingw.ads,
640 g-socthi.adb, g-socthi.ads, g-socket.adb, g-socket.ads, g-sothco.ads:
641 Remove dynamic allocation of Fd_Set in Socket_Set_Type objects.
643 2009-04-07 Robert Dewar <dewar@adacore.com>
645 * gnat_ugn.texi: Document -gnatDnn/-gnatGnn
647 * opt.ads (Sprint_Line_Limit): New parameter
649 * sprint.adb: Usa Sprint_Line_Limit instead of Line_Limit throughout
651 * switch-c.adb: Recognize -gnatDnnn and -gnatGnnn switches
653 * usage.adb: Output information for -gnatGnn -gnatDnn
655 2009-04-07 Robert Dewar <dewar@adacore.com>
657 * make.adb: Minor reformatting
659 2009-04-07 Robert Dewar <dewar@adacore.com>
661 * mlib-tgt-specific-vms-alpha.adb: Minor reformatting
663 2009-04-07 Robert Dewar <dewar@adacore.com>
665 * mlib-tgt-specific-vms-ia64.adb: Minor reformatting
667 2009-04-07 Robert Dewar <dewar@adacore.com>
670 Remove Assume_Valid parameter from In_Subrange_Of calls
673 (Is_Subrange_Of): Remove Assume_Valid parameter, not needed
674 (Is_In_Range): Remove incorrect use of Assume_Valid
675 (Is_Out_Of_Range): Remove incorrect use of Assume_Valid
678 (Is_Subrange_Of): Remove Assume_Valid parameter, not needed
679 (Is_In_Range): Documentation cleanup
680 (Is_Out_Of_Range): Documentation cleanup
683 Add documentation for Assume_No_Invalid_Values pragma
685 * sem_ch12.adb: Minor reformatting
687 * sem_ch6.adb: (Check_Conformance): Avoid cascaded errors
689 * sem_prag.adb: Improve error message.
691 * gnatchop.adb, osint.ads, sinput.adb, sinput.ads, styleg.adb:
692 LF/CR no longer recognized as line terminator
694 * switch.ads: Minor documentation improvement
696 * vms_data.ads: Minor reformatting
698 2009-04-07 Robert Dewar <dewar@adacore.com>
700 * checks.adb (Determine_Range): Add Assume_Valid parameter
702 * checks.ads (Determine_Range): Add Assume_Valid parameter
704 * errout.adb (Error_Msg_NEL): Use Suppress_Loop_Warnings rather than
705 Is_Null_Loop to suppress warnings in a loop body.
708 (Rewrite_Comparison): Major rewrite to accomodate invalid values
711 (Expand_N_Loop_Statement): Delete loop known not to execute
714 (Assume_No_Invalid_Values): Now set to False, and as documented, this
715 fully enables the proper handling of invalid values.
718 New calling sequence for Is_In_Range
721 (Analyze_Iteration_Scheme): Accomodate possible invalid values
722 in determining if a loop range is null.
725 (Is_In_Range): Add Assume_Valid parameter
726 (Is_Out_Of_Range): Add Assume_Valid_Parameter
727 (Compile_Time_Compare): Major rewrite to accomodate invalid values and
728 also to do more accurate and complete range analysis, catching more
732 (Is_In_Range): Add Assume_Valid parameter
733 (Is_Out_Of_Range): Add Assume_Valid_Parameter
736 New calling sequence for Is_In_Range
739 (Suppress_Loop_Warnings): New flag
742 (Is_Null_Loop): Update documentation
743 (Suppress_Loop_Warnings): New flag
745 * gnat_ugn.texi: Document -gnatB switch
747 2009-04-07 Arnaud Charlet <charlet@adacore.com>
749 * gnatvsn.ads: Bump version number.
751 2009-04-07 Thomas Quinot <quinot@adacore.com>
753 * exp_ch3.adb: Minor rewording (comments)
755 2009-04-07 Robert Dewar <dewar@adacore.com>
757 * exp_disp.adb: Minor reformatting
759 2009-04-07 Eric Botcazou <ebotcazou@adacore.com>
761 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Test the
763 * gcc-interface/trans.c (lvalue_required_p): Likewise.
765 2009-04-07 Eric Botcazou <ebotcazou@adacore.com>
767 * gcc-interface/trans.c (Attribute_to_gnu) <Max_Size_In_Storage_Elmts>:
768 Do not convert the result. Remove obsolete comment.
770 2009-04-07 Eric Botcazou <ebotcazou@adacore.com>
772 * gcc-interface/trans.c (establish_gnat_vms_condition_handler): Clear
774 (Subprogram_Body_to_gnu): Fix pasto.
776 2009-04-07 Eric Botcazou <ebotcazou@adacore.com>
778 * gcc-interface/gigi.h (standard_datatypes): Remove ADT_void_type_decl.
779 (void_type_decl_node): Remove.
780 (init_gigi_decls): Likewise.
781 (gnat_install_builtins): Declare.
782 (record_builtin_type): Likewise.
783 (create_type_stub_decl): Likewise.
784 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Void>: Use void_type.
785 (gnat_to_gnu_entity) <E_Array_Type>: Make fat and thin pointer types
787 <E_Array_Subtype>: Use the index types, not only their name, in the
788 record giving the names of the bounds, if any.
789 For a packed array type, make it artificial only if the base type
790 was artificial as well. Remove redundant statement.
791 (gnat_to_gnu_entity) <E_Incomplete_Type>: Do not create TYPE_DECL for
793 Use create_type_stub_decl to build the TYPE_STUB_DECL of types.
794 (rest_of_type_decl_compilation_no_defer): Likewise.
795 * gcc-interface/misc.c (gnat_printable_name): Add missing guard.
796 * gcc-interface/utils.c (make_dummy_type): Always create TYPE_STUB_DECL
797 and use create_type_stub_decl to build it.
798 (gnat_pushdecl): Rewrite condition.
799 (gnat_install_builtins): Remove bogus declaration.
800 (record_builtin_type): New function.
801 (finish_record_type): Use create_type_stub_decl to build TYPE_STUB_DECL
803 (create_type_stub_decl): New function.
804 (create_type_decl): Assert that the type is not dummy. If the type
805 hasn't been named yet, equate the TYPE_STUB_DECL to the created node.
806 (build_vms_descriptor32): Do not create TYPE_DECL for the descriptor.
807 (build_vms_descriptor): Likewise.
808 (init_gigi_decls): Delete and move bulk of code to...
809 * gcc-interface/trans.c (gigi): ...here. Use record_builtin_type.
810 (emit_range_check): Add gnat_node parameter.
811 (emit_index_check): Likewise.
812 (emit_check): Likewise.
813 (build_unary_op_trapv): Likewise.
814 (build_binary_op_trapv): Likewise.
815 (convert_with_check): Likewise.
816 (Attribute_to_gnu): Adjust calls for above changes.
817 (call_to_gnu): Likewise.
818 (gnat_to_gnu): Likewise.
819 (assoc_to_constructor): Likewise.
820 (pos_to_constructor): Likewise.
821 (Sloc_to_locus): Set BUILTINS_LOCATION for Standard_Location nodes.
822 (process_type): Do not create TYPE_DECL for dummy types.
824 2009-04-07 Eric Botcazou <ebotcazou@adacore.com>
826 * gcc-interface/decl.c (gnat_to_gnu_entity): Reorder local variables.
827 * gcc-interface/trans.c: Fix formatting throughout. Fix comments.
828 * gcc-interface/utils.c: Fix comments.
830 2009-04-07 Eric Botcazou <ebotcazou@adacore.com>
832 * gcc-interface/decl.c (compile_time_known_address_p): Rewrite and
834 (gnat_to_gnu_type): Move around.
835 (get_unpadded_type): Likewise.
836 * gcc-interface/utils.c (update_pointer_to): Use synthetic macro.
839 2009-04-07 Eric Botcazou <ebotcazou@adacore.com>
841 * gcc-interface/trans.c (check_for_eliminated_entity): New function.
842 (Attribute_to_gnu): Invoke it for Access- and Address-like attributes.
843 (call_to_gnu): Invoke it instead of manually checking.
845 2009-04-04 Eric Botcazou <ebotcazou@adacore.com>
847 * gcc-interface/utils.c (finish_record_type): Force structural equality
848 checks if the record type is discriminated.
850 2009-03-31 Eric Botcazou <ebotcazou@adacore.com>
852 * system-linux-alpha.ads (Functions_Return_By_DSP): Remove.
853 * system-linux-mips.ads (Functions_Return_By_DSP): Likewise.
854 * system-linux-mipsel.ads (Functions_Return_By_DSP): Likewise.
855 * system-linux-s390.ads (Functions_Return_By_DSP): Likewise.
856 * system-linux-s390x.ads (Functions_Return_By_DSP): Likewise.
857 * system-linux-sparc.ads (Functions_Return_By_DSP): Likewise.
858 * system-linux-sparcv9.ads (Functions_Return_By_DSP): Likewise.
860 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
862 * gcc-interface/decl.c (maybe_pad_type): Use TREE_OVERFLOW instead
863 of TREE_CONSTANT_OVERFLOW.
865 2009-03-30 Joseph Myers <joseph@codesourcery.com>
867 PR rtl-optimization/323
868 * gcc-interface/misc.c (gnat_post_options): Set
869 flag_excess_precision_cmdline. Give an error for
870 -fexcess-precision=standard for processors where the option is
873 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
876 * gcc-interface/utils.c (create_field_decl): Use "unsigned int"
879 2009-03-11 Olivier Hainque <hainque@adacore.com>
881 * gcc-interface/trans.c (gnat_to_gnu) <case N_Slice>: In range
882 checks processing, remove unintended TREE_TYPE walk on index type.
884 2009-03-01 Eric Botcazou <ebotcazou@adacore.com>
887 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do no
888 call make_packable_type on fat pointer types.
889 <E_Array_Subtype>: Likewise.
890 <E_Record_Subtype>: Call make_packable_type on all record types
891 except for fat pointer types.
892 (make_packable_type): Likewise.
893 (gnat_to_gnu_field): Likewise.
895 2009-02-28 Eric Botcazou <ebotcazou@adacore.com>
897 * gcc-interface/Makefile.in (cygwin/mingw): Revert accidental
898 EH_MECHANISM change made on 2007-12-06.
900 2009-02-26 Andreas Schwab <schwab@suse.de>
903 * Makefile.in (srcdir): Set to @top_srcdir@ instead of @srcdir@.
904 * gcc-interface/Makefile.in: Change all uses of $(srcdir),
905 $(fsrcdir) and $(fsrcpfx) to add ada subdir.
907 (target_cpu_default): Substitute.
909 2009-02-25 Laurent GUERBY <laurent@guerby.net>
912 * a-teioed.adb (Expand): Fix Result overflow.
914 2009-02-25 Laurent GUERBY <laurent@guerby.net>
916 * gcc-interface/Makefile.in: Fix multilib handling for
919 2009-02-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
921 * s-oscons-tmplt.c [__osf__ && !_SS_MAXSIZE]: Undef AF_UNIX6.
923 2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
925 * gcc-interface/misc.c (gnat_post_options): Turn off warn_psabi.
927 2009-02-16 Eric Botcazou <ebotcazou@adacore.com>
929 * gcc-interface/deftarg.c: Remove.
931 2009-02-10 Olivier Hainque <hainque@adacore.com>
932 Eric Botcazou <ebotcazou@adacore.com>
934 * gcc-interface/decl.c (enum alias_set_op): New enumeration.
935 (copy_alias_set): Rename into...
936 (relate_alias_sets): ...this. Add third parameter OP. Retrieve the
937 underlying array of unconstrained arrays for the new type as well.
938 If the old and new alias sets don't conflict, make one a subset of
939 the other as per the OP parameter.
940 (gnat_to_gnu_entity): Adjust calls to copy_alias_set.
941 <E_Record_Type>: Do not copy the alias set for derived types.
942 For all types, make the alias set of derived types a superset of
943 that of their parent type.
944 (make_aligning_type): Adjust calls to copy_alias_set.
945 (make_packable_type): Likewise.
946 * gcc-interface/trans.c (gnat_to_gnu)<N_Validate_Unchecked_Conversion>:
947 Check for alias set conflict instead of strict equality to issue the
950 2009-02-09 Eric Botcazou <ebotcazou@adacore.com>
952 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
953 Set TYPE_NONALIASED_COMPONENT on the array type only if appropriate.
954 (copy_alias_set): Assert that arrays have the same aliasing settings.
955 (substitute_in_type) <ARRAY_TYPE>: Copy TYPE_NONALIASED_COMPONENT.
957 2009-02-08 Eric Botcazou <ebotcazou@adacore.com>
959 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
960 Set TYPE_NONALIASED_COMPONENT on the array type.
962 2009-01-31 Laurent GUERBY <laurent@guerby.net>
964 * gcc-interface/Makefile.in: Fix mipsel linux handling.
966 2009-01-16 Jakub Jelinek <jakub@redhat.com>
968 * gcc-interface/Makefile.in: Fix multilib handling for
971 2009-01-12 Eric Botcazou <ebotcazou@adacore.com>
973 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Really strip
974 only useless conversions around renamed objects.
976 2009-01-11 Eric Botcazou <ebotcazou@adacore.com>
978 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Put
979 the _Tag field before any discriminants in the field list.
980 (components_to_record): Remove obsolete comment.
982 2008-12-09 Jakub Jelinek <jakub@redhat.com>
985 * gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE.
986 * gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type):
989 2008-12-05 Sebastian Pop <sebastian.pop@amd.com>
992 * gcc-interface/Make-lang.in (gnat1): Add BACKENDLIBS, remove GMPLIBS.
994 2008-11-29 Eric Botcazou <ebotcazou@adacore.com>
997 * g-comver.adb (Ver_Len_Max): Fix inconsistency.
999 2008-11-27 Eric Botcazou <ebotcazou@adacore.com>
1001 * gcc-interface/decl.c: Fix various nits.
1003 2008-11-20 Eric Botcazou <ebotcazou@adacore.com>
1005 * gcc-interface/utils.c (init_gigi_decls): Fix type mismatch.
1007 2008-11-16 Eric Botcazou <ebotcazou@adacore.com>
1010 * gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Do not
1011 special-case boolean types. Propagate the name.
1012 * gcc-interface/targtyps.c: Tweak comment.
1014 2008-11-15 Geert Bosch <bosch@adacore.com>
1016 * gcc-interface/trans.c (emit_check): Put back a final save_expr
1017 to prevent exponential expansion during gimplification.
1019 2008-11-15 Eric Botcazou <ebotcazou@adacore.com>
1021 * gcc-interface/lang-specs.h: Expand -coverage and reorder switches.
1023 2008-11-15 Eric Botcazou <ebotcazou@adacore.com>
1025 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force constants
1026 initialized to a static constant to be statically allocated even if
1027 they are of a padding type, provided the original type also has
1030 2008-11-15 Laurent Guerby <laurent@guerby.net>
1033 * gcc-interface/Makefile.in: Add multilib handling for x86_64
1035 * system-darwin-x86_64.ads: New file.
1037 2008-11-13 Olivier Hainque <hainque@adacore.com>
1039 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>:
1040 Turn Ada Pure on subprograms back into GCC CONST when eh constructs
1041 are explicit to the middle-end. Tidy.
1043 2008-11-09 Eric Botcazou <ebotcazou@adacore.com>
1045 * gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
1046 (MINUS_NOMOD_EXPR): Likewise.
1047 * gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make
1049 <PLUS_NOMOD_EXPR>: New case.
1050 <MINUS_NOMOD_EXPR>: Likewise.
1051 * gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and-
1052 assignment statement instead of using an increment operator.
1054 2008-11-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1056 * system-irix-n64.ads: New file.
1057 * gcc-interface/Makefile.in (mips-sgi-irix6*): Support O32 and N64
1060 2008-11-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
1063 * system-solaris-x86_64.ads: New file.
1064 * gcc-interface/Makefile.in (*86-solaris2*): Support x86_64 multilib.
1066 2008-11-07 Bechir Zalila <bechir.zalila@gmail.com>
1067 Eric Botcazou <ebotcazou@adacore.com>
1070 * lib.ads: (Enable_Switch_Storing): Declare.
1071 * lib.adb: (Enable_Switch_Storing): New procedure.
1072 * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea.
1073 * make.adb: (Compile_Sources.Compile): Add -gnatea as first option.
1074 (Display): Never display -gnatea
1075 * gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez.
1077 2008-11-07 Thomas Quinot <quinot@adacore.com>
1079 * gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check
1080 for empty range in original base type, not converted result type.
1082 2008-11-07 Geert Bosch <bosch@adacore.com>
1084 * gcc-interface/trans.c (build_binary_op_trapv): Convert arguments
1085 and result for call to __gnat_mulv64.
1087 2008-11-07 Eric Botcazou <ebotcazou@adacore.com>
1089 * gcc-interface/trans.c: Fix formatting nits.
1091 2008-11-07 Geert Bosch <bosch@adacore.com>
1093 * gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting
1094 overflow check for constant result.
1096 2008-11-07 Geert Bosch <bosch@adacore.com>
1098 * gcc-interface/trans.c (build_binary_op_trapv): Use more efficient
1099 overflow check for addition/subtraction if neither operand is constant.
1101 2008-11-06 Eric Botcazou <ebotcazou@adacore.com>
1103 * gcc-interface/Makefile.in (SPARC/Solaris): Use a common set of
1104 files for the target-dependent part of the runtime.
1105 (SPARC/Linux): Likewise.
1107 2008-11-06 Eric Botcazou <ebotcazou@adacore.com>
1109 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: If not
1110 optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging
1113 2008-11-06 Eric Botcazou <ebotcazou@adacore.com>
1115 * gcc-interface/misc.c (gnat_printable_name): Always return a copy
1118 2008-11-06 Eric Botcazou <ebotcazou@adacore.com>
1121 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>:
1122 Generate a call to memmove for an assignment between overlapping
1125 2008-11-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1128 * gcc-interface/Makefile.in: Add multilib handling for
1129 s390-linux and s390x-linux.
1131 2008-10-24 Jakub Jelinek <jakub@redhat.com>
1133 * gcc-interface/Make-lang.in (check-ada-subtargets): Depend on
1134 check-acats-subtargets and check-gnat-subtargets.
1135 (check_acats_targets): New variable.
1136 (check-acats-subtargets, check-acats%): New targets.
1137 (check-acats): If -j is used and CHAPTERS is empty, run the testing
1138 in multiple make goals, possibly parallel, and afterwards run
1139 dg-extract-results.sh to merge the sum and log files.
1141 2008-10-17 Geert Bosch <bosch@adacore.com>
1143 * gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion
1144 to use only a single check instead of three, and avoid unnecessary
1146 (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
1147 creating more opportunities for optimizations.
1149 2008-10-13 Jakub Jelinek <jakub@redhat.com>
1152 * gcc-interface/utils.c (gnat_types_compatible_p): Handle
1155 2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
1157 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
1158 dealing with volatileness to after code dealing with renaming.
1160 2008-10-06 Eric Botcazou <ebotcazou@adacore.com>
1162 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks.
1163 * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
1165 2008-10-06 Eric Botcazou <ebotcazou@adacore.com>
1167 * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
1168 (unchecked_convert): Use it to disable problematic folding with
1169 VIEW_CONVERT_EXPR in the general case. Always disable it for the
1170 special VIEW_CONVERT_EXPR built for integral types and cope with
1171 its addressability issues by preserving the first conversion.
1173 2008-10-01 Andreas Schwab <schwab@suse.de>
1175 * system-linux-ppc64.ads: New file.
1176 * gcc-interface/Makefile.in: Add multilib handling for
1179 2008-09-26 Eric Botcazou <ebotcazou@adacore.com>
1181 * decl.c (gnat_to_gnu_entity) <object>: Cap the alignment promotion
1182 to that of ptr_mode instead of word_mode.
1184 2008-09-26 Eric Botcazou <ebotcazou@adacore.com>
1187 * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support.
1189 2008-09-25 Samuel Tardieu <sam@rfc1149.net>
1192 * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA
1193 instead of deprecated FILE_WRITE_PROPERTIES.
1195 2008-09-22 Olivier Hainque <hainque@adacore.com>
1197 * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they
1198 are never assigned, volatile entities are not constant for code
1199 generation purposes.
1201 2008-09-21 Laurent Guerby <laurent@guerby.net>
1204 * gcc-interface/Makefile.in: Add multilib handling for x86_64
1206 * system-linux-sparcv9.ads: New file.
1208 2008-09-20 Eric Botcazou <ebotcazou@adacore.com>
1210 * exp_dbug.ads: Document new convention for the XVZ variable.
1211 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate
1212 debug info if necessary for the type padding the component type.
1213 <E_Array_Subtype>: Likewise.
1214 (maybe_pad_type): Emit the XVZ variable in units.
1215 * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
1216 (Subprogram_Body_to_gnu): Set the source line of the subprogram's node
1217 on statements generated to initialize the parameter attributes cache.
1218 Set the source line of the end label of the body on the special return
1219 statement built for a procedure with copy-in copy-out parameters.
1221 2008-09-20 Eric Botcazou <ebotcazou@adacore.com>
1224 * gcc-interface/utils.c (create_subprog_decl): Disable inlining for
1225 inlined external functions if they contain a nested function not
1228 2008-09-18 Jan Hubicka <jh@suse.cz>
1230 * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
1231 (end_subprog_body): Do not set DECL_INLINE.
1233 2008-09-17 Pascal Rigaux <pixel@mandriva.com>
1236 * gnat_ugn.texi: Use proper format in direntry.
1238 2008-09-15 Eric Botcazou <ebotcazou@adacore.com>
1240 * gcc-interface/trans.c (gigi): Declare the name of the compilation
1241 unit as the first global name.
1243 2008-09-14 Jan Hubicka <jh@suse.cz>
1245 * gcc-interface/Make-lang.in (gnat1): Add CFLAGS.
1247 2008-09-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1249 * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads,
1250 bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb,
1251 exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
1252 exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
1253 exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads,
1254 g-diopit.adb, g-socket.ads, gcc-interface/decl.c,
1255 gcc-interface/gigi.h, gcc-interface/trans.c,
1256 lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads,
1257 opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads,
1258 s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads,
1259 s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
1260 sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
1261 sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
1262 sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads,
1263 sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in
1265 * gnathtml.pl: Fix typos.
1267 2008-09-10 Joel Sherrill <joel.sherrill@oarcorp.com>
1269 * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb.
1270 * s-osinte-rtems.ads: Add shared hardware interrupt adapter
1271 layer. RTEMS binds to OS provided adapter routines so there are
1272 no modifications to s-osinte-rtems.adb.
1274 2008-09-09 Arnaud Charlet <charlet@adacore.com>
1275 Joel Sherrill <joel.sherrill@oarcorp.com>
1277 * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb.
1279 * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb
1281 * s-interr-hwint.adb: New file.
1283 * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions
1284 needed by s-interr-hwint.adb.
1286 * s-osinte-vxworks-kernel.adb: New file.
1288 2008-09-05 Joel Sherrill <joel.sherrill@oarcorp.com>
1290 * s-stchop-rtems.adb: Add file missed in early commit. Already
1291 referenced in gcc-interface/Makefile.in.
1293 2008-08-30 Thomas Quinot <quinot@adacore.com>
1295 * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
1296 be built even without a separate libada directory.
1298 2008-08-22 Arnaud Charlet <charlet@adacore.com>
1300 * lib-xref.ads: Fix typo in subprogram reference definition.
1302 2008-08-22 Robert Dewar <dewar@adacore.com>
1304 * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix
1307 * g-trasym.adb: Ditto
1309 * s-utf_32.adb (Get_Category): Fix obvious typo
1311 * s-wwdcha.adb: Minor code reorganization
1314 2008-08-22 Robert Dewar <dewar@adacore.com>
1316 * checks.adb (Determine_Range): Deal with values that might be invalid
1318 * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New
1319 configuration switches.
1321 * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values
1323 * sem_prag.adb: Implement pragma Assume_No_Default_Values
1325 * snames.adb, snames.ads, snames.h:
1326 Add entries for pragma Assume_No_Invalid_Values
1328 * switch-c.adb: Add processing for -gnatB switch
1330 * usage.adb: Add entry for flag -gnatB (no bad invalid values)
1332 2008-08-22 Javier Miranda <miranda@adacore.com>
1334 * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the
1335 init procedure all the expanded code associated with the spec of
1336 task types and protected types.
1338 2008-08-22 Gary Dismukes <dismukes@adacore.com>
1340 * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the
1341 component expression copies rather than directly setting Etype and
1342 Is_Static_Expression.
1344 2008-08-22 Gary Dismukes <dismukes@adacore.com>
1346 * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of
1347 private types to allow for types derived from a private type with
1348 preelaborable initialization, but return False for a private extension
1349 (unless it has the pragma).
1351 2008-08-22 Robert Dewar <dewar@adacore.com>
1353 * opt.ads: Minor code reorganization (put entries in alpha order)
1355 2008-08-22 Pascal Obry <obry@adacore.com>
1357 * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking
1360 2008-08-22 Geert Bosch <bosch@adacore.com>
1362 * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
1363 (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0
1365 2008-08-22 Doug Rupp <rupp@adacore.com>
1367 * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call
1368 __gnat_set_features.
1371 (__gnat_set_features): New function.
1372 (__gnat_features_set): New tracking variable.
1373 (__gl_no_malloc_64): New feature global variable
1375 2008-08-22 Ed Schonberg <schonberg@adacore.com>
1377 * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant
1378 use_type_clause in an instance.
1380 2008-08-22 Bob Duff <duff@adacore.com>
1382 * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds.
1384 2008-08-22 Robert Dewar <dewar@adacore.com>
1386 * exp_ch6.adb: Minor reformatting
1388 * exp_ch7.adb: Minor reformatting
1390 * exp_ch7.ads: Put routines in proper alpha order
1392 * exp_dist.adb: Minor reformatting
1394 2008-08-22 Vincent Celier <celier@adacore.com>
1396 * prj.ads: Minor comment update
1398 2008-08-22 Robert Dewar <dewar@adacore.com>
1400 * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack
1402 2008-08-22 Ed Schonberg <schonberg@adacore.com>
1405 (Base_Init_Proc): For a protected subtype, use the base type of the
1406 corresponding record to locate the propoer initialization procedure.
1408 2008-08-22 Robert Dewar <dewar@adacore.com>
1411 (In_Subrange_Of): New calling sequence
1412 (Determine_Range): Prepare for new processing using base type
1415 (Compile_Time_Compare): Use new calling sequence
1418 (Compile_Time_Compare): Use new calling sequence
1421 (Compile_Time_Compare): New calling sequence allows dealing with
1423 (In_Subrange_Of): Ditto
1426 (Compile_Time_Compare): New calling sequence allows dealing with
1428 (In_Subrange_Of): Ditto
1430 2008-08-22 Pascal Obry <obry@adacore.com>
1432 * adaint.c: Fix possible race condition on win32_wait().
1434 2008-08-22 Bob Duff <duff@adacore.com>
1436 * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb,
1437 exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
1438 exp_intr.adb, exp_ch3.adb: Rename:
1439 Exp_Ch7.Controlled_Type => Needs_Finalization
1440 Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part
1441 Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type =>
1442 Has_Controlled_Parts
1443 (Has_Some_Controlled_Component): Fix bug in array case.
1445 2008-08-22 Robert Dewar <dewar@adacore.com>
1447 * sem_ch8.adb: Minor reformatting
1449 2008-08-22 Kevin Pouget <pouget@adacore.com>
1451 * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and
1452 Shared_Var_Close procedure specifications from package spec to package body.
1454 * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen,
1455 RE_Shared_Var_WOpen entries.
1457 * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in
1458 Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures.
1460 2008-08-22 Eric Botcazou <ebotcazou@adacore.com>
1462 * init.c: adjust EH support code on Alpha/Tru64 as well.
1464 * raise-gcc.c: Add back a couple of comments.
1466 2008-08-22 Ed Schonberg <schonberg@adacore.com>
1468 * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is
1469 involved and the return type is class-wide, use the type of the expression
1470 for the generated access type. Suppress useless discriminant checks on the
1473 2008-08-22 Bob Duff <duff@adacore.com>
1475 * exp_ch7.adb: Minor comment fix
1477 * exp_ch6.ads: Minor comment fix
1479 2008-08-22 Thomas Quinot <quinot@adacore.com>
1481 * sem_ch8.adb: Minor reformatting
1482 Minor code reorganization (introduce subprogram to factor duplicated
1485 2008-08-22 Sergey Rybin <rybin@adacore.com>
1487 * gnat_ugn.texi: Change the description of gnatcheck default rule
1490 2008-08-22 Eric Botcazou <ebotcazou@adacore.com>
1492 * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX,
1493 Solaris, FreeBSD, VxWorks and PowerPC/Linux. For x86{-64}/Linux,
1494 do not adjust the PC anymore.
1495 (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise
1496 on AIX, HP-UX, Solaris, FreeBSD and VxWorks.
1498 * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo
1499 instead of _Unwind_GetIP.
1501 2008-08-22 Gary Dismukes <dismukes@adacore.com>
1503 * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate
1504 with a range is transformed into a positional aggregate, any copied
1505 component literals should be marked Is_Static_Expression.
1507 * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as
1508 not being known at at compile time when Configurable_Run_Time_Mode is
1511 2008-08-22 Robert Dewar <dewar@adacore.com>
1514 (Expand_N_Attribute_Reference): No validity checking on OUT parameter of
1515 Read or Input attribute.
1517 2008-08-22 Ed Schonberg <schonberg@adacore.com>
1519 * sem_ch8.adb (Use_One_Type): when checking which of two use_type
1520 clauses in related units is redundant, if one of the units is a package
1521 instantiation, use its instance_spec to determine which unit is the
1522 ancestor of the other.
1524 2008-08-22 Javier Miranda <miranda@adacore.com>
1526 * exp_attr.adb (Expand_N_Attribute_Reference): In case of access
1527 attributes add missing support to handle designated types that come
1528 from the limited view.
1530 * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion.
1532 2008-08-22 Sergey Rybin <rybin@adacore.com>
1534 * vms_data.ads: Add entry for new gnatcheck -mNNN option
1536 * gnat_ugn.texi: Add description for gnatcheck option '-m'
1538 2008-08-22 Sergey Rybin <rybin@adacore.com>
1540 * gnat_ugn.texi: Update the gnatcheck subsection for metric rules
1541 acoording to the latest changes in the metric rule interface
1543 2008-08-22 Vincent Celier <celier@adacore.com>
1545 * make.adb (Check.File_Not_A_Source_Of): New Boolean function
1546 (Check): Check if the file names registered in the ALI file for the
1547 spec, the body and each of the subunits are the ones expected.
1549 2008-08-22 Robert Dewar <dewar@adacore.com>
1551 * g-catiio.adb: Code cleanup.
1553 2008-08-20 Vincent Celier <celier@adacore.com>
1555 * make.adb (Gnatmake): Remove extra space in version line
1558 (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit,
1559 as the name may already have been entered in the table by the Project
1562 2008-08-20 Jose Ruiz <ruiz@adacore.com>
1564 * errno.c (__get_errno, __set_errno for MaRTE): Transform then into
1565 weak symbols so we use the version provided by MaRTE when available.
1567 2008-08-20 Emmanuel Briot <briot@adacore.com>
1569 * g-catiio.ads, g-catiio.adb:
1570 (Value): Avoid an unnecessary system call to Clock in most cases.
1571 This call is only needed when only the time is provided in the string,
1572 and ignored in all other cases. This is more efficient.
1574 2008-08-20 Eric Botcazou <ebotcazou@adacore.com>
1576 * raise-gcc.c: Fix formatting nits.
1578 2008-08-20 Robert Dewar <dewar@adacore.com>
1581 (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
1582 non-existing component clause.
1584 * exp_ch5.adb: Minor reformatting
1586 * g-comlin.adb: Minor reformatting
1588 * make.adb: Minor reformatting
1590 * prj-proc.adb: Minor reformatting
1592 * stylesw.ads: Minor reformatting
1594 2008-08-20 Vincent Celier <celier@adacore.com>
1596 * make.adb (Gnatmake_Switch_Found): New Boolean global variable
1597 (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable
1598 (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler
1599 defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False
1600 and a switch is not recognized by gnatmake.
1601 (Gnatmake): Implement new scheme for gnatmake switches and global
1602 compilation switches.
1603 (Switches_Of): Try successively Switches (<file name>),
1604 Switches ("Ada"), Switches (others) and Default_Switches ("Ada").
1606 2008-08-20 Ed Schonberg <schonberg@adacore.com>
1608 * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to
1609 implement style check that overriding operations are explicitly marked
1612 * style.ads (Missing_Overriding): new procedure that provides interface
1615 * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check
1616 that the declaration or body of overriding operations carries an
1617 explicit overriding indicator.
1620 (Analyze_Subprogram_Renaming): if operation is overriding, check whether
1621 explicit indicator should be present.
1623 * sem_ch6.adb (Verify_Overriding_Indicator,
1624 Check_Overriding_Indicator): If operation is overriding, check whether
1625 declaration and/or body of subprogram should be present
1627 2008-08-20 Vincent Celier <celier@adacore.com>
1629 * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for
1630 gprbuild when casing is MixedCase, whatever the casing of the letters
1633 2008-08-20 Gary Dismukes <dismukes@adacore.com>
1635 * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to
1636 creating dummy init proc.
1637 (Requires_Init_Proc): Return False in the case No_Default_Initialization
1638 is in force and the type does not have associated default
1639 initialization. Move test of Is_Public (with tests of restrictions
1640 No_Initialize_Scalars and No_Default_Initialization) to end, past tests
1641 for default initialization.
1643 2008-08-20 Jerome Lambourg <lambourg@adacore.com>
1645 * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part
1646 of any alias or prefix but having attached parameters (as \"-O2\").
1648 2008-08-20 Robert Dewar <dewar@adacore.com>
1650 * s-fileio.adb: Minor reformatting
1652 2008-08-20 Thomas Quinot <quinot@adacore.com>
1654 * exp_strm.adb (Build_Elementary_Input_Call,
1655 Build_Elementary_Write_Call): Fix incorrect condition in circuitry that
1656 selects the stream attribute routines for long float types.
1658 2008-08-20 Vincent Celier <celier@adacore.com>
1660 * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data
1662 * prj.ads (Array_Data): Add a component Location
1664 2008-08-20 Ed Schonberg <schonberg@adacore.com>
1667 (Analyze_Pragma, case Obsolescent): Add entity information on the pragma
1668 argument for ASIS and navigation use.
1670 2008-08-20 Ed Schonberg <schonberg@adacore.com>
1672 * einfo.ads: Add comment.
1674 2008-08-20 Bob Duff <duff@adacore.com>
1676 * sem_eval.ads: Minor comment fix.
1678 2008-08-20 Bob Duff <duff@adacore.com>
1680 * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant
1681 folding. We were folding things like "False and then ...", but not
1682 "X and then ..." where X is a constant whose value is known at compile
1685 2008-08-20 Hristian Kirtchev <kirtchev@adacore.com>
1687 * exp_ch5.adb (Controlled_Type): New routine.
1688 (Expand_N_Extended_Return_Statement): When generating a move of the
1689 final list in extended return statements, check the type of the
1690 function and in the case of double expanded return statements, the type
1691 of the returned object.
1692 (Expand_Simple_Function_Return): Perform an interface conversion when
1693 the type of the returned object is an interface and the context is an
1694 extended return statement.
1696 2008-08-20 Ed Schonberg <schonberg@adacore.com>
1698 * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type
1699 and the full view is visible, set flag on full view as well.
1701 2008-08-20 Thomas Quinot <quinot@adacore.com>
1703 * g-comlin.adb: Minor reformatting
1704 Minor code reorganization.
1706 * freeze.adb: Minor reformatting
1708 2008-08-20 Vincent Celier <celier@adacore.com>
1710 * prj-nmsc.adb (Check_File): An excluded Ada source file may be a
1711 source of another project.
1713 2008-08-20 Pascal Obry <obry@adacore.com>
1715 * s-os_lib.ads: Minor reformatting.
1717 2008-08-20 Arnaud Charlet <charlet@adacore.com>
1719 * gnatvsn.ads: Minor reformatting.
1721 2008-08-20 Arnaud Charlet <charlet@adacore.com>
1723 * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads,
1724 system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb,
1725 g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads,
1726 mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb,
1727 exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads,
1728 g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb,
1729 s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb,
1730 sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb,
1731 s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads,
1732 g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb,
1733 g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb,
1734 g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads,
1735 live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb,
1736 g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads,
1737 s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb,
1738 g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads,
1739 s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads,
1740 g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb,
1741 osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb,
1742 system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads,
1743 i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads,
1744 s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads,
1745 a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads,
1746 s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb,
1747 a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads,
1748 g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb,
1749 a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c,
1750 a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb,
1751 lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads,
1752 s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads,
1753 par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads,
1754 a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb,
1755 system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads,
1756 s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads,
1757 a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb,
1758 mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb,
1759 s-poosiz.adb, link.c: Fix copyright notice.
1761 2008-08-20 Arnaud Charlet <charlet@adacore.com>
1763 * g-comlin.ads: Update comments.
1765 2008-08-20 Ed Schonberg <schonberg@adacore.com>
1767 * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag.
1769 2008-08-20 Gary Dismukes <dismukes@adacore.com>
1772 (Expand_Exception_Handlers): Call Make_Exception_Handler instead of
1773 Make_Implicit_Exception_Handler when rewriting an exception handler with
1774 a choice parameter, and pass the handler's Sloc instead of that of the
1775 handled sequence of statements. Make_Implicit_Exception_Handler sets the
1776 Sloc to No_Location (unless debugging generated code), which we don't
1777 want for the case of a user handler.
1779 2008-08-20 Robert Dewar <dewar@adacore.com>
1781 * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field
1784 (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are
1785 now labeled as info msgs, not warnings.
1787 * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler
1789 * usage.adb: Minor change to avoid overlong line for -gnatwz/Z
1791 * a-textio.adb: Remove redundant test.
1793 * a-witeio.adb: Minor code reorganization
1794 Remove redundant test found working on another issue
1796 * a-ztexio.adb: Minor code reorganization
1797 Remove redundant test found working on another issue
1799 2008-08-20 Thomas Quinot <quinot@adacore.com>
1801 * s-fileio.adb (Open) Use C helper function to determine whether a
1802 given errno value corresponds to a "file not found" error.
1804 * sysdep.c (__gnat_is_file_not_found_error): New C helper function.
1806 2008-08-20 Jose Ruiz <ruiz@adacore.com>
1808 * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno
1809 to get access to the per-task errno variable.
1810 (__set_errno for MaRTE): Do not redefine this function here since it is
1811 already defined in MaRTE.
1813 2008-08-20 Tristan Gingold <gingold@adacore.com>
1815 * gnat_ugn.texi: Gcov is not supported on static library on AIX.
1817 2008-08-20 Robert Dewar <dewar@adacore.com>
1819 * freeze.adb: Minor reformatting
1821 * g-comlin.adb: Minor reformatting
1823 * g-socket.adb: Minor reformatting
1825 * g-socthi-mingw.adb: Minor reformatting
1827 * g-stheme.adb: Minor reformatting
1829 2008-08-20 Ed Schonberg <schonberg@adacore.com>
1831 * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads,
1832 exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
1833 confusion between partial and full views of an ancestor of the context
1834 type when the parent is a private extension declared in a parent unit,
1835 and full views are available for the context type.
1837 2008-08-18 Samuel Tardieu <sam@rfc1149.net>
1838 Robert Dewar <dewar@adacore.com>
1841 * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the
1843 Move comment in the right place.
1844 * g-comver.adb (Version): Look for a zero-termination in
1845 addition to a closing parenthesis.
1847 2008-08-18 Samuel Tardieu <sam@rfc1149.net>
1849 * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb,
1850 * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
1851 * sem_prag.adb, sem_util.adb, sem_warn.adb: Use
1852 Is_Package_Or_Generic_Package instead of hand-crafted tests.
1854 2008-08-18 Samuel Tardieu <sam@rfc1149.net>
1857 * sem_ch6.adb (Check_Private_Overriding): Check for generic packages
1860 2008-08-17 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1862 * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.
1864 2008-08-16 Eric Botcazou <ebotcazou@adacore.com>
1866 * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
1867 for back-copy statements in lieu of that of the actual.
1869 2008-08-16 Eric Botcazou <ebotcazou@adacore.com>
1872 * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
1873 setjmp test consistently. Adjust for new behavior of flag_stack_check.
1874 * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
1875 test of flag_stack_check. Adjust for new behavior of flag_stack_check.
1877 2008-08-13 Samuel Tardieu <sam@rfc1149.net>
1880 * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New.
1881 * sem_attr.adb (Check_Type): The current instance of a protected
1882 object is not a type name.
1883 (Analyze_Access_Attribute): Accept instances of protected objects.
1884 (Analyze_Attribute, Attribute_Address clause): Ditto.
1885 * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite
1886 the prefix as being the current instance if needed.
1888 2008-08-12 Danny Smith <danyssmith@users.sourceforge.net>
1890 * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]:
1891 Remove duplicate s-win32.o. Add s-winext.o.
1893 2008-08-12 Danny Smith <danyssmith@users.sourceforge.net>
1895 * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM
1896 with SOSC.SOCK__STREAM.
1897 * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with
1900 2008-08-11 Joel Sherrill <joel.sherrill@oarcorp.com>
1902 * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it.
1903 * gsocket.h, socket.c: Update to support RTEMS.
1904 * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross.
1906 2008-08-10 Samuel Tardieu <sam@rfc1149.net>
1907 Robert Dewar <dewar@adacore.com>
1909 * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of
1910 left argument even when right argument is 0.
1911 (Expand_N_Op_Mod): Ditto when right argument is 1.
1912 (Expand_N_Op_Multiply): Ditto when any argument is 0.
1913 (Expand_N_Op_Rem): Ditto when right argument is 1.
1915 2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1917 * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
1920 2008-08-08 Ed Schonberg <schonberg@adacore.com>
1922 * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
1923 from Freeze_Entity. Used to generate cross-reference information for
1924 types declared in generic packages.
1926 2008-08-08 Thomas Quinot <quinot@adacore.com>
1928 * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a
1931 2008-08-08 Thomas Quinot <quinot@adacore.com>
1934 On Windows, include <errno.h> and redefine only selected errno values
1935 from their <winsock2.h> definitions.
1937 * s-osinte-freebsd.ads: Minor reformatting
1939 * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting
1941 * g-soccon.ads: New file.
1943 * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
1944 g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
1945 g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
1946 g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
1947 unit, to allow building software that depends on this internal unit
1948 with both older and newer compilers.
1950 2008-08-08 Robert Dewar <dewar@adacore.com>
1952 * s-strxdr.adb: Minor reformatting
1954 2008-08-08 Bob Duff <duff@adacore.com>
1956 * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
1957 checking for integer operations (including division by zero)", which
1958 is wrong -- divide by zero is not part of overflow checking.
1959 Also added misc clarification about what check-suppression means.
1961 * gnat_rm.texi: Clarify the meaning of pragma Suppress.
1963 2008-08-08 Jerome Lambourg <lambourg@adacore.com>
1965 * g-comlin.adb (Add_Switch): Handle addition of switches at the
1966 begining of the command line.
1967 (Append, Add): Renaming of Append to Add as this now allows addition
1968 at the begining of the list.
1970 * g-comlin.ads (Add_Switch): Handle addition of switches at the
1971 begining of the command line.
1973 2008-08-08 Thomas Quinot <quinot@adacore.com>
1976 (Name): Document application scope (only legacy PC serial ports on
1979 2008-08-08 Thomas Quinot <quinot@adacore.com>
1981 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
1982 previous change, not needed after all.
1984 2008-08-08 Ed Schonberg <schonberg@adacore.com>
1986 * exp_ch4.adb (Expand_Allocator_Expression): add check if null
1987 exclusion indicator is present
1989 2008-08-08 Robert Dewar <dewar@adacore.com>
1991 * g-comlin.adb: Minor code reorganization
1994 * g-comlin.ads: Minor reformatting
1996 * s-fileio.adb: Minor reformatting
1998 * sem_attr.adb: Minor code reorganization (use Nkind_In)
2001 2008-08-06 Samuel Tardieu <sam@rfc1149.net>
2003 * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
2004 with s-oscons-tmplt.i.
2006 2008-08-06 Samuel Tardieu <sam@rfc1149.net>
2008 * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.
2010 2008-08-06 Ed Schonberg <schonberg@adacore.com>
2012 * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
2015 * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
2016 of a formal parameter of an incomplete type. Improve error message for
2017 other improper uses of incomplete types.
2019 2008-08-06 Robert Dewar <dewar@adacore.com>
2021 * gnat_ugn.texi: Clarify -gnato documentation
2023 2008-08-06 Thomas Quinot <quinot@adacore.com>
2025 * gcc-interface/Makefile.in,
2026 g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
2027 g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
2028 g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
2029 g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
2030 g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
2031 g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
2032 g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
2033 g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
2034 g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
2035 Remove GNAT.Sockets.Constants. This internal package is replaced by
2036 System.OS_Constants.
2038 2008-08-06 Thomas Quinot <quinot@adacore.com>
2040 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
2041 Remove obsolete targets referencing gen-soccon
2042 When generating s-oscons.ads, use a file name that includes the
2043 THREAD_KIND, to ensure that the (potentially different) version from a
2044 previous build with a different threads flavour does not get reused.
2046 2008-08-06 Thomas Quinot <quinot@adacore.com>
2048 * sem_res.adb: Minor reformatting
2050 * s-fileio.adb (Open): When file open operation fails, raise Name_Error
2051 only when the operating system reports a non-existing file or directory
2052 (ENOENT), otherwise raise Name_Error.
2054 * exp_ch11.adb: Minor reformatting
2056 2008-08-06 Ed Schonberg <schonberg@adacore.com>
2058 * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
2059 incomplete, add the access_to_subprogram type to the list of private
2060 dependents only if the incomplete type will be completed in the current
2062 (Build_Discriminant_Constraints): If the type of the discriminant is
2063 access_to_variable, reject a constraint that is access_to_constant.
2065 2008-08-06 Thomas Quinot <quinot@adacore.com>
2067 * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
2068 g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
2069 g-sttsne-dummy.ads: New files.
2071 * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
2072 with pragma Unimplemented_Unit for sockets packages on Nucleus.
2074 2008-08-06 Pascal Obry <obry@adacore.com>
2076 * adaint.c: Another fix for ACL support on Windows.
2078 2008-08-06 Javier Miranda <miranda@adacore.com>
2080 * exp_disp (Expand_Interface_Actuals): Adds missing support for
2081 expansion of calls to subprograms using selected components.
2083 2008-08-06 Ed Schonberg <schonberg@adacore.com>
2085 * sem_res.adb (Resolve_Call): Use base type to determine whether a
2086 dereference is needed because a subtype of an access_to_subprogram is
2087 simply an access-subtype
2089 2008-08-06 Jerome Lambourg <lambourg@adacore.com>
2091 * g-comlin.adb (Set_Command_Line): Now that aliases can contain
2092 parameters, always specify the expected separator.
2094 2008-08-06 Thomas Quinot <quinot@adacore.com>
2096 * xnmake.adb: Use new XUtil package for platform independent text
2099 2008-08-06 Vincent Celier <celier@adacore.com>
2101 * gnat_ugn.texi: Document compiler switch -gnateG
2103 2008-08-06 Quentin Ochem <ochem@adacore.com>
2105 * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
2106 in the case of an empty pattern size.
2107 (Compute_Result): Do not do any computation in the case of an empty
2109 (Report_Result): Fixed computation of the overflow guard.
2111 2008-08-06 Ed Schonberg <schonberg@adacore.com>
2113 * g-awk.adb (Finalize): Do not use directly objects of the type in the
2114 finalization routine to prevent elaboration order anomalies in new
2115 finalization scheme.
2117 2008-08-06 Ed Schonberg <schonberg@adacore.com>
2119 * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
2120 declaration for the same type.
2122 2008-08-06 Thomas Quinot <quinot@adacore.com>
2124 * sem.adb: Minor rewording (comment)
2126 2008-08-06 Jerome Lambourg <lambourg@adacore.com>
2128 * g-comlin.adb (Define_Switch, Get_Switches): New.
2129 (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
2130 ungrouping switches.
2131 (For_Each_Simple_Switch): Allow more control over parameters handling.
2132 This generic method now allows ungrouping of switches with parameters
2133 and switches with more than one letter after the prefix.
2134 (Set_Command_Line): Take care of switches that are prefixed with a
2135 switch handling parameters without delimiter (-gnatya and -gnaty3 for
2137 (Add_Switch, Remove_Switch): Handle parameters possibly present inside
2138 a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
2140 (Start, Alias_Switches, Group_Switches): Take care of parameters
2141 possibly present inside a group.
2143 * g-comlin.ads (Define_Switch): New method used to define a list of
2144 expected switches, that are necessary for correctly ungrouping switches
2145 with more that one character after the prefix.
2146 (Get_Switches): Method that builds a getopt string from the list of
2147 switches as set previously by Define_Switch.
2148 (Add_Switch, Remove_Switch): New versions of the methods, reporting the
2149 status of the operation. Also allow the removal of switches with
2151 (Command_Line_Configuration_Record): Maintain a list of expected
2154 2008-08-06 Doug Rupp <rupp@adacore.com>
2156 * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
2157 TARGET_MALLOC64 clear.
2159 * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
2160 if TARGET_MALLOC64 clear.
2162 * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
2163 (TARGET_MALLC64): New macro. Default to clear.
2165 2008-08-06 Doug Rupp <rupp@adacore.com>
2167 * gcc-interface/utils2.c (snames.h) Include
2168 (TARGET_ABI_OPEN_VMS): Initialize.
2169 (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
2172 2008-08-06 Ed Schonberg <schonberg@adacore.com>
2174 * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
2175 null exclusion in a discriminant declaration
2177 * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
2178 indicators when type is not an access type.
2180 * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
2181 indicators when type is not an access type.
2183 2008-08-06 Javier Miranda <miranda@adacore.com>
2185 * exp_disp (Expand_Interface_Conversion): Freeze the entity associated
2186 with the target interface before expanding the code of the interface
2189 2008-08-05 Ed Schonberg <schonberg@adacore.com>
2192 (Freeze_Entity): A deferred constant does not violate the restriction
2193 No_Default_Initialization,
2195 * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
2196 can carry a null exclusion indicator, and on which an error may be
2197 posted if the indicator is redundant.
2199 * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
2200 does not apply to a subtype mark that already excludes null.
2202 * sem_ch12.adb (Formal_Object_Declaration): Verify that a null
2203 exclusion does not apply to a subtype mark that already excludes null.
2205 2008-08-05 Thomas Quinot <quinot@adacore.com>
2207 * Makefile.rtl: Compile s-oscons.ads as part of the runtime library.
2209 2008-08-05 Doug Rupp <rupp@adacore.com>
2211 * vms_data.ads: Translation for /POINTER_SIZE qualifier.
2213 2008-08-05 Thomas Quinot <quinot@adacore.com>
2215 * gsocket.h: Make this file includable in a Nucleus environment, which
2216 does not support sockets.
2218 * socket.c: Remove Nucleus-specific hack.
2220 2008-08-05 Pascal Obry <obry@adacore.com>
2222 * adaint.c: Remove support for readable attribute on vxworks and nucleus
2224 2008-08-05 Ed Schonberg <schonberg@adacore.com>
2227 (Analyze_Attribute, case 'Result): handle properly the case where some
2228 operand of the expression in a post-condition generates a transient
2231 * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
2232 right-hand side when it is an anonymous access_to_subprogram, to force
2233 static accessibility check when needed.
2235 2008-08-05 Sergey Rybin <rybin@adacore.com>
2237 * gnat_ugn.texi: Changing the description of the gnatcheck metrics
2238 rule according to the change in the rule option.
2239 Add documentation for -gnatw.b/-gnatw.B
2241 2008-08-05 Robert Dewar <dewar@adacore.com>
2243 * ug_words: Add entries for -gnatw.b/-gnatw.B
2245 * vms_data.ads: Add entries for -gnatw.b/-gnatw.B
2247 2008-08-05 Vincent Celier <celier@adacore.com>
2249 * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
2252 * a-ztdeio.adb: Ditto.
2254 2008-08-05 Pascal Obry <obry@adacore.com>
2256 * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
2259 2008-08-05 Vincent Celier <celier@adacore.com>
2262 (Wide_String_To_String): Returns a String with the same 'First as its
2264 (Wide_Wide_String_To_String): Ditto
2267 (Wide_String_To_String): Document that the lowest index of the returned
2268 String is equal to S'First.
2270 2008-08-05 Thomas Quinot <quinot@adacore.com>
2272 * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.
2274 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
2277 2008-08-05 Robert Dewar <dewar@adacore.com>
2279 * opt.ads (Warn_On_Biased_Representation): New flag
2282 (Analyze_Attribute_Definition_Clause): Issue warning when biased
2283 representation is required.
2284 (Minimum_Size): Don't allow biasing if enum rep clause case
2287 (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
2288 (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
2290 * usage.adb: Add lines for -gnatw.b/B switches
2292 2008-08-05 Pascal Obry <obry@adacore.com>
2294 * a-coinve.adb: Reorder the code to avoid uninitialized warning.
2296 * adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
2298 2008-08-05 Thomas Quinot <quinot@adacore.com>
2300 * socket.c: Minor reformatting.
2302 2008-08-05 Robert Dewar <dewar@adacore.com>
2304 * sem_ch3.adb: Minor reformatting
2306 * prj-nmsc.adb: Minor reformatting
2308 2008-08-05 Ed Schonberg <schonberg@adacore.com>
2310 * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
2311 visibility check on the component type if the simple test fails.
2313 2008-08-05 Jose Ruiz <ruiz@adacore.com>
2315 * init.c (__gnat_install_handler for linux): If we are building the
2316 Xenomai run time then we need to do two additional things: avoid
2317 memory swapping and transform the Linux environment task into a native
2320 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
2321 time): Use interface to Xenomai native skin and avoid linux-specific
2322 way of setting CPU affinity.
2323 (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
2325 2008-08-05 Bob Duff <duff@adacore.com>
2327 * checks.ads: Minor comment fix
2329 2008-08-05 Thomas Quinot <quinot@adacore.com>
2331 * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
2332 g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
2335 2008-08-05 Robert Dewar <dewar@adacore.com>
2337 * mlib.adb: Minor code reorganization
2340 * make.adb: Minor reformatting
2342 * prj-attr.ads: Minor reformatting
2344 * s-os_lib.adb: Minor reformatting
2346 * s-fileio.adb: Minor code reorganization
2349 * prj.ads: Minor reformatting
2351 2008-08-05 Bob Duff <duff@adacore.com>
2353 * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
2354 unresolved initial value of "null", because it causes implicitly
2355 generated "=" operators to be ambiguous, and because this type should
2356 not be passed to gigi.
2358 2008-08-05 Vincent Celier <celier@adacore.com>
2360 * mlib.adb: Update comments.
2362 * make.adb (Switches_Of): Check for Switches (others), before checking
2363 for Default_Switches ("Ada").
2364 (Gnatmake): Use Builder'Switches (others) in preference to
2365 Builder'Default_Switches ("Ada") if there are several mains.
2368 (Add_Attribute): Add component Others_Allowed in Attribute_Record
2372 Add markers to indicates that attributes Switches allow others as index
2373 (Others_Allowed_For): New Boolean function, returning True for
2374 attributes with the mark.
2375 (Initialize): Recognize optional letter 'O' as the marker for
2376 associative array attributes where others is allowed as the index.
2379 (Others_Allowed_For): New Boolean function
2380 (Attribute_Record): New Boolean component Others_Allowed
2383 (Parse_Attribute_Declaration): For associative array attribute where
2384 others is allowed as the index, allow others as an index.
2387 (Process_Binder): Skip associative array attributes with index others
2388 (Process_Compiler): Ditto
2391 (Value_Of (Index, In_Array)): Make no attempt to put in lower case when
2392 index is All_Other_Names.
2395 (All_Other_Names): New constant
2398 (Process_Declarative_Items): Skip associative array attribute when index
2399 is reserved word "others".
2401 2008-08-05 Vasiliy Fofanov <fofanov@adacore.com>
2403 * gen-oscons.c: Adapt for VMS where termios.h is not available.
2405 2008-08-05 Thomas Quinot <quinot@adacore.com>
2407 * a-rttiev.adb: Minor reformatting (comments)
2409 * gen-soccon.c: Rename to gen-oscons.c
2411 * gen-oscons.c: New file. Now generate System.OS_Constants instead of
2412 GNAT.Sockets.Constants.
2413 Add new constants for GNAT.Serial_Communications and System.File_IO.
2415 2008-08-05 Javier Miranda <miranda@adacore.com>
2417 * sem_util.adb (Collect_Interfaces_Info): Minor reformating.
2418 * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
2419 implementation of this routine has been simplified.
2421 2008-08-05 Pascal Obry <obry@adacore.com>
2423 * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
2424 Set_Read_Only Win32 implementation.
2426 2008-08-05 Thomas Quinot <quinot@adacore.com>
2428 * exp_strm.adb: Minor reformatting (comments)
2430 * sem_ch12.adb: Minor reformatting.
2432 2008-08-05 Robert Dewar <dewar@adacore.com>
2434 * sem_ch3.adb: Minor reformatting
2436 * checks.adb: Minor reformatting
2438 2008-08-05 Thomas Quinot <quinot@adacore.com>
2440 * tbuild.ads (New_External_Name): Update spec to reflect relaxed
2441 restriction on Prefix.
2443 2008-08-05 Jerome Lambourg <lambourg@adacore.com>
2445 * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
2446 methods needed to handle switch sections when building a command line.
2447 (Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
2448 Current_Section): New public methods or methods modified to handle
2449 building command lines with sections.
2450 (Set_Command_Line): Take into account sections when analysing a switch
2452 (Start): Sort the switches by sections before iterating the command line
2455 * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
2456 Is_New_Section, Current_Section): New methods or methods modified to
2457 handle building command lines with sections.
2459 2008-08-05 Ed Schonberg <schonberg@adacore.com>
2461 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
2462 discriminants, indicate that the corresponding object declaration has
2463 no initialization, to prevent spurious warnings when the access type is
2466 2008-08-05 Ed Schonberg <schonberg@adacore.com>
2468 * sem_res.adb (Resolve_Call): If this is a call to the predefined
2469 Abort_Task, warn if the call appears within a protected operation.
2471 2008-08-04 Robert Dewar <dewar@adacore.com>
2473 * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
2475 2008-08-04 Ed Schonberg <schonberg@adacore.com>
2478 (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
2479 anonymous access to protected subprogram that is the return type of the
2480 specification of a subprogram body.
2483 (Analyze_Subprogram_Body): if the return type is an anonymous access to
2484 subprogram, freeze it now to prevent access anomalies in the back-end.
2486 * exp_ch9.adb: Minor code cleanup.
2487 Make sure that new declarations are inserted into the tree before
2488 analysis (from code reading).
2490 2008-08-04 Robert Dewar <dewar@adacore.com>
2493 (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
2496 2008-08-04 Thomas Quinot <quinot@adacore.com>
2498 * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
2500 2008-08-04 Vasiliy Fofanov <fofanov@adacore.com>
2502 * g-soccon-mingw.ads: Fix value for MSG_WAITALL
2504 2008-08-04 Javier Miranda <miranda@adacore.com>
2506 * sem_prag.adb (Process_Convention): Add missing support for
2507 N_Private_Extension_Declaration nodes.
2509 2008-08-04 Robert Dewar <dewar@adacore.com>
2511 * exp_ch4.adb: Minor reformatting
2513 2008-08-04 Pascal Obry <obry@adacore.com>
2515 * adaint.h: Add missing prototype.
2517 * adaint.c: Refine support for Windows file attributes.
2519 2008-08-04 Robert Dewar <dewar@adacore.com>
2522 (Valid_Conversion): Catch case of designated types having different
2523 sizes, even though they statically match.
2525 2008-08-04 Javier Miranda <miranda@adacore.com>
2527 * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
2528 added in previous patch to handle access to subprograms.
2530 2008-08-04 Robert Dewar <dewar@adacore.com>
2533 (Freeze_Entity): Only check No_Default_Initialization restriction for
2534 constructs that come from source
2536 2008-08-04 Thomas Quinot <quinot@adacore.com>
2538 * exp_ch6.adb: Minor comment fix.
2540 * sem_ch4.adb: Minor reformatting.
2542 2008-08-04 Robert Dewar <dewar@adacore.com>
2544 * sem_res.adb: (Large_Storage_Type): Improve previous change.
2546 2008-08-04 Pascal Obry <obry@adacore.com>
2548 * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
2551 2008-08-04 Javier Miranda <miranda@adacore.com>
2553 * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
2554 for N_Formal_Object_Declaration nodes. Adding kludge required by
2555 First_Formal to provide its functionality with access to functions.
2556 (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
2557 for anonymous access types returned by functions.
2559 * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
2560 conversion of null-excluding access types (required only once to force
2561 the generation of the required runtime check).
2563 * sem_type.adb (Covers): minor reformating
2565 * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
2566 with internally generated nodes. Avoid generating the error inside init
2569 * sem_res.adb (Resolve_Membership_Test): Minor reformating.
2570 (Resolve_Null): Generate the null-excluding check in case of assignment
2571 to a null-excluding object.
2572 (Valid_Conversion): Add missing support for anonymous access to
2575 * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
2576 anonymous access types whose designated type is an itype. This case
2577 occurs with anonymous access to protected subprograms types.
2578 (Analyze_Return_Type): Add missing support for anonymous access to
2579 protected subprogram.
2581 * sem_eval.adb (Subtypes_Statically_Match): In case of access to
2582 subprograms addition of missing check on matching convention. Required
2583 to properly handle access to protected subprogram types.
2585 * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
2586 null excluding access types.
2588 2008-08-04 Ed Schonberg <schonberg@adacore.com>
2590 * sem_ch12.adb: Add comments
2592 * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
2593 access type and the allocator is not initialized, warn rather than
2596 2008-08-04 Robert Dewar <dewar@adacore.com>
2598 * exp_ch4.adb: Minor reformatting
2600 * exp_dist.adb: Minor reformatting
2602 * g-comlin.adb: Minor reformatting
2604 2008-08-04 Gary Dismukes <dismukes@adacore.com>
2606 * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
2607 target to the type of the aggregate in the case where the target object
2610 * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
2611 result type is class-wide and inherently limited, and the expression
2612 has a specific type, create a return object of the specific type, for
2613 more efficient handling of returns of build-in-place aggregates (avoids
2614 conversions of the class-wide return object to the specific type on
2615 component assignments).
2617 * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
2618 about a type mismatch for a class-wide function with a return object
2619 having a specific type when the object declaration doesn't come from
2620 source. Such an object can result from the expansion of a simple return.
2622 2008-08-04 Vasiliy Fofanov <fofanov@adacore.com>
2624 * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
2626 * gcc-interface/Makefile.in: Use 64bit-specific system files when
2627 compiling for 64bit windows.
2629 2008-08-04 Jerome Lambourg <lambourg@adacore.com>
2631 * g-comlin.adb (Group_Switches): Preserve the switch order when
2632 grouping and allow switch grouping of switches with more than one
2633 character extension (e.g. gnatw.x).
2634 (Args_From_Expanded): Remove this now obsolete method.
2636 2008-08-04 Ed Schonberg <schonberg@adacore.com>
2638 * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
2639 chain at once, to ensure that type is properly decorated for back-end,
2640 when allocator appears within a loop.
2642 2008-08-04 Kevin Pouget <pouget@adacore.com>
2644 * snames.h, snames.adb, snames.ads:
2645 Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
2647 * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
2648 Build_To_Any_Call and Build_TypeCode_Call procedures.
2650 * exp_attr.adb, sem_attr.adb: Add corresponding cases.
2652 * rtsfind.ads: Add corresponding names.
2654 * tbuild.adb: Update prefix restrictions to allow '_' character.
2656 2008-08-04 Doug Rupp <rupp@adacore.com>
2658 * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
2659 * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
2660 * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
2661 use it. Calculate pointer range overflow using 64bit types.
2663 2008-08-04 Ed Schonberg <schonberg@adacore.com>
2665 * sem_ch3.adb (Access_Definition): A formal object declaration is a
2666 legal context for an anonymous access to subprogram.
2668 * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
2669 indirect call, report success to the caller to include possible
2672 * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
2674 of the extended return is an anonymous access_to_subprogram type.
2677 (Resolve_Call): Insert a dereference if the type of the subprogram is an
2678 access_to_subprogram and the context requires its return type, and a
2679 dereference has not been introduced previously.
2681 2008-08-04 Arnaud Charlet <charlet@adacore.com>
2683 * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
2684 gnatcheck support in GPS.
2686 2008-08-04 Vincent Celier <celier@adacore.com>
2688 * mlib.adb (Create_Sym_Links): Create relative symbolic links when
2691 2008-08-04 Vincent Celier <celier@adacore.com>
2693 * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
2694 variable, but don't check the resulting value as it has no impact on
2698 (Generate_Processed_File): New Boolean flag, set to True in the compiler
2699 when switch -gnateG is used.
2702 (Preprocess): new Boolean out parameter Source_Modified. Set it to True
2703 when the source is modified by the preprocessor and there is no
2704 preprocessing errors.
2706 * prep.ads (Preprocess): new Boolean out parameter Source_Modified
2709 (Load_File): Output the result of preprocessing if the source text was
2712 * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
2714 * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
2716 * ug_words: Add VMS equivalent for -gnateG
2719 Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
2721 2008-08-04 Doug Rupp <rupp@adacore.com>
2723 * gcc-interface/utils2.c:
2724 (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
2725 in 32bit descriptor.
2727 2008-08-04 Robert Dewar <dewar@adacore.com>
2729 * par-ch10.adb: Minor reformatting
2731 * i-cobol.adb: Minor reformatting.
2733 2008-08-04 Ed Schonberg <schonberg@adacore.com>
2735 * sem_ch3.adb (Access_Definition): Create an itype reference for an
2736 anonymous access return type of a regular function that is not a
2739 2008-08-04 Vincent Celier <celier@adacore.com>
2741 * prj-attr.adb: New Builder attribute Global_Compilation_Switches
2743 * snames.adb: New standard name Global_Compilation_Switches
2745 * snames.ads: New standard name Global_Compilation_Switches
2747 * make.adb: Correct spelling error in comment
2749 2008-08-04 Arnaud Charlet <charlet@adacore.com>
2751 * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
2754 2008-08-04 Thomas Quinot <quinot@adacore.com>
2756 * sem_ch10.adb: Minor comment fix.
2758 2008-08-04 Robert Dewar <dewar@adacore.com>
2760 * restrict.adb: Improved messages for restriction warnings
2762 * restrict.ads: Improved messages for restriction messages
2764 * s-rident.ads (Profile_Name): Add No_Profile
2766 2008-08-04 Robert Dewar <dewar@adacore.com>
2768 * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
2770 2008-08-04 Robert Dewar <dewar@adacore.com>
2772 * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
2774 2008-08-04 Vincent Celier <celier@adacore.com>
2777 (Copy_Package_Declarations): When inheriting package Naming from a
2778 project being extended, do not inherit source exception names.
2780 2008-08-04 Ed Schonberg <schonberg@adacore.com>
2782 * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
2783 list of declaration to find previous subprogram, do not go to the
2784 original node of a generic unit.
2786 2008-08-02 Eric Botcazou <ebotcazou@adacore.com>
2788 * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
2789 New case. Convert BOOLEAN_TYPE operation to the default integer type.
2791 2008-08-01 Eric Botcazou <ebotcazou@adacore.com>
2793 * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
2794 * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
2795 and adjust for above renaming.
2796 * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
2797 gnu_expr_alt_type parameter. Convert the expression to it instead
2798 of changing its type in place.
2799 (build_function_stub): Adjust call to above function.
2801 2008-08-01 Eric Botcazou <ebotcazou@adacore.com>
2803 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
2804 code. Do not get full definition of deferred constants with address
2805 clause for a use. Do not ignore deferred constant definitions with
2806 address clause. Ignore constant definitions already marked with the
2808 <object>: Remove obsolete comment. For a deferred constant with
2809 address clause, get the initializer from the full view.
2810 * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
2811 Rework and remove obsolete comment.
2812 <N_Object_Declaration>: For a deferred constant with address clause,
2813 mark the full view with the error node.
2814 * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
2817 2008-08-01 Hristian Kirtchev <kirtchev@adacore.com>
2819 * rtsfind.ads: Add block IO versions of stream routines for Strings.
2821 * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
2822 sem_prag.adb, snames.adb, snames.ads, snames.h,
2823 par-prag.adb: Undo previous stream related changes.
2825 * s-rident.ads: Add new restriction No_Stream_Optimizations.
2827 * s-ststop.ads, s-ststop.adb: Comment reformatting.
2828 Define enumeration type to designate different IO mechanisms.
2829 Enchance generic package Stream_Ops_Internal to include an
2830 implementation of Input and Output.
2832 * exp_attr.adb (Find_Stream_Subprogram): If restriction
2833 No_Stream_Optimization is active, choose the default byte IO
2834 implementations of stream attributes for Strings.
2835 Otherwise use the corresponding block IO version.
2837 2008-08-01 Olivier Hainque <hainque@adacore.com>
2839 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
2840 turn Ada Pure into GCC const, now implicitely implying nothrow as well.
2842 2008-08-01 Robert Dewar <dewar@adacore.com>
2844 * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
2845 convert plain identifier into defining identifier.
2847 2008-08-01 Robert Dewar <dewar@adacore.com>
2849 * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
2852 * lib-xref.adb: Add error defense.
2854 2008-08-01 Bob Duff <duff@adacore.com>
2856 * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
2858 2008-08-01 Gary Dismukes <dismukes@adacore.com>
2860 * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
2861 correct accessibility levels. In the "when others" case, retrieve the
2862 access level of the Etype of Prev rather than Prev_Orig, because the
2863 original exression has not always been analyzed.
2865 2008-08-01 Robert Dewar <dewar@adacore.com>
2867 * prj-nmsc.adb: Minor reformatting
2869 * sem_ch4.adb: Minor reformatting
2870 Minor code reorganization
2872 * prj.ads: Minor reformatting
2874 * s-os_lib.adb: Minor reformatting
2876 * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
2879 * scans.ads: Minor reformatting.
2881 * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
2882 (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
2885 (Resolve_Call): Check violation of No_Specific_Termination_Handlers
2887 * sem_ch12.adb: Minor comment reformatting
2889 * par-ch3.adb (P_Type_Declaration): Properly handle missing type
2892 2008-08-01 Robert Dewar <dewar@adacore.com>
2894 * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
2897 2008-08-01 Ed Schonberg <schonberg@adacore.com>
2899 * checks.adb (Apply_Float_Conversion_Check): If the expression to be
2900 converted is a real literal and the target type has static bounds,
2901 perform the conversion exactly to prevent floating-point anomalies on
2904 2008-08-01 Vincent Celier <celier@adacore.com>
2906 * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
2908 * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
2910 * prj.adb (Object_Exist_For): Use Object_Generated, not
2911 Objects_Generated that is removed and was never modified anyway.
2914 (Path_Syntax_Kind): New enumeration type
2915 (Language_Config): New component Path_Syntax, defaulted to Host.
2916 Components PIC_Option and Objects_Generated removed, as they are not
2919 * snames.adb: New standard name Path_Syntax
2921 * snames.ads: New standard name Path_Syntax
2923 2008-08-01 Vincent Celier <celier@adacore.com>
2926 (Adalib_Path): New variable to store the path of the adalib directory
2927 when procedure Specify_Adalib_Dir is called.
2928 (Lib_Directory): If Adalib_Path is not null, return its value
2929 (Specify_Adalib_Dir): New procedure
2931 * mlib-utl.ads (Specify_Adalib_Dir): New procedure
2933 2008-08-01 Ed Schonberg <schonberg@adacore.com>
2936 (Check_Precondition_Postcondition): If not generating code, analyze the
2937 expression in a postcondition that appears in a subprogram body, so that
2938 it is properly decorated for ASIS use.
2940 2008-08-01 Gary Dismukes <dismukes@adacore.com>
2942 * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
2943 Orig_Prev to Prev in the case where the actual is N_Function_Call or
2944 N_Identifier. This was interfering with other cases that are rewritten
2945 as N_Identifier, such as allocators, resulting in passing of the wrong
2946 accessibility level, and based on testing this code is apparently no
2947 longer needed at all.
2949 2008-08-01 Ed Schonberg <schonberg@adacore.com>
2951 * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
2952 procedure call whose prefix
2953 is a parameterless function call that returns an access_to_procedure.
2955 2008-08-01 Jose Ruiz <ruiz@adacore.com>
2957 * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
2958 for RTX. Adding a suffix that is incremented at each iteration.
2960 2008-08-01 Robert Dewar <dewar@adacore.com>
2962 * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
2965 2008-08-01 Jerome Lambourg <lambourg@adacore.com>
2967 * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
2968 paths, which are authorized by Windows but can lead to errors when used
2971 2008-08-01 Ed Schonberg <schonberg@adacore.com>
2973 * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
2974 a pending instantiation for the body of a subprogram that is to be
2978 (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
2980 * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
2981 create a pending instance for its body, so that calls to the subprogram
2982 can be inlined by the back-end.
2984 2008-08-01 Jose Ruiz <ruiz@adacore.com>
2986 * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
2989 2008-08-01 Robert Dewar <dewar@adacore.com>
2991 * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
2993 2008-08-01 Doug Rupp <rupp@adacore.com>
2995 * gnat_rm.texi: Document new mechanism Short_Descriptor.
2997 * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
3000 * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
3001 mechanism and Short_Descriptor mechanism values.
3003 * snames.adb (preset_names): Add short_descriptor entry.
3005 * snames.ads: Add Name_Short_Descriptor.
3007 * types.h: Add new By_Short_Descriptor mechanism values.
3009 * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
3010 mechanism and Short_Descriptor mechanism values.
3012 * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
3014 (Descriptor_Codes): Modify range for new mechanism values.
3016 * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
3019 * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
3020 (gnat_to_gnu_param): Handle By_Short_Descriptor.
3022 * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
3023 (build_vms_descriptor32): New prototype.
3024 (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
3026 * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
3027 argument in call fill_vms_descriptor.
3029 * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
3030 build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
3031 (build_vms_descriptor): Renamed from build_vms_descriptor64.
3032 (convert_vms_descriptor32): New function.
3033 (convert_vms_descriptor64): New function.
3034 (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
3037 * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
3040 2008-08-01 Jose Ruiz <ruiz@adacore.com>
3042 * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
3043 nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
3046 2008-08-01 Jose Ruiz <ruiz@adacore.com>
3048 * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
3049 current directory so only fully qualified names are allowed.
3051 2008-08-01 Robert Dewar <dewar@adacore.com>
3054 Minor editing, remove uncomfortable use of semicolon
3056 * s-ststop.adb: Add some ??? comments
3058 * sem_ch10.adb: Minor reformatting
3061 Minor comment fixes, some pragmas were not properly
3062 categorized in the comments, documentation change only
3064 * xref_lib.adb: Minor reformatting
3066 * sinput.adb: Minor reformatting
3068 * gnatchop.adb: Minor reformatting
3070 * sem_util.ads: Minor reformatting.
3072 * opt.ads: Minor documentation fix
3074 * scng.adb: Minor reformatting
3076 * prj-part.adb: Update comments
3078 2008-08-01 Ed Schonberg <schonberg@adacore.com>
3080 * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
3081 tagged synchronized type, use corresponding record type.
3083 2008-08-01 Doug Rupp <rupp@adacore.com>
3085 * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
3086 dummy transfer address for debugging.
3088 * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
3090 * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
3092 2008-07-31 Eric Botcazou <ebotcazou@adacore.com>
3094 * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
3095 * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
3097 2008-07-31 Pascal Obry <obry@adacore.com>
3099 * prj-nmsc.adb: Keep Object and Exec directory casing.
3101 2008-07-31 Jose Ruiz <ruiz@adacore.com>
3103 * system-rtx-rtss.ads
3104 Change the default stack size. It is important to set the commit part.
3107 (Initialize): Get the clock resolution.
3108 (RT_Resolution): Return the clock resolution that is indicated by the
3111 * s-parame-vxworks.adb
3112 Document that this body is used for RTX in RTSS (kernel) mode.
3114 * gcc-interface/Makefile.in
3115 (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
3116 s-parame-vxworks.adb body in order to have reasonable stack sizes in
3117 RTX RTSS kernel mode. Virtual memory is not used in that case, so we
3118 cannot ask for too big values.
3120 2008-07-31 Robert Dewar <dewar@adacore.com>
3122 * exp_aggr.adb: Minor reformatting
3124 * makeutl.adb: Minor reformatting
3126 * prj-env.adb: Minor reformatting
3128 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
3130 * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
3131 tagged type is completed by a concurrent type.
3133 2008-07-31 Gary Dismukes <dismukes@adacore.com>
3136 (Resolve_Record_Aggregate): Bypass error that a type without
3137 components must have a "null record" aggregate when compiling for Ada
3138 2005, since it's legal to give an aggregate of form (others => <>)
3141 2008-07-31 Javier Miranda <miranda@adacore.com>
3143 * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
3144 handle synchronized types. Required to handle well the object.operation
3145 notation applied to synchronized types.
3147 2008-07-31 Quentin Ochem <ochem@adacore.com>
3149 * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
3150 anymore - just used internally.
3151 Added handling of very small tasks - when the theoretical size is
3152 already full at the point of the call.
3153 (Report_Result): Fixed result computation, Stack_Used_When_Filling does
3154 not need to be added to the result.
3156 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
3158 * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
3159 corresponding spec is a primitive wrapper. Update comment.
3161 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
3163 * bindgen.adb Comment reformatting. Update the list of run-time globals.
3164 (Gen_Adainit_Ada): Add the declaration, import and value set for
3165 configuration flag Canonical_Streams.
3166 (Gen_Adainit_C): Add the declaration and initial value of external
3167 symbol __gl_canonical_streams.
3169 * init.c: Update the list of global values computed by the binder.
3171 * opt.ads: Add flag Canonical_Streams.
3173 * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
3174 semantically handled pragmas.
3176 * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
3177 (Analyze_Pragma): Add case for pragma Canonical_Streams.
3179 * snames.adb: Add character value for name Canonical_Streams.
3182 Add Name_Canonical_Streams to the list of configuration pragmas.
3183 Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
3185 * snames.h: Add a definition for Pragma_Canonical_Streams.
3188 Add a flag and import to seize the value of external symbol
3189 __gl_canonical_streams. Update comment and initial value of constant
3192 * gnat_rm.texi: Add section of pragma Canonical_Streams.
3195 Add pragma Canonical_Streams to the list of configuration pragmas.
3197 2008-07-31 Ed Schonberg <schonberg@adacore.com>
3199 * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
3200 has the form A.B.C and B is a unit renaming, analyze its compilation
3201 unit and add a with_clause on A.b to the context.
3203 2008-07-31 Vincent Celier <celier@adacore.com>
3205 * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
3206 return the empty string, instead of raising Constraint_Error.
3208 2008-07-31 Gary Dismukes <dismukes@adacore.com>
3210 * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
3212 * checks.adb (Apply_Accessibility_Check): Insert the check on
3216 (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
3217 to new parameter Insert_Node on call to Apply_Accessibility_Check.
3218 Necessary to distinguish the insertion node because the dereferenced
3219 formal may come from a rename, but the check must be inserted in
3220 front of the attribute.
3223 (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
3224 call to Apply_Accessibility_Check.
3225 (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
3226 on call to Apply_Accessibility_Check.
3229 2008-07-31 Javier Miranda <miranda@adacore.com>
3231 * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
3232 types when the candidate type is a synchronized type.
3234 * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
3235 types, and complete management of synchronized types adding missing
3236 code to handle formal that is a synchronized type.
3238 * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
3239 are not available and cause the compiler to blowup. Found compiling
3240 test with switch -gnatc
3242 * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
3243 Has_Correct_Formal_Mode plus code cleanup.
3245 2008-07-31 Bob Duff <duff@adacore.com>
3247 * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
3248 recognized as two end-of-lines, but it should be just one.
3250 2008-07-31 Thomas Quinot <quinot@adacore.com>
3252 * exp_ch9.adb: Minor reformatting
3254 * tbuild.ads: Fix several occurrences of incorrectly referring to
3255 Name_Find as Find_Name.
3257 2008-07-31 Ed Schonberg <schonberg@adacore.com>
3259 * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
3260 and the context is an object declaration with non-static bounds, treat
3261 the aggregate as non-static.
3263 2008-07-31 Vincent Celier <celier@adacore.com>
3265 * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
3266 Move back spec of Parse_Single_Project to body, as it is not called
3267 outside of package Prj.Part.
3268 (Project_Data): Remove components Linker_Name, Linker_Path and
3269 Minimum_Linker_Options as they are no longer set.
3270 Remove function There_Are_Ada_Sources from package Prj and move code
3271 in the only place it was used, in Prj.Env.Set_Ada_Paths.
3273 2008-07-31 Arnaud Charlet <charlet@adacore.com>
3275 * mlib-utl.ads: Fix typo.
3277 2008-07-31 Robert Dewar <dewar@adacore.com>
3279 * sem_ch12.adb: Minor reformatting
3281 2008-07-31 Sergey Rybin <rybin@adacore.com>
3283 * gnat_ugn.texi: Change the description of the
3284 Overly_Nested_Control_Structures: now the rule always requires a
3285 positive parameter for '+R' option
3287 2008-07-31 Thomas Quinot <quinot@adacore.com>
3289 * g-pehage.adb: Minor reformatting
3291 2008-07-31 Pascal Obry <obry@adacore.com>
3293 * s-finimp.ads: Minor reformatting.
3295 2008-07-31 Vincent Celier <celier@adacore.com>
3297 * s-regexp.ads: Minor comment fix
3299 2008-07-31 Arnaud Charlet <charlet@adacore.com>
3301 * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
3302 so that we can compile this file successfully with -gnatc.
3304 2008-07-31 Hristian Kirtchev <kirtchev@adacore.com>
3306 * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
3307 of the type when looking for stream subprograms for type String,
3308 Wide_String and Wide_Wide_String.
3310 * s-ststop.adb: Change the initialization expression of constant
3313 2008-07-31 Geert Bosch <bosch@adacore.com>
3316 New file implementing __gnat_mulv64 signed integer multiplication with
3319 * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
3321 * gcc-interface/gigi.h:
3322 (standard_types): Add ADT_mulv64_decl
3323 (mulv64_decl): Define subprogram declaration for __gnat_mulv64
3325 * gcc-interface/utils.c:
3326 (init_gigi_decls): Add initialization of mulv64_decl
3328 * gcc-interface/trans.c:
3329 (build_unary_op_trapv): New function
3330 (build_binary_op_trapv): New function
3331 (gnat_to_gnu): Use the above functions instead of
3332 build_{unary,binary}_op
3334 * gcc-interface/Makefile.in
3335 (LIBGNAT_SRCS): Add arit64.c
3336 (LIBGNAT_OBJS): Add arit64.o
3338 2008-07-31 Vincent Celier <celier@adacore.com>
3340 * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
3341 Linker'Default_Switches are declared. Warn if they are declared.
3343 2008-07-31 Ed Schonberg <schonberg@adacore.com>
3345 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
3346 Insert_Actions to place the pointer declaration in the code, rather
3347 than Insert_Before_And_Analyze, so that insertions of temporaries are
3348 kept in the proper order when transient scopes are present.
3351 2008-07-31 Robert Dewar <dewar@adacore.com>
3353 * einfo.adb (Spec_PPC): Now defined for generic subprograms
3355 * einfo.ads (Spec_PPC): Now defined for generic subprograms
3357 * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
3360 2008-07-31 Vincent Celier <celier@adacore.com>
3362 * s-os_lib.adb: Minor comment fix
3364 2008-07-31 Ed Schonberg <schonberg@adacore.com>
3366 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
3367 transfer pre/postconditions from generic copy to original tree, so that
3368 they will appear in each instance.
3369 (Process_PPCs): Do not transform postconditions into a procedure in a
3370 generic context, to prevent double expansion of check pragmas.
3372 * sem_attr.adb: In an instance, the prefix of the 'result attribute
3373 can be the renaming of the
3374 current instance, so check validity of the name accordingly.
3376 2008-07-31 Robert Dewar <dewar@adacore.com>
3378 * mlib-utl.ads: Minor reformatting
3380 2008-07-31 Ed Schonberg <schonberg@adacore.com>
3382 sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
3383 from context. This attribute must be usable in Ada95 mode.
3384 The attribute can appear in the body of a function marked
3385 Inline_Always, but in this case the postocondition is not enforced.
3387 sem_prag.adb (Check_Precondition_Postcondition): within the expansion
3388 of an inlined call pre- and postconditions are legal
3390 2008-07-31 Vincent Celier <celier@adacore.com>
3392 * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
3393 were for gprmake only
3395 2008-07-31 Robert Dewar <dewar@adacore.com>
3397 * gnat_ugn.texi: Update -gnatN documentation.
3399 * gnat_rm.texi: Add note about pre/postcondition
3400 pragmas not checked in conjunction with front-end inlining.
3402 2008-07-31 Robert Dewar <dewar@adacore.com>
3404 * g-pehage.adb, g-pehage.ads: Minor reformatting
3406 2008-07-31 Arnaud Charlet <charlet@adacore.com>
3408 * mlib-utl.ads, prj-makr.ads: Add comments.
3410 2008-07-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
3412 * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS)
3413 [WINDOWS]: Add s-winext.o.
3415 2008-07-30 Eric Botcazou <ebotcazou@adacore.com>
3418 * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
3419 * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
3420 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
3421 Set precision to 1 for subtype of BOOLEAN_TYPE.
3422 (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
3423 (make_type_from_size): Deal with BOOLEAN_TYPE.
3424 * gcc-interface/misc.c (gnat_print_type): Likewise.
3425 * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
3426 Set boolean_type_node as its translation in the table, as well
3427 as boolean_false_node for False and boolean_true_node for True.
3428 * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
3429 8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
3430 (create_param_decl): Deal with BOOLEAN_TYPE.
3431 (build_vms_descriptor): Likewise.
3432 (build_vms_descriptor64): Likewise.
3433 (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
3435 2008-07-30 Robert Dewar <dewar@adacore.com>
3437 * exp_ch9.adb: Minor reformatting
3439 * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
3440 if no primitive operation is found.
3442 * exp_util.adb: (Find_Prim_Op): Add comments for previous change
3444 * sem_ch8.adb: Minor reformatting
3446 2008-07-30 Laurent Pautet <pautet@adacore.com>
3449 Remove a limitation on the length of the words handled by the minimal
3450 perfect hash function generator.
3453 Detail the use of subprograms Insert, Initialize, Compute and Finalize.
3456 2008-07-30 Robert Dewar <dewar@adacore.com>
3458 * gnatlink.adb: Minor reformatting
3460 2008-07-30 Thomas Quinot <quinot@adacore.com>
3462 * rtsfind.adb (Check_RPC): Check version consistency even when not
3463 generating RCI stubs. Provide more detailed error message in case of
3466 2008-07-30 Ed Schonberg <schonberg@adacore.com>
3468 * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
3469 as a actual in an instance, check for a missing attribute to prevent
3470 program_error on an illegal program.
3472 * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
3473 error if primitive is not found, so that exception can be handled
3474 elsewhere on illegal programs.
3476 2008-07-30 Robert Dewar <dewar@adacore.com>
3478 * uintp.adb (UI_GCD): Fix potential overflow
3480 2008-07-30 Hristian Kirtchev <kirtchev@adacore.com>
3482 * einfo.adb: Flag245 is now used.
3483 (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
3484 check to include functions.
3485 (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
3486 (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
3488 (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
3489 to the list of displayed flags.
3491 * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
3492 Wrapped_Entity. These two flags are now present in functions.
3493 New flag Is_Private_Primitive.
3494 (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
3497 (Build_Wrapper_Bodies): New subprogram.
3498 (Build_Wrapper_Body): The spec and body have been moved to in
3499 Build_Wrapper_ Bodies. Code cleanup.
3500 (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
3501 Wrappers are now generated for primitives declared between the private
3502 and full view of a concurrent type that implements an interface.
3503 (Build_Wrapper_Specs): New subprogram.
3504 (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
3505 creation mechanism with a call to Build_Wrapper_Bodies.
3506 (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
3507 wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
3508 (Expand_N_Task_Body): Replace the wrapper body creation
3509 mechanism with a call to Build_Wrapper_Bodies.
3510 (Expand_N_Task_Type_Declaration): Replace the wrapper spec
3511 creation mechanism with a call to Build_Wrapper_Specs.
3512 (Is_Private_Primitive_Subprogram): New subprogram.
3513 (Overriding_Possible): Code cleanup.
3514 (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
3516 * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
3518 * sem_ch3.adb: Add with and use clause for Exp_Ch9.
3519 (Process_Full_View): Build wrapper specs for all primitives
3520 that belong to a private view completed by a concurrent type
3521 implementing an interface.
3523 * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
3525 concurrent type with a private view that implements an interface, try to
3526 find the proper spec.
3527 (Analyze_Subprogram_Declaration): Mark a subprogram as a private
3528 primitive if the type of its first parameter is a non-generic tagged
3530 (Analyze_Subprogram_Specification): Code reformatting.
3531 (Disambiguate_Spec): New routine.
3532 (Find_Corresponding_Spec): Add a flag to controll the output of errors.
3533 (Is_Private_Concurrent_Primitive): New routine.
3536 (Find_Corresponding_Spec): Add a formal to control the output of errors.
3538 2008-07-30 Doug Rupp <rupp@adacore.com>
3540 * gigi.h (build_vms_descriptor64): New function prototype.
3541 (fill_vms_descriptor): Modified function prototype.
3543 * utils.c (build_vms_descriptor64): New function.
3545 * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
3547 * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
3550 * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
3551 64bit and 32bit descriptor and save the 64bit version as an alternate
3552 TREE_TYPE in the parameter.
3553 (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
3556 * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
3558 2008-07-30 Robert Dewar <dewar@adacore.com>
3560 * make.adb: Minor reformatting
3562 * mlib-utl.adb: Minor reformatting
3564 * osint.ads: Minor reformatting
3566 2008-07-30 Jose Ruiz <ruiz@adacore.com>
3569 (__gnat_file_exists): Do not use __gnat_stat for RTX.
3570 (__main for RTX in RTSS mode): Create this dummy procedure symbol to
3571 avoid the use of this symbol from libgcc.a in RTX kernel mode.
3574 (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
3575 the function RtPrintf for console output.
3577 * argv.c Do not use the environ variable for RTX.
3579 * gnatlink.adb (gnatlink): The part that handles the --RTS option has
3580 been moved before the call to Osint.Add_Default_Search_Dirs in order
3581 to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
3582 from the appropriate run time.
3585 (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
3586 target is a RTSS module for RTX.
3588 * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
3589 RTX_RTSS_Kernel_Module
3590 (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
3592 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
3593 exception handling mechanism for Windows and RTX in Win32 mode, but
3594 not for RTX in kernel mode (RTSS).
3595 (LIBGNAT_SRCS): Remove ada.h
3597 2008-07-30 Paolo Bonzini <bonzini@gnu.org>
3599 * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
3600 T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
3601 (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
3602 * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
3603 X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
3604 ALL_ADA_CFLAGS): Remove.
3605 (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
3606 replace ALL_ADA_CFLAGS with ADA_CFLAGS.
3607 (GCC_CFLAGS): Remove X_CFLAGS.
3608 (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
3609 (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
3610 (ADA_CFLAGS): Substitute.
3612 2008-07-30 Laurent Guerby <laurent@guerby.net>
3615 * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
3616 Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
3617 Replace stamp-gnatlib* by stamp-gnatlib*-rts.
3618 * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
3619 by stamp-gnatlib2-rts.
3621 2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3623 PR documentation/15479
3624 * gnat-style.texi: Remove AdaCore copyright statement and GPL
3625 statement for GNAT. Add @copying stanza, use it. Update to
3626 GFDL 1.2. Do not list GFDL as Invariant Section, do not list
3627 title as Front-Cover Text.
3628 * gnat_rm.texi: Likewise.
3629 * gnat_ugn.texi: Likewise.
3631 2008-07-29 Jan Hubicka <jh@suse.cz>
3633 * trans.c (process_inlined_subprograms): Remove tree_really_inline
3636 2008-07-29 Arnaud Charlet <charlet@adacore.com>
3638 * gcc-interface: New directory.
3640 * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
3641 utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
3642 config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
3643 to gcc-interface subdirectory.
3645 2008-07-29 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
3647 * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
3649 2008-07-28 Jan Hubicka <jh@suse.cz>
3651 * misc.c (gnat_post_options): Do not set flag_no_inline.
3653 2008-07-28 Richard Guenther <rguenther@suse.de>
3655 Merge from gimple-tuples-branch.
3657 2008-07-22 Olivier Hainque <hainque@adacore.com>
3659 * gigi.h (end_subprog_body): New ELAB_P argument, saying if
3660 this is called for an elab proc to be discarded if empty.
3661 * utils.c (end_subprog_body): Honor ELAB_P.
3662 (build_function_stub): Adjust call to end_subprog_body.
3663 * trans.c (Subprogram_Body_to_gnu): Likewise.
3664 (gigi): Reorganize processing of elab procs to prevent
3665 gimplifying twice, using the new end_subprog_body argument.
3667 2008-07-19 Richard Guenther <rguenther@suse.de>
3669 * Make-lang.in (trans.o): Add tree-iterator.h dependency.
3670 (utils.o): Likewise.
3671 * trans.c: Include tree-iterator.h.
3672 (gnat_gimplify_expr): Adjust prototype. Fix typo.
3673 (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
3674 (set_expr_location_from_node): Likewise.
3676 * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
3678 * utils.c: Include tree-iterator.h.
3679 * gigi.h (gnat_gimplify_expr): Adjust prototype.
3681 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
3683 * trans.c: Include gimple.h instead of tree-gimple.h.
3686 2008-07-14 Aldy Hernandez <aldyh@redhat.com>
3688 * trans.c (gnat_gimplify_expr): Use gimplify_assign.
3690 2008-07-25 Jan Hubicka <jh@suse.cz>
3692 * utils.c (end_subprog_body): Remove inline trees check.
3693 * misc.c (gnat_post_options): Do not set flag_inline_trees.
3695 2008-07-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3697 * raise-gcc.c: Move tsystem.h before tm.h.
3699 2008-07-20 Arnaud Charlet <charlet@adacore.com>
3701 * gnathtml.pl: New file.
3703 2008-07-19 Olivier Hainque <hainque@adacore.com>
3705 * targtyps.c (get_target_default_allocator_alignment): Use
3706 MALLOC_ABI_ALIGNMENT.
3708 2008-07-17 Olivier Hainque <hainque@adacore.com>
3710 * adaint.c (__MINGW32__ section): Include ctype.h and define
3711 a fallback ISALPHA if IN_RTS.
3712 (__gnat_is_absolute_path): Use ISALPHA instead of isalpha.
3714 2008-07-17 Olivier Hainque <hainque@adacore.com>
3716 * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
3717 argument, to apply to references in addition to definitions. Prevent
3718 setting TREE_STATIC on externals.
3719 (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
3721 2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3723 PR documentation/15479
3724 * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
3725 Replace backets around optional parameters with @ovar
3726 where possible, use @r{[}, @r{]} otherwise.
3727 Replace some @r, @i, and @emph with @var where appropriate.
3729 2008-07-02 Eric Botcazou <ebotcazou@adacore.com>
3731 * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
3733 2008-06-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3735 * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
3736 -Wc++-compat warnings.
3737 * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
3738 __gnat_locate_exec_on_path): Likewise.
3739 * decl.c (annotate_value): Likewise.
3740 * misc.c (gnat_handle_option): Likewise.
3741 * trans.c (gnat_to_gnu, extract_encoding, decode_name,
3742 post_error_ne_tree): Likewise.
3744 2008-06-27 Eric Botcazou <ebotcazou@adacore.com>
3746 * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
3747 version of its type, attempt to first convert its elements.
3749 2008-06-26 Chris Proctor <chrisp_42@bigpond.com>
3751 * Makefile.in: Fix *86 kfreebsd target specific pairs.
3753 2008-06-25 Samuel Tardieu <sam@rfc1149.net>
3755 * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
3757 2008-06-24 Eric Botcazou <ebotcazou@adacore.com>
3759 * utils2.c (known_alignment): Derive the alignment from pointed-to
3760 types only if it is otherwise unknown.
3761 <INTEGER_CST>: Tidy.
3762 <MULT_EXPR>: Likewise.
3763 <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
3766 2008-06-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3769 * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
3771 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3773 * gnat_rm.texi (Implementation Defined Characteristics)
3774 (Standard Library Routines): Use @smallexample for indented
3775 text. Drop Indentation outside examples.
3776 * gnat_ugn.texi: Likewise.
3778 2008-06-13 Olivier Hainque <hainque@adacore.com>
3780 * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
3782 (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
3783 realignment with force_align_arg_pointer attribute on foreign
3784 convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
3786 2008-06-13 Olivier Hainque <hainque@adacore.com>
3788 * utils.c (rest_of_record_type_compilation): When computing
3789 encodings for the components of a variable size type, early
3790 strip conversions on the current position expression to make
3791 sure it's shape is visible. Use remove_conversions for this
3794 2008-06-12 Eric Botcazou <ebotcazou@adacore.com>
3796 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
3797 constrained subtype of a discriminated type, discard the fields that
3798 are beyond its limits according to its size.
3800 2008-06-10 Olivier Hainque <hainque@adacore.com>
3802 * utils.c (create_subprog_decl): If this is for the 'main' entry
3803 point according to the asm name, redirect main_identifier_node.
3805 2008-06-09 Eric Botcazou <ebotcazou@adacore.com>
3807 * decl.c (components_to_record): Adjust the packedness for the
3808 qualified union as well.
3810 2008-06-09 Arnaud Charlet <charlet@adacore.com>
3812 * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
3815 2008-06-07 Samuel Tardieu <sam@rfc1149.net>
3817 * sem_res.adb (Large_Storage_Type): A type is large if it
3818 requires as many bits as Positive to store its values and its
3819 bounds are known at compile time.
3820 * sem_ch13.adb (Minimum_Size): Note that this function returns
3821 0 if the size is not known at compile time.
3823 2008-06-06 Nicolas Setton <setton@adacore.com>
3824 Olivier Hainque <hainque@adacore.com>
3826 * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
3827 attribute, parallel descriptive type attached to another
3828 type for debug info generation purposes.
3829 * utils.c (add_parallel_type): New function, register
3830 parallel type to be attached to a type.
3831 (get_parallel_type): New function, fetch a registered
3832 parallel type, if any.
3833 (rest_of_record_type_compilation): Register the parallel
3834 type we make for variable size records.
3835 * gigi.h (add_parallel_type, get_parallel_type): Declare.
3836 * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
3837 parallel debug types we make.
3838 * trans.c (extract_encoding, decode_name): New functions.
3839 (gigi): If the DWARF attribute extensions are available, setup
3841 * lang.opt: Register language specific processing request
3843 * misc.c (gnat_dwarf_extensions): New global variable. How much
3844 do we want of our DWARF extensions. 0 by default.
3845 (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
3846 (gnat_post_options): Map gnat_dwarf_extensions to the
3847 commonuse_gnu_debug_info_extensions for later processing.
3849 2008-06-04 Samuel Tardieu <sam@rfc1149.net>
3851 * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
3853 2008-06-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3855 * Makefile.in (common_tools): Fix typos in $(exeext) extension.
3856 * gnat_ugn.texi (Style Checking)
3857 (Adding the Results of Compiler Checks to gnatcheck Output)
3858 (Example of Binder Output File): Fix typos.
3859 * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
3860 exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
3861 s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
3862 s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
3863 sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
3864 sinfo.ads, utils.c: Fix typos in comments.
3865 * sem_ch6.adb, vms_data.ads: Fix typos in strings.
3867 2008-05-29 Thomas Quinot <quinot@adacore.com>
3869 * sem_eval.adb: Minor reformatting
3871 2008-05-29 Ed Schonberg <schonberg@adacore.com>
3873 * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
3874 is abstract, do not apply abstractness check on subprogram if this is
3875 a renaming declaration.
3877 2008-05-29 Arnaud Charlet <charlet@adacore.com>
3880 * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
3881 allow recognition of program suffix in addition to prefix.
3883 * gnatchop.adb (Locate_Executable): Add support for prefix.
3885 * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
3886 mlib-utl.adb: Adjust calls to Program_Name.
3888 2008-05-29 Robert Dewar <dewar@adacore.com>
3890 * sem_ch3.adb: Minor reformatting
3891 * sem_prag.adb: Minor reformatting
3892 * sem_res.adb: Minor reformatting
3893 * sinput-p.ads: Minor reformatting
3895 2008-05-29 Javier Miranda <miranda@adacore.com>
3898 (Abstract_Interface_List): Add missing support for full type-declaration
3899 associated with synchronized types.
3901 2008-05-29 Robert Dewar <dewar@adacore.com>
3903 * sem_eval.adb (Is_Same_Value): Take care of several more cases
3905 2008-05-28 Ed Schonberg <schonberg@adacore.com>
3907 * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
3908 access type, wrap the expression in a conversion to force an
3909 accessibility check.
3911 * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
3912 accessibility checks even when expansion is disabled in order to
3913 generate messages in the presence of previous errors or in
3914 semantics-only mode.
3916 2008-05-28 Eric Botcazou <ebotcazou@adacore.com>
3918 * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
3919 * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
3921 2008-05-28 Vincent Celier <celier@adacore.com>
3924 * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
3925 preprocessing expressions
3927 2008-05-28 Vincent Celier <celier@adacore.com>
3929 * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
3932 * sinput-p.ads: Minor comment update and reformatting
3934 2008-05-28 Ed Schonberg <schonberg@adacore.com>
3936 * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
3937 type has a deeper level than any master only when it is the type of an
3940 2008-05-28 Javier Miranda <miranda@adacore.com>
3942 * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
3944 2008-05-28 Javier Miranda <miranda@adacore.com>
3946 * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
3947 * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
3948 * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
3949 Add code that was previously located in
3950 Find_Overridden_Synchronized_Primitive because it is only used here.
3952 2008-05-28 Sergey Rybin <rybin@adacore.com>
3954 * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
3955 Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
3957 2008-05-28 Robert Dewar <dewar@adacore.com>
3960 Add missing restrictions, and properly label all GNAT defined ones
3963 Add entry for Ada_Real_Time.Timing_Events.Timing_Event
3964 Add entry for Ada.Task_Termination.Set_Specific_Handler
3965 Add entry for Ada.Task_Termination.Specific_Handler
3968 Add missing restrictions and properly mark all gnat defined ones
3971 (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
3974 (Resolve_Call): Check violation of No_Specific_Termination_Handlers
3976 * gnat_rm.texi: Add missing restrictions, and properly label all
3979 2008-05-28 Robert Dewar <dewar@adacore.com>
3982 (Check_Restriction): violation of restriction No_Finalization is
3983 treated as a serious error to stop expansion
3985 2008-05-28 Robert Dewar <dewar@adacore.com>
3987 * exp_util.adb: Minor reformatting
3988 * exp_util.ads: Minor reformatting.
3990 2008-05-28 Arnaud Charlet <charlet@adacore.com>
3992 * Make-lang.in: Remove gprmake.
3994 * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
3996 2008-05-28 Ed Schonberg <schonberg@adacore.com>
3998 * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
3999 improper progenitor names, and avoid cascaded errors.
4001 2008-05-28 Robert Dewar <dewar@adacore.com>
4003 * gnat_rm.texi: Add note on Old giving warning when applied to constant
4005 * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
4008 2008-05-28 Robert Dewar <dewar@adacore.com>
4010 * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
4013 2008-05-28 Robert Dewar <dewar@adacore.com>
4016 (Expand_Simple_Function_Return): Copy unaligned result into temporary
4018 2008-05-28 Javier Miranda <miranda@adacore.com>
4020 * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
4021 for user-defined predefined primitives.
4023 * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
4024 (Find_Overridden_Synchronized_Primitive): Ditto.
4026 * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
4028 2008-05-27 Arnaud Charlet <charlet@adacore.com>
4030 * a-ststio.adb, s-direio.adb:
4031 Further code clean up of previous change.
4034 2008-05-27 Vincent Celier <celier@adacore.com>
4036 * prj-nmsc.adb: Minor reformatting
4038 2008-05-27 Bob Duff <duff@adacore.com>
4040 * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
4041 untagged private type with a tagged full type, where the full type has
4042 a self reference, create the corresponding class-wide type early, in
4043 case the self reference is "access T'Class".
4045 2008-05-27 Ed Schonberg <schonberg@adacore.com>
4047 * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
4048 tasks and context is an object declaration. create master entity before
4051 2008-05-27 Robert Dewar <dewar@adacore.com>
4053 * mlib-prj.adb: Minor reformatting
4055 * prj-part.adb: Minor reformatting
4057 * prj.ads: Minor reformatting
4059 * exp_ch3.adb: Minor reformatting.
4061 * sem_ch3.ads: Minor reformatting
4063 * sem_eval.adb: Minor reformatting
4065 2008-05-27 Vincent Celier <celier@adacore.com>
4068 <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
4070 2008-05-27 Ed Schonberg <schonberg@adacore.com>
4072 * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
4073 tasks, create an activation chain now, before the expansion into
4074 assignments and build-in-place calls that require the presence of an
4076 (Backend_Processing_Possible): If the component type is inherently
4077 limited, the aggregate must be expanded into individual built-in-place
4080 * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
4081 determine whether an allocation extra parameter must be built, to
4082 handle case of a private type whose full type is a discriminated type
4085 2008-05-27 Bob Duff <duff@adacore.com>
4088 Document the new behavior regarding trampolines.
4090 2008-05-27 Arnaud Charlet <charlet@adacore.com>
4092 * a-direio.adb, a-sequio.adb: Replace address clause by
4093 unrestricted_access, simpler and compatible with .NET.
4095 2008-05-27 Vincent Celier <celier@adacore.com>
4098 (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
4099 a project file, so that symbolic links are not resolved.
4101 2008-05-27 Arnaud Charlet <charlet@adacore.com>
4103 * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
4104 Replace heavy address clause by 'Unrestricted_Access, cleaner and more
4105 portable across GNAT targets, since this kind of address clause is not
4106 supported by VM back-ends (.NET/JGNAT).
4108 2008-05-27 Arnaud Charlet <charlet@adacore.com>
4110 * bindgen.adb: Update comments.
4112 * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
4114 2008-05-27 Vincent Celier <celier@adacore.com>
4116 * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
4117 prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
4118 mlib-tgt.adb, prj-env.adb, prj-env.ads:
4119 (Path_Information): New record type
4120 Use component of type Path_Information when there are two paths, one in
4121 canonical format and one in display format.
4122 Update the project manager to these new components.
4124 2008-05-27 Robert Dewar <dewar@adacore.com>
4126 * makeutl.adb: Minor reformatting
4127 * prj-nmsc.adb: Minor reformatting
4128 * s-stausa.adb: Minor reformatting
4129 * s-stausa.ads: Minor reformatting
4130 * sem_ch6.adb: Minor reformatting
4132 2008-05-27 Thomas Quinot <quinot@adacore.com>
4134 * sem_res.adb: Minor comment fixes
4136 2008-05-27 Thomas Quinot <quinot@adacore.com>
4138 * makeutl.adb: Minor code reorganization
4140 * exp_aggr.adb: Add ??? comment
4143 * exp_ch6.adb: Minor reformatting
4145 2008-05-27 Quentin Ochem <ochem@adacore.com>
4147 * s-stausa.adb (Initialize): Updated result initialization, and
4148 initialization of environment stack.
4149 (Fill_Stack): Improved computation of the pattern zone, taking into
4150 account already filled at the calling point.
4151 (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
4152 Measure and Overflow_Guard.
4153 (Report_Result): Fixed computation of the result using new fields of
4156 * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
4157 params by more explicit Stack_Size / Max_Pattern_Size params.
4158 (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
4159 Added Stack_Used_When_Filling field.
4160 (Task_Result): Replaced Measure / Overflow_Guard by more explicit
4161 Min_Measure and Max_Measure fields.
4163 * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
4165 2008-05-27 Vincent Celier <celier@adacore.com>
4168 (Check_File): Make sure that a unit that replaces the same unit in a
4169 project being extended is properly processed.
4171 2008-05-27 Ed Schonberg <schonberg@adacore.com>
4174 (Get_Discr_Value): Remove obsolete code that failed to find the value
4175 of a discriminant for an inherited task component appearing in a type
4178 2008-05-27 Thomas Quinot <quinot@adacore.com>
4180 (System.File_IO.{Close, Delete, Reset}):
4181 Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
4183 (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
4184 Pass File parameter by reference.
4186 2008-05-27 Vincent Celier <celier@adacore.com>
4189 (Process_Sources_In_Multi_Language_Mode): Check that there are not two
4190 sources of the same project that have the same object file name.
4191 (Find_Explicit_Sources): Always remove a source exception that was not
4194 2008-05-27 Thomas Quinot <quinot@adacore.com>
4196 * sem_ch3.adb: Minor reformatting
4198 2008-05-27 Ed Schonberg <schonberg@adacore.com>
4201 (Is_Interface_Conformant): Handle properly a primitive operation that
4202 overrides an interface function with a controlling access result.
4203 (Type_Conformance): If Skip_Controlling_Formals is true, when matching
4204 inherited and overriding operations, omit as well the conformance check
4205 on result types, to prevent spurious errors.
4207 2008-05-27 Vincent Celier <celier@adacore.com>
4209 * makeutl.ads, makeutl.adb:
4210 (Set_Location): New procedure
4211 (Get_Location): New function
4212 (Update_Main): New procedure
4214 2008-05-27 Vincent Celier <celier@adacore.com>
4217 (Check_Library): Allow standard project to be extended as a static
4219 (Get_Mains): Do not inherit attribute Main in an extending library
4222 2008-05-27 Eric Botcazou <ebotcazou@adacore.com>
4224 * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
4225 * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
4226 * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
4227 * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
4228 * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
4229 * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
4230 * system-mingw.ads (Always_Compatible_Rep): Likewise.
4231 * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
4232 * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
4233 * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
4235 2008-05-27 Ed Schonberg <schonberg@adacore.com>
4237 * sem_attr.adb: add guard to previous patch.
4239 2008-05-27 Ed Schonberg <schonberg@adacore.com>
4241 * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
4242 a synchronized tagged type, do not attempt to build dispatch table for
4243 full view. The table is built for the corresponding record type, which
4244 has its own declaration.
4246 2008-05-27 Gary Dismukes <dismukes@adacore.com>
4248 * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
4249 to the known type entity E, rather than setting it to Any_Type. Fixes
4250 possible blowup in function Base_Init_Proc, as called from Freeze_Entity
4251 for objects whose type had an illegal constraint.
4253 2008-05-27 Vincent Celier <celier@adacore.com>
4256 Add succinct documentation for attribute Excluded_Source_List_File
4258 2008-05-27 Vincent Celier <celier@adacore.com>
4260 * prj-attr.adb: Add new project level attribute Map_File_Option
4262 * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
4264 * prj.ads: Minor reformatting and comment update
4265 (Project_Configuration): New component Map_File_Option
4267 * snames.adb: New standard name Map_File_Option
4269 * snames.ads: New standard name Map_File_Option
4271 2008-05-27 Vincent Celier <celier@adacore.com>
4273 * xsnames.adb: Remove unused variable Oname
4275 2008-05-27 Doug Rupp <rupp@adacore.com>
4278 (Expand_N_Function_Call): Fix comments. Minor reformatting.
4281 (Expand_Vax_Foreign_Return): Fix comments.
4283 2008-05-27 Thomas Quinot <quinot@adacore.com>
4285 * exp_dist.adb: Minor reformating
4287 2008-05-26 Gary Dismukes <dismukes@adacore.com>
4289 * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
4290 No_Default_Initialization, which is now delayed until the freeze point
4291 of the object. Add a comment about deferral of the check.
4293 * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
4294 on objects is moved here.
4296 2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
4298 * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
4299 (Compare_Array_S16): Adjust for above change.
4300 * s-casi32.adb (Uword): Likewise.
4301 (Compare_Array_S32): Likewise.
4302 * s-casi64.adb (Uword): Likewise.
4303 (Compare_Array_S64): Likewise.
4304 * s-caun16.adb (Uhalf): Likewise.
4305 (Compare_Array_U16): Likewise.
4306 * s-caun32.adb (Uword): Likewise.
4307 (Compare_Array_U32): Likewise.
4308 * s-caun64.adb (Uword): Likewise.
4309 (Compare_Array_U64): Likewise.
4311 2008-05-26 Robert Dewar <dewar@adacore.com>
4313 * exp_ch6.adb: Add ??? comment for previous change
4315 * exp_vfpt.adb: Minor reformatting
4317 * exp_vfpt.ads: Add ??? comment for last change
4319 * sem_attr.adb: Add some ??? comments for previous change
4321 * s-vaflop.ads: Add comments for previous change
4323 2008-05-26 Doug Rupp <rupp@adacore.com>
4325 * s-vaflop-vms-alpha.adb:
4326 Remove System.IO use clause, to prevent spurious ambiguities when
4327 package is access through rtsfind.
4329 2008-05-26 Sergey Rybin <rybin@adacore.com>
4331 * tree_io.ads (ASIS_Version_Number): Update because of the changes
4334 2008-05-26 Ed Schonberg <schonberg@adacore.com>
4337 (Resolve_Attribute, case 'address): S (A .. B)' address can be safely
4338 converted to S (A)'address only if A .. B is known to be a non-null
4341 2008-05-26 Doug Rupp <rupp@adacore.com>
4344 (Return_D, Return_F, Return_G): New functions.
4347 (Return_D, Return_F, Return_G): New functions.
4350 (Expand_Vax_Foreign_Return): New procedure
4353 (Expand_Vax_Foreign_Return): New procedure
4356 (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
4357 (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
4361 (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
4363 * s-vaflop-vms-alpha.adb:
4364 (Return_D, Return_F, Return_G): New functions.
4366 2008-05-26 Gary Dismukes <dismukes@adacore.com>
4368 * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
4369 init proc entity when there is actual default initialization associated
4370 with the component type, to avoid spurious errors on objects of scalar
4371 array types that are marked Is_Public when No_Default_Initialization
4374 2008-05-26 Thomas Quinot <quinot@adacore.com>
4376 * rtsfind.ads, rtsfind.adb:
4377 (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
4378 (Check_RPC): Support per-PCS-kind API versioning.
4380 exp_dist.ads, exp_dist.adb:
4381 (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
4382 (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
4383 library function Get_RACW.
4384 (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
4385 library function Get_Reference.
4386 (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
4387 through an intermediate Any.
4388 (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
4389 going through an intermediate Any.
4391 * sem_dist.adb: Minor reformatting.
4393 2008-05-26 Javier Miranda <miranda@adacore.com>
4395 * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
4396 (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
4397 (Is_Internal): Adding documentation on internal entities that have
4398 attribute Interface_Alias (old attribute Abstract_Interface_Alias)
4400 * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
4401 (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
4402 Added assertion to force entities with this attribute to have
4403 attribute Is_Internal set to True.
4404 (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
4406 * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
4407 renamed as Derive_Progenitor_Subprograms. In addition, its code is
4408 a new implementation.
4409 (Add_Interface_Tag_Components): Remove special management of
4410 synchronized interfaces.
4411 (Analyze_Interface_Declaration): Minor reformating
4412 (Build_Derived_Record_Type): Minor reformating
4413 (Check_Abstract_Overriding): Avoid reporting error in case of abstract
4414 predefined primitive inherited from interface type because the body of
4415 internally generated predefined primitives of tagged types are generated
4416 later by Freeze_Type
4417 (Derive_Subprogram): Avoid generating an internal name if the parent
4418 subprogram overrides an interface primitive.
4419 (Derive_Subprograms): New implementation that keeps separate the
4420 management of tagged types not implementing interfaces, from tagged
4421 types that implement interfaces.
4422 (Is_Progenitor): New implementation.
4423 (Process_Full_View): Add documentation
4424 (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
4425 by call to Derive_Progenitor_Subprograms.
4427 * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
4428 (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
4429 Skip_Controlling_Formals.
4431 * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
4432 (Check_Conventions): New implementation. Remove local subprogram
4433 Skip_Check. Remove formal Search_From of routine Check_Convention.
4434 (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
4435 Skip_Controlling_Formals.
4436 (New_Overloaded_Entity): Enable addition of predefined dispatching
4440 (Find_Primitive_Covering_Interface): New subprogram.
4442 * sem_disp.adb (Check_Dispatching_Operation): Disable registering
4443 the task body procedure as a primitive of the corresponding tagged
4445 (Check_Operation_From_Private_Type): Avoid adding twice an entity
4446 to the list of primitives.
4447 (Find_Primitive_Covering_Interface): New subprogram.
4448 (Override_Dispatching_Operation): Add documentation.
4450 * sem_type.adb (Covers): Minor reformatings
4452 * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
4455 (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
4456 (Implements_Interface): New subprogram.
4457 (Is_Parent): Removed.
4458 (Primitive_Names_Match): New subprogram.
4459 (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
4460 (Ultimate_Alias): New subprogram.
4462 * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
4464 Remove special management for synchronized types. Rename formal. Remove
4465 internal subprograms Interface_Present_In_Parent and Add_Interface.
4466 (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
4467 on non-record types by code to return false in such case.
4468 (Implements_Interface): New subprogram.
4469 (Is_Parent): Removed. No special management is now required for
4470 synchronized types covering interfaces.
4471 (Primitive_Names_Match): New subprogram.
4472 (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
4473 (Ultimate_Alias): New subprogram.
4475 * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
4476 Add internal entities associated with secondary dispatch tables to
4477 the list of tagged type primitives that are not interfaces.
4478 (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
4479 (Make_Predefined_Primitive_Specs): Code reorganization to improve
4480 the management of predefined equality operator. In addition, if
4481 the type has an equality function corresponding with a primitive
4482 defined in an interface type, the inherited equality is abstract
4483 as well, and no body can be created for it.
4485 * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
4486 exp_util to exp_disp.
4487 (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
4488 an entity corresponds with one of the predefined primitives required
4489 to implement interfaces.
4490 Update copyright notice.
4492 * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
4493 final check on abstract subprograms all the primitives associated with
4494 interface primitives because they must be visible in the public and
4496 (Write_DT): Use Find_Dispatching_Type to locate the name of the
4497 interface type. This allows the use of this routine, for debugging
4498 purposes, when the tagged type is not fully decorated.
4499 (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
4500 Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
4501 (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
4502 entity corresponds with one of the predefined primitives required to
4503 implement interfaces.
4505 * exp_util.adb (Find_Interface_ADT): New implementation
4506 (Find_Interface): Removed.
4508 * sprint.adb (Sprint_Node_Actual): Generate missing output for the
4509 list of interfaces associated with nodes
4510 N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
4512 2008-05-26 Thomas Quinot <quinot@adacore.com>
4514 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
4515 condition for assignment to temporary.
4517 2008-05-26 Ed Schonberg <schonberg@adacore.com>
4519 * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
4520 checks on the upper bound if the index type is a modular type, to
4521 prevent wrap-around computations when size is close to upper bound of
4524 2008-05-26 Robert Dewar <dewar@adacore.com>
4526 * sem_ch3.adb: Minor reformatting
4528 2008-05-26 Ed Schonberg <schonberg@adacore.com>
4530 * sem_ch12.adb (Remove_Parent): Use specification of instance
4531 to retrieve generic parent,
4532 to handle properly the case where the instance is a child unit.
4533 Add guard to handle properly wrapper packages.
4536 2008-05-26 Thomas Quinot <quinot@adacore.com>
4538 * sinfo.ads: Minor reformatting
4540 2008-05-26 Hristian Kirtchev <kirtchev@adacore.com>
4542 * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
4543 Generate a tag check when the result subtype of a function, defined by
4544 an access definition, designates a specific tagged type.
4545 (Make_Tag_Check): New routine.
4547 2008-05-26 Arnaud Charlet <charlet@adacore.com>
4549 * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
4551 2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
4553 * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
4554 (builtin_decl_for): Likewise.
4555 * trans.c (gigi): Likewise.
4556 * utils.c (def_builtin_1): Fix formatting.
4558 2008-05-26 Hristian Kirtchev <kirtchev@adacore.com>
4560 * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
4561 Create the statements which map a string name to protected or task
4564 * exp_ch9.adb: Add with and use clause for Stringt.
4565 Minor code reformatting.
4566 (Build_Entry_Names): New routine.
4567 (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
4568 for flag Build_Entry_Names which controls the allocation of the data
4569 structure for the string names of entries.
4571 * exp_ch9.ads (Build_Entry_Names): New subprogram.
4573 * exp_util.adb (Entry_Names_OK): New function.
4575 * exp_util.ads (Entry_Names_OK): New function.
4577 * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
4578 enumerations RE_Id and RE_Unit_Table.
4580 * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
4581 (Free_Entry_Names_Array): New routine.
4583 * s-taskin.ads: Comment reformatting.
4584 Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
4585 Add component Entry_Names to record Ada_Task_Control_Block.
4586 (Free_Entry_Names_Array): New routine.
4588 * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
4589 dynamically allocate an array
4590 of string pointers. This structure holds string entry names.
4591 (Free_Entry_Names): New routine.
4592 (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
4593 (Set_Entry_Names): New routine.
4596 (Create_Task): Add formal Build_Entry_Names. The flag is used to
4597 control the allocation of the data structure which stores entry names.
4598 (Set_Entry_Name): New routine.
4601 Add with and use clause for Ada.Unchecked_Conversion.
4602 (Finalize): Deallocate the entry names array.
4603 (Free_Entry_Names): New routine.
4604 (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
4605 create an array of string pointers to hold the entry names.
4606 (Set_Entry_Name): New routine.
4609 Add field Entry_Names to record Protection_Entries.
4610 (Initialize_Protection_Entries): Add formal Build_Entry_Names.
4611 (Set_Entry_Name): New routine.
4613 2008-05-26 Vincent Celier <celier@adacore.com>
4616 (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
4619 (Project_Configuration): New component Shared_Lib_Driver
4621 2008-05-26 Ed Schonberg <schonberg@adacore.com>
4624 (Cleanup_Scopes): For a protected operation, transfer finalization list
4625 to protected body subprogram, to force cleanup actions when needed.
4627 2008-05-26 Robert Dewar <dewar@adacore.com>
4629 * sem_cat.adb: Minor reformatting
4631 * gnatname.adb: Minor reformatting
4633 * osint.ads: Minor reformatting
4635 * s-carun8.ads: Minor reformatting
4637 * g-heasor.ads: Minor comment fix (unit is now pure)
4639 2008-05-26 Robert Dewar <dewar@adacore.com>
4642 (Expand_Current_Value): Properly type generated integer literal
4644 2008-05-26 Sergey Rybin <rybin@adacore.com>
4646 * gnat_ugn.texi: Add description for the new gnatcheck rule -
4647 Separate_Numeric_Error_Handlers.
4649 2008-05-26 Pascal Obry <obry@adacore.com>
4651 * sem_aggr.adb: Minor reformatting.
4653 2008-05-26 Jose Ruiz <ruiz@adacore.com>
4656 (To_Target_Priority): Setting the time slice value to 0 or greater sets
4657 the scheduling policy to FIFO within priorities or round-robin
4659 Hence, the priority must be set in this case to the one selected by the
4662 2008-05-26 Ed Schonberg <schonberg@adacore.com>
4665 (Remove_Parent): If the enclosing scope is an instance whose generic
4666 parent is declared within some parent scope of the just completed
4667 instance, make full views of the entities in that parent visible, when
4670 2008-05-26 Kai Tietz <kai.tietz@onevision.com>
4672 * mingw32.h (STD_MINGW): Set to true for target w64.
4674 2008-05-25 Eric Botcazou <ebotcazou@adacore.com>
4676 * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
4677 instead of TREE_STATIC on the ADDR_EXPR.
4679 2008-05-24 Eric Botcazou <ebotcazou@adacore.com>
4681 * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
4682 (Sloc_to_locus): Do not overwrite known GCC locations when translating
4683 GNAT standard locations.
4685 2008-05-23 Eric Botcazou <ebotcazou@adacore.com>
4687 * gigi.h (mark_visited): Declare.
4688 * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
4689 only the topmost node of expressions.
4690 (elaborate_expression_1): Look deeper for read-only variables.
4691 * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
4692 (mark_visited): Move logic to mark_visited_r. Invoke walk_tree.
4693 (mark_visited_r): New function.
4695 2008-05-23 Vincent Celier <celier@adacore.com>
4697 * snames.adb: New standard name Excluded_Source_List_File.
4699 * snames.ads: New standard name Excluded_Source_List_File.
4701 * prj-attr.adb: New project level attribute Excluded_Source_List_File.
4703 * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
4704 Get excluded sources from
4705 file indicated by attribute Excluded_Source_List_File, when present and
4706 neither Excluded_Source_Files nor Locally_Removed_Files are declared.
4708 2008-05-23 Robert Dewar <dewar@adacore.com>
4710 * exp_dist.adb: Minor reformatting
4712 2008-05-23 Ed Schonberg <schonberg@adacore.com>
4714 * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
4715 slice, convert it to an indexed component, which is equivalent, more
4716 efficient, and usable even if the slice itself is not addressable.
4718 2008-05-23 Olivier Hainque <hainque@adacore.com>
4720 * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
4721 convention also allows access to named compiler built-in subprograms
4722 such as the GCC __builtin family.
4724 2008-05-23 Vincent Celier <celier@adacore.com>
4726 * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
4727 sep. If there are several possibilities, choose the one with the
4730 2008-05-23 Vincent Celier <celier@adacore.com>
4732 * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
4733 back end switches when executable specified with --GCC= is same as
4734 default, even if there are additional options.
4737 Document when the back end switches from the ALI file are taken into
4738 account when gnatlink is invoked with --GCC=
4740 2008-05-23 Thomas Quinot <quinot@adacore.com>
4743 (copy_File): Do not open destination file if source file is unreadable.
4745 2008-05-23 Eric Botcazou <ebotcazou@adacore.com>
4747 * utils.c (handle_type_generic_attribute): Adjust to accept
4748 fixed arguments before an elipsis.
4750 2008-05-21 Thomas Quinot <quinot@adacore.com>
4752 * g-sothco.ads, g-sothco.adb: New files.
4754 2008-05-20 Thomas Quinot <quinot@adacore.com>
4756 * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
4758 * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
4759 Add missing "with" of Ada.Unchecked_Conversion
4761 * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
4762 g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
4763 g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
4764 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
4765 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
4766 g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
4767 Move common code out of GNAT.Sockets.Thin implementations and into
4769 New constant SIZEOF_fd_set
4770 New flag Has_Sockaddr_Len
4771 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4773 * g-stsifd-sockets.adb
4774 (Create): Remove call to Set_Length; use Set_Family to set the family
4775 and (on appropriate platforms) length fields in struct sockaddr.
4777 * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
4778 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
4779 g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
4780 Move common code out of GNAT.Sockets.Thin implementations and into
4783 * g-socket.ads, g-socket.adb:
4784 Move common code out of GNAT.Sockets.Thin implementations and into
4786 (Connect_Socket, Accept_Socket): Provide new versions of these two
4787 routines that operate with a user specified timeout.
4788 (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
4789 this is now handled automatically by Set_Family on platforms that
4793 Move common code out of GNAT.Sockets.Thin implementations and into
4795 (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
4796 this constant to 0 (not -1) because we use it to initialize an
4797 unsigned_char value.
4798 Align values for numeric constants only.
4799 Handle the case of systems that do not support AF_INET6.
4800 New constant SIZEOF_fd_set
4801 New flag Has_Sockaddr_Len
4802 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4804 * gsocket.h: New flag Has_Sockaddr_Len
4805 New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4807 2008-05-20 Santiago Uruena <uruena@adacore.com>
4809 * i-cobol.ads: Interfaces.COBOL should be preelaborate.
4811 2008-05-20 Arnaud Charlet <charlet@adacore.com>
4813 * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
4814 the underlying issue with malloc/free has been fixed. Remove associated
4817 Related to PR ada/24533
4819 2008-05-20 Robert Dewar <dewar@adacore.com>
4821 * ali.adb: Correct casing of ASCII.NUL
4823 * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
4826 2008-05-20 Robert Dewar <dewar@adacore.com>
4827 Gary Dismukes <dismukes@adacore.com>
4829 * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
4830 overflow if result converted to wider integer type.
4831 (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
4832 discriminated types when discriminant checks are suppressed.
4834 2008-05-20 Vincent Celier <celier@adacore.com>
4836 * cstand.adb (Print_Standard): Issue the correct Size clause for type
4837 Wide_Wide_Character.
4839 2008-05-20 Tristan Gingold <gingold@adacore.com>
4841 * decl.c: Do not emit a variable for a object that has an address
4842 representation clause whose value is known at compile time.
4843 When a variable has an address clause whose value is known at compile
4844 time, refer to this variable by using directly the address instead of
4845 dereferencing a pointer.
4847 2008-05-20 Robert Dewar <dewar@adacore.com>
4850 * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
4851 subtypes, always False for non-modular types.
4852 Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
4853 entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
4854 for Shared_Storage package.
4855 (Is_RACW_Stub_Type): New entity flag.
4858 (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
4859 case where we have a modular type with a non-binary modules.
4860 Comments reformattings.
4862 * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
4865 2008-05-20 Javier Miranda <miranda@adacore.com>
4868 (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
4869 tests did not covered the case in which the type of the aggregate has
4870 no progenitors but some its parents has progenitors.
4872 2008-05-20 Gary Dismukes <dismukes@adacore.com>
4873 Hristian Kirtchev <kirtchev@adacore.com>
4876 (Expand_N_Object_Declaration): Correct the condition which triggers the
4877 generation of a call to Displace when initializing a class-wide object.
4878 (Build_Dcheck_Functions): Build discriminant-checking for null variants
4879 when Frontend_Layout_On_Target is true to ensure that they're available
4880 for calling when a record variant size function is built in Layout.
4882 2008-05-20 Ed Schonberg <schonberg@adacore.com>
4884 * exp_ch5.adb (Expand_Assign_Record): Within an initialization
4885 procedure for a derived type retrieve the discriminant values from the
4886 parent using the corresponding discriminant.
4887 (Expand_N_Assignment_Statement): Skip generation of implicit
4888 if-statement associated with controlled types if we are
4889 compiling with restriction No_Finalization.
4891 2008-05-20 Vincent Celier <celier@adacore.com>
4893 * prj.adb (Hash (Project_Id)): New function
4894 (Project_Empty): Add new component Interfaces_Defined
4896 * prj.ads (Source_Data): New component Object_Linked
4897 (Language_Config): New components Object_Generated and Objects_Linked
4898 (Hash (Project_Id)): New function
4899 (Source_Data): New Boolean components In_Interfaces and
4900 Declared_In_Interfaces.
4901 (Project_Data): New Boolean component Interfaces_Defined
4904 New project level attribute Object_Generated and Objects_Linked
4905 Add new project level attribute Interfaces
4907 * prj-dect.adb: Use functions Present and No throughout
4908 (Parse_Variable_Declaration): If a string type is specified as a simple
4909 name and is not found in the current project, look for it also in the
4910 ancestors of the project.
4913 Replace procedure Make with procedures Initialize, Process and Finalize
4914 to implement H414-023: process different directories with different
4916 Use functions Present and No throughout
4919 Replace procedure Make with procedures Initialize, Process and Finalize
4922 (Add_Source): Set component Object_Exists and Object_Linked accordnig to
4923 the language configuration.
4924 (Process_Project_Level_Array_Attributes): Process new attributes
4925 Object_Generated and Object_Linked.
4926 (Report_No_Sources): New Boolean parameter Continuation, defaulted to
4927 False, to indicate that the erreor/warning is a continuation.
4928 (Check): Call Report_No_Sources with Contnuation = True after the first
4930 (Error_Msg): Process successively contnuation character and warning
4932 (Find_Explicit_Sources): Check that all declared sources have been found
4933 (Check_File): Indicate in hash table Source_Names when a declared source
4935 (Check_File): Set Other_Part when found
4936 (Find_Explicit_Sources): In multi language mode, check if all exceptions
4937 to the naming scheme have been found. For Ada, report an error if an
4938 exception has not been found. Otherwise, disregard the exception.
4939 (Check_Interfaces): New procedure
4940 (Add_Source): When Other_Part is defined, set mutual pointers in spec
4942 (Check): In multi-language mode, call Check_Interfaces
4943 (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
4944 for an excluded source.
4945 (Remove_Source): A source replacing a source in the interfaces is also
4948 * prj-pars.adb: Use function Present
4950 * prj-part.adb: Use functions Present and No throughout
4951 (Parse_Single_Project): Set the parent project for child projects
4952 (Create_Virtual_Extending_Project): Register project with no qualifier
4953 (Parse_Single_Project): Allow an abstract project to be extend several
4954 times. Do not allow an abstract project to extend a non abstract
4957 * prj-pp.adb: Use functions Present and No throughout
4958 (Print): Take into account the full associative array attribute
4961 * prj-proc.adb: Use functions Present and No throughout
4962 (Expression): Call itself with the same From_Project_Node for the
4963 default value of an external reference.
4965 * prj-strt.adb: Use functions Present and No throughout
4966 (Parse_Variable_Reference): If a variable is specified as a simple name
4967 and is not found in the current project, look for it also in the
4968 ancestors of the project.
4970 * prj-tree.ads, prj-tree.adb (Present): New function
4972 Use functions Present and No throughout
4973 (Parent_Project_Of): New function
4974 (Set_Parent_Project_Of): New procedure
4976 * snames.ads, snames.adb:
4977 Add new standard names Object_Generated and Objects_Linked
4979 2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
4981 * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
4982 and the derived type are of the same kind.
4983 (Expand_Call): Generate type conversions for actuals of
4984 record or array types when the parent and the derived types differ in
4985 size and/or packed status.
4987 2008-05-20 Javier Miranda <miranda@adacore.com>
4988 Ed Schonberg <schonberg@adacore.com>
4990 * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
4991 generating dispatch tables of locally defined tagged types statically.
4992 Remove implicit if-statement that is no longer required.
4993 (Expand_Dispatching_Call): If this is a call to an instance of the
4994 generic dispatching constructor, the type of the first argument may be
4995 a subtype of Tag, so always use the base type to recognize this case.
4997 2008-05-20 Thomas Quinot <quinot@adacore.com>
5000 (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
5001 and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
5002 assigning NULL into the result, to avoid a spurious warning.
5003 (Add_RACW_Features, case Same_Scope): Add assertion that designated type
5005 (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
5007 (Build_From_Any_Function, Build_To_Any_Function,
5008 Build_TypeCode_Function): For a type that has user-specified stream
5009 attributes, use an opaque sequence of octets as the representation.
5011 2008-05-20 Kevin Pouget <pouget@adacore.com>
5013 * exp_smem.ads, exp_smem.adb: Construction of access and assign
5014 routines has been replaced by an instantiation of
5015 System.Shared_Storage.Shared_Var_Procs generic package, while expanding
5016 shared variable declaration.
5017 Calls to access and assign routines have been replaced by calls to
5018 Read/Write routines of System.Shared_Storage.Shared_Var_Procs
5019 instantiated package.
5021 * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
5022 It identifies the new generic package added in s-shasto.
5024 * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
5025 is instantiated for each shared passive variable. It provides
5026 supporting procedures called upon each read or write access by the
5030 For this runtime unit (always compiled in GNAT mode), we allow
5031 stream attributes references for limited types for the case where
5032 shared passive objects are implemented using stream attributes,
5033 which is the default in GNAT's persistent storage implementation.
5035 2008-05-20 Ed Schonberg <schonberg@adacore.com>
5038 (Freeze_Enumeration_Type): For a subtype that inherits a foreign
5039 convention from its base type, do not set the type to that of integer,
5040 because it may inherit a size clause.
5041 Warn on a size clause with a size different
5042 from that of Integer, if the type has convention C.
5044 2008-05-20 Vincent Celier <celier@adacore.com>
5047 (Scan_Args): Rewrite to take into account new switch --and to separate
5048 arguments into sections.
5049 (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
5050 section, then Finalize.
5052 2008-05-20 Tristan Gingold <gingold@adacore.com>
5054 * init.c: Enable stack probing on ppc-linux.
5056 * tracebak.c: Add symbolic traceback for ppc-linux.
5058 * system-linux-ppc.ads: Enable stack probing on ppc-linux.
5060 2008-05-20 Arnaud Charlet <charlet@adacore.com>
5063 (common-tools): New rule, to avoid parallel build failure on gnat tools.
5064 Reenable parallel builds on this Makefile.
5066 * Make-lang.in: Update dependencies.
5068 2008-05-20 Robert Dewar <dewar@adacore.com>
5070 * opt.ads (Treat_Restrictions_As_Warnings): New switch
5072 * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
5073 Treat_Restrictions_As_Warnings.
5075 * switch-c.adb: Recognize new switch -gnatr
5077 * usage.adb: Add line for -gnatr
5079 2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
5082 (P_Access_Definition): Change the error message when parsing "access
5083 all" in Ada 95 mode. The message no longer forces the user to recompile
5084 in 05 mode only to discover that anonymous access types are not allowed
5087 2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
5090 (P_Protected): Update the error message on missing "-gnat05" switch when
5091 using interfaces in conjunction with protected types. Remove the
5092 incorrect error message associated with the presence of "private" after
5095 2008-05-20 Ed Schonberg <schonberg@adacore.com>
5097 * sem_aggr.adb: Update comments.
5098 Improve previous change for PR ada/17985
5100 2008-05-20 Thomas Quinot <quinot@adacore.com>
5103 (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
5104 the visible part of the spec of a remote types unit.
5105 (Validate_Remote_Access_Object_Type_Declaration):
5106 New local subprogram Is_Valid_Remote_Object_Type, replaces
5107 Is_Recursively_Limited_Private.
5108 (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
5109 non-controlling formals (and the return type, even though this is not
5110 explicit in the standard) must support external streaming.
5111 (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
5112 as above for of RAS types and RCI subprograms. (The return type is not
5114 Update comments related to RACWs designating limited interfaces per
5115 ARG ruling on AI05-060.
5117 * sem_util.ads, sem_util.adb
5118 (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
5119 Is_Remote_Call_Interface to identify RACW types in a stable and
5120 consistent way. We used to rely in this predicate on the privateness of
5121 the designated type and its ancestors, but depending on the currently
5122 visible private parts, this caused false negatives. We now uniformly
5123 rely on checks made at the point where the RACW type is declared.
5124 (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
5126 2008-05-20 Javier Miranda <miranda@adacore.com>
5127 Ed Schonberg <schonberg@adacore.com>
5128 Hristian Kirtchev <kirtchev@adacore.com>
5131 (Analyze_Object_Declaration): Fix over-conservative condition
5132 restricting use of predefined assignment with tagged types that have
5134 (Analyze_Object_Declaration): Relax the check regarding deferred
5135 constants declared in scopes other than packages since they can be
5136 completed with pragma Import.
5137 Add missing escaping of all-caps word 'CPP' in error messages.
5138 (Build_Discriminated_Subtype): Do not inherit representation clauses
5139 from parent type if subtype already carries them, because they are
5140 inherited earlier during derivation and already include those that may
5141 come from a partial view.
5143 * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
5144 Check the declarations of a subprogram body for proper deferred
5145 constant completion.
5147 * sem_ch7.ads, sem_ch7.adb
5148 (Inspect_Deferred_Constant_Completion): Moved to sem_util.
5150 2008-05-20 Ed Schonberg <schonberg@adacore.com>
5151 Thomas Quinot <quinot@adacore.com>
5154 (Try_Indexed_Call): Handle properly a construct of the form F(S) where
5155 F is a parameterless function that returns an array, and S is a subtype
5157 (Analyze_Call): Insert dereference when the prefix is a parameterless
5158 function that returns an access to subprogram and the call has
5160 Reject a non-overloaded call whose name resolves to denote
5161 a primitive operation of the stub type generated to support a remote
5162 access-to-class-wide type.
5164 2008-05-20 Ed Schonberg <schonberg@adacore.com>
5167 (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
5168 when there is a use clause for the same entity in the context.
5169 (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
5170 created for a stream attribute of an abstract type or interface type.
5172 2008-05-20 Thomas Quinot <quinot@adacore.com>
5174 * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
5178 (Add_One_Interp): Ignore any interpretation that is a primitive
5179 operation of an RACW stub type (these primitives are only executed
5180 through dispatching, never through static calls).
5181 (Collect_Interps): When only one interpretation has been found, set N's
5182 Entity and Etype to that interpretation, otherwise Entity and Etype may
5183 still refer to an interpretation that was ignored by Add_One_Interp,
5184 in which case would end up with being marked as not overloaded but with
5185 an Entity attribute not pointing to its (unique) correct interpretation.
5187 2008-05-20 Ed Schonberg <schonberg@adacore.com>
5190 (Eval_Slice): Warn when a slice whose discrete range is a subtype name
5191 denotes the whole array of its prefix.
5193 2008-05-20 Robert Dewar <dewar@adacore.com>
5195 * sem_res.adb (Resolve_Op_Not): Warn on double negation
5197 2008-05-20 Ed Schonberg <schonberg@adacore.com>
5200 (Print_Itype): Do not modify the sloc of the component type of a
5201 (packed) array itype, because it is an unrelated type whose source
5202 location is independent of the point of creation of the itype itself.
5204 2008-05-20 Thomas Quinot <quinot@adacore.com>
5206 * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
5209 2008-05-20 Robert Dewar <dewar@adacore.com>
5210 Vincent Celier <celier@adacore.com>
5212 * vms_data.ads: Add entry for -gnatr
5213 Put GNAT SYNC section in proper alpha order
5214 Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
5216 * gnat_ugn.texi: Add documentation for new gnatname switch --and
5217 Update the style checks section
5218 Add documentation of -gnatr
5219 Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
5220 subsection the explanation how compiler checks should be disabled for
5222 Update the list of Ada 95 reserved words used by in the project language
5223 Add documentation for project qualifiers.
5224 Document that abstract projects may be extended by different projects in
5225 the same project tree.
5226 Add documentation for gnatmake switch -d
5228 * ug_words: Add -gnatyy VMS equivalence string.
5229 Add entry for -gnatr
5231 2008-05-20 Bob Duff <duff@adacore.com>
5234 (Set_Handler): Remove code from both of these that implements
5235 RM-D.15(15/2), because it causes a race condition and potential
5237 (Process_Queued_Events): Add comment explaining "exception when others
5238 => null". Add clarifying ".all", even though implicit .all is legal
5241 2008-05-20 Arnaud Charlet <charlet@adacore.com>
5243 * s-winext.ads: Replace representation clause by pragma Pack. Gives
5244 equivalent representation, but has the advantage of allowing
5245 compilation of this file under 64 bits platforms.
5247 * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
5249 * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
5252 Don't define dummy implementation of convert_addresses on ppc-linux.
5254 2008-05-20 Ed Schonberg <schonberg@adacore.com>
5257 (Expand_Ctrl_Function_Call): Do not attach result to finalization list
5258 if expression is aggregate component.
5260 2008-05-20 Robert Dewar <dewar@adacore.com>
5262 * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
5263 sem_ch12.adb: Update comments. Minor reformatting.
5267 * s-unstyp.ads: Fixed some typos in comments.
5269 2008-05-20 Arnaud Charlet <charlet@adacore.com>
5271 * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
5274 * g-socthi-vxworks.ads: Update to latest socket changes.
5276 * a-caldel-vms.adb: Resync with a-caldel spec.
5278 * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
5281 2008-05-17 Eric Botcazou <ebotcazou@adacore.com>
5283 * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
5284 for dummy types pointed to by the converted pointer types.
5286 2008-05-15 Eric Botcazou <ebotcazou@adacore.com>
5288 * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
5289 of records and unions.
5290 (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
5292 2008-05-14 Samuel Tardieu <sam@rfc1149.net>
5293 Robert Dewar <dewar@adacore.com>
5295 * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
5296 restrictions to the prefix of 'Old.
5297 * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
5298 * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
5301 2008-05-13 Eric Botcazou <ebotcazou@adacore.com>
5305 * utils.c (convert) <INTEGER_TYPE>: When converting an additive
5306 expression to an integral type with lower precision, use NOP_EXPR
5307 directly in a couple of special cases.
5309 2008-05-12 Samuel Tardieu <sam@rfc1149.net>
5310 Ed Schonberg <schonberg@adacore.com>
5312 * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
5313 constraint expressions.
5315 2008-05-12 Tomas Bily <tbily@suse.cz>
5317 * utils2.c (known_alignment, contains_save_expr_p)
5318 (gnat_mark_addressable): Use CASE_CONVERT.
5319 * decl.c (annotate_value): Likewise.
5320 * trans.c (maybe_stabilize_reference): Likewise.
5321 * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
5322 * utils.c (rest_of_record_type_compilation): Likewise.
5323 * trans.c (protect_multiple_eval, Attribute_to_gnu)
5324 (protect_multiple_eval): Likewise.
5326 2008-05-08 Andreas Schwab <schwab@suse.de>
5328 * utils.c (handle_pure_attribute, init_gigi_decls): Rename
5329 DECL_IS_PURE to DECL_PURE_P.
5331 2008-05-05 Eric Botcazou <ebotcazou@adacore.com>
5333 * decl.c (maybe_pad_type): Add ??? comment.
5335 2008-05-03 Eric Botcazou <ebotcazou@adacore.com>
5337 * decl.c (components_to_record): Zero the alignment of the qualified
5338 union built for the variant part upon creating it.
5340 2008-05-03 Eric Botcazou <ebotcazou@adacore.com>
5342 * decl.c (maybe_pad_type): Try to get a form of the type with integral
5343 mode even if the alignment is not a factor of the original size. But
5344 make sure to create the inner field with the original size. Reorder.
5345 * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
5346 record as always addressable.
5347 * utils.c (convert): Deal specially with conversions between original
5348 and packable versions of a record type.
5349 * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
5350 recognizing an assignment between padded objects.
5352 2008-05-01 Eric Botcazou <ebotcazou@adacore.com>
5354 * decl.c (make_packable_type): Resize the last component to its RM size
5355 only if it is of an aggregate type.
5356 * trans.c (call_to_gnu): Fix nit in comment.
5357 (gnat_to_gnu): Likewise.
5359 2008-04-30 Samuel Tardieu <sam@rfc1149.net>
5361 * Makefile.in: Adapt sh4-linux target.
5363 2008-04-29 Ed Schonberg <schonberg@adacore.com>
5366 * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
5367 tagged type by an untagged protected or task type.
5369 2008-04-28 Eric Botcazou <ebotcazou@adacore.com>
5370 Tristan Gingold <gingold@adacore.com>
5373 * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
5374 of aliased objects with an unconstrained nominal subtype.
5375 Cap the promotion to the effective alignment of the word mode.
5377 2008-04-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5379 * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
5380 (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
5381 Use '&&' instead of ';'.
5383 2008-04-24 Olivier Hainque <hainque@adacore.com>
5385 * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
5386 doesn't require signed arithmetic anymore.
5388 2008-04-23 Paolo Bonzini <bonzini@gnu.org>
5390 * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
5391 (call_to_gnu): Don't set TREE_INVARIANT.
5392 * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
5394 2008-04-22 Joel Sherrill <joel.sherrill@oarcorp.com>
5396 * s-osinte-rtems.adb: Add sigalstack function.
5397 * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
5398 function. Add Alternate_Stack and Alternate_Stack_Size.
5399 Add missing process_shared field to pthread_condattr_t
5400 and change ss_low_priority to int from timespec.
5402 2008-04-22 Samuel Tardieu <sam@rfc1149.net>
5404 * i-forbla.adb: Link against -llapack and -lblas by default
5405 instead of the private -lgnalasup.
5407 2008-04-21 Olivier Hainque <hainque@adacore.com>
5409 Access to most C builtins from Ada
5410 * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
5411 (handle_pure_attribute, handle_novops_attribute,
5412 handle_nonnull_attribute, handle_sentinel_attribute,
5413 handle_noreturn_attribute, handle_malloc_attribute,
5414 handle_type_generic_attribute): New attribute handlers, from C fe.
5415 (gnat_internal_attribute_table): Map the new handlers.
5416 (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
5417 (init_gigi_decls): ... here.
5418 (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
5419 Move to a section dedicated to builtins processing.
5420 (build_void_list_node, builtin_type_for_size): New functions.
5421 (def_fn_type, get_nonnull_operand): Likewise.
5422 (install_builtin_elementary_type, install_builtin_function_types,
5423 install_builtin_attributes): Likewise.
5424 (fake_attribute_handler): Fake handler for attributes we don't
5426 (def_builtin_1): New function, worker for DEF_BUILTIN.
5427 (install_builtin_functions): New function.
5428 (gnat_install_builtins): Move to the builtins processing section.
5429 Now calling the newly introduced installers.
5431 2008-04-20 Eric Botcazou <ebotcazou@adacore.com>
5433 * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
5434 constant objects, but not exceptions.
5435 * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
5437 * utils.c (create_var_decl_1): Likewise.
5438 * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
5439 the type when copying to padded object and the source is a constructor.
5441 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
5443 * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
5444 alignment, reset it to zero if it would end up not being greater
5445 than that of the type.
5447 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
5449 * decl.c (maybe_pad_type): Only generate the XVS parallel type if
5450 the padded type has a variable size.
5452 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
5454 * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
5455 target pointer mechanism as soon as the size is not constant.
5457 2008-04-18 Eric Botcazou <ebotcazou@adacore.com>
5459 * gigi.h (create_var_decl_1): Declare.
5460 (create_var_decl): Turn into a macro invoking create_var_decl_1.
5461 (create_true_var_decl): Likewise.
5462 * utils.c (create_var_decl_1): Make global and reorder parameters.
5463 (create_var_decl): Delete.
5464 (create_true_var_decl): Likewise.
5466 2008-04-17 Eric Botcazou <ebotcazou@adacore.com>
5468 * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
5470 * fe.h (Debug_Flag_Dot_A): Delete.
5471 * debug.adb (-gnatd.a): Update documentation.
5473 2008-04-17 Samuel Tardieu <sam@rfc1149.net>
5475 * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
5476 "not null" parameter.
5478 2008-04-17 Samuel Tardieu <sam@rfc1149.net>
5480 * g-socket.adb: Add a message "IPv6 not supported" to the
5481 Socket_Error exception.
5483 2008-04-16 Samuel Tardieu <sam@rfc1149.net>
5486 * sem_ch12.adb (Instantiate_Type): Check whether the full view of
5487 the type is known instead of the underlying type.
5489 2008-04-15 Ed Schonberg <schonberg@adacore.com>
5492 * exp_ch5.adb (Expand_Assign_Record): Within an initialization
5493 procedure for a derived type retrieve the discriminant values from
5494 the parent using the corresponding discriminant.
5496 2008-04-15 Samuel Tardieu <sam@rfc1149.net>
5497 Gary Dismukes <dismukes@adacore.com>
5500 * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
5501 which is not an entity (and hence not a package).
5502 (End_Use_Package): Ditto.
5504 2008-04-15 Ed Schonberg <schonberg@adacore.com>
5507 * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
5508 protected operation that matches the signature, not only an entry, a
5509 regular subprogram or a literal.
5511 2008-04-15 Eric Botcazou <ebotcazou@adacore.com>
5513 * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
5514 * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
5515 if a size or alignment is specified. Do not take into account
5516 alignment promotions for the computation of the object's size.
5517 <type>: Call maybe_pad_type only if a size or alignment is specified.
5518 (maybe_pad_type): Really reuse the RM_Size of the original type if
5520 * trans.c (Attribute_to_gnu): Fix a couple of nits.
5521 * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
5522 statements. Use the padded view of the type when copying between
5523 padded objects of the same underlying type.
5525 2008-04-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5527 * vms_data.ads: Fix typo in constant.
5528 * gen-soccon.c: Fix typo in error string.
5529 * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
5531 * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
5532 bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
5533 erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
5534 exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
5535 exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
5536 g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
5537 mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
5538 s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
5539 s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
5540 sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
5541 sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
5542 sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
5543 sinfo.ads: Fix typos in comments.
5545 2008-04-14 Robert Dewar <dewar@adacore.com>
5547 * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
5548 to every non-object and change error message.
5550 2008-04-14 Robert Dewar <dewar@adacore.com>
5552 * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
5553 * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
5556 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
5559 * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
5560 apply pragma Linker_Section on type.
5562 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
5565 * sem_prag.adb (Error_Pragma_Ref): New.
5566 (Process_Convention): Specialized message for non-local
5567 subprogram renaming. Detect the problem in homonyms as well.
5569 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
5572 * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
5573 * sem_ch12.adb (Instantiate_Object): Use it.
5574 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
5575 storage pool denotes a variable as per RM 13.11(15).
5577 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
5579 * sem_util.ads, sem_util.adb (In_Subprogram): New function.
5580 * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
5582 2008-04-14 Rolf Ebert <rolf.ebert.gcc@gmx.de>
5585 * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
5586 line endings even on non-Unix platforms.
5588 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
5591 * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
5592 renaming information.
5594 2008-04-13 Samuel Tardieu <sam@rfc1149.net>
5597 * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
5600 2008-04-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5602 * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
5603 sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
5604 snames.ads, sprint.adb, stand.ads, stringt.ads,
5605 styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
5606 switch.ads, sysdep.c, table.adb, table.ads,
5607 targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
5608 trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
5609 uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
5610 vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
5611 widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
5612 xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
5615 * sem_ch10.adb, sem_ch10.ads,
5616 sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
5617 sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
5618 sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
5619 sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
5620 sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
5621 sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
5622 sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
5623 sem_warn.ads: Fix comment typos.
5625 * s-secsta.adb, s-sequio.ads, s-shasto.ads,
5626 s-soflin.ads, s-stalib.ads, s-stausa.adb,
5627 s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
5628 s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
5629 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
5630 s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
5631 s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
5632 s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
5633 s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
5634 s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
5635 s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
5636 s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
5637 s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
5638 s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
5639 s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
5640 scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
5641 sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
5642 sem_cat.adb, sem_cat.ads: Fix comment typos.
5644 2008-04-12 Joel Sherrill <joel@oarcorp.com>
5647 * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
5649 2008-04-12 Arnaud Charlet <charlet@adacore.com>
5651 * s-linux-hppa.ads: Fix syntax errors.
5653 2008-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5655 * gnat_ugn.texi: Fix typos.
5656 * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
5657 restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
5658 s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
5659 s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
5660 s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
5661 s-finimp.adb, s-finroo.ads, s-fishfl.ads,
5662 s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
5663 s-hibaen.ads, s-htable.ads, s-imgcha.adb,
5664 s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
5665 s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
5666 s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
5667 s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
5668 s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
5669 s-osinte-darwin.ads, s-osinte-freebsd.ads,
5670 s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
5671 s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
5672 s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
5673 s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
5674 s-parame-hpux.ads, s-parame-vms-alpha.ads,
5675 s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
5676 s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
5677 s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
5678 s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
5679 s-rident.ads: Fix comment typos.
5681 2008-04-09 Samuel Tardieu <sam@rfc1149.net>
5684 * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
5685 environment if generic instance is a top-level one.
5687 2008-04-09 Doug Rupp <rupp@adacore.com>
5689 * decl.c (validate_size): Set minimum size for fat pointers same as
5690 access types. Code clean ups.
5692 * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
5693 (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
5695 * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
5697 * s-crtl.ads (malloc32) New function, alias for malloc
5698 (realloc32) New function, alias for realloc
5700 * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
5702 * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
5703 allocator size is 32 and default pointer size is 64.
5704 (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
5705 lhs type if smaller, whatever the modes.
5707 * gigi.h (malloc32_decl): New macro definition
5709 * utils.c (init_gigi_decls): New malloc32_decl
5710 Various code clean ups.
5712 * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
5713 Task_Address vice System.Address.
5715 * s-taspri-vms.ads: Import System.Aux_DEC
5716 (Task_Address): New subtype of System.Aux_DEC.Short_Address
5717 (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
5719 * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
5720 Task_Address vice System.Address.
5722 * s-inmaop-vms.adb: Import System.Task_Primitives
5723 (To_Address): Unchecked convert to Task_Address vice System.Address
5725 * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
5727 (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
5728 (To_Address) Unchecked convert to Task_Address vice System.Address
5730 * s-tpopde-vms.adb: Remove unnecessary warning pragmas
5732 * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
5734 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5736 * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
5737 (fdesc_type_node): Define.
5738 (null_fdesc_node): Likewise.
5739 * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
5740 uses descriptors for vtables and the type comes from a dispatch table,
5741 return the descriptor type.
5742 * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
5743 uses descriptors for vtables and the type comes from a dispatch table,
5744 build a descriptor in the static case and copy the existing one in the
5746 (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
5747 the type is a pointer-to-subprogram coming from a dispatch table,
5748 return the null descriptor.
5749 <N_Unchecked_Type_Conversion>: If the target uses descriptors for
5750 vtables, the source type is the descriptor type and the target type
5751 is a pointer type, first build the pointer.
5752 * utils.c (init_gigi_decls): If the target uses descriptors for vtables
5753 build the descriptor type and the null descriptor.
5755 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5757 * decl.c (prepend_attributes): Fix typo.
5758 * trans.c (Pragma_to_gnu): Likewise.
5759 * utils.c (gnat_genericize): Likewise.
5761 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5762 Richard Kenner <kenner@adacore.com>
5764 * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
5765 * decl.c (gnat_to_gnu_entity): Adjust for above change.
5766 <E_Record_Type>: Try to get a better form of the component for
5767 packing, even if it has an integral mode.
5768 <E_Record_Subtype>: Likewise.
5769 * trans.c (gnat_to_gnu): Do not require BLKmode for the special
5770 exception suppressing the final conversion between record types.
5772 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5774 * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
5775 alignment for space, promote the alignment of non-scalar variables with
5776 no size and alignment.
5777 * gigi.h (gnat_types_compatible_p): Declare.
5778 * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
5779 * trans.c (gnat_to_gnu): Revert revision 129339 change. Minor cleanup.
5780 * utils.c (gnat_types_compatible_p) : New predicate.
5781 (convert): Use it throughout to test for cases where a mere view
5782 conversion is sufficient.
5783 * utils2.c (build_binary_op): Minor tweaks.
5784 (build_unary_op): Likewise.
5786 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5788 * decl.c (adjust_packed): Expand comment.
5790 2008-04-08 Arnaud Charlet <charlet@adacore.com>
5792 * s-tasuti.ads: Use Task_Address instead of System.Address.
5794 * makeutl.adb (Path_Or_File_Name): New function
5796 * nlists.ads, itypes.ads: Update comments.
5798 * s-crtl.ads (malloc32, realloc32): New functions.
5800 * s-auxdec.ads (Short_Address_Size): New constant.
5802 * a-taside.adb, s-tasdeb.adb: Use Task_Address.
5804 * s-ststop.ads, s-ststop.adb: New file.
5806 * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
5809 2008-04-08 Pascal Obry <obry@adacore.com>
5811 * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
5812 (Stop_Bits_Number): New type.
5813 (Parity_Check): Likewise.
5814 (Set): Add parameter to set the number of stop bits and
5815 the parity. Parameter timeout is now a duration instead
5818 * g-sercom-linux.adb:
5819 Implement the stop bits and parity support for GNU/Linux.
5820 Fix handling of timeout, it must be given in tenth of seconds.
5822 * g-sercom-mingw.adb:
5823 Implement the stop bits and parity support for Windows.
5824 Use new s-win32.ads unit instead of declaring Win32 services
5825 directly into this body.
5826 Update handling of timeout as now a duration.
5828 * s-win32.ads, s-winext.ads: New files.
5830 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
5831 Arnaud Charlet <charlet@adacore.com>
5833 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
5835 s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
5836 s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
5838 * s-osinte-lynxos-3.ads,
5839 (Alternate_Stack): Remove when not needed. Simplify declaration
5841 (Alternate_Stack_Size): New constant.
5843 s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
5844 'Unrestricted_Access.
5846 * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
5847 s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
5848 s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
5849 s-osinte-solaris.ads, s-osinte-vms.ads
5850 (SA_ONSTACK): New constant.
5851 (stack_t): New record type.
5852 (sigaltstack): New imported function.
5853 (Alternate_Stack): New imported variable.
5854 (Alternate_Stack_Size): New constant.
5856 * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
5858 * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
5859 s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
5860 s-taspri-vms.ads (Task_Address): New subtype of System.Address
5861 (Task_Address_Size): New constant size of System.Address
5862 (Alternate_Stack_Size): New constant.
5864 * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
5865 (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
5866 Establish the alternate stack if the platform makes use of n alternate
5867 signal stack for stack overflows.
5868 (Create_Task): Take into account the alternate stack in the stack size.
5869 (Initialize): Save the address of the alternate stack into the ATCB for
5870 the environment task.
5871 (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
5873 * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
5875 * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
5877 * s-intman-posix.adb:
5878 (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
5879 alternate signal stack for stack overflows.
5881 * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
5882 x86-64, adjust the saved value of the stack pointer if the signal was
5883 raised by a stack checking probe.
5884 (HP-UX section): Use global __gnat_alternate_stack as signal handler
5885 stack and only for SIGSEGV.
5886 (Linux section): Likewise on x86 and x86-64.
5888 (__gnat_map_signal): Now static.
5889 (__gnat_error_handler): Not static any more.
5890 (__gnat_adjust_context_for_raise): New function. Signal context
5891 adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
5892 propagation circuitry.
5893 (__gnat_error_handler): Second argument of a sigaction handler is a
5894 pointer, not an int, and is unused.
5895 Adjust signal context before mapping to exception.
5896 Install signal handlers for LynxOS case.
5898 * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
5899 (Task_Id): Set size to Task_Address_Size
5900 (To_Task_id): Unchecked convert from Task_Address vice System.Address
5901 (To_Address): Unchecked convert to Task_Address vice System.Address
5903 * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
5904 address into the ATCB if the platform makes use of an alternate signal
5905 stack for stack overflows.
5906 (Free_Task): Add call to Finalize_Attributes_Link.
5907 Add argument Relative_Deadline to pass the value specified for
5908 the task. This is not yet used for any target.
5910 * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
5911 the value specified for the task.
5913 2008-04-08 Arnaud Charlet <charlet@adacore.com>
5915 (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
5916 (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
5917 s-vxwext-rtp.adb): New files.
5919 * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
5920 Minor updates to accomodate changes above.
5922 2008-04-08 Pascal Obry <obry@adacore.com>
5924 * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
5925 s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
5926 Use new s-win32.ads unit instead of declaration
5927 from s-osinte-mingw.ads.
5929 * s-osinte-mingw.ads:
5930 Move all non tasking based interface to s-win32.ads.
5932 * s-osprim-mingw.adb:
5933 Remove duplicated declarations and use s-win32.ads
5936 2008-04-08 Vincent Celier <celier@adacore.com>
5937 Arnaud Charlet <charlet@adacore.com>
5939 * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
5940 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
5941 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
5942 mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
5943 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
5945 * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
5946 mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
5947 mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
5948 mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
5949 mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
5950 mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
5951 mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
5952 mlib-tgt-specific-mingw.adb: New names.
5955 On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
5957 (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
5958 Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
5959 Minor updates for VMS
5961 * gnatbl.c: Removed.
5963 2008-04-08 Thomas Quinot <quinot@adacore.com>
5965 * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
5966 g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
5967 gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
5968 a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
5969 s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
5970 ASCII.NUL throughout.
5972 2008-04-08 Arnaud Charlet <charlet@adacore.com>
5973 Matthew Heaney <heaney@adacore.com>
5975 * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
5978 * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
5979 a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
5980 to convention for non-RM specs.
5981 Add descriptive header, and documented each operation
5982 document each operation
5984 2008-04-08 Robert Dewar <dewar@adacore.com>
5985 Bob Duff <duff@adacore.com>
5986 Gary Dismukes <dismukes@adacore.com>
5987 Ed Schonberg <schonberg@adacore.com>
5989 * alloc.ads: Add entries for Obsolescent_Warnings table
5991 * einfo.ads, einfo.adb: Minor reformatting.
5992 (Is_Discriminal): New subprogram.
5993 (Is_Prival): New subprogram.
5994 (Is_Protected_Component): New subprogram.
5995 (Is_Protected_Private): Removed.
5996 (Object_Ref, Set_Object_Ref): Removed.
5997 (Prival, Set_Prival): Change assertion.
5998 (Privals_Chain, Set_Privals_Chain): Removed.
5999 (Prival_Link, Set_Prival_Link): New subprogram.
6000 (Protected_Operation, Set_Protected_Operation): Removed.
6001 (Protection_Object, Set_Protection_Object): New subprogram.
6002 (Write_Field17_Name): Remove case for Object_Ref.
6003 (Write_Field20_Name): Add case for Prival_Link.
6004 (Write_Field22_Name): Remove case for Protected_Operation,
6006 Add case for Protection_Object.
6007 (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
6009 (Overlays_Constant): New flag
6010 (Is_Constant_Object): New predicate
6011 (Is_Standard_Character_Type): New predicate
6012 (Optimize_Alignment_Space): New flag
6013 (Optimize_Alignment_Time): New flag
6014 (Has_Postconditions): New flag
6015 (Obsolescent_Warrning): Field removed
6016 (Spec_PPC_List): New field
6017 (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
6018 subprograms to get and set the relative deadline associated to a task.
6020 * exp_attr.adb (May_Be_External_Call): Account for the case where the
6021 Access attribute is part of a named parameter association.
6022 (Expand_Access_To_Protected_Op): Test for the attribute occurring
6023 within an init proc and use that directly as the scope rather than
6024 traversing up to the protected operation's enclosing scope. Only apply
6025 assertion on Is_Open_Scopes in the case the scope traversal is done.
6026 For the init proc case use the address of the first formal (_init) as
6027 the protected object reference.
6028 Implement Invalid_Value attribute
6029 (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
6030 contents of the dispatch table there is no need to duplicate the
6031 itypes associated with record types (i.e. the implicit full view
6033 Implement Enum_Val attribute
6034 (Expand_N_Attribute_Reference, case Old): Properly handle appearence
6035 within _Postconditions procedure
6036 (Expand_N_Attribute_Reference, case Result): Implement new attribute
6038 * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
6039 a return statement calls a function that is not available in
6040 configurable runtime.
6041 (Analyze_If_Statement): don't optimize simple True/False cases in -O0
6042 (Expand_Non_Function_Return): Generate call to _Postconditions proc
6043 (Expand_Simple_Function_Return): Ditto
6045 * frontend.adb: Add call to Sem_Aux.Initialize
6047 * sem_aux.ads, sem_aux.adb: New file.
6049 * par-prag.adb: Add entries for pragmas Precondition/Postcondition
6050 Add new Pragma_Relative_Deadline.
6051 Add support for pragmas Check and Check_Policy
6053 * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
6054 (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
6055 (Analyze_Attribute): In case of attributes 'Alignment and 'size add
6056 missing check because they are not allowed in CPP tagged types.
6057 Add Sure parameter to Note_Possible_Modification calls
6058 Add implementation of Invalid_Value attribute
6059 Implement new attribute Has_Tagged_Values
6060 Implement Enum_Val attribute
6061 (Analyze_Attribute, case Range): Set Name_Req True for prefix of
6062 generated attributes.
6063 (Analyze_Attribute, case Result): If prefix of the attribute is
6064 overloaded, it always resolves to the enclosing function.
6065 (Analyze_Attribute, case Result): Properly deal with analysis when
6066 Postconditions are not active.
6067 (Resolve_Attribute, case Result): Properly deal with appearence during
6068 preanalysis in spec.
6069 Add processing for attribute Result
6071 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
6073 (Analyze_Subprogram_Body): Install private_with_clauses when the body
6075 (Check_Inline_Pragma): recognize an inline pragma that appears within
6076 the subprogram body to which it applies.
6077 (Analyze_Function_Return): Check that type of the expression of a return
6078 statement in a function with a class-wide result is not declared at a
6079 deeper level than the function.
6080 (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
6081 (Verify_Overriding_Indicator): Handle properly subprogram bodies for
6082 user- defined operators.
6083 (Install_Formals): Moved to spec to allow use from Sem_Prag for
6084 analysis of precondition/postcondition pragmas.
6085 (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
6086 Last_Formal, along with lots of comments on what this is about
6087 (Analyze_Subprogram_Body): Fix case where we move entities from the
6088 spec to the body when there are no body entities (now possible with
6089 precondition and postcondition pragmas).
6090 (Process_PPCs): New procedure
6091 (Analyze_Subprogram_Body): Add call to Process_PPCs
6093 * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
6095 (Pop_Scope): Restore Check_Policy_List on scope exit
6096 (Push_Scope): Save Check_Policy_List on scope entry
6097 Change name In_Default_Expression => In_Spec_Expression
6098 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
6099 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
6100 (Analyze_Object_Renaming): Allow 'Reference as object
6101 (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
6102 (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
6103 of restriction identifier.
6104 Add Sure parameter to Note_Possible_Modication calls
6106 * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
6107 Don't check for primitive operations when calling Rep_Item_Too_Late.
6108 (Process_Import_Or_Interface): Do not place flag on formal
6110 (Analyze_Pragma, case Export): If the entity is a deferred constant,
6111 propagate information to full view, which is the one elaborated by the
6113 (Make_Inline): the pragma is effective if it applies to an internally
6114 generated subprogram declaration for a body that carries the pragma.
6115 (Analyze_Pragma, case Optimize_Alignment): Set new flag
6116 Optimize_Alignment_Local.
6117 (Analyze_PPC_In_Decl_Part): New procedure
6118 (Get_Pragma_Arg): Moved to outer level
6119 (Check_Precondition_Postcondition): Change to allow new visibility
6120 rules for package spec
6121 (Analyze_Pragma, case Check_Policy): Change placement rules to be
6122 same as pragma Suppress/Unsuppress.
6123 Change name In_Default_Expression => In_Spec_Expression
6124 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
6125 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
6126 (Check_Precondition_Postcondition): Do proper visibility preanalysis
6127 for the case of these pragmas appearing in the spec.
6128 (Check_Enabled): New function
6129 (Initialize): New procedure
6130 (Tree_Read): New procedure
6131 (Tree_Write): New procedure
6132 (Check_Precondition_Postcondition): New procedure
6133 Implement pragmas Check and Check_Policy
6134 Merge Assert processing with Check
6136 * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
6137 New warning flag -gnatw.e
6139 * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
6140 returning whether a task (or main procedure) has a pragma
6142 (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
6143 (or main procedure) has a pragma Relative_Deadline.
6144 Add Next_Pragma field to N_Pragma node
6145 (PPC_Enabled): New flag
6146 (Next_Pragma): Now used for Pre/Postcondition processing
6148 * snames.h, snames.ads, snames.adb: New standard name
6150 Add entry for 'Invalid_Value attribute
6151 Add entry for new attribute Has_Tagged_Values
6152 Add entry for Enum_Val attribute
6153 Add new standard names Aggregate, Configuration and Library.
6156 Add Pragma_Precondition
6157 Add Pragma_Postcondition
6158 Add Attribute_Result
6159 New standard name Archive_Builder_Append_Option
6160 (Preset_Names): Add _relative_deadline and relative_deadline definitions
6161 There was also a missing non_preemptive_within_priorities.
6162 (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
6164 Add support for pragmas Check and Check_Policy
6166 * tree_gen.adb: Call Sem_Aux.Tree_Write
6168 * tree_in.adb: Call Sem_Aux.Tree_Read
6170 * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
6173 * exp_intr.adb (Expand_Source_Info): New Build_Location calling
6176 * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
6177 (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
6179 (Expand_Pragma_Check): New procedure
6181 * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
6184 * sinfo.adb (PPC_Enabled): New flag
6186 2008-04-08 Robert Dewar <dewar@adacore.com>
6187 Gary Dismukes <dismukes@adacore.com>
6188 Javier Miranda <miranda@adacore.com>
6189 Ed Schonberg <schonberg@adacore.com>
6191 * fe.h: Remove global Optimize_Alignment flag, no longer used
6193 * layout.adb: Test Optimize_Alignment flags rather than global switch
6195 * lib.ads, lib.adb: New OA_Setting field in library record
6197 * lib-load.adb: New OA_Setting field in library record
6199 * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
6200 units mentioned in limited_with_ clauses in the ali file, with an
6202 New Ox fields in U line
6204 * opt.adb: New flag Optimize_Alignment_Local
6205 (Check_Policy_List[_Config]): New flags
6207 * opt.ads (Invalid_Value_Used): New flag
6208 New switch Optimize_Alignment_Local
6209 (Warn_On_Parameter_Order): New flag
6210 (Check_Policy_List[_Config]): New flags
6212 * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
6213 limited_with clauses.
6214 New data structures for Optimize_Alignment
6216 * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
6218 (Check_Consistent_Optimize_Alignment): Rework for new structure
6219 (Check_Consistent_Restrictions): Fix incorrect error message
6221 sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
6222 created class-wide type (to the Parent field of the specific type).
6223 (Install_Siblings): Handle properly private_with_clauses on subprogram
6224 bodies and on generic units.
6225 (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
6226 illegal limited_with_clause that names a non-existent package.
6227 (Check_Body_Required): Determine whether a unit named a limited_with
6228 clause needs a body.
6229 (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
6230 Capture Optimize_Alignment settings to set new OA_Setting field in
6232 (Build_Limited_Views): Include task and protected type declarations.
6234 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
6235 case of a possible constant redeclaration where the current object is
6236 an entry index constant.
6237 (Analyze_Object_Declaration): Generate an error in case of CPP
6238 class-wide object initialization.
6239 (Analyze_Object_Declaration): Add extra information on warnings for
6240 declaration of unconstrained objects.
6241 (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
6242 conflicts with the setting of Stored_Constraint in the case where the
6243 access type entity has already been created as an E_Incomplete_Type due
6244 to a limited with clause.
6245 Use new Is_Standard_Character_Type predicate
6246 (Analyze_Object_Declaration): Apply access_constant check only after
6247 expression has been resolved, given that it may be overloaded with
6248 several access types.
6249 (Constant_Redeclaration): Additional legality checks for deferred
6250 constant declarations tha involve anonymous access types and/or null
6251 exclusion indicators.
6252 (Analyze_Type_Declaration): Set Optimize_Alignment flags
6253 (Analyze_Subtype_Declaration): Ditto
6254 (Analyze_Object_Declaration): Ditto
6255 (Analyze_Object_Declaration): Don't count tasks in generics
6256 Change name In_Default_Expression => In_Spec_Expression
6257 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
6258 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
6259 (Process_Discriminants): Additional check for illegal use of default
6260 expressions in access discriminant specifications in a type that is not
6262 (Check_Abstract_Overriding): If an inherited function dispaches on an
6263 access result, it must be overridden, even if the type is a null
6265 (Derive_Subprogram): The formals of the derived subprogram have the
6266 names and defaults of the parent subprogram, even if the type is
6267 obtained from the actual subprogram.
6268 (Derive_Subprogram): In the presence of interfaces, a formal of an
6269 inherited operation has the derived type not only if it descends from
6270 the type of the formal of the parent operation, but also if it
6271 implements it. This is relevant for the renamings created for the
6272 primitive operations of the actual for a formal derived type.
6273 (Is_Progenitor): New predicate, to determine whether the type of a
6274 formal in the parent operation must be replaced by the derived type.
6276 * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
6277 predicate recursive to handle components that have a user-defined
6278 Initialize procedure. Handle controlled derived types whose ancestor
6279 has a user-defined Initialize procedured.
6280 (Note_Possible_Modification): Add Sure parameter, generate warning if
6281 sure modification of constant
6282 Use new Is_Standard_Character_Type predicate
6283 (Find_Parameter_Type): when determining whether a protected operation
6284 implements an interface operation, retrieve the type of the formal from
6285 the entity when the formal is an access parameter or an
6286 anonymous-access-to-subprogram.
6287 Move Copy_Parameter_List to sem_util, for use when building stubbed
6289 (Has_Access_Values): Tagged types now return False
6290 (Within_HSS_Or_If): New procedure
6291 (Set_Optimize_Alignment_Flags): New procedure
6292 Change name In_Default_Expression => In_Spec_Expression
6293 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
6294 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
6296 2008-04-08 Tristan Gingold <gingold@adacore.com>
6298 * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
6300 2008-04-08 Tristan Gingold <gingold@adacore.com>
6304 * cuintp.c: Fix 16 bits issue for AVR.
6305 On AVR, integer is 16 bits, so it can't be used to do math with
6307 So use long_integer instead.
6309 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6311 * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
6312 System.OS_Primitives.
6313 Change type of various constants, parameters and local variables from
6314 Time to representation type OS_Time.
6315 (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
6316 Remove the declaration of constant Mili_F from several routines. New
6317 body for internal package Conversions_Operations.
6318 (Time_Of): Add default parameters for several formals.
6320 * a-caldel.adb: Minor reformatting
6322 * a-calend.ads, a-calend.adb: New body for internal package
6323 Conversions_Operations.
6324 (Time_Of): Add default parameters for several formals.
6326 * Makefile.rtl: Add a-ststop
6327 Add Ada.Calendar.Conversions to the list of runtime files.
6330 * a-calcon.adb, a-calcon.ads: New files.
6332 2008-04-08 Jose Ruiz <ruiz@adacore.com>
6333 Tristan Gingold <gingold@adacore.com>
6335 * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
6336 (Install_Restricted_Handlers): New procedure
6337 which is a simplified version of Install_Handlers that does not store
6338 previously installed.
6340 * s-interr-vxworks.adb: Fix ACATS cxc3001
6341 On VxWorks interrupts can't be detached.
6342 (Install_Restricted_Handlers): New procedure.
6344 * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
6347 2008-04-08 Olivier Hainque <hainque@adacore.com>
6349 * s-intman-vxworks.ads, s-intman-vxworks.adb
6350 (Map_And_Raise_Exception): Remove. Was an import of only part of the
6351 required services already implemented elsewhere.
6352 (Notify_Exception): Delete body, import __gnat_error_handler instead.
6353 (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
6354 argument passed to the handler, which we need for ZCX propagation
6357 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6359 * adaint.h, adaint.c (__gnat_current_time_string): New routine.
6361 * g-timsta.adb, g-timsta.ads: New files.
6363 2008-04-08 Robert Dewar <dewar@adacore.com>
6365 * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
6366 (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
6367 (Raise_Exception_Always): Fix documentation accordingly
6369 2008-04-08 Robert Dewar <dewar@adacore.com>
6371 * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
6374 * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
6377 2008-04-08 Javier Miranda <miranda@adacore.com>
6378 Robert Dewar <dewar@adacore.com>
6379 Ed Schonberg <schonberg@adacore.com>
6381 * a-tags.adb (Register_Interface_Offset): New subprogram.
6382 (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
6383 (To_Predef_Prims_Table_Ptr): Removed.
6384 (Acc_Size): Removed.
6385 (To_Acc_Size): Removed.
6386 (Parent_Size): Modified to the call the subprogram returning the size of
6387 the parent by means of the new TSD component Size_Func.
6389 * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
6390 (DT_Offset_To_Top_Offset): New constant value that is used to generate
6391 code referencing the Offset_To_Top component of the dispatch table's
6393 (Prim_Ptr): New declaration of access to procedure. Used to avoid the
6394 use of 'address to initialize dispatch table slots.
6395 (Size_Func): New component of the TSD. Used by the run-time to call the
6396 size primitive of the tagged type.
6398 * checks.adb (Apply_Access_Check): Avoid check when accessing the
6399 Offset_To_Top component of a dispatch table.
6400 (Null_Exclusion_Static_Checks): If the non-null access type appears in a
6401 deferred constant declaration. do not add a null expression, to prevent
6402 spurious errors when full declaration is analyzed.
6403 (Apply_Discriminant_Check): If both discriminant constraints share a
6404 node which is not static but has no side effects, do not generate a
6405 check for that discriminant.
6406 (Generate_Index_Checks): Set Name_Req to true in call to duplicate
6407 subexpr, since the prefix of an attribute is a name.
6409 * checks.ads: Fix nit in comment.
6411 * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
6412 and body of predefined primitives in case of CPP tagged type
6414 (Freeze_Type): Deal properly with no storage pool case
6415 (Make_Predefined_Primitive_Specs): Generate specification of abstract
6416 primitive Deep_Adjust if a nonlimited interface is derived from a
6418 (Build_Dcheck_Functions): Create discriminant-checking functions only
6419 for variants that have some component(s).
6420 (Build_Slice_Assignment): In expanded code for slice assignment, handle
6421 properly the case where the slice bounds extend to the last value of the
6422 underlying representation.
6423 (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
6424 (Is_Variable_Size_Record): An array component has a static size if
6425 index bounds are enumeration literals.
6427 * exp_disp.adb (Make_DT): Use the first subtype to determine whether
6428 an external tag has been specified for the type.
6429 (Building_Static_DT): Add missing support for private types.
6430 (Make_DT): Add declaration of Parent_Typ to ensure consistent access
6431 to the entity associated with the parent of Typ. This is done to
6432 avoid wrong access when the parent is a private type.
6433 (Expand_Interface_Conversion): Improve error message when the
6434 configurable runtime has no support for dynamic interface conversion.
6435 (Expand_Interface_Thunk): Add missing support to interface types in
6436 configurable runtime.
6437 (Expand_Dispatching_Call): remove obsolete code.
6438 (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
6439 ensure that all subtypes and aggregates associated with dispatch
6440 tables have the attribute Is_Dispatch_Table_Entity set to true.
6441 (Register_Primitive): Rename one variable to improve code reading.
6442 Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
6443 of the pointer to the 'size primitive in the TSD.
6445 * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
6446 (RE_Offset_To_Top_Ptr): New entity.
6447 (RE_Register_Interface_Offset): New entity.
6448 (RE_Set_Dynamic_Offset_To_Top): New entity.
6449 (RE_Set_Offset_To_Top): Removed entity.
6450 (RE_Prim_Ptr): New entity
6451 (RE_Size_Func): New entity
6452 (RE_Size_Ptr): New entity
6453 (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
6454 (Ada_Dispatching_Child): Define this new subrange.
6455 (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
6456 RE_Time_Span, and RE_Time_Span_Zero).
6457 (RE_Unit_Table): Add new required run-time calls
6459 * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
6462 * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
6463 (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
6464 initializes the Offset_To_Top component of a dispatch table.
6465 (Build_Predef_Prims): Removed.
6466 (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
6468 (Build_Set_Size_Function): New subprogram.
6470 * exp_ch13.adb: Do not generate storage variable for storage_size zero
6471 (Expand): Handle setting/restoring flag Inside_Freezing_Actions
6473 2008-04-08 Robert Dewar <dewar@adacore.com>
6475 * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
6476 computing Fore when Exp > 0
6478 2008-04-08 Robert Dewar <dewar@adacore.com>
6480 * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
6482 * errout.adb: Remove Big_String_Ptr declarations (now in Types)
6483 Change name Is_Style_Msg to Is_Style_Or_Info_Msg
6485 * fmap.adb: Remove Big_String declarations (now in Types)
6486 (No_Mapping_File): New Boolean global variable
6487 (Initialize): When mapping file cannot be read, set No_Mapping_File to
6489 (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
6490 tables were empty before adding entries, open the mapping file
6491 with Truncate = True, instead of delete/re-create.
6493 * fname-sf.adb: Remove Big_String declarations (now in Types)
6495 * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
6496 s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
6499 * table.ads: Add for Table_Ptr'Storage_Size use 0
6501 * types.ads: Add Big_String declarations
6502 Add Size_Clause of zero for big pointer types
6504 2008-04-08 Vincent Celier <celier@adacore.com>
6506 * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
6507 (Usage): Add line for switch --subdirs=
6508 Add new switch -eL, to follow symbolic links when processing project
6511 * gnatcmd.adb: Process switches -eL and --subdirs=
6512 (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
6513 Program_Name to get proper tool names when AAMP_On_Target is set.
6514 (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
6515 AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
6516 Osint.Program_Name).
6518 * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
6519 (Usage): Add lines for switches -eL and --subdirs=
6521 * makeusg.adb: Add line for switch --subdirs=
6524 (Source_Data): New Boolean component Compiled, defaulted to True
6525 (Empty_File_Name: New global variable in private part, initialized in
6526 procedure Initialize.
6527 (Subdirs_Option): New constant string
6528 (Subdirs): New String_Ptr global variable
6529 (Language_Config): New component Include_Compatible_Languages
6530 (Project_Qualifier): New type for project qualifiers
6531 (Project_Data): New component Qualifier
6532 (Project_Configuration): New component Archive_Builder_Append_Option
6534 * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
6535 another imported project indicate the name of this imported project.
6536 (Check_File): When a unit is in two project files, indicate the project
6537 names and the paths of the source files for each project.
6538 (Add_Source): Set Compiled to False if compiler driver is empty. Only
6539 set object, dependency and switches file names if Compiled is True.
6540 (Process_Compiler): Allow the empty string for value of attribute Driver
6541 (Get_Directories): When Subdirs is not null and Object_Dir is not
6542 specified, locate and create if necessary the actual object dir.
6543 (Locate_Directory): When Subdirs is not empty and Create is not the
6544 empty string, locate and create if necessary the actual directory
6545 as a subdirectory of directory Name.
6546 (Check_Library_Attributes.Check_Library): Allow a project where the only
6547 "sources" are header files of file based languages to be imported by
6548 library projects, in multi-language mode (gprbuild).
6549 (Check_Library_Attributes.Check_Library): In multi-language mode
6550 (gprbuild), allow a library project to import a project with no
6551 sources, even when this is not declared explicitly.
6552 (Check_If_Externally_Built): A virtual project extending an externally
6553 built project is also externally built.
6554 (Check_Library_Attributes): For a virtual project extending a library
6555 project, inherit the library directory.
6556 (Process_Project_Level_Array_Attributes): Process new attribute
6557 Inherit_Source_Path.
6558 For projects with specified qualifiers "standard", "library" or
6559 "abstract", check that the project conforms to the qualifier.
6560 (Process_Project_Level_Simple_Attributes): Process new attribute
6561 Archive_Builder_Append_Option.
6563 * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
6564 (Normalize_Compiler_Switches): Only keep compiler switches that are
6565 passed to gnat1 by the gcc driver and that are stored in the ALI file
6567 Do not take into account switc -save-temps
6569 * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
6570 gprmake is called with -eL.
6571 (Scan_Arg): Recognize switch -eL
6572 (Usage): Add line for switch -eL
6574 * prj.adb (Initialize): Initialize Empty_File_Name
6575 (Project_Empty): New component Qualifier
6577 * prj-attr.ads, prj-attr.adb: New project level attribute
6578 Inherit_Source_Path.
6579 New project level attribute Archive_Builder_Append_Option
6581 * prj-dect.adb: Replace System.Strings by GNAT.Strings.
6583 * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
6584 <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
6585 upward compatibility.
6587 * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
6588 each Trying ..." on different lines.
6589 (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
6590 is "configuration" when not in configuration. Fail when in configuration
6591 when a specified qualifier is other than "configuration".
6593 * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
6594 full associative array together.
6595 (Recursive_Process): Put the project qualifier in the project data
6597 * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
6598 (Set_Project_Qualifier_Of): New procedure
6600 2008-04-08 Robert Dewar <dewar@adacore.com>
6602 * errout.ads: Update comments for new handling of info: messages
6604 * erroutc.adb (Matches): New procedure
6605 (Warning_Specifically_Suppressed): Modified to handle multiple * chars
6606 (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
6607 info messages as well as style messages.
6609 * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
6611 * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
6613 (Check_A_Call): Special "info: " warnings now have ? in the text
6614 (Elab_Warning): Use info message in static case
6616 2008-04-08 Ed Schonberg <schonberg@adacore.com>
6618 * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
6619 whether an array aggregate with static bounds and scalar components
6620 should be expanded into a static constant.
6622 2008-04-08 Gary Dismukes <dismukes@adacore.com>
6623 Ed Schonberg <schonberg@adacore.com>
6624 Robert Dewar <dewar@adacore.com>
6626 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
6627 Has_Stream_Attribute_ Definition when checking for available stream
6628 attributes on parameters of a limited type in Ada 2005. Necessary for
6629 proper recognition of visible stream attribute clauses.
6630 (Has_Stream_Attribute_Definition): If the type is derived from a
6631 private type, then use the derived type's underlying type for checking
6632 whether it has stream attributes.
6633 (Validate_Object_Declaration): The check for a user-defined Initialize
6634 procedure applies also to types with controlled components or a
6635 controlled ancestor.
6636 Reject an object declaration in a preelaborated unit if the type is a
6637 controlled type with an overriding Initialize procedure.
6638 (Validate_Remote_Access_To_Class_Wide_Type): Return without further
6639 checking when the parent of a dereference is a selected component and
6640 the name has not been analyzed.
6642 * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
6643 prefixes that are invalid explicit dereferences of remote
6644 access-to-class-wide values, first checking whether the selected
6645 component is a prefixed form of call to a tagged operation.
6646 (Analyze_Call): Remove code that issues an error for limited function
6647 calls in illegal contexts, as we now support all of the contexts that
6648 were forbidden here.
6649 Allow a function call that returns a task.and appears as the
6650 prefix of a selected component.
6651 (Analyze_Reference): Give error message if we try to make a 'Reference
6652 for an object that is atomic/aliased without its type having the
6653 corresponding attribute.
6654 (Analyze_Call): Remove condition checking for attributes to allow
6655 calls to functions with inherently limited results as prefixes of
6656 attributes. Remove related comment about Class attributes.
6657 (Analyze_Selected_Component): If the prefix is a remote type, check
6658 whether this is a prefixed call before reporting an error.
6659 (Complete_Object_Operation): If the controlling formal is an access to
6660 variable reject an actual that is a constant or an access to one.
6661 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
6662 primitive operations from base type.
6664 * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
6666 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
6667 (Expand_N_Selected_Component): Test for prefix that is a build-in-place
6668 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
6669 (Expand_N_Slice): Test for prefix that is a build-in-place function call
6670 and call Make_Build_In_Place_Call_In_Anonymous_Context.
6671 (Analyze_Call): Remove code that issues an error for limited function
6672 calls in illegal contexts, as we now support all of the contexts that
6673 were forbidden here.
6674 New calling sequence for Get_Simple_Init_Val
6675 (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
6676 (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
6678 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6679 Ed Schonberg <schonberg@adacore.com>
6680 Robert Dewar <dewar@adacore.com>
6682 * exp_ch2.adb: Minor reformatting.
6683 (Expand_Entry_Index_Parameter): Set the type of the identifier.
6684 (Expand_Entry_Reference): Add call to Expand_Protected_Component.
6685 (Expand_Protected_Component): New routine.
6686 (Expand_Protected_Private): Removed.
6687 Add Sure parameter to Note_Possible_Modification calls
6689 * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
6690 generated subprogram declaration must inherit the overriding indicator
6691 from the instantiation node.
6692 (Validate_Access_Type_Instance): If the designated type of the actual is
6693 a limited view, use the available view in all cases, not only if the
6694 type is an incomplete type.
6695 (Instantiate_Object): Actual is illegal if the formal is null-excluding
6696 and the actual subtype does not exclude null.
6697 (Process_Default): Handle properly abstract formal subprograms.
6698 (Check_Formal_Package_Instance): Handle properly defaulted formal
6699 subprograms in a partially parameterized formal package.
6700 Add Sure parameter to Note_Possible_Modification calls
6701 (Validate_Derived_Type_Instance): if the formal is non-limited, the
6702 actual cannot be limited.
6703 (Collect_Previous_Instances): Generate instance bodies for subprograms
6706 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
6708 Add Sure parameter to Note_Possible_Modification calls
6709 (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
6710 (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
6711 constant overlaid by variable and issue warning.
6712 Use new Is_Standard_Character_Type predicate
6713 (Analyze_Record_Representation_Clause): Check that the specified
6714 Last_Bit is not less than First_Bit - 1.
6715 (Analyze_Attribute_Definition_Clause, case Address): Check for
6716 self-referential address clause
6718 * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
6719 detection mechanism when the lhs is a prival.
6720 (Analyze_Assignment): Call Check_Unprotected_Access to detect
6721 assignment of a pointer to protected data, to an object declared
6722 outside of the protected object.
6723 (Analyze_Loop_Statement): Check for unreachable code after loop
6724 Add Sure parameter to Note_Possible_Modication calls
6725 Protect analysis from previous syntax error such as a scope mismatch
6727 (Analyze_Assignment_Statement): The assignment is illegal if the
6728 left-hand is an interface.
6730 * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
6731 violation of restriction No_Implicit_Conditionals
6732 Add Sure parameter to Note_Possible_Modication calls
6733 Use new Is_Standard_Character_Type predicate
6734 (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
6735 call as operator. Fixes problems (e.g. validity checking) which
6736 come from the result looking as though it does not come from source).
6737 (Resolve_Call): Check case of name in named parameter if style checks
6739 (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
6740 from the checking that such calls should not occur from an entry body.
6741 (Resolve_Call): If the return type of an Inline_Always function
6742 requires the secondary stack, create a transient scope for the call
6743 if the body of the function is not available for inlining.
6744 (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
6745 that are actuals for in-out formals.
6746 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
6747 primitive operations from base type.
6748 (Analyze_Selected_Component): If the context is a call to a protected
6749 operation the parent may be an indexed component prior to expansion.
6750 (Resolve_Actuals): If an actual is of a protected subtype, use its
6751 base type to determine whether a conversion to the corresponding record
6753 (Resolve_Short_Circuit): Handle pragma Check
6755 * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
6756 Use new Is_Standard_Character_Type predicate
6757 (Eval_Relational_Op): Catch more cases of string comparison
6759 2008-04-08 Robert Dewar <dewar@adacore.com>
6760 Gary Dismukes <dismukes@adacore.com>
6762 * s-rident.ads: Add No_Default_Initialization restriction
6765 (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
6766 (Set_TSS): Handle No_Default_Initialization case
6768 * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
6769 No_Default_Initialization
6770 (Expand_N_Subprogram_Body): Remove redundant initialization of out
6771 parameters when Normalize_Scalars is active.
6772 (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
6773 Fix casing error in formal parameter name in call
6774 (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
6775 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
6776 dispatching call on VM targets.
6778 2008-04-08 Gary Dismukes <dismukes@adacore.com>
6779 Thomas Quinot <quinot@adacore.com>
6781 * exp_ch7.adb (Find_Final_List): Change the test for generating a
6782 selected component from an access type's Associated_Final_Chain to
6783 check for the presence of that field, rather than assuming it exists
6784 for all named access types.
6785 (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
6786 procedure to call at the end of the generated cleanup procedure.
6787 (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
6788 and an At_End_Proc already exists in the handled sequence of statements
6789 for which cleanup actions are being expanded, the original cleanup
6790 action must be preserved.
6792 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
6793 Ed Schonberg <schonberg@adacore.com>
6794 Robert Dewar <dewar@adacore.com>
6795 Gary Dismukes <dismukes@adacore.com>
6797 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
6798 Build_Unprotected_Subprogram_Body): Generate debug info for
6799 declarations related to the handling of private data in task and
6801 (Debug_Private_Data_Declarations): New subprogram.
6802 (Install_Private_Data_Declarations): Remove all debug info flagging.
6803 This is now done by Debug_Private_Data_Declarations at the correct
6805 (Build_Simple_Entry_Call): If the task name is a function call, expand
6806 the prefix into an object declaration, and make the surrounding block a
6808 (Build_Master_Entity): An internal block is a master if it wraps a call.
6809 Code reformatting, update comments. Code clean up.
6810 (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
6811 (Replicate_Entry_Formals): If the formal is an access parameter or
6812 anonymous access to subprogram, copy the original tree to create new
6813 entities for the formals of the subprogram.
6814 (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
6815 for tasks to store the value passed using pragma Relative_Deadline.
6816 (Make_Task_Create_Call): Add the Relative_Deadline argument to the
6817 run-time call to create a task.
6818 (Build_Wrapper_Spec): If the controlling argument of the interface
6819 operation is an access parameter with a non-null indicator, use the
6820 non-null indicator on the wrapper.
6822 * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
6823 present, which it may not be in the case where the type entity is an
6824 incomplete view brought in by a limited with.
6825 (Analyze_Task_Type): Only retrieve the full view when present, which it
6826 may not be in the case where the type entity is an incomplete view brought
6827 in by a limited with.
6828 (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
6829 private components of a protected type, to prevent the generation of freeze
6830 nodes for which there is no proper scope of elaboration.
6832 * exp_util.ads, exp_util.adb
6833 (Remove_Side_Effects): If the expression is a function call that returns a
6834 task, expand into a declaration to invoke the build_in_place machinery.
6835 (Find_Protection_Object): New routine.
6836 (Remove_Side_Effects): Also make a copy of the value
6837 for attributes whose result is of an elementary type.
6838 (Silly_Boolean_Array_Not_Test): New procedure
6839 (Silly_Boolean_Array_Xor_Test): New procedure
6840 (Is_Volatile_Reference): New function
6841 (Remove_Side_Effects): Use Is_Volatile_Reference
6842 (Possible_Bit_Aligned_Component): Handle slice case properly
6844 * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
6845 case test to Exp_Util
6846 (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
6848 2008-04-08 Thomas Quinot <quinot@adacore.com>
6850 * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
6852 (Add_RACW_Features): When processing an RACW in another unit than the
6853 main unit, set Body_Decls to No_List to indicate that the bodies of
6854 the type's TSS must not be generated.
6855 (GARLIC_Support.Add_RACW_Read_Attribute,
6856 GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
6857 Body_Decls is No_List.
6858 (PolyORB_Support.Add_RACW_Read_Attribute,
6859 PolyORB_Support.Add_RACW_Write_Attribute,
6860 PolyORB_Support.Add_RACW_From_Any,
6861 PolyORB_Support.Add_RACW_To_Any,
6862 PolyORB_Support.Add_RACW_TypeCode): Same.
6863 (Transmit_As_Unconstrained): New function.
6864 (Build_Ordered_Parameters_List): Use the above to order parameters.
6865 (GARLIC_Support.Build_General_Calling_Stubs):
6866 Use the above to determine which parameters to unmarshall using 'Input
6867 at the point where their temporary is declared (as opposed to later on
6869 (PolyORB_Support.Build_General_Calling_Stubs):
6870 Use the above to determine which parameters to unmarshall using From_Any
6871 at the point where their temporary is declared (as opposed to later on
6872 with an assignment).
6874 2008-04-08 Ed Schonberg <schonberg@adacore.com>
6876 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
6877 an Input function for an access type, do not perform default
6878 initialization on the local variable that receives the value, to
6879 prevent spurious warnings when the type is null-excluding.
6881 2008-04-08 Robert Dewar <dewar@adacore.com>
6882 Ed Schonberg <schonberg@adacore.com>
6884 * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
6886 (Size_Known): Generic formal scalar types have known at compile
6887 time size, so remove check.
6888 Fix casing error in formal parameter name in call
6889 (Freeze_Subprogram): If the subprogram is a user-defined operator,
6890 recheck its overriding indication.
6892 2008-04-08 Vincent Celier <celier@adacore.com>
6894 * gnat1drv.adb: Send all messages indicating an error to standard error
6896 2008-04-08 Robert Dewar <dewar@adacore.com>
6898 * gnatbind.adb (Restriction_Could_Be_Set): New procedure
6899 (List_Applicable_Restrictions): Do not list existing restrictions
6901 2008-04-08 Thomas Quinot <quinot@adacore.com>
6903 * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
6904 add a pointer to generic sockets literature
6905 do not mention that the given example is "typical" usage.
6906 Remove obsolete comment about multicast not being supported on Windows.
6907 (Connect_Socket): Make Server mode IN rather than IN OUT
6908 since this formal is never modified.
6910 2008-04-08 Robert Dewar <dewar@adacore.com>
6912 * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
6913 the declaration for some different entity.
6914 (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
6915 list is precent (following the parent subtype indication), display
6916 appropriate "and" keyword.
6918 * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
6919 Remove unnecessary calls to Init_Size_Align and Init_Esize.
6920 Add notes on use of Parent field of an Itype
6922 2008-04-08 Ed Schonberg <schonberg@adacore.com>
6923 Robert Dewar <dewar@adacore.com>
6924 Gary Dismukes <dismukes@adacore.com>
6926 * lib-xref.adb (Is_On_LHS): Remove dead code
6927 (Output_Overriden_Op): If the overridden operation is itself inherited,
6928 list the ancestor operation, which is the one whose body or absstract
6929 specification is actually being overridden. For source navigation
6932 * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
6933 operation is primitive for the type.
6934 (Declare_Inherited_Private_Subprograms): If the new operation overrides
6935 an inherited private subprogram, set properly the Overridden_Operation
6936 attribute, for better cross-reference information.
6937 (Analyze_Package_Specification): Do late analysis of spec PPCs
6938 (Install_Private_Declaration, Uninstall_Declarations): Save/restore
6939 properly the full view and underlying full views of a private type in a
6940 child unit, whose full view is derived from a private type in a parent
6941 unit, and whose own full view becomes visible in the child body.
6943 * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
6944 primitive operation after the type has been frozen, add an explicit
6945 reference to the type and the operation, because other primitive
6946 references have been emitted already.
6947 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
6948 dispatching call on VM targets.
6950 2008-04-08 Vincent Celier <celier@adacore.com>
6951 Thomas Quinot <quinot@adacore.com>
6953 * make.adb: (Gnatmake_Called): Remove, no longer necessary
6954 (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
6955 is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
6956 (Insert_Project_Sources): Take into account index in multi-unit source
6958 After building a library project, delete all temporary files.
6959 (Initialize): Reset current output after parsing project file.
6960 (Collect_Arguments_And_Compile): Never insert in the queue the sources
6961 of library projects that are externally built.
6962 Put file name in error and inform messages if -df is used
6963 (Display): If invoked with -d7, do not display path names, but only
6966 * makeutl.ads (Path_Or_File_Name): New function
6967 (Path_Or_File_Name): New function
6969 2008-04-08 Arnaud Charlet <charlet@adacore.com>
6971 * Make-lang.in: Disable warnings during first stage of bootstrap
6973 Update dependencies.
6975 2008-04-08 Vincent Celier <celier@adacore.com>
6977 * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
6978 case to decide if ALI object file is included in library.
6979 (Build_Library): Never attempt to build a library if the project is
6982 2008-04-08 Thomas Quinot <quinot@adacore.com>
6984 * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
6985 (No_List) is defined to return Empty.
6987 2008-04-08 Jose Ruiz <ruiz@adacore.com>
6989 * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
6992 (Read_Default_Search_Dirs): Do not consider spaces as path separators
6993 because spaces may be part of legal paths.
6995 2008-04-08 Robert Dewar <dewar@adacore.com>
6997 * par-ch11.adb (P_Exception_Handler): Check indentation level for
7000 2008-04-08 Ed Schonberg <schonberg@adacore.com>
7002 * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
7003 in a type declaration, if this is not an interface declaration or
7004 private type extension.
7006 2008-04-08 Vincent Celier <celier@adacore.com>
7008 * prj-util.adb (Executable_Of): New String parameter Language. When
7009 Ada_Main is False and Language is not empty, attempt to remove the body
7010 suffix or the spec suffix of the language to get the base of the
7011 executable file name.
7012 (Put): New Boolean parameter Lower_Case, defauilted to False. When
7013 Lower_Case is True, put the value in lower case in the name list.
7014 (Executable_Of): If there is no executable suffix in the configuration,
7015 then do not modify Executable_Extension_On_Target.
7017 * prj-util.ads (Executable_Of): New String parameter Language,
7018 defaulted to the empty string.
7019 (Put): New Boolean parameter Lower_Case, defauilted to False
7021 2008-04-08 Robert Dewar <dewar@adacore.com>
7023 * scng.adb (Scan_Identifier): Handle case of identifier starting with
7024 wide character using UTF-8 encoding.
7026 2008-04-08 Javier Miranda <miranda@adacore.com>
7028 * sem.adb (Analyze): Consider case in which we analyze an empty node
7029 that was generated by a call to a runtime function that is not
7030 available under the configurable runtime.
7032 * sem.ads (Inside_Freezing_Actions): New flag.
7033 (Save_Check_Policy_List): New field in scope stack entry
7035 2008-04-08 Ed Schonberg <schonberg@adacore.com>
7036 Robert Dewar <dewar@adacore.com>
7038 * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
7039 the ancestor part of an extension aggregate for a limited type.
7040 (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
7041 enumeration index bounds.
7042 (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
7043 when array is too short.
7044 (Check_Expr_OK_In_Limited_Aggregate): Move function
7045 Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
7047 (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
7048 Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
7049 component associations.
7050 (Check_Non_Limited_Type): Moved to outer level and renamed.
7051 (Resolve_Record_Aggregate): In an extension aggregate, an association
7052 with a box initialization can only designate a component of the
7053 extension, not a component inherited from the given ancestor
7055 * sem_case.adb: Use new Is_Standard_Character_Type predicate
7057 2008-04-08 Robert Dewar <dewar@adacore.com>
7059 * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
7061 (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
7062 Properly handle case where Aft > Scale and input number is less than
7065 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
7067 * s-stoele.ads, s-soflin.ads: Move the location of
7068 Dummy_Communication_Block from System.Storage_Elements to
7071 * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
7072 emulate Communication_Block in certain scenarios.
7074 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
7076 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
7078 Add new subtype S_WWC, unchecked conversion routines From_WWC and
7080 (I_WWC, O_WWC): New routines for input and output of
7081 Wide_Wide_Character.
7083 2008-04-08 Robert Dewar <dewar@adacore.com>
7085 * stringt.adb (Write_String_Table_Entry): Handle wide characters
7088 2008-04-08 Robert Dewar <dewar@adacore.com>
7090 * styleg.adb (Check_Comment): Allow special char after -- in
7091 non-end-of-line case
7093 2008-04-08 Robert Dewar <dewar@adacore.com>
7095 * stylesw.adb: Implement -gnaty + - y options
7096 (Set_GNAT_Style_Check_Options): Includ I in style check string
7098 * stylesw.ads: Add comments for new style switch options
7100 2008-04-08 Sergey Rybin <rybin@adacore.com>
7102 * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
7103 to the set of the GNAT components needed by ASIS.
7105 2008-04-08 Bob Duff <duff@adacore.com>
7107 * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
7109 2008-04-08 Tristan Gingold <gingold@adacore.com>
7111 * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
7112 Improve error message generation.
7114 2008-04-08 Vincent Celier <celier@adacore.com>
7116 * a-direct.adb (Start_Search): Check for Name_Error before checking for
7117 Use_Error, as specified in the RM. Check if directory is open and raise
7118 Use_Error if it is not.
7120 2008-04-08 Vincent Celier <celier@adacore.com>
7121 Robert Dewar <dewar@adacore.com>
7123 * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
7124 AAMP_On_Target is set.
7126 * vms_data.ads: Add NOxxx to style check switch list
7127 Add entry COMPONENTS for -gnatVe
7128 Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
7130 (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
7131 Add qualifiers for gnatmetric coupling options
7132 Add note that -gnata enables all checks
7133 Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
7134 Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
7135 New warning flag -gnatw.e
7137 * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
7138 Add entry for -gnatyN (forgotten before)
7139 Line for new warning switch -gnatw.p
7140 New warning flag -gnatw.e
7142 * gnat_ugn.texi: Add documentation fpr project file switch -aP
7143 Document -gnaty - + y
7144 Replace occurences of "package specification" with "package spec"
7145 Define preprocessing symbols in documentation of gnatprep
7146 Clarify reason for distinguishing overflow checking
7147 Add documentation for project-aware tool switches -eL and --subdirs=
7148 Complete list of configuration pragmas
7149 Specify that, even when gnatmake switch -x is used, mains on the command
7150 line need to be sources of project files.
7151 Editing of gnatcheck/gnatmetric doc.
7152 Add documentation for -gnatw.p/-gnatw.P
7153 Add missing documentation for -fno-inline-functions.
7154 Add documentation for -gnatw.e
7156 * gnat_rm.texi: Add documentation for No_Default_Initialization
7157 Replace occurences of "package specification" with "package spec"
7158 Document use of * in Warnings Off string
7159 Update documentation of alignment/component clauses.
7160 Add documentation for Invalid_Value
7161 Document new consistency rule for Optimize_Alignment
7162 Add documentation for Precondition and Postcondition pragmas
7163 Add documentation for Check and Check_Policy pragmas
7164 Document new Enum_Val attribute
7165 Remove requirement for static string in pragma Assert
7166 Add documentation on GNAT.Time_Stamp
7168 * ug_words: add entry for -gnatVe
7169 Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
7170 Add entry for -gnatw.e
7172 * debug.adb: Add missing documentation for d.a flag
7173 Document new -gnatd.a switch.
7174 Add documentation for new gnatmake debug switch -df
7176 2008-04-08 Thomas Quinot <quinot@adacore.com>
7178 * gen-soccon.c: Bump year in copyright notices.
7180 * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
7182 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
7184 * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
7187 2008-04-08 Robert Dewar <dewar@adacore.com>
7188 Bob Duff <duff@adacore.com>
7190 * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
7191 Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
7193 * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
7195 * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
7197 * g-trasym.ads: Minor comment improvements
7199 * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
7201 * a-sequio.ads, a-direio.ads: improve message for tagged type
7203 * a-strunb.ads: Minor reformatting
7205 * a-tifiio.adb: Minor reformatting
7207 * atree.adb (Fix_Parents): Use clearer names for formals
7208 Cleanup and simplify code
7209 Use named notation in calls
7211 * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
7214 * uintp.adb: Used named notation for some confusing calls
7216 * bindusg.adb: Minor change in one line of output
7218 * cstand.adb: Minor reformatting of src representation of Standard
7220 * a-assert.ads: Add comment.
7222 * g-decstr.adb: Fix bad indentation
7224 * expander.ads, expander.adb: Code clean up.
7226 * sem_dist.ads: Minor comment improvement
7228 * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
7229 s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
7231 * i-cstrin.adb: Fix casing error in formal parameter name in call
7233 2008-04-08 Ed Schonberg <schonberg@adacore.com>
7235 * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
7236 mentioned in limited_with_clauses to do create semantic dependencies
7237 even though they appear in the ali file.
7239 2008-04-08 Emmanuel Briot <briot@adacore.com>
7241 * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
7243 (Get_Configuration): New subprogram.
7245 * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
7246 These optional parameters help preserve the casing of the project's name
7247 when pretty-printing.
7249 2008-04-08 Jerome Lambourg <lambourg@adacore.com>
7250 Arnaud Charlet <charlet@adacore.com>
7252 * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
7253 then use __gnat_set_exit_status to report the returned status code.
7255 * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
7256 messages on .NET, since some constructs of the language are not
7259 * gnatlink.adb (Gnatlink): In case the command line is too long for the
7260 .NET linker, gnatlink now concatenate all .il files and pass this to
7263 2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
7264 Xavier Grave <grave@ipno.in2p3.fr>
7266 * Makefile.in: Add make ifeq define for mips/mipsel support.
7267 * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
7268 system-linux-mips.ads: New files.
7270 2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
7272 * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
7273 detect systems using GNU libc.
7279 2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
7281 * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
7282 constant constant for sysconf call.
7283 (bit_field): New packed boolean type used by cpu_set_t.
7284 (cpu_set_t): New type corresponding to the C type with
7285 the same name. Note that on the Ada side we use a bit
7286 field array for the affinity mask. There is not need
7287 for the C macro for setting individual bit.
7288 (pthread_setaffinity_np): New imported routine.
7289 * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
7292 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
7294 * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
7296 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
7298 * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
7299 * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
7300 * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
7301 * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
7302 Return by Depressed Stack Pointer.
7304 2008-04-06 Eric Botcazou <ebotcazou@adacore.com>
7306 * decl.c (is_variable_size): Do not unconditionally return false
7307 on non-strict alignment platforms.
7309 2008-04-06 Eric Botcazou <ebotcazou@adacore.com>
7311 * decl.c (rest_of_type_decl_compilation_no_defer): New local function
7312 used to process all the variants of the specified type.
7313 (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
7314 types too. Call rest_of_type_decl_compilation_no_defer if undeferring.
7315 (rest_of_type_decl_compilation): Likewise.
7316 * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
7318 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
7320 * gigi.h (insert_block): Kill.
7321 * utils.c (insert_block): Kill.
7323 2008-04-02 Eric Botcazou <ebotcazou@adacore.com>
7325 * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
7326 type has self-referential size, get the size from the initializing
7327 expression directly if it is also a constant whose nominal type
7328 has self-referential size.
7330 2008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7333 * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
7336 * env.c: Always include crt_externs.h if __APPLE__ is defined.
7337 (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
7339 2008-04-01 Andreas Jaeger <aj@suse.de>
7341 * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
7344 2008-03-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7346 * g-table.adb, g-tasloc.adb, g-traceb.ads,
7347 g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
7348 gnatbind.adb, gnatchop.adb, gnatcmd.adb,
7349 gnatcmd.ads, gnatdll.adb, gnatfind.adb,
7350 gnatlink.adb, gnatmem.adb, gprep.adb,
7351 i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
7352 i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
7353 layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
7354 lib-xref.ads, lib.adb, link.c, live.ads,
7355 make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
7356 mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
7357 misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
7358 mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
7359 namet.adb, namet.h, nlists.adb, nlists.ads,
7360 nlists.h, opt.ads, osint-b.ads, osint-c.adb,
7361 osint-c.ads, osint.adb, osint.ads, output.ads,
7362 par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
7363 par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
7364 par-endh.adb, par-labl.adb, par-prag.adb,
7365 par-sync.adb, par-tchk.adb, par-util.adb,
7366 par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
7367 prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
7368 prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
7369 prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
7371 2008-03-31 Eric Botcazou <ebotcazou@adacore.com>
7373 * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
7374 size if it has overflowed.
7376 2008-03-31 Olivier Hainque <hainque@adacore.com>
7377 Eric Botcazou <ebotcazou@adacore.com>
7379 * utils2.c (find_common_type): Document assumption on t1/t2 vs
7380 lhs/rhs. Force use of lhs type if smaller, whatever the modes.
7382 2008-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7384 * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
7385 einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
7386 exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
7387 exp_pakd.ads, exp_prag.adb, exp_smem.adb,
7388 exp_tss.ads, exp_util.adb, exp_util.ads,
7389 exp_vfpt.adb, freeze.adb, freeze.ads,
7390 frontend.adb, g-alleve.adb, g-altcon.adb,
7391 g-altive.ads, g-alveop.ads, g-alvevi.ads,
7392 g-arrspl.adb, g-busorg.ads, g-calend.adb,
7393 g-calend.ads, g-casuti.ads, g-cgideb.adb,
7394 g-comlin.adb, g-comlin.ads, g-curexc.ads,
7395 g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
7396 g-dirope.adb, g-dirope.ads, g-dynhta.ads,
7397 g-dyntab.adb, g-encstr.ads, g-excact.ads,
7398 g-except.ads, g-expect.ads, g-heasor.adb,
7399 g-hesora.adb, g-hesorg.adb, g-htable.ads,
7400 g-locfil.ads, g-md5.adb, g-md5.ads,
7401 g-memdum.ads, g-moreex.ads, g-os_lib.adb,
7402 g-pehage.adb, g-pehage.ads, g-regexp.adb,
7403 g-regexp.ads, g-regpat.adb, g-regpat.ads,
7404 g-soccon-aix.ads, g-soccon-darwin.ads,
7405 g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
7406 g-soccon-hpux.ads, g-soccon-irix.ads,
7407 g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
7408 g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
7409 g-soccon-mingw.ads, g-soccon-solaris-64.ads,
7410 g-soccon-solaris.ads, g-soccon-tru64.ads,
7411 g-soccon-vms.ads, g-soccon-vxworks.ads,
7412 g-soccon.ads, g-socket.adb, g-socket.ads,
7413 g-socthi-mingw.adb, g-socthi-vms.adb,
7414 g-socthi-vxworks.adb, g-soliop-mingw.ads,
7415 g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
7416 g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
7419 2008-03-27 Eric Botcazou <ebotcazou@adacore.com>
7421 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
7422 if the procedure is imported.
7424 2008-03-26 Arnaud Charlet <charlet@adacore.com>
7426 * adaint.c: Fix warnings.
7428 2008-03-26 Arnaud Charlet <charlet@adacore.com>
7430 * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
7432 2008-03-26 Arnaud Charlet <charlet@adacore.com>
7434 * a-witeio.adb: Fix problem with Current_Output (introduce Self).
7435 Fix problem of status check for null file
7437 2008-03-26 Arnaud Charlet <charlet@adacore.com>
7439 * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
7440 s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
7441 s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
7442 i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
7443 s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
7446 2008-03-26 Thomas Quinot <quinot@adacore.com>
7449 * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
7450 Get_Socket_Option): Add support for Receive_Packet_Info.
7452 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
7453 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
7454 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
7455 g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
7456 g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
7457 new constants SO_REUSEPORT and IP_PKTINFO
7459 2008-03-26 Robert Dewar <dewar@adacore.com>
7461 * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
7462 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
7463 a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
7464 a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
7465 a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
7466 a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
7467 s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
7468 s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
7469 a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
7470 s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
7471 s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
7472 s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
7473 s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
7474 s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
7475 s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
7476 s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
7477 s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
7478 s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
7479 s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
7480 s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
7481 a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
7482 a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
7483 s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
7484 s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
7485 s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
7486 s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
7487 s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
7488 a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
7489 a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
7490 s-tasloc.adb: Minor reformatting.
7492 Remove "used for" sections from comments.
7494 2008-03-26 Robert Dewar <dewar@adacore.com>
7496 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
7497 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
7498 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
7499 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
7500 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
7501 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
7502 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7503 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
7504 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
7505 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
7506 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
7507 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
7508 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
7509 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
7510 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
7511 double spaced if it fits on one line and otherwise single spaced.
7513 2008-03-26 Arnaud Charlet <charlet@adacore.com>
7515 * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
7516 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
7517 s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
7518 or task info if the thread could not be created.
7520 2008-03-26 Arnaud Charlet <charlet@adacore.com>
7522 * gnatvsn.ads (Library_Version): Bump to 4.4.
7523 (Current_Year): Bump to 2008.
7525 2008-03-26 Robert Dewar <dewar@adacore.com>
7527 * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
7529 * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
7531 * debug.adb: Add debug flags d.r and d.v
7532 Add debug flag .T (Optimize_Alignment (Time))
7533 Add debug flag .S (Optimize_Alignment (Space))
7535 * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
7536 depending on setting of relevant debug flags.
7537 Replace use of Warnings_Off by Has_Warnings_Off
7538 (Freeze_Entity): In circuit for warning on suspicious convention
7539 actuals, do not give warning if subprogram has same entity as formal
7540 type, or if subprogram does not come from source.
7541 (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
7542 if Optimize_Alignment set to Space.
7544 * frontend.adb: Add call to Sem_Warn.Initialize
7545 Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
7546 Reset Optimize_Alignment mode from debug switches .S and .T
7548 * layout.adb (Layout_Composite_Object): Rewritten for
7549 Optimize_Aligment pragma.
7551 * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
7554 * opt.ads, opt.adb: (Optimize_Alignment): New global switch
7556 * par-prag.adb (N_Pragma): Chars field removed, use Chars
7557 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
7558 this change. Add entry for pragma Optimize_Alignment
7560 * sem_prag.adb (N_Pragma): Chars field removed, use Chars
7561 (Pragma_Identifier (..
7562 instead, adjustments throughout to accomodate this change.
7563 (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
7564 (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
7565 Add implementation of pragma Optimize_Alignment
7567 2008-03-26 Vincent Celier <celier@adacore.com>
7569 * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
7570 Improve memory usage to avoid use of stack.
7572 2008-03-26 Robert Dewar <dewar@adacore.com>
7574 * a-teioed.ads: Correct value of Default_Fill
7576 * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
7578 2008-03-26 Robert Dewar <dewar@adacore.com>
7580 * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
7581 with Current_Output (introduce Self).
7583 2008-03-26 Robert Dewar <dewar@adacore.com>
7585 * checks.adb (Ensure_Valid): Capture valid status if possible
7588 2008-03-26 Robert Dewar <dewar@adacore.com>
7590 * stand.ads: Deal with reordering of package standard declarations
7592 * cstand.adb: Put package Standard declarations in proper order
7594 2008-03-26 Robert Dewar <dewar@adacore.com>
7596 * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
7597 (Pragma_Identifier (.. instead.
7598 (OK_To_Reorder_Components): New flag
7599 (Has_Entries): Code cleanup.
7600 (Warnings_Off_Used): New flag
7601 (Warnings_Off_Used_Unmodified): New flag
7602 (Warnings_Off_Used_Unreferenced): New flag
7603 (Has_Warnings_Off): New function
7604 (Has_Unmodified): New function
7605 (Has_Unreferenced): New function
7606 (Is_Trivial_Subprogram): New flag
7607 (Is_Static_Dispatch_Table_Entity): New attribute.
7608 Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
7609 (more consistent with other similar names)
7610 (Access_Subprogram_Type): New classification function
7612 2008-03-26 Robert Dewar <dewar@adacore.com>
7614 * errout.ads: Document new !! insertion sequence
7616 * errout.adb (N_Pragma): Chars field removed, use Chars
7617 (Pragma_Identifier (.. instead.
7618 Replace use of Warnings_Off by Has_Warnings_Off
7619 (Error_Msg_Internal): Don't delete warning ending in !!
7621 2008-03-26 Robert Dewar <dewar@adacore.com>
7623 * par.adb (Check_No_Right_Paren): Removed no longer used
7625 * par-ch10.adb (N_Pragma): Chars field removed, use Chars
7626 (Pragma_Identifier (.. instead.
7628 * par-ch10.adb (P_Subunit): Improvement in error recovery and message
7630 * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
7631 par-ch4.adb: Minor improvements in error recovery and messages.
7633 * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
7636 * par-ch9.adb: Minor improvements in error recovery and messages
7637 (P_Protected): Better error recovery for "protected type x;"
7639 * par-util.adb: Minor improvements in error recovery and messages
7640 (Check_No_Right_Paren): Removed no longer used
7642 2008-03-26 Ed Schonberg <schonberg@adacore.com>
7644 * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
7645 that the prefix of an attribute is the type of the aggregate being
7648 2008-03-26 Javier Miranda <miranda@adacore.com>
7649 Robert Dewar <dewar@adacore.com>
7651 * exp_attr.adb (N_Pragma): Chars field removed.
7652 (Expand_N_Attribute_Reference): If the designated type associated with
7653 attribute 'Unrestricted_Access is a subprogram entity then replace it
7654 by an E_Subprogram_Type itype.
7655 Implement attribute Old
7657 * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
7659 * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
7661 New_Internal_Entity by call to Create_Itype to centralize calls
7662 building itypes, ad propagate the convention of the designated
7663 subprogram. In addition, disable the machinery cleaning constant
7664 indications from all entities in current scope when 'Unrestricted_Access
7665 corresponds with a node initializing a dispatch table slot.
7666 (Analyze_Attribute): Parameterless attributes returning a string or a
7667 type will not be called with improper arguments, so we can remove junk
7668 code that was dealing with this case.
7669 Implement attribute Old
7671 * snames.ads, snames.h, snames.adb: Add entries for attribute Old
7672 Add entry for pragma Optimize_Alignment
7673 New standard names Sync and Synchronize
7675 2008-03-26 Robert Dewar <dewar@adacore.com>
7676 Arnaud Charlet <charlet@adacore.com>
7678 * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
7680 (No_Exception_Propagation_Active): New function.
7681 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
7682 Update comments, and review all uses of No_Exception_Propagation, which
7683 are now correct and in sync with what gigi expects.
7685 * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
7687 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
7688 Update comments, and review all uses of No_Exception_Propagation, which
7689 are now correct and in sync with what gigi expects.
7691 2008-03-26 Ed Schonberg <schonberg@adacore.com>
7693 * sem_ch3.adb (Access_Definition): If the access type is the return
7694 result of a protected function, create an itype reference for it
7695 because usage will be in an inner scope from the point of declaration.
7696 (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
7697 OK_To_Reorder_Components.
7698 (Make_Index): If an overloaded range includes a universal integer
7699 interpretation, resolve to Standard.Integer.
7700 (Analyze_Subtype_Indication): Copy Convention to subtype
7701 (Check_Abstract_Interfaces): Complete semantic checks on the legality of
7702 limited an synchronized progenitors in type declaration and private
7703 extension declarations.
7705 * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
7706 protected subprogram body, determine proper scope from subprogram
7709 2008-03-26 Robert Dewar <dewar@adacore.com>
7711 * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
7714 2008-03-26 Gary Dismukes <dismukes@adacore.com>
7716 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
7717 of a heap allocator for a limited unconstrained function return when
7718 resstriction No_Allocators is active.
7719 (Analyze_Allocator): The restriction No_Allocators is now only checked
7720 on allocators that have Comes_From_Source set, as per RM-H.4(7).
7722 * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
7723 of a heap allocator for a limited unconstrained function return when
7724 resstriction No_Allocators is active.
7725 (Analyze_Allocator): The restriction No_Allocators is now only checked
7726 on allocators that have Comes_From_Source set, as per RM-H.4(7).
7727 (Has_Fixed_Op): If the name in a function call is Standard."*" and the
7728 operands are fixed-point types, the universal_fixed predefined operation
7729 is used, regardless of whether the operand type (s) have a primitive
7730 operation of the same name.
7732 2008-03-26 Javier Miranda <miranda@adacore.com>
7734 * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
7735 Is_Static_Dispatch_Table
7736 (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
7737 to Exchange_Declarations to exchange the private and full-view. Bug
7738 found working in this issue.
7739 (Expand_Dispatching_Call): Propagate the convention of the subprogram
7740 to the subprogram pointer type.
7741 (Make_Secondary_DT): Replace generation of Prim'Address by
7742 Address (Prim'Unrestricted_Access)
7743 (Make_DT): Replace generation of Prim'Address by
7744 Address (Prim'Unrestricted_Access)
7745 (Make_Disp_*_Bodies): When compiling for a restricted profile, use
7746 simple call form for single entry.
7747 (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
7748 tables of predefined primitives).
7749 (Make_Secondary_DT): Add support to handle access to dispatch tables of
7750 predefined primitives.
7751 (Make_Tags): Add entities to Access_Dispatch_Table associated with
7752 access to dispatch tables containing predefined primitives.
7754 * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
7755 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
7757 (Register_Predefined_DT_Entry): Updated to handle the new contents
7758 of attribute Access_Disp_Table (pointers to dispatch tables containing
7759 predefined primitives).
7761 * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
7763 (Find_Interface_ADT): Updated to skip the new contents of attribute
7764 Access_Dispatch_Table (pointers to dispatch tables containing predefined
7767 * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
7769 (Set_Convention): Use new function Is_Access_Subprogram_Type
7770 (Collect_Interfaces_Info): Updated to skip the new contents of attribute
7771 Access_Dispatch_Table (pointers to dispatch tables containing predefined
7774 * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
7775 expanded code avoiding calls to Build_Predef_Prims.
7776 (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
7777 call to Build_Get_Predefined_Prim_Op_Address.
7779 2008-03-26 Javier Miranda <miranda@adacore.com>
7781 * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
7782 subprogram Corresponding_Runtime_Package to know the runtime package
7783 that will provide support to a given protected type.
7785 * exp_ch9.adb (Add_Private_Declarations,
7786 Build_Protected_Subprogram_Call,
7787 Build_Protected_Entry, Build_Simple_Entry_Call,
7788 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
7789 Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
7790 cleanup using the new centralized subprogram Corresponding_Runtime
7791 Package to know the runtime package that provides support to
7792 a given protected type.
7794 2008-03-26 Ed Schonberg <schonberg@adacore.com>
7796 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
7797 assignment is within the initialization procedure for a packed array,
7798 and Initialize_Scalars is enabled, compile right-hand side with checks
7799 off, because the value is purposely out of range.
7801 2008-03-26 Vincent Celier <celier@adacore.com>
7803 * gnatcmd.adb: Add processing for GNAT SYNC
7805 * vms_conv.ads: (Command_Type): Add command Sync
7807 * vms_conv.adb (Initialize): Add Command_List data for new command Sync
7809 * vms_data.ads: Add entries for -gnatw.w
7810 Add qualifier for gnatstub --header-file option
7811 Add switches for GNAT SYNC
7813 * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
7814 (Add_Package_Name): New procedure
7815 (Package_Name_List): New function
7816 (Initialize): Add known package names to the list
7817 (Register_New_Package): Add the new package name to the list
7819 2008-03-26 Robert Dewar <dewar@adacore.com>
7821 * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
7822 s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
7823 Raise_Exception by "raise with" construct.
7825 2008-03-26 Pascal Obry <obry@adacore.com>
7827 * Makefile.in: Add proper GNAT.Serial_Communications implementation on
7828 supported platforms.
7830 * Makefile.rtl: Add g-sercom.o.
7832 * impunit.adb: Add g-sercom.adb.
7834 * s-crtl.ads (open): New routine.
7838 * s-osinte-mingw.ads (BYTE): New type.
7840 (OVERLAPPED): Likewise.
7841 (GENERIC_READ): New constant.
7842 (GENERIC_WRITE): Likewise.
7843 (OPEN_EXISTING): Likewise.
7844 (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
7846 (CreateFile): New routine.
7847 (WriteFile): Likewise.
7848 (ReadFile): Likewise.
7849 (CloseHandle): Move next to the other file oriented routines.
7851 * g-sercom.ads: New unit.
7853 * g-sercom.adb: Default implementation, calls to this unit will raise
7854 a program error exception.
7856 * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
7857 GNU/Linux implementations.
7859 2008-03-26 Robert Dewar <dewar@adacore.com>
7861 * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
7863 * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
7864 unchecked conversion for different conventions only for subprogram
7867 2008-03-26 Vincent Celier <celier@adacore.com>
7869 * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
7870 to check if the specified object file is correct.
7872 2008-03-26 Thomas Quinot <quinot@adacore.com>
7874 * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
7875 Comes_From_Source to exclude primitives from being checked. We want to
7876 exclude predefined primitives only, so use the appropriate specific
7877 predicate. Also, flag a formal parameter of an anonymous
7878 access-to-subprogram type as illegal for a primitive operation of a
7879 remote access to class-wide type.
7881 2008-03-26 Vincent Celier <celier@adacore.com>
7883 * prj-dect.adb (Parse_Package_Declaration): When a package name is not
7884 known, check if it may be a missspelling of a known package name. In
7885 not verbose, not mode, issue warnings only if the package name is a
7886 possible misspelling.
7887 In verbose mode, always issue a warning for a not known package name,
7888 plus a warning if the name is a misspelling of a known package name.
7890 * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
7891 limited withs or limited withs are parse during one call.
7892 (Parse_Single_Project): Post parse context clause in two passes: non
7893 limited withs before current project and limited withs after current
7896 * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
7897 project with the name With_Name, even if it is only extended indirectly.
7898 (Recursive_Process): Process projects in order: first single withs, then
7899 current project, then limited withs.
7901 * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
7902 project with the name With_Name, even if it is only extended indirectly.
7904 2008-03-26 Robert Dewar <dewar@adacore.com>
7906 * scn.adb (Initialize_Scanner): Format messages belong on standard error
7908 2008-03-26 Ed Schonberg <schonberg@adacore.com>
7910 * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
7911 a generic subprogram that is imported, do not attempt to compile
7914 * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
7915 imported, do not generate a raise_program_error for the non-existent
7917 (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
7918 perform minimal name resolution on the generic to avoid spurious
7920 (Find_Actual_Type): the designated type of the actual in a child unit
7921 may be declared in a parent unit without being an actual.
7923 2008-03-26 Robert Dewar <dewar@adacore.com>
7925 * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
7926 * sinfo.ads, sinfo.adb (From_At_End): New flag
7928 2008-03-26 Ed Schonberg <schonberg@adacore.com>
7930 * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
7931 operations that have an interface parameter.
7932 (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
7933 Don't treat No_Return call as raise.
7935 * sem_disp.adb (Check_Dispatching_Operations): apply check for
7936 non-primitive interface primitives to access parameters, not to all
7937 parameters of an access type.
7939 2008-03-26 Ed Schonberg <schonberg@adacore.com>
7941 * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
7942 declarations of a parent unit are made visible when compiling a child
7943 instance, the parent is not a hidden open scope, even though it may
7944 contain other pending instance.
7946 * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
7947 hidden open scope for some child instance, it does affect the
7948 visibility status of other stach entries.
7949 (Analyze_Object_Renaming): Check that a class-wide object cannot be
7950 renamed as an object of a specific type.
7952 2008-03-26 Robert Dewar <dewar@adacore.com>
7954 * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
7955 recursion and raise SE directly.
7956 (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
7957 set for formal type for IN mode parameter.
7959 2008-03-26 Robert Dewar <dewar@adacore.com>
7961 * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
7962 (Initialize): New procedure
7963 (Output_Warnings_Off_Warnings): New procedure
7964 (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
7965 (Output_Non_Modifed_In_Out_Warnings): Ditto
7966 (Warn_On_Unreferenced_Entity): Ditto
7968 2008-03-26 Vincent Celier <celier@adacore.com>
7970 * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
7973 2008-03-26 Matthew Heaney <heaney@adacore.com>
7975 * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
7976 a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
7977 Marked with clauses as private, and controlled operations as overriding
7979 2008-03-26 Robert Dewar <dewar@adacore.com>
7981 * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
7983 2008-03-26 Robert Dewar <dewar@adacore.com>
7985 * back_end.adb, back_end.ads: Minor reformatting
7987 * bindgen.adb: Minor clarification of comments
7989 * fname.ads: Minor comment fixes
7991 * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
7992 prj-nmsc.adb, sem_aggr.adb: Minor reformatting
7994 * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
7995 xsnames.adb: Remove warnings off pragma no longer needed
7997 * a-catizo.ads, a-calari.ads, a-calfor.adb,
7998 a-calfor.ads: Fix header.
8000 2008-03-26 Tristan Gingold <gingold@adacore.com>
8002 * init.c: Do not adjust pc for HPARITH on alpha/vms.
8004 2008-03-26 Robert Dewar <dewar@adacore.com>
8006 * lib-xref.adb: (OK_To_Set_Reference): New function
8007 (Generate_Reference): Don't set referenced from occurrence in Warnings,
8008 Unmodified, or Unreferenced pragma
8010 2008-03-26 Robert Dewar <dewar@adacore.com>
8012 * alloc.ads: Add entries for Warnings_Off_Pragmas table
8014 2008-03-26 GNAT Script <nobody@adacore.com>
8016 * Make-lang.in: Makefile automatically updated
8018 2008-03-26 Robert Dewar <dewar@adacore.com>
8020 * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
8021 par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
8022 removed, use Chars (Pragma_Identifier (.. instead, adjustments
8023 throughout to accomodate this change.
8025 * s-pooglo.ads, s-pooloc.ads: Minor comment updates
8027 * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
8028 Einfo.Set_Needs_Debug_Info)
8030 2008-03-26 Robert Dewar <dewar@adacore.com>
8032 * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
8033 Add description for the new gnatstub option '--header-file'
8034 clarification of -gnatwz/-gnatwZ
8035 Add a "Irix-Specific Considerations" section to document the need to
8036 set LD_LIBRARY_PATH when using the default shared runtime library.
8037 Added documentation for both gcov and gprof.
8039 * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
8040 messages that are not suppressed when clients are compiled.
8041 Add documentation of s-pooglo s-pooloc
8042 Document the new GNAT.Serial_Communications API.
8043 Add documentation for 'Old attribute
8044 Add description of pragma Optimize_Alignment
8046 * ug_words: Add entries for -gnatw.w -gnatw.W
8048 * usage.adb: Add line for -gnatw.w (warn on warnings off)
8050 2008-03-25 Eric Botcazou <ebotcazou@adacore.com>
8053 2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
8055 * decl.c (maybe_pad_type): Avoid padding an integral type when
8056 bumping its alignment is sufficient.
8058 2008-03-25 Arnaud Charlet <charlet@adacore.com>
8060 * exp_ch6.adb, exp_disp.adb: Update copyright notice.
8061 Fix wrong formatting (lines too long)
8063 2008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8065 * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
8066 a-calend-vms.adb, a-calend.adb, a-calend.ads,
8067 a-calfor.adb, a-chahan.ads, a-chtgke.adb,
8068 a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
8069 a-cohama.ads, a-comlin.ads, a-coorse.adb,
8070 a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
8071 a-except-2005.ads, a-except.adb, a-except.ads,
8072 a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
8073 a-exextr.adb, a-filico.ads, a-finali.ads,
8074 a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
8075 a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
8076 a-sequio.ads, a-strbou.ads, a-strfix.adb,
8077 checks.adb, exp_ch3.adb, exp_ch4.adb,
8078 exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
8079 exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
8080 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
8081 exp_dbug.ads, exp_disp.adb, exp_dist.adb,
8082 exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
8084 2008-03-24 Robert Dewar <dewar@adacore.com>
8086 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
8087 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
8088 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
8089 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
8090 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
8091 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
8092 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
8093 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
8094 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
8095 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
8096 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
8097 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
8098 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
8099 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
8100 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
8101 double spaced if it fits on one line and otherwise single spaced.
8103 2008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8105 PR documentation/15479
8106 * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
8107 (doc/gnat_ugn_unw.texi): ... this, and adjusted.
8108 (doc/gnat_ugn.info): Renamed from ...
8109 (doc/gnat_ugn_unw.info): ... this.
8110 (doc/gnat_ugn.dvi): Renamed from ...
8111 (doc/gnat_ugn_unw.dvi): ... this.
8112 (doc/gnat_ugn.pdf): Renamed from ...
8113 (doc/gnat_ugn_unw.pdf): ... this.
8114 (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
8116 * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
8117 unconditionally to gnat_ugn.info. Fix cross references to the
8118 GNAT Reference Manual. Convert links to the GCC, GDB, Emacs,
8119 and GNU make manuals to be proper texinfo links.
8120 * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
8122 2008-03-21 Olivier Hainque <hainque@adacore.com>
8124 * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
8125 ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
8127 2008-03-21 Eric Botcazou <ebotcazou@adacore.com>
8129 * trans.c (addressable_p): Add notes on addressability issues.
8131 2008-03-21 Olivier Hainque <hainque@adacore.com>
8132 Ed Schonberg <schonberg@adacore.com>
8134 * trans.c (addressable_p): Accept COND_EXPR when both arms
8136 (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
8137 (call_to_gnu): Do not use name reference in the error message
8138 for a misaligned by_reference_parameter. The actual may be a
8141 2008-03-18 Paolo Bonzini <bonzini@gnu.org>
8143 * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
8145 2008-03-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8147 * gnat_rm.texi (Implementation Defined Characteristics)
8148 (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
8150 * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
8151 (Switches for gnatchop, Installing a library): Likewise.
8153 2008-03-10 Eric Botcazou <ebotcazou@adacore.com>
8155 * trans.c (emit_range_check): Do not emit the check if the base type
8156 of the expression is the type against which its range must be checked.
8158 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
8160 * decl.c (maybe_pad_type): Use value_factor_p.
8162 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
8164 * lang.opt (nostdlib): Move around.
8165 * misc.c (gnat_handle_option): Fix formatting.
8166 (gnat_dwarf_name): Move around.
8167 * trans.c (Case_Statement_to_gnu): Fix formatting.
8168 (gnat_to_gnu): Likewise.
8169 * utils.c (aggregate_type_contains_array_p): Likewise.
8170 (create_subprog_decl): Likewise.
8172 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
8174 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
8175 bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
8177 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
8179 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
8180 BIGGEST_ALIGNMENT when capping the alignment of records with
8181 strict alignment and size clause.
8183 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
8185 * lang-specs.h: Pass -gnatwa if -Wall is passed.
8186 * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
8187 and -Wuninitialized.
8188 (gnat_post_options): Clear warn_unused_parameter.
8190 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
8192 * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
8193 aligned bit-fields, bumping the alignment of the record type if deemed
8195 (value_factor_p): Return false instead of 0.
8197 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
8199 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
8200 for scalar types with small alignment.
8202 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
8204 * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
8205 from that of the front-end's end label.
8206 (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
8207 from that of the loop label.
8209 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
8211 * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
8212 comment for the packed array type case.
8213 * utils.c (build_template): Use a loop to strip padding or
8214 containing records for justified modular types.
8216 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
8218 * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
8219 large alignments specified for types.
8220 (validate_alignment): Minor cleanup.
8222 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
8224 * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
8225 (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
8226 the component for packing, if possible, as well as if a component
8227 size clause is specified.
8228 <E_Record_Subtype>: For an array type used to implement a packed
8229 array, get the component type from the original array type.
8230 Try to get a smaller form of the component for packing, if possible,
8231 as well as if a component size clause is specified.
8232 (round_up_to_align): New function.
8233 (make_packable_type): Add in_record parameter.
8234 For a padding record, preserve the size. If not in_record and the
8235 size is too large for an integral mode, attempt to shrink the size
8236 by lowering the alignment.
8237 Ditch the padding bits of the last component.
8238 Compute sizes and mode manually, and propagate the RM size.
8239 Return a BLKmode record type if its size has shrunk.
8240 (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
8241 Use Original_Array_Type to retrieve the type in case of an error.
8242 Adjust call to make_packable_type.
8243 (gnat_to_gnu_field): Likewise.
8244 (concat_id_with_name): Minor tweak.
8245 * trans.c (larger_record_type_p): New predicate.
8246 (call_to_gnu): Compute the nominal type of the object only if the
8247 parameter is by-reference. Do the conversion actual type -> nominal
8248 type if the nominal type is a larger record.
8249 (gnat_to_gnu): Do not require integral modes on the source type to
8250 avoid the conversion for types with identical names.
8251 (addressable_p): Add gnu_type parameter. If it is specified, do not
8252 return true if the expression is not addressable in gnu_type.
8253 Adjust recursive calls.
8254 * utils.c (finish_record_type): Remove dead code.
8256 2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
8259 * decl.c (maybe_pad_type): Avoid padding an integral type when
8260 bumping its alignment is sufficient.
8262 2008-03-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8264 * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
8265 * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
8267 * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
8268 gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
8269 sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
8270 code output strings.
8271 * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
8272 system-vms_64.ads: Fix typos in ada source code comments.
8273 * sinfo-cn.adb: Remove incomplete sentence.
8275 PR documentation/15479
8276 * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
8278 2008-02-27 Samuel Tardieu <sam@rfc1149.net>
8281 * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
8283 2008-02-27 Samuel Tardieu <sam@rfc1149.net>
8286 * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
8287 that underlying type is present.
8289 2008-02-26 Tom Tromey <tromey@redhat.com>
8291 * misc.c (internal_error_function): Remove test of
8292 USE_MAPPED_LOCATION.
8293 * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
8294 (Sloc_to_locus): Remove old location code.
8296 2008-02-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8298 * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
8299 `i.e.' by adding comma or `@:' as appropriate.
8300 * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
8301 plain characters `C', use `@samp{C}'.
8302 * gnat_ugn.texi (File Naming Rules, About gnatkr)
8303 (Krunching Method): Likewise.
8305 * gnat_ugn.texi (Conventions): List environment variables and
8306 metasyntactic variables.
8307 (Compiling Programs): Fix notation of metasyntactic variables.
8308 Add @file where appropriate. Use @file for file extensions,
8310 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
8311 instead of @file, @env instead of @code.
8313 2008-02-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8315 PR documentation/15479
8316 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
8317 and `...' with `@dots{}' or `@enddots{}'.
8319 PR documentation/15479
8320 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
8321 use @command instead of @code, @option instead of @samp or @code,
8322 @code instead of @var, @samp instead of @file.
8324 PR documentation/15479
8325 * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
8326 in Makefile rules, by using `&&' rather than `;'.
8328 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8330 PR documentation/15479
8331 * gnat_ugn.texi: In non-code, avoid space before colon.
8332 (Regular Expressions in gnatfind and gnatxref): Fix indentation.
8333 (Examples of gnatxref Usage): Use @command{vi} instead of
8335 (Character Set Control): Do not use @code for UTF-8.
8336 (Validity Checking): Fix typo "NaNs" instead of "NaN's". Do not
8338 * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
8340 * gnat_rm.texi, gnat_ugn.texi: Fix typos. Bump copyright years.
8342 2008-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
8345 * env.c: Add __rtems__ to if defined.
8346 * s-osinte-rtems.adb: Add To_Target_Priority. Fix formatting.
8347 * s-osinte-rtems.ads: Add To_Target_Priority prototype and
8348 PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants. Add
8349 pragma Convention as required.
8350 * gsocket.h: Make compile in and out of RTS.
8351 * Makefile.in: Add system-rtems.ads. Build DEC extensions.
8352 Use g-soccon-rtems.ads.
8353 * g-soccon-rtems.ads, system-rtems.ads: New files.
8355 2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8358 * Make-lang.in (gnat1): Add $(GMPLIBS).
8360 2008-01-26 Eric Botcazou <ebotcazou@adacore.com>
8362 * decl.c (components_to_record): Improve comment.
8364 2008-01-22 Eric Botcazou <ebotcazou@adacore.com>
8366 * decl.c (components_to_record): Do not reuse the empty union type
8367 if there is a representation clause on the record.
8368 * trans.c (addressable_p): Return true for INTEGER_CST.
8370 2008-01-21 Eric Botcazou <ebotcazou@adacore.com>
8372 * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
8373 in pointer arithmetics.
8374 * utils2.c (build_allocator): Likewise.
8376 2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
8378 * utils.c (build_function_stub): Properly build the call expression.
8380 2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
8382 * decl.c (gnat_to_gnu_entity) <object>: Process renamings
8383 before converting the expression to the type of the object.
8384 * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
8385 Stabilize constructors for special wrapping types.
8387 2008-01-13 Eric Botcazou <ebotcazou@adacore.com>
8389 * trans.c (call_to_gnu): Invoke the addressable_p predicate only
8390 when necessary. Merge some conditional statements. Update comments.
8391 Rename unchecked_convert_p local variable to suppress_type_conversion.
8392 Do not suppress conversions in the In case.
8393 (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
8394 into account on non strict-alignment platforms.
8396 2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
8398 * utils.c (aggregate_type_contains_array_p): New predicate.
8399 (create_field_decl): In a packed record, force byte alignment
8400 for fields without specified position that contain an array.
8402 2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
8404 * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
8406 2008-01-10 John David Anglin <dave.anglin.@nrc-cnrc.gc.ca>
8409 * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
8411 (bit_field): New packed boolean type used by cpu_set_t.
8412 (cpu_set_t): New type corresponding to the C type with
8413 the same name. Note that on the Ada side we use a bit
8414 field array for the affinity mask. There is not need
8415 for the C macro for setting individual bit.
8416 (pthread_setaffinity_np): New imported routine.
8418 2008-01-03 Tero Koskinen <tero.koskinen@iki.fi>
8421 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
8422 on OpenBSD as is done on other BSD systems.
8425 * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
8426 getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
8430 * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
8434 * init.c (__gnat_error_handler, __gnat_install_handler,
8435 __gnat_init_float): Define for OpenBSD.
8437 * initialize.c (__gnat_initialize): Define for OpenBSD.
8439 2007-12-27 Samuel Tardieu <sam@rfc1149.net>
8442 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
8443 instead of mktemp() or tmpnam() on NetBSD.
8445 2007-12-23 Eric Botcazou <ebotcazou@adacore.com>
8447 * trans.c (call_to_gnu): Make the temporary for non-addressable
8448 In parameters passed by reference.
8449 (addressable_p): Return true for STRING_CST and CALL_EXPR.
8451 2007-12-19 Robert Dewar <dewar@adacore.com>
8453 * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
8454 Add pragma Warnings (Off) for unassigned IN OUT arguments
8456 * sem_warn.adb (Output_Reference): Suppress messages for internal names
8457 (Check_References): Extensive changes to tune up warnings
8458 (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
8459 (Has_Pragma_Unmodifed_Check_Spec): New function
8460 (Check_References): Implement pragma Unmodified
8461 (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
8463 * par-prag.adb: Dummy entry for pragma Unmodified
8465 * sem_prag.adb: Implement pragma Unmodified
8467 * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
8468 (Proc_Next_Component_Or_Discriminant): Fix typo.
8471 * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
8473 (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
8474 because the former already takes care of discarding the result.
8475 (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
8478 * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
8480 2007-12-19 Eric Botcazou <ebotcazou@adacore.com>
8482 * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
8483 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
8484 system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
8485 system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
8486 system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
8487 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
8488 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
8489 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
8490 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
8491 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
8492 (Dynamic_Trampolines_Used): Delete.
8494 * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
8495 Turn on stack probing mechanism on LynxOS.
8497 2007-12-19 Bob Duff <duff@adacore.com>
8499 * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
8500 the resulting tail recursion by hand. This prevents running out of
8501 memory on deeply nested concatenations, since Field2 is where the left
8502 operand of concatenations is stored.
8503 Fix bug (was returning OK_Orig in some cases). Fix return subtype to
8504 clarify that it can only return OK or Abandon.
8506 * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
8507 operand by iteration, in order to avoid running out of memory on
8508 deeply-nested concatenations. Use the Parent pointer to get back up the
8510 (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
8511 Resolve_Op_Concat_Rest): New procedures split out of
8512 Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
8515 * checks.adb (Remove_Checks): Use Traverse_Proc instead of
8516 Traverse_Func, because the former already takes care of discarding the
8519 * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
8520 because the former already takes care of discarding the result.
8521 (Remove_Warning_Messages): Use appropriate subtype for Status and
8524 2007-12-19 Ed Schonberg <schonberg@adacore.com>
8526 * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
8527 discriminants forces expansion of the aggregate into assignments.
8528 (Init_Record_Controller): If the type of the aggregate is untagged and
8529 is not inherently limited, the record controller is not limited either.
8531 2007-12-19 Robert Dewar <dewar@adacore.com>
8533 * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
8534 handling compile time known size of record or array (case of front end
8535 layout active, e.g. in GNAAMP).
8537 2007-12-19 Javier Miranda <miranda@adacore.com>
8539 * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
8540 that forces the construction of static dispatch tables in case of
8543 2007-12-19 Robert Dewar <dewar@adacore.com>
8545 * exp_ch9.adb (Null_Statements): Moved to library level
8546 (Trivial_Accept_OK): New function
8547 (Expand_Accept_Declaration): Use Trivial_Accept_OK
8548 (Expand_N_Accept_Statement): Use Trivial_Accept_OK
8550 2007-12-19 Robert Dewar <dewar@adacore.com>
8552 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
8553 in complex case where array is Volatile.
8555 2007-12-19 Ed Schonberg <schonberg@adacore.com>
8557 * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
8558 properly the Ada2005 rules concerning when the current instance of a
8559 record type is aliased.
8561 2007-12-19 Ed Schonberg <schonberg@adacore.com>
8563 * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
8565 (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
8567 (P_Variant_Part): Cleaner patch for parenthesized discriminant
8569 2007-12-19 Vincent Celier <celier@adacore.com>
8571 * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
8572 package is not known
8574 * prj-attr.ads (Unknown_Package): New constant
8575 Do not crash when an unknown package is in several projects
8577 * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
8580 * prj-nmsc.adb (Check): Remove obsolete code related to no longer
8581 existing package Language_Processing.
8583 2007-12-19 Ed Schonberg <schonberg@adacore.com>
8584 Gary Dismukes <dismukes@adacore.com>
8585 Samuel Tardieu <sam@rfc1149.net>
8587 PR ada/15803, ada/15805
8588 * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
8589 illegal access subtypes when there is a constrained partial view.
8590 (Check_For_Premature_Usage): New procedure inside
8591 Access_Subprogram_Declaration for checking that an access-to-subprogram
8592 type doesn't reference its own name within any formal parameters or
8593 result type (including within nested anonymous access types).
8594 (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
8595 (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
8596 context is an access_to_variable, the expression cannot be an
8599 2007-12-19 Bob Duff <duff@adacore.com>
8601 * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
8602 (Analyze_Concatenation): Use iteration instead of recursion in order
8603 to avoid running out of stack space for deeply nested concatenations.
8605 2007-12-19 Ed Schonberg <schonberg@adacore.com>
8606 Gary Dismukes <dismukes@adacore.com>
8608 * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
8609 whose renamed entity is a subprogram that requires overriding.
8610 (Premature_Usage): Test for the case of N_Full_Type_Declaration when
8611 issuing an error for premature usage and issue a message that says
8612 'type' rather than 'object'.
8614 2007-12-19 Gary Dismukes <dismukes@adacore.com>
8617 * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
8618 presence of a statically tagged operand (Present (Static_Tag)) with
8619 test for Indeterm_Ancestor_Call when determining whether to propagate
8620 the static tag to tag-indeterminate operands (which forces dispatching
8622 (Check_Controlling_Formals): Ada2005, access parameters can have
8624 (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
8625 not insert subprogram in list of primitive operations if already there.
8627 2007-12-19 Tristan Gingold <gingold@adacore.com>
8629 * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
8632 2007-12-19 Thomas Quinot <quinot@adacore.com>
8634 Part of PR ada/33688
8635 * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
8636 datagram info on Linux.
8638 2007-12-19 Vincent Celier <celier@adacore.com>
8640 * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
8641 that the source path name is always found in the dependencies.
8643 2007-12-19 Robert Dewar <dewar@adacore.com>
8645 * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
8646 Fix name of Wide_Wide_Latin_1/9 file names
8647 Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
8648 Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
8649 Add missing documentation for Ada.Command_Line.Response_File
8650 Update list of warning letters for Warnings pragma
8651 Add documentation for pragma Unmodified
8653 2007-12-19 Samuel Tardieu <sam@rfc1149.net>
8655 * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
8657 2007-12-17 Arnaud Charlet <charlet@adacore.com>
8659 * s-vxwork-alpha.ads: Removed, no longer used.
8661 2007-12-15 Jakub Jelinek <jakub@redhat.com>
8663 * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
8665 2007-12-13 Samuel Tardieu <sam@rfc1149.net>
8668 * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
8669 mlib-tgt-specific.adb.
8671 2007-12-13 Bob Duff <duff@adacore.com>
8673 * trans.c (Attribute_to_gnu): Check for violations of the
8674 No_Implicit_Dynamic_Code restriction. This checking used to be done in
8675 the front end, but is moved here so we can make it more accurate.
8677 2007-12-13 Pascal Obry <obry@adacore.com>
8679 * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
8680 version is provided for older GNU/Linux distribution not
8681 supporting thread affinity sets.
8683 * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
8685 (bit_field): New packed boolean type used by cpu_set_t.
8686 (cpu_set_t): New type corresponding to the C type with
8687 the same name. Note that on the Ada side we use a bit
8688 field array for the affinity mask. There is not need
8689 for the C macro for setting individual bit.
8690 (pthread_setaffinity_np): New imported routine.
8692 * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
8694 (Create_Task): Set the processor affinity mask if information
8697 * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
8699 2007-12-13 Robert Dewar <dewar@adacore.com>
8701 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
8702 s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
8703 s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
8704 s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
8705 s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
8706 s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
8707 s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
8708 i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
8709 for subprogram pointers.
8711 * g-ctrl_c.adb: New file.
8713 * g-ctrl_c.ads (Install_Handler): New body.
8715 * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
8716 instead of obsolete function Is_Always_Inlined.
8717 (Freeze_Entity): check for tagged type in imported C subprogram
8718 (Freeze_Entity): check for 8-bit boolean in imported C subprogram
8719 (Freeze_Entity): check for convention Ada subprogram pointer in
8720 imported C subprogram.
8721 (Freeze_Fixed_Point_Type): In the case of a base type where the low
8722 bound would be chopped off and go from negative to zero, force
8723 Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
8724 bound) so that the size computation for the base type will take
8725 negative values into account.
8727 2007-12-13 Eric Botcazou <ebotcazou@adacore.com>
8728 Bob Duff <duff@adacore.com>
8729 Tristan Gingold <gingold@adacore.com>
8731 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
8732 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
8733 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
8734 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
8735 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
8736 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
8737 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
8738 system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
8739 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
8740 system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
8741 system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
8742 (Always_Compatible_Rep): New flag to control trampolines globally.
8743 (Dynamic_Trampolines_Used): New flag for implementing the
8744 No_Implicit_Dynamic_Code restriction more correctly (not yet used,
8745 and not yet set correctly for some targets).
8747 * s-taprop-vxworks.adb: Use stack limit method of stack checking.
8748 Simply indirectly call s-stchop when a task is created.
8751 New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
8752 appears as an argument (entries A) in an ALI file.
8754 * fe.h (Stack_Check_Limits): Declare new target parameter.
8755 (Check_Implicit_Dynamic_Code_Allowed): New procedure.
8757 * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
8758 This variable is declared in C to be sure not subject to elaboration
8760 (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
8763 * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
8764 (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
8766 * s-stchop.ads: Add comments.
8768 * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
8769 limit method of stack checking.
8771 * s-stchop-limit.ads: New file.
8773 2007-12-13 Robert Dewar <dewar@adacore.com>
8775 * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
8776 a-cihama.adb, g-awk.adb,
8777 s-inmaop-posix.adb: Update handling of assigned value/unreferenced
8780 * exp_smem.adb: Update handling of assigned value/unreferenced warnings
8782 * sem.adb: Update handling of assigned value/unreferenced warnings
8784 * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
8786 * lib-xref.ads: Improve documentation for k xref type
8789 Update handling of assigned value/unreferenced warnings
8790 (Generate_Reference): Warning for reference to entity for which a
8791 pragma Unreferenced has been given should be unconditional.
8792 If the entity is a discriminal, mark the original
8793 discriminant as referenced.
8795 * sem_warn.ads, sem_warn.adb
8796 (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
8797 no entities referenced in package
8798 (Check_One_Unit): Don't give message about no entities referenced in
8799 a package if a pragma Unreferenced has appeared.
8800 Handle new warning flag -gnatw.a/-gnatw.A
8801 Update handling of assigned value/unreferenced warnings
8803 * atree.h: Add flags up to Flag247
8804 (Flag231): New macro.
8806 2007-12-13 Jose Ruiz <ruiz@adacore.com>
8808 * adaint.h: (__gnat_plist_init): Not defined for RTX.
8810 * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
8813 * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
8814 (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
8815 EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
8816 GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
8819 Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
8821 * sysdep.c (winflush_function for RTX): Procedure that does nothing
8822 since we only have problems with Windows 95/98, which are not
8824 (__gnat_ttyname): Return the empty string on Nucleus, just as
8827 2007-12-13 Robert Dewar <dewar@adacore.com>
8829 * a-textio.adb, a-textio.ads:
8830 Extensive changes to private part for wide character encoding
8832 * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
8833 (Look_Ahead): Fix mishandling of encoded sequences
8834 Move declaration of Wch_Con to private part (should not be visible)
8836 * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
8837 UTF-8. Probably this is never used, but if it is, brackets is
8840 * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
8841 setting wide character encoding for no main program case and when
8842 encoding is specified using -W?
8843 Initialize stack limit of environment task if stack limit method of
8844 stack checking is enabled.
8845 (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
8846 (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
8847 (Get_Main_Unit_Name): New function.
8848 (Gen_Adainit_Ada): Add call to main program for .NET when needed.
8849 (Gen_Output_File): Set Bind_Main_Program to True for .NET
8851 * bindusg.adb: Add line for -Wx switch
8853 * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
8855 Add new useful constant WC_Longest_Sequences
8857 * switch-b.adb: Clean up handling of -Wx switch
8858 For -gnatWx, set Wide_Character_Encoding_Method_Specified
8860 * switch-c.adb: -gnatg activates warning on assertion errors
8861 For -gnatWx, set Wide_Character_Encoding_Method_Specified
8863 * s-wchcon.adb: (Is_Start_Of_Encoding): New function
8865 2007-12-13 Robert Dewar <dewar@adacore.com>
8866 Ed Schonberg <schonberg@adacore.com>
8868 * a-ngcoty.adb: New pragma Fast_Math
8870 * opt.adb: New pragma Fast_Math
8873 Add Implemented_By_Entry to the list of pragmas which do not require any
8875 (Favor_Top_Level): New pragma.
8876 New pragma Fast_Math
8878 * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
8879 (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
8880 Expand_Allocator_Expression): Take into account VM_Target
8881 (Expand_Attribute, case 'Identity): Handle properly the case where
8882 the prefix is a task interface.
8883 New pragma Fast_Math
8885 * par.adb (Next_Token_Is): New function
8886 (P_Pragma): Add Skipping parameter
8887 (U_Left_Paren): New procedure
8888 (U_Right_Paren): New procedure
8889 New pragma Fast_Math
8891 * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
8893 New pragma Fast_Math
8895 * sem_prag.adb: Add significance value to table Sig_Flag for pragma
8896 Implemented_By_Entry.
8897 (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
8898 (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
8899 items, since it can apply to more than one overloadable entity. Set
8900 new flag Has_Pragma_Inline_Always for Inline_Always case.
8901 (Analyze_Pragma, case Complex_Representation): Improve error message.
8902 (Analyze_Pragma, case Assert): When assertions are disabled build the
8903 rewritten code with Sloc of expression rather than pragma, so new
8904 warning about failing is not deleted.
8905 (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
8906 protected types and update error message to reflect that. Test whether
8907 the protected type is allowed for the pragma (an error is issued if the
8908 type has any entries, or components that do not have preelaborable
8910 New pragma Fast_Math
8911 (Analyze_Pragma, case No_Return): Handle generic instance
8913 * snames.h, snames.ads, snames.adb:
8914 Add new predefined name for interface primitive _Disp_Requeue.
8915 New pragma Fast_Math
8917 * a-tags.ads, a-tags.adb: New calling sequence for
8918 String_To_Wide_[Wide_]String
8919 (Secondary_Tag): New subprogram.
8921 * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
8923 New calling sequence for String_To_Wide_[Wide_]String
8924 (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
8925 the use of the secondary stack for image routines.
8927 * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
8928 calling sequence for String_To_Wide_[Wide_]String
8930 * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
8932 (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
8933 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8935 * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
8936 (P_Formal_Part): Use Skipping parameter in P_Pragma call
8937 to improve error recovery
8939 * par-util.adb (Next_Token_Is): New function
8940 (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
8942 * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
8943 semicolon if missing
8944 (P_Pragma): Implement new Skipping parameter
8945 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8946 Fix location of flag for unrecognized pragma message
8948 * par-tchk.adb (U_Left_Paren): New procedure
8949 (U_Right_Paren): New procedure
8951 2007-12-13 Geert Bosch <bosch@adacore.com>
8954 (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
8955 the second or later Scaled_Divide would omit leading zeroes,
8956 resulting in too few digits produced and a Layout_Error as result.
8957 (Put): Initialize Pos.
8959 2007-12-13 Robert Dewar <dewar@adacore.com>
8961 atree.ads, atree.adb (Flag231..Flag247): New functions
8962 (Set_Flag231..Set_Flag247): New procedures
8963 (Basic_Set_Convention): Rename Set_Convention to be
8964 Basic_Set_Convention
8965 (Nkind_In): New functions
8966 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8968 * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
8970 of obsolete function Is_Always_Inlined
8971 (Register_Predefined_DT_Entry): Initialize slots of the second
8972 secondary dispatch table.
8973 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8974 (Expand_N_Function_Call): Remove special provision for stack checking.
8976 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
8977 Include _Disp_Requeue in the list of predefined operations.
8978 (Find_Interface_ADT): Modified to fulfill the new specification.
8979 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8981 * par-ch4.adb, nlists.ads, nlists.adb:
8982 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8984 * sinfo.ads, sinfo.adb: (Nkind_In): New functions
8985 Fix location of flag for unrecognized pragma message
8987 * sem_ch7.adb: Use Nkind_In
8989 2007-12-13 Vincent Celier <celier@adacore.com>
8992 Indicate what flags are used by the Project Manager, gprbuild and
8994 (Opt.Follow_Links_For_Dirs): New flag
8995 (Warn_On_Assertion_Failure): New flag
8996 (Wide_Character_Encoding_Method_Specified): New flag
8997 (Suppress_All_Inlining): New switch set by -fno-inline
8998 (Real_VMS_Target): New flag
8999 New pragma Fast_Math
9001 2007-12-13 Robert Dewar <dewar@adacore.com>
9003 * back_end.adb: Recognize -fno-inline
9005 2007-12-13 Robert Dewar <dewar@adacore.com>
9007 * checks.adb: Fix optimization problem with short-circuited form
9009 2007-12-13 Bob Duff <duff@adacore.com>
9011 * clean.adb (Usage): Add line for -aP
9012 (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
9013 with a parameter "procedure Usage", instead of passing a pointer to a
9014 procedure. This is to eliminate trampolines (since the Usage procedure
9015 is often nested in a main procedure, and it would be inconvenient to
9018 * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
9019 to be generic, with a parameter "procedure Callback (...)", instead of
9020 passing a pointer to a procedure. This is to eliminate trampolines
9021 (since the Callback procedure is usually nested).
9023 * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
9024 gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
9025 (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
9027 * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
9028 Use the generic Heap_Sort_G instead of Heap_Sort_A.
9030 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
9032 * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
9033 (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
9034 (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
9035 (Renamed_In_Spec): New flag
9036 (Has_Pragma_Inline_Always): New flag
9037 Add missing doc for pragma Obsolescent_Warning
9038 Add missing doc for 17 additional unused flags (230-247)
9039 (Is_Derived_Type): Remove condition "not Is_Generic_Type".
9040 Alphabetize with clauses.
9041 Separate Is_Thunk and Has_Thunks flags
9042 (Write_Entity_Flags): Add forgotten entry for Has_Thunks
9043 (Related_Interface): Renamed to Related_Type.
9044 (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
9045 (Set_Is_Flag): Restrict the assertion.
9047 2007-12-13 Vincent Celier <celier@adacore.com>
9049 * errout.adb (Output_Source_Line): Do not keep a trailing space after
9050 the source line number if the source line is empty.
9052 2007-12-13 Geert Bosch <bosch@adacore.com>
9054 * eval_fat.adb (Decompose_Int): Handle argument of zero.
9055 (Compose): Remove special casing of zero.
9056 (Exponent): Likewise.
9057 (Fraction): Likewise.
9058 (Machine): Likewise.
9059 (Decompose): Update comment.
9061 2007-12-13 Ed Schonberg <schonberg@adacore.com>
9063 * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
9064 limited ancestor part, initialize controllers of enclosing record
9065 before expanding ancestor aggregate.
9066 (Gen_Assign): If a component of the aggregate is box-initialized, add
9067 code to call Initialize if the component is controlled, and explicit
9068 assignment of null if the component is an access type.
9070 Handle properly aggregates for limited types that appear in object
9071 declarations when the aggregate contains controlled values such as
9073 When expanding limited aggregates into individual components, do not
9074 call Adjust on controlled components that are limited.
9076 2007-12-13 Ed Schonberg <schonberg@adacore.com>
9078 * expander.adb: Take into account N_Subprogram_Renaming_Declaration
9080 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
9082 * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
9083 predefined primitive _Disp_Requeue.
9084 (Make_Predefined_Primitive_Specs): Create the spec for predefined
9085 primitive _Disp_Requeue.
9086 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
9087 type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
9088 (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
9089 an interface type. In case of limited interfaces we now declare all the
9090 predefined primitives associated with synchronized interfaces as
9092 (Predef_Spec_Or_Body): For interface types generate abstract subprogram
9094 (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
9095 tagged type is an interface type and there is no user-defined equality
9097 Add also bodies of predefined primitives associated with synchronized
9099 (Freeze_Record_Type): Do not build bodies of predefined primitives of
9100 interface types because they are now defined abstract.
9101 Add missing documentation.
9102 (Expand_Record_Controller): Update occurrence of Related_Interface
9104 (Build_Offset_To_Top_Functions): Do nothing in case of VM.
9105 (Expand_N_Object_Declaration): Take into account VM_Target when handling
9106 class wide interface object declaration.
9107 (Expand_Previous_Access_Type): Do not create a duplicate master entity
9108 if the access type already has one.
9109 (Expand_N_Object_Declaration): Defend against attempt to validity check
9110 generic types. Noticed for -gnatVcf specified with previous errors.
9112 2007-12-13 Arnaud Charlet <charlet@adacore.com>
9114 * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
9115 Expand_Allocator_Expression): Take into account VM_Target
9117 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
9118 secondary stack when VM_Target /= No_VM
9120 2007-12-13 Javier Miranda <miranda@adacore.com>
9121 Ed Schonberg <schonberg@adacore.com>
9123 * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
9124 Is_Complation_Unit by Is_Library_Level_Entity in the code
9125 that decides if the static dispatch tables need to be built.
9126 (Wrap_Transient_Declaration): Do not generate a finalization call if
9127 this is a renaming declaration and the renamed object is a component
9128 of a controlled type.
9130 2007-12-13 Gary Dismukes <dismukes@adacore.com>
9132 * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
9133 In the case where the renamed subprogram is a dereference, call
9134 Force_Evaluation on the prefix.
9136 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
9137 Ed Schonberg <schonberg@adacore.com>
9139 * exp_ch9.adb (Expand_N_Asynchronous_Select,
9140 Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
9141 comment reformatting.
9142 (Set_Privals): Inherit aliased flag from formal. From code reading.
9143 (Build_Simple_Entry_Call): Out parameters of an access type are passed
9144 by copy and initialized from the actual. This includes entry parameters.
9145 (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
9146 and Ada 2005 models of requeue.
9147 (Null_Statements): Still connsider do-end block null if it contains
9148 Unreferenced and Warnings pragmas.
9149 (Expand_N_Accept_Statement): Do not optimize away null do end if
9150 dispatching policy is other than defaulted.
9151 (Expand_N_Timed_Entry_Call): When the triggering statement is a
9152 dispatching call, manually analyze the delay statement.
9153 (Find_Parameter_Type): Move subprogram to Sem_Util.
9155 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
9156 Javier Miranda <miranda@adacore.com>
9158 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
9159 _Disp_Requeue occupies dispatch table slot number 15. Move
9160 _Disp_Timed_Select to slot 16.
9161 (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
9162 generate the spec and body of _Disp_Reqeueue.
9163 (Make_DT): Build and initialize the second dispatch table.
9164 Handle initialization of RC_Offset when the parent
9165 is a private type with variable size components.
9166 (Make_Secondary_DT): Complete documentation. Add support to
9167 initialize the second dispatch table.
9168 (Make_Tags): Generate the tag of the second dispatch table.
9169 (Register_Primitive): Add support to register primitives in the
9170 second dispatch table.
9172 2007-12-13 Pascal Obry <obry@adacore.com>
9174 * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
9175 Windows. This signal is used by gnatmake to kill child processes for
9178 2007-12-13 Javier Miranda <miranda@adacore.com>
9180 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
9181 support for generic dispatching constructor calls in which we need to
9182 locate the tag of a secondary dispatch table associated with an
9183 interface type to properly dispatch the call.
9184 (Expand_N_Attribute_Reference [case Address],
9185 Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
9186 handling of VM targets.
9188 2007-12-13 Robert Dewar <dewar@adacore.com>
9189 Ed Schonberg <schonberg@adacore.com>
9191 * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
9194 * ug_words: Add entries for -gnatw.a -gnatw.A
9196 * sem_res.adb (Set_String_Literal_Subtype): If the context of the
9197 literal is a subtype with non-static constraints, use the base type of
9198 the context as the base of the string subtype, to prevent type
9200 (Resolve_Actuals): If the actual is an entity name, generate a
9201 reference before the actual is resolved and expanded, to prevent
9202 spurious warnings on formals of enclosing protected operations.
9203 (Analyze_Overloaded_Selected_Component): If type of prefix if
9204 class-wide, use visible components of base type.
9205 (Resolve_Selected_Component): Ditto.
9206 (Resolve_Short_Circuit): Detect case of pragma Assert argument
9207 evaluating to False, and issue warning message.
9209 * usage.adb: Add lines for -gnatw.a and -gnatw.A
9211 2007-12-13 Emmanuel Briot <briot@adacore.com>
9213 * g-calend.ads (No_Time): New constant, to represent an uninitialized
9216 * g-catiio.ads, g-catiio.adb (Value): Added support for more date
9218 (Month_Name_To_Number): New subprogram
9220 * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
9221 letter to upper-case.
9223 2007-12-13 Robert Dewar <dewar@adacore.com>
9224 Ed Schonberg <schonberg@adacore.com>
9226 * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
9228 * layout.adb (Resolve_Attribute, case 'Access): If designated type of
9229 context is a limited view, use non-limited view when available. If the
9230 non-limited view is an unconstrained array, this enforces consistency
9231 requirements in 3.10.2 (27).
9232 (Layout_Type): For an access type whose designated type is a limited
9233 view, examine its declaration to determine if it is an unconstrained
9234 array, and size the access type accordingly.
9235 (Layout_Type): Do not force 32-bits for convention c subprogram
9236 pointers in -gnatdm mode, only if real vms target.
9238 * sem_attr.adb (Analyze_Access_Attribute): Use new flag
9239 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
9240 (Analyze_Access_Attribute,Attribute_Address): Remove checks for
9241 violations of the No_Implicit_Dynamic_Code restriction.
9242 (Resolve_Attribute, case 'Access): If designated type of context is a
9243 limited view, use non-limited view when available. If the non-limited
9244 view is an unconstrained array, this enforces consistency requirements
9246 (Layout_Type): For an access type whose designated type is a limited
9247 view, examine its declaration to determine if it is an unconstrained
9248 array, and size the access type accordingly.
9250 2007-12-13 Vincent Celier <celier@adacore.com>
9252 * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
9253 object directory of main project does not exist.
9254 On VMS, correctly set then environment variable for the source
9257 2007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
9259 * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
9260 set to True this procedure will create the value of type REG_EXPAND_SZ.
9261 It was only possible to create REG_SZ values before.
9263 2007-12-13 Robert Dewar <dewar@adacore.com>
9265 * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
9266 g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
9267 namet-sp.adb, namet-sp.ads: New files.
9269 * g-speche.adb: Use generic routine in g-spchge
9271 * s-wchcnv.ads, s-wchcnv.adb:
9272 Minor code cleanup (make formal type consistent with spec)
9274 * namet.adb: Update comments.
9276 * par-endh.adb (Evaluate_End_Entry): Use new
9277 Namet.Sp.Is_Bad_Spelling_Of function
9279 * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
9281 * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
9282 ancestor is an access type initialized with a box, set its type
9283 explicitly, for use in subsequent expansion.
9284 (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
9287 2007-12-13 Robert Dewar <dewar@adacore.com>
9289 * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
9292 2007-12-13 Robert Dewar <dewar@adacore.com>
9294 * inline.adb (Back_End_Cannot_Inline): Use new flag
9295 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
9297 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
9298 Has_Pragma_Inline_Always instead.
9299 of obsolete function Is_Always_Inlined
9300 (Build_Body_To_Inline): Same change
9301 (Cannot_Inline): Same change
9302 Do not give warning on exception raise in No_Return function
9304 * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
9305 component has two inconsistent component clauses in the same record
9306 representation clause, favor the message that complains about
9307 duplication rather than inconsistency.
9309 (Record_Representation_Clause): Do not warn on missing component
9310 clauses for inherited components of a type extension.
9311 (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
9312 an overloadable item if it is a pragma that can apply to multiple
9313 overloadable entities (e.g. Inline) because a pragma cannot be on
9314 more than one chain at a time.
9315 (Validate_Unchecked_Conversion): Add code to warn on unchecked
9316 conversion where one of the operands is Ada.Calendar.Time.
9317 (Analyze_Attribute_Definition_Clause): Fix typo in error message.
9318 For now, ignore Component_Size clause on VM targets, as done for
9321 2007-12-13 Emmanuel Briot <briot@adacore.com>
9322 Vincent Celier <celier@adacore.com>
9324 * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
9326 (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
9328 (Hash): Move instantiation of System.HTable.Hash from spec to body
9329 (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
9330 systems, since we do not need to recompute the Name_Id for the canonical
9332 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
9333 as a parameter. This parameter is in fact always "ada" in all calls, and
9334 we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
9335 while loading a project with 40000 files
9337 * prj-attr.adb: Fix name of attribute Dependency_Driver
9338 Change the kind of indexing for attribute Root
9340 * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
9341 variables already declared, in case constructions.
9343 * prj-env.adb (Initialize): Reset Current_Source_Path_File and
9344 Current_Object_Path_File to No_Path.
9346 * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
9347 ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
9349 * prj-makr.adb: new parameter Current_Dir
9351 * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
9352 Ada sources when language is not Ada.
9353 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
9354 (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
9355 (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
9356 (Locate_Directory): Always resolve links when computing Canonical_Path
9357 (Look_For_Sources): Make sure that Name_Buffer contains the file name
9358 in Source_Files before checking for the presence of a directory
9360 Optimize calls to Name_Find when on case sensitive systems.
9361 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
9363 (Prj.Nmsc.Check): new parameter Current_Dir
9364 (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
9365 cannot be empty and the spec suffix cannot be the same as the body or
9367 (Get_Unit): When a file name can be of several unit kinds (spec, body or
9368 subunit), always consider the longest suffix.
9369 (Check_Configuration): Do not issue an error if there is no compiler
9370 for a language. Just issue a warning and ignore the sources for the
9372 (Check_Library_Attributes): Only check Library_Dir if Library_Name is
9374 (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
9375 (Unit_Exceptions): New hash table
9376 (Check_Naming_Schemes): Check if a file that could be a unit because of
9377 the naming scheme is not in fact a source because there is an exception
9379 (Look_For_Sources): Put the unit exceptions in hash table
9381 (Get_Unit_Exceptions): Give initial value No_Source to local variable
9382 Other_Part to avoid exception when code is compiled with validity
9384 (Get_Sources_From_File): Check that there is no directory information
9386 (Look_For_Sources): Check that there is no directory information in the
9387 list of file names in Source_Files.
9388 (Look_For_Sources): In multi-language mode, do not allow exception file
9389 names that are excluded.
9390 (Excluded_Sources_Htable): New hash table
9391 (Search_Directories.Check_File): New procedure to simplify
9393 (Search_Directories): Do not consider excluded sources
9394 (Look_For_Sources): Populate Excluded_Sources_Htable before calling
9396 (Get_Exceptions): Set component Lang_Kind of Source_Data
9397 (Get_Unit_Exceptions): Ditto
9398 (Search_Directories): Ditto
9400 * prj-pars.adb: new parameter Current_Dir
9402 * prj-part.ads, prj-part.adb:
9403 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
9404 (Opt.Follow_Links_For_Dirs): New flag
9405 (Project_Path_Name_Of): Cache information returned by this routine as
9406 Locate_Regular_File is a costly routine. The code to output a log
9407 information and the effective call to Locate_Regular_File is now
9408 factorized into a routine (code clean-up).
9409 (Parse, Parse_Single_Project): new parameter Current_Dir
9410 When main project file cannot be found, indicate in the error
9411 message the project path that was used to do the search.
9413 * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
9414 (Prj.Proc.Process*): new parameter Current_Dir
9416 * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
9418 2007-12-13 Bob Duff <duff@adacore.com>
9420 * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
9421 procedure to be called from the back end to check the
9422 No_Implicit_Dynamic_Code restriction.
9424 2007-12-13 Arnaud Charlet <charlet@adacore.com>
9426 * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
9427 Fixes another case where RTE_Available_Call was ignored instead of being
9431 * rtsfind.ads: Add new entries.
9433 2007-12-13 Robert Dewar <dewar@adacore.com>
9435 * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
9436 g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
9438 * scn.adb: Implement BOM recognition
9440 2007-12-13 Thomas Quinot <quinot@adacore.com>
9441 Ed Schonberg <schonberg@adacore.com>
9443 * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
9444 subprogram body that acts as its own spec may not have a non-private
9445 WITH clause on a private sibling.
9446 (Build_Unit_Name): If the parent unit in the name in a with_clause on a
9447 child unit is a renaming, create an implicit with_clause on that
9448 parent, and not on the unit it renames, to prevent visibility errors
9449 in the current unit.
9451 2007-12-13 Ed Schonberg <schonberg@adacore.com>
9453 * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
9454 renaming declaration, use the Slocs of the formal parameters from the
9455 declaration of the formal subprogram when creating the formal parameter
9456 entities in the renaming declaration.
9457 (Analyze_Formal_Type_Declaration): Change the placement of the error
9458 message concerning illegal known discriminants. It is now posted on the
9459 type rather than on the first discriminant. This change ensures early
9461 (Freeze_Subprogram_Body): If the generic subprogram is nested within
9462 the package body that contains the instance, do not generate an
9463 out-of-place freeze node for the enclosing package.
9464 (Collect_Previous_Instantiations): Ignore internal instantiations
9465 generated for formal packages.
9466 (Validate_Derived_Type_Instance): Add a check that when a formal
9467 derived type is Known_To_Have_Preelab_Init then the actual type must
9468 have preelaborable initialization, and issue an error when this
9469 condition is violated.
9471 2007-12-13 Robert Dewar <dewar@adacore.com>
9473 * s-imenne.adb, s-imenne.ads: New files.
9475 * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
9476 s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
9477 s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
9478 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
9479 s-imgwch.ads: New calling sequence for Image routines to avoid sec
9482 2007-12-13 Javier Miranda <miranda@adacore.com>
9483 Ed Schonberg <schonberg@adacore.com>
9485 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
9486 generation of spurious error if parent is an interface type; caused
9487 because predefined primitive bodies will be generated later by
9489 (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
9491 (Derive_Subprograms): Handle derivations of predefined primitives
9492 after all the user-defined primitives to ensure that they are
9493 found in proper order in instantiations.
9494 (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
9495 of Related_Interface to Related_Type.
9496 (Record_Type_Declaration): Minor reordering of calls to decorate the
9497 Tag component because the entity must have set its Ekind attribute
9498 before setting its Is_Tag attribute.
9499 (Analyze_Subtype_Declaration): In the case of subtypes with
9500 Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
9502 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
9503 Ed Schonberg <schonberg@adacore.com>
9505 * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
9506 statement to the list of contexts where a selected component with a
9507 concurrent tagged type prefix should yield a primitive operation.
9508 (Find_Primitive_Operation): Handle case of class-wide types.
9509 (Analyze_Overloaded_Selected_Component): If type of prefix is
9510 class-wide, use visible components of base type.
9511 (Resolve_Selected_Component): Ditto.
9512 (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
9513 formal of a generic subprogram. find candidate interpretations by
9514 scanning the list of generic formal declarations.:
9515 (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
9516 type from a limited_with_clause, and the full view is available, use it
9517 for subsequent semantic checks.
9518 (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
9519 (Find_Primitive_Operation): New function.
9520 (Analyze_Overloaded_Selected_Component): insert explicit dereference
9521 only once if several interpretations of the prefix yield an access type.
9522 (Try_Object_Operation): Code and comment cleanup.
9523 (Analyze_Selected_Component): Reorder local variables. Minot comment and
9524 code reformatting. When the type of the prefix is tagged concurrent, a
9525 correct interpretation might be available in the primitive and
9526 class-wide operations of the type.
9528 2007-12-13 Robert Dewar <dewar@adacore.com>
9529 Ed Schonberg <schonberg@adacore.com>
9531 * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
9532 renaming entry as subprogram using rename-as-body if subprogram spec
9534 (Use_One_Type): The clause is legal on an access type whose designated
9535 type has a limited view.
9536 (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
9537 (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
9538 (Analyze_Renamed_Primitive_Operation): new procedure to determine the
9539 operation denoted by a selected component.
9540 (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
9541 it can be an expression, possibly overloaded, that returns a task or
9544 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
9545 Gary Dismukes <dismukes@adacore.com>
9547 * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
9548 requeue statement is dispatching. Do not emit an error when the name is
9549 not an entry and the context is a dispatching select. Add code to
9550 perform subtype conformance between the formals of the current entry
9551 and those of the target interface primitive.
9552 (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
9553 Timed_Entry_Call): Analyze the triggering statement as the first step of
9554 the processing. If this is a dispatching select, postpone the analysis
9555 of all select statements until the Expander transforms the select. This
9556 approach avoids generating duplicate identifiers after the Expander has
9557 replicated some of the select statements. In case the Expander is
9558 disabled, perform regular analysis.
9559 (Check_Triggering_Statement): New routine.
9560 (Analyze_Requeue): Exclude any interpretations that are not entries when
9561 checking overloaded names in a requeue. Also test type conformance for
9562 matching interpretations rather than requiring subtype conformance at
9563 that point to conform with the RM's resolution rule for requeues.
9565 2007-12-13 Ed Schonberg <schonberg@adacore.com>
9567 * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
9568 inherited operation is a defaulted tag-indeterminate call, and there is
9569 a statically tagged actual, use the static tag as a controlling actual
9570 for the defaulted actual.
9572 2007-12-13 Geert Bosch <bosch@adacore.com>
9574 * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
9575 context, so do not call Check_Non_Static_Context.
9577 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
9579 * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
9580 whether formal E is an entity which may have parameters.
9582 2007-12-13 Bob Duff <duff@adacore.com>
9583 Javier Miranda <miranda@adacore.com>
9584 Robert Dewar <dewar@adacore.com>
9586 * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
9587 (Set_Convention): New procedure to set the Convention flag, and in
9588 addition make sure the Favor_Top_Level flag is kept in sync (all
9589 foreign-language conventions require Favor_Top_Level = True).
9590 (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
9592 (Collect_Interfaces_Info): Minor update to handle the two secondary
9593 dispatch tables. Update occurrence of Related_Interface to Related_Type.
9594 (Generate_Parent_Ref): Add parameter to specify entity to check
9595 (Is_Preelaborable_Expression): Allow the name of a discriminant to
9596 initialize a component of a type with preelaborable initialization.
9597 This includes the case of a discriminal used in such a context.
9598 (Is_Dependent_Component_Of_Mutable_Object): Take into account the
9599 latest Ada 2005 rules about renaming and 'Access of
9600 discriminant-dependent components.
9601 (Check_Nested_Access): Add handling when there are no enclosing
9602 subprograms (e.g. case of a package body).
9603 (Find_Parameter_Type): Factor routine from several other compiler files.
9604 Remove routine from Find_Overridden_Synchronized_Primitive.
9606 2007-12-13 Thomas Quinot <quinot@adacore.com>
9608 * sinput.adb (Get_Source_File_Index): Add assertion to guard against
9609 an invalid access to an uninitialized slot in the
9610 Source_File_Index_Table.
9612 2007-12-13 Thomas Quinot <quinot@adacore.com>
9614 * sinput-l.adb (Load_File): Disable style checks when preprocessing.
9616 2007-12-13 Bob Duff <duff@adacore.com>
9618 * s-soflin.ads: Apply new pragma Favor_Top_Level to all
9619 access-to-subprogram types in this package.
9621 2007-12-13 Olivier Hainque <hainque@adacore.com>
9623 * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
9624 with Stack_Grows_Down in System.Parameters. Rename Array_Address into
9625 Stack_Overlay_Address and document that we are using an internal
9627 (Byte_Size, Unsigned_32_Size): Remove, now useless.
9628 (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
9629 consistently throughout the various implementation pieces.
9631 * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
9632 overlay we are using to fill the stack area with patterns.
9633 (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
9634 (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
9635 (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
9637 2007-12-13 Robert Dewar <dewar@adacore.com>
9639 * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
9641 2007-12-13 Arnaud Charlet <charlet@adacore.com>
9644 (Create_Task): Take into account tasks created by foreign threads.
9645 Code clean up: use constants instead of hard coded values.
9647 2007-12-13 Robert Dewar <dewar@adacore.com>
9649 * styleg.adb (Check_Comment): More liberal rules for comment placement
9651 2007-12-13 Olivier Hainque <hainque@adacore.com>
9653 * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
9654 of Procedure Value instead of Frame Pointer as the invocation
9655 identifier associated with the instruction pointer in each traceback
9658 * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
9659 TB_Entry_For): Revert back to use of Procedure Value instead of Frame
9660 Pointer as the invocation identifier passed to tbk$symbolize.
9662 * s-traent-vms.ads, s-traent-vms.adb
9663 (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
9664 Procedure Value instead of Frame Pointer as the invocation identifier
9665 passed to tbk$symbolize.
9667 2007-12-13 Robert Dewar <dewar@adacore.com>
9669 * tbuild.ads, tbuild.adb:
9670 Fix location of flag for unrecognized pragma message
9672 2007-12-13 Robert Dewar <dewar@adacore.com>
9674 * treepr.ads, treepr.adb: (pl): implement use of positive value
9677 2007-12-13 Robert Dewar <dewar@adacore.com>
9679 * xeinfo.adb: Remove warnings
9680 * xnmake.adb: Remove warnings
9681 * xsinfo.adb: Remove warnings
9682 * xtreeprs.adb: Remove warnings
9683 * xsnames.adb: Remove warnings
9685 * a-ngcoar.adb: Fix typo.
9686 * s-interr.adb: Minor reformatting
9687 * env.c: Minor reformatting.
9688 * g-bytswa.adb: Minor reformatting.
9689 * g-rannum.ads: Minor documentation improvements
9690 * s-tasinf-mingw.adb: Minor header fix
9691 * a-clrefi.adb: Minor reformatting
9692 * g-sttsne.ads: Minor documentation improvement
9693 * g-sttsne-locking.ads: Minor documentation improvement
9694 * g-soliop-solaris.ads: Minor documentation improvement
9695 * g-soliop-mingw.ads: Minor documentation improvement
9696 * g-soliop.ads: Minor documentation improvement
9697 * exp_aggr.ads: Minor reformatting
9698 * debug.adb: Add documentation for the gprbuild debug flags
9699 * exp_ch2.adb: Use Nkind_In to simplify code throughout
9700 * exp_pakd.adb: Minor reformatting
9702 * g-altive.ads, g-alleve.adb: Remove assertions.
9703 Add comment about minor differences between targets regarding
9704 floating-point operations.
9706 * g-thread.adb: Remove pragma unreferenced.
9707 * lib.ads: Minor reformatting
9708 * par-ch9.adb: Minor reformatting of error messages
9709 * sem_case.adb: Minor reformatting
9710 * s-fileio.adb: Minor reformattinng
9711 * s-vmexta.ads: Minor typo
9713 Take into account 'Success' value as per new GNAT warning.
9715 2007-12-13 Vincent Celier <celier@adacore.com>
9717 * a-direct.adb (Create_Path): Always take '/' as a directory separator,
9720 2007-12-13 Robert Dewar <dewar@adacore.com>
9721 Bob Duff <duff@adacore.com>
9723 * gnat_ugn.texi: Dcoument new rules for style check comment alignment
9724 Document that suffixes may be terminations of each others
9725 Add doc for -gnatw.a and -gnatw.A
9726 Document gnatbind -Wx switch
9727 Document BOM recognition
9728 Document pragma Implemented_By_Entry.
9731 * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
9732 Add doc for pragma Unreferenced suppressing no entities referenced msg
9733 Add documentation of GNAT.Directory_Operations.Iteration
9734 Add documentation of GNAT.Random_Numbers
9735 Add documentation for pragma Shared.
9736 Correct documentation for Bit_Order
9737 Add documentation for the Pool_Address attribute.
9738 Fix and improve documentation of pragma machine_attribute.
9739 New pragma Fast_Math
9740 Document BOM recognition
9742 * vms_data.ads: Add entries for -gnatw.a -gnatw.A
9743 Add /Wide_Character_Encoding for binder
9744 Add qualifier for the new gnatpp option --no-separate-loop-then
9746 2007-12-13 Matthew Heaney <heaney@adacore.com>
9748 * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
9749 which generic formal operations are called for each operation.
9751 2007-12-13 Olivier Hainque <hainque@adacore.com>
9753 * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
9754 (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
9756 2007-12-13 Emmanuel Briot <briot@adacore.com>
9758 * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
9759 Reference_Dir unless we actually need it.
9761 2007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
9762 Tristan Gingold <gingold@adacore.com>
9764 * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
9767 a-calend-vms.adb: Remove pragma warning off and add pragma
9770 2007-12-13 Robert Dewar <dewar@adacore.com>
9772 * impunit.adb: Add entries for missing units
9774 * Makefile.rtl: Add new run-time units.
9776 * Make-lang.in: Update dependencies.
9778 2007-12-13 Bob Duff <duff@adacore.com>
9780 * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
9781 types, set Can_Use_Internal_Rep appropriately, based on
9782 Always_Compatible_Rep_On_Target.
9784 2007-12-13 Gary Dismukes <dismukes@adacore.com>
9785 Arnaud Charlet <charlet@adacore.com>
9787 * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
9788 it to the front end and setting the aamp_target environment variable
9789 to the switch's argument to ensure that gnaampbind and gnaamplink will
9790 take the specified library into account.
9791 (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
9792 target, since the CIL compiler supports an "object" file (.il files).
9794 2007-12-13 Vincent Celier <celier@adacore.com>
9796 * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
9797 (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
9799 2007-12-13 Geert Bosch <bosch@adacore.com>
9801 * s-parame-vxworks.adb:
9802 Update comments to reflect usage of this package by Nucleus.
9804 2007-12-13 Arnaud Charlet <charlet@adacore.com>
9806 * i-vxwork.ads: Kill new warning on Convention C, since changing the
9807 spec would break code.
9809 * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
9811 * system-vxworks-alpha.ads: Removed.
9813 2007-12-10 Eric Botcazou <ebotcazou@adacore.com>
9815 * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
9817 2007-12-09 Samuel Tardieu <sam@rfc1149.net>
9820 * sem_ch3.adb (Designates_T): New function.
9821 (Mentions_T): Factor reusable part of the logic into Designates_T.
9822 Consider non-access parameters and access and non-access result.
9823 (Check_Anonymous_Access_Components): Set ekind of anonymous access to
9824 E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
9826 * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
9828 2007-12-07 Ludovic Brenta <ludovic@ludovic-brenta.org>
9831 * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
9832 the new implementation of target-specific calls.
9834 2007-12-07 Olivier Hainque <hainque@adacore.com>
9836 * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
9837 the designated full view, only follow a second level Full_View link
9838 for Non_Limited_Views of from_limited_with references.
9840 2007-12-07 Samuel Tardieu <sam@rfc1149.net>
9843 * sem_ch6.adb (Process_Formals): Prevent an access type formal
9844 to be initialized with an access to constant object.
9846 * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
9847 when an access to constant is used to initialize an access
9851 * a-direct.adb (Compose): Containing_Directory can be an empty string.
9853 2007-12-07 Olivier Hainque <hainque@adacore.com>
9856 * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
9857 the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
9858 this is from an alignment clause on the GNAT entity.
9859 * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
9860 to distinguish the case where we set it from the type's alignment.
9861 When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
9862 whether this alignment was set from an explicit alignment clause.
9864 2007-12-06 Eric Botcazou <ebotcazou@adacore.com>
9866 * decl.c (make_packable_type): Revert last change.
9867 (gnat_to_gnu_field): Avoid setting size and position multiple times.
9868 * utils.c (finish_record_type): Retrieve the real name of the type.
9870 2007-12-05 Eric Botcazou <ebotcazou@adacore.com>
9872 * trans.c (lvalue_required_p): Take base node directly instead
9873 of its parent. Rename second parameter to 'gnu_type'.
9874 <N_Indexed_Component>: Return 0 if the node isn't the prefix.
9875 <N_Slice>: Likewise.
9876 (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
9877 Adjust calls to lvalue_required_p.
9879 2007-12-05 Samuel Tardieu <sam@rfc1149.net>
9882 * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
9883 parameters of an entry call.
9885 2007-12-03 Robert Dewar <dewar@adacore.com>
9886 Samuel Tardieu <sam@rfc1149.net>
9889 * sem_util.adb (Safe_To_Capture_Value): Do not capture values
9890 of variables declared in a library-level package.
9892 2007-12-02 Samuel Tardieu <sam@rfc1149.net>
9894 * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
9895 of Empty_String'Unchecked_Access.
9897 * Makefile.in: Add support for sh4-linux.
9899 * system-linux-sh4.ads: New file.
9901 2007-12-01 Kostik Belousov <kostikbel@ukr.net>
9904 * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
9905 and its argument must not be free()ed.
9907 2007-11-29 Eric Botcazou <ebotcazou@adacore.com>
9909 * decl.c (make_packable_type): Retrieve the real name of the type.
9910 (maybe_pad_type): Simplify similar code.
9912 2007-11-28 Samuel Tardieu <sam@rfc1149.net>
9915 * par-ch3.adb (P_Variant_Part): Signal an error when anything other
9916 than an identifier is used after "case" in a variant_part.
9919 * par-ch4.adb (Is_Parameterless_Attribute): New map.
9920 (P_Name, Scan_Apostrophe block): Parse left parenthesis following
9921 attribute name or not depending on the new map.
9923 * sem-attr.adb (Analyze_Attribute): Parameterless attributes
9924 returning a string or a type will not be called with improper
9927 * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
9929 * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
9932 * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
9933 Signal an error when attribute argument is a fixed-point value of
9937 * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
9938 a derived ordinary fixed point type.
9940 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
9941 RM_Size when a Small clause is found.
9943 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
9946 * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
9947 Pass 'false' for the new allocate_struct_function parameter.
9948 * utils.c (build_function_stub): Likewise.
9950 2007-11-25 Richard Guenther <rguenther@suse.de>
9952 * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
9953 (gnat_poplevel): Likewise.
9955 2007-11-25 Eric Botcazou <ebotcazou@adacore.com>
9957 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
9958 strict alignment, no alignment clause and a known static size, cap
9959 the type alignment to the greatest power of 2 factor of the size.
9960 (gnat_to_gnu_field): If the field has a component clause, is aliased
9961 or of a type with strict alignment, require that its size be equal to
9963 (validate_size): Use the type size as the minimum size for a type with
9966 2007-11-23 Samuel Tardieu <sam@rfc1149.net>
9968 * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
9969 s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
9970 s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
9971 Use 'Access instead of 'Unchecked_Access in second and third
9972 arguments of pthread_sigmask.
9974 2007-11-23 Eric Botcazou <ebotcazou@adacore.com>
9976 * decl.c (ceil_alignment): New function.
9977 (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
9978 (make_packable_type): Likewise.
9980 2007-11-22 Olivier Hainque <hainque@adacore.com>
9982 * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
9983 to fit in 80 columns.
9985 2007-11-21 Aurelien Jarno <aurelien@aurel32.net>
9987 * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
9988 * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
9990 2007-11-19 Eric Botcazou <ebotcazou@adacore.com>
9993 * misc.c (gnat_adjust_rli): Delete.
9994 (gnat_init): Do not initialize the translation code here.
9995 Do not call set_lang_adjust_rli.
9996 * trans.c (init_code_table): Make static.
9997 (gnat_init_stmt_group): Delete.
9998 (gigi): Initialize the translation code entirely here.
9999 Emit debug info for the common types here instead of...
10000 * utils.c (gnat_init_decl_processing): ...here.
10001 * gigi.h (init_code_table): Delete.
10002 (gnat_init_stmt_group): Likewise.
10004 2007-11-16 Olivier Hainque <hainque@adacore.com>
10006 * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
10007 retrieving an allocator return value from a super-aligned address from
10009 * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
10010 expect a super-aligned address for a fat or thin pointer.
10012 2007-11-14 Eric Botcazou <ebotcazou@adacore.com>
10014 * trans.c (call_to_gnu): Always set the source location on the call
10015 expression. If the function returns-by-target, also set it on the
10016 address expression.
10018 2007-11-14 Samuel Tardieu <sam@rfc1149.net>
10020 * adaint.c, init.c, initialize.c, link.c: Remove system-specific
10021 sections of non-supported Interix target.
10023 * s-osinte-interix.ads: Removed.
10025 * i-cstrin.ads (chars_ptr): Make it a C convention type.
10027 2007-11-13 Samuel Tardieu <sam@rfc1149.net>
10029 * a-tasatt.adb: Add a comment at the beginning of the package
10030 explaining why in general 'Unchecked_Access must be used instead
10033 * sem_prag.adb (Process_Convention): Move the test for the
10034 entity on which the Convention pragma applies down to also
10035 forbid pragma Convention on enumeration literals reached
10038 2007-11-10 Samuel Tardieu <sam@rfc1149.net>
10040 * a-tasatt.adb: Revert previous change for this file as it will
10041 generate an error when this package is instantiated from a
10044 2007-11-07 Samuel Tardieu <sam@rfc1149.net>
10046 * a-tasatt.adb: Type Wrapper should be declared in comment instead
10047 of already declared type Node_Access.
10048 Use 'Access instead of 'Unchecked_Access when applicable. Local
10049 lifetime is the one of the package.
10050 (Set_Value): W is allocated on the heap.
10052 * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
10054 (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
10056 (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
10059 * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
10061 (elaboration code): Timer_Queue lifetime is the one of the
10064 * tracebak.c (i386 alternative): Remove useless comparaison
10065 which is always false; LOWEST_ADDRESS is 0 and is never greater
10066 than an unsigned integer.
10068 * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
10069 embedded check for "Ada_Version >= Ada_05".
10071 2007-11-07 Olivier Hainque <hainque@adacore.com>
10073 * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
10074 craft and expand comment.
10076 2007-11-01 Eric Botcazou <ebotcazou@adacore.com>
10078 * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
10080 2007-10-23 Eric Botcazou <ebotcazou@adacore.com>
10082 * misc.c (gnat_handle_option): Replace call to abort with
10083 call to gcc_unreachable.
10084 (gnat_init): Likewise.
10085 (gnat_expand_expr): Likewise.
10086 (fp_prec_to_size): Likewise.
10087 (fp_size_to_prec): Likewise.
10089 2007-10-23 Richard Guenther <rguenther@suse.de>
10092 * tracebak.c: #undef abort after including system.h.
10094 2007-10-20 Danny Smith <dannysmith@users.sourceforge.net>
10096 * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
10097 s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
10099 (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
10101 2007-10-15 Eric Botcazou <ebotcazou@adacore.com>
10103 * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
10104 Set the protection status of the guard page based on the value of On.
10106 * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
10108 * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
10109 (Exit_Task): Pass False to Hide_Yellow_Zone.
10111 2007-10-15 Robert Dewar <dewar@adacore.com>
10113 * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
10114 s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
10115 a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
10116 checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
10117 freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
10118 gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
10119 mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
10120 prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
10121 sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
10122 s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
10123 uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
10124 a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
10125 a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
10126 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
10127 a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
10128 a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
10129 Minor reformatting.
10130 Add Unreferenced and Warnings (Off) pragmas for cases of
10131 variables modified calls where they are IN OUT or OUT parameters and
10132 the resulting values are not subsequently referenced. In a few cases,
10133 we also remove redundant code found by the new warnings.
10135 * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
10136 sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
10137 sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
10138 sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
10139 warning controlled by -gnatw.o that warns on cases of out parameter
10140 values being ignored.
10142 2007-10-15 Geert Bosch <bosch@adacore.com>
10144 * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
10146 * expect.c: Initial port to arm-mentor-nucleus.
10147 Use kill for __gnat_kill() on VMS.
10149 2007-10-15 Emmanuel Briot <briot@adacore.com>
10151 * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
10153 (Xref_Record): Change type for Line, since in the case of a reference to
10154 a predefined entity (as happens for array index types), the line is set
10156 Add support for parsing multiple array index types info, or
10157 multiple inherited interfaces info. This information cannot be stored
10158 in Xref_Entity_Record, which only supports a single instance of Tref_*,
10159 and is therefore stored in the list of references instead. It has a
10160 special treatement later on in tools that use this information.
10162 2007-10-15 Tristan Gingold <gingold@adacore.com>
10164 * debug.adb: Document use of -gnatd.a and -gnatd.I
10166 * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
10168 2007-10-15 Javier Miranda <miranda@adacore.com>
10170 * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
10171 Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
10172 care of access to class-wide interface types plus removal of bizarre
10173 conversion of tagged object to access type (reported by Gary
10174 Dismukes). After this patch there is no need to perform any
10175 additional management on these nodes in Expand_Interface_Actuals.
10177 * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
10178 that handles use of 'Access and 'Unchecked_Access applied to
10179 actuals covering interface types. Such code is now
10180 centralized in Expand_N_Attribute_Reference.
10182 2007-10-15 Ed Schonberg <schonberg@adacore.com>
10184 * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
10185 of tagged types whose ultimate ancestor is a CPP type.
10186 (Freeze_Array_Type): For a packed array type, generate an initialization
10187 procedure if the type is public, to handle properly a client that
10188 specifies Normalize_Scalars.
10190 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
10192 * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
10193 inside a generic body, retrieve the full view of the entry family
10194 discrete subtype if available.
10196 2007-10-15 Thomas Quinot <quinot@adacore.com>
10198 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
10199 attempt to generate stubs for hidden primitive operations.
10201 2007-10-15 Vincent Celier <celier@adacore.com>
10203 * mlib-tgt-specific.adb (Support_For_Libraries): New function,
10204 returning None, used when there is no platform specific body for
10207 2007-10-15 Bob Duff <duff@adacore.com>
10209 * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
10210 (passing'Unrestricted_Access of nested subprograms to Sort) with use of
10211 the generic Heap_Sort_G, in order to avoid trampolines.
10213 2007-10-15 Vasiliy Fofanov <fofanov@adacore.com>
10214 Jose Ruiz <ruiz@adacore.com>
10216 * vx_stack_info.c: New file.
10218 * i-forbla-unimplemented.ads: New file.
10220 * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
10221 for unsupported configurations; use it on VMS targets instead of the
10223 (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
10224 vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
10225 used by VxWorks targets to have access to task-specific data and be
10226 able to extract the stack boundaries for stack checking.
10227 Use system-vms-ia64.ads on ivms.
10229 * Make-lang.in: Update dependencies.
10231 * sysdep.c (__gnat_get_stack_info): Move to a standalone file
10234 2007-10-15 Vincent Celier <celier@adacore.com>
10236 * snames.adb, snames.ads: Add new standard name runtime_library_dir
10238 * prj.ads (Language_Config): Add new component Runtime_Library_Dir
10240 * prj-attr.adb: Add project level attribute Runtime_Library_Dir
10242 * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
10243 the source is unknown.
10245 * prj-ext.adb: Spelling error fix
10247 * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
10248 95 reserved word in its name.
10249 (Process_Project_Level_Array_Attributes): Process new attribute
10250 Runtime_Library_Dir.
10252 * prj-part.adb (Parse_Single_Project): Do not check the name of the
10253 config project against the user project names.
10255 * prj-proc.adb (Expression): In multi-language mode, indexes that do
10256 not include a dot are always case insensitive.
10257 (Process_Declarative_Items): Ditto
10258 (Process_Project_Tree_Phase_1): Set Success to False in case an error is
10261 * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
10262 True, compare both indexes in lower case.
10264 2007-10-15 Robert Dewar <dewar@adacore.com>
10266 * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
10268 2007-10-15 Gary Dismukes <dismukes@adacore.com>
10270 * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
10271 association for an access component, add an association with null as
10272 the expression. Remove testing for array subtypes and the setting in
10273 that case of Ctyp to the array component type, which prevented proper
10274 inclusion of an association for null-initialized arrays. Collapse
10275 condition that tests for array subtypes into just a test of
10276 Is_Partially_Initialized_Type (which already covers arrays anyway).
10278 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
10280 * sem_ch12.adb: Minor code reformatting.
10281 (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
10282 find the parent package which may have been hidden by local
10285 2007-10-15 Gary Dismukes <dismukes@adacore.com>
10287 * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
10288 flag of derived concurrent types, taking into account the flag setting
10289 on the parent subtype and any new set of discriminants.
10291 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
10293 * sem_ch4.adb: Minor code and comment reformatting.
10294 (Analyze_Allocator): When the designated type of an unconstrained
10295 allocator is a record with unknown discriminants or an array with
10296 unknown range bounds, emit a detailed error message depending on the
10297 compilation mode and whether the designated type is limited.
10299 2007-10-15 Tristan Gingold <gingold@adacore.com>
10301 * system-vms-ia64.ads: New file.
10303 * system-vms_64.ads: Minor comment fix.
10305 2007-10-15 Ed Schonberg <schonberg@adacore.com>
10307 * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
10308 body generated for a function with a controlling result that is a null
10309 extension, discard the generated body in favor of the current explicit
10312 2007-10-15 Ed Schonberg <schonberg@adacore.com>
10314 * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
10315 examining its original form, to handle properly operator calls that
10316 have been rewritten.
10318 2007-10-15 Olivier Hainque <hainque@adacore.com>
10320 * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
10321 instead of a procedure value in each traceback entry.
10323 * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
10324 instead of procedure value to TBK$SYMBOLIZE.
10326 * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
10328 (TB_Entry_For): Account for the PV/FP renaming.
10330 * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
10332 (Null_TB_Entry): Account for change of component name.
10333 (PV_For): Rename as FP_For.
10335 2007-10-15 Tristan Gingold <gingold@adacore.com>
10337 * trans.c (gnat_to_gnu): Remove the padding structure more often.
10338 This optimize assignment to over-aligned record.
10340 2007-10-15 Emmanuel Briot <briot@adacore.com>
10342 * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
10345 * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
10346 type, for dispatching calls.
10348 2007-10-15 Vincent Celier <celier@adacore.com>
10349 Robert Dewar <dewar@adacore.com>
10351 * gnat_ugn.texi: Add documentation for switches --version and --help
10352 for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
10353 gnatxref, gnatfind, gnatls, and gnatclean.
10355 Mention attribute Excluded_Source_Dirs
10356 Replace obsolescent attribute Locally_Removed_Files with attribute
10357 Excluded_Source_Files.
10358 Improve documentation of -u (gnatbind)
10359 Document how to do reliable stack checking for the environmental task
10362 * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
10363 Document attribute Excluded_Source_Files and indicate that attribute
10364 Locally_Removed_Files is obsolescent.
10366 2007-10-15 Thomas Quinot <quinot@adacore.com>
10368 * g-soccon-vms.ads: Fix value of MSG_WAITALL.
10371 Update documentation to note that OpenVMS 8.3 or later must be used
10372 to generate g-soccon-vms.ads.
10374 * atree.adb: Add ??? comment
10376 * exp_util.adb: Minor reformatting.
10377 Add ??? comment in Kill_Dead_Code.
10379 2007-10-15 Robert Dewar <dewar@adacore.com>
10381 * errout.ads: Comment clarification
10383 * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
10384 (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
10386 * lib.ads: Comment update
10388 * init.c: Minor reformatting.
10390 * sem_attr.adb: Minor formatting
10392 * osint-b.ads: Minor reformatting
10394 * sem_ch9.adb: Implement -gnatd.I switch
10396 * g-comlin.adb: (Start): Fix handling of empty command line.
10398 * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
10399 even when -rules follows the -cargs section.
10401 2007-10-08 Ollie Wild <aaw@google.com>
10403 * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
10405 (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
10407 (gnat_eh_runtime_type): Removed.
10408 (gnat_return_tree): New function.
10410 2007-10-08 Ben Elliston <bje@au.ibm.com>
10414 2007-08-31 Ben Elliston <bje@au.ibm.com>
10416 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
10417 when compiling for powerpc64-*-linux.
10418 * system-linux-ppc64.ads: New file.
10420 2007-09-27 Eric Botcazou <ebotcazou@adacore.com>
10422 Mapped location support
10423 * back_end.adb (Call_Back_End): Pass information about source
10424 files instead of units to gigi.
10425 * gigi.h (struct File_Info_Type): New.
10426 (gigi): Rename and change type of number_units parameter, change
10427 type of file_info_ptr parameter.
10428 * trans.c (number_files): New global variable.
10429 (gigi): Rename and change type of number_units parameter, change
10430 type of file_info_ptr parameter.
10431 If mapped location support is enabled, create the isomorphic mapping
10432 between source files and line maps.
10433 (Sloc_to_locus): If mapped location support is enabled, translate
10434 source location into mapped location.
10435 (annotate_with_node): Rename into set_expr_location_from_node.
10436 Call set_expr_location instead of annotate_with_locus.
10437 (Pragma_to_gnu): Adjust for above change.
10438 (Loop_Statement_to_gnu): Likewise.
10439 (call_to_gnu): Likewise.
10440 (Handled_Sequence_Of_Statements_to_gnu): Likewise.
10441 (gnat_to_gnu): Likewise.
10442 (add_stmt_with_node): Likewise.
10443 (add_cleanup): Likewise.
10444 * utils.c (gnat_init_decl_processing): Do not set input_line.
10446 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
10448 * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
10449 (Applicable_Use): Emit a warning when a package tries to use itself.
10450 (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
10451 is already in use or the package where it is declared is in use or is
10452 declared in the current package.
10453 (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
10455 * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
10456 s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
10457 s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
10459 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
10461 * a-calend-vms.adb, a-calend.adb:
10462 Add a section on leap seconds control along with two entities used to
10463 enable and disable leap seconds support. The array Leap_Second_Times is
10464 now constant and contains hard time values pre-generated. Remove
10465 all elaboration code used to populate the table of leap seconds.
10468 Add entity Leap_Seconds_Support to the list of global run-time variables
10469 along with a comment on its usage and values.
10470 (Gen_Adainit_Ada): Add code to generate the declaration and import of
10471 Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
10472 or one (enabled) depending on the presence of binder switch "-y".
10473 (Gen_Adainit_C): Add code to generate the declaration of external int
10474 __gl_leap_seconds_support. Set is value to zero (disabled) or one
10475 (enabled) depending on the presence of binder switch "-y".
10477 * init.c: Add __gl_leap_seconds_support to the list of global values
10478 computed by the binder.
10480 2007-09-26 Jerome Guitton <guitton@adacore.com>
10482 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
10483 s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
10484 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
10485 s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
10487 * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
10489 * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
10490 function which can be called by the debugger to interrupt the tasks of
10491 an Ada application asynchronously, as needed on VxWorks.
10492 (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
10494 * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
10495 renamed from Stop_All_Tasks. Update comments.
10496 (Stop_All_tasks): New function declaration.
10498 2007-09-26 Olivier Hainque <hainque@adacore.com>
10500 * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
10501 #include <utime.h> and #define GCC_RESOURCE_H before
10502 #include <sys/wait.h>.
10503 Add more protections in __gnat_translate_vms.
10505 * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
10506 #include <sys/wait.h>.
10508 2007-09-26 Thomas Quinot <quinot@adacore.com>
10509 Sergey Rybin <rybin@adacore.com>
10511 * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
10513 * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
10516 * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
10518 * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
10521 * sem_dist.ads: Minor comment fix
10523 * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
10525 2007-09-26 Javier Miranda <miranda@adacore.com>
10526 Eric Botcazou <ebotcazou@adacore.com>
10529 (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
10530 indirection added to the HT_Link component of the TSD. This is required
10531 to statically allocate the TSD.
10534 Minor reordering of the declarations in the private part. Required to
10535 add a level of indirection to the contents of the TSD component HT_Link.
10536 This is required to statically allocate the TSD.
10538 * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
10539 Is_Statically_Allocated set from constant objects.
10540 Do not make exported constants created by the compiler volatile.
10541 (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
10544 * trans.c (Identifier_to_gnu): For constants, unshare initializers
10545 before returning them.
10547 * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
10548 public part of the package.
10549 (Make_DT): Move HT_Link component out of the TSD record. For this
10550 purpose Make_DT now declares a separate object that stores the
10551 HT_Link value, and initializes the TSD component with the address
10552 of this new object. The addition of this level of indirection is
10553 required to statically allocate the TSD because the TSD cannot
10554 have variable components.
10555 (Expand_Interface_Conversion): Improve the expanded code.
10556 (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
10558 * sem_disp.adb (Check_Dispatching_Operation): In case of a body
10559 declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
10560 if we are building static dispatch tables then we must not generate
10561 extra code to register the primitive because the dispatch table will
10562 be built at the end of the library package; otherwise we notify that
10563 we cannot build the static dispatch table.
10565 2007-09-26 Robert Dewar <dewar@adacore.com>
10567 * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
10570 * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
10571 (Analyze_Record_Representation_Clause): Suppress junk warning for
10572 missing component clause.
10573 (Analyze_Attribute_Definition_Clause, case Address): Apply the special
10574 tests for controlled type overlay to composites with controlled
10576 (Analyze_Record_Representation_Clause): Add reference for component name
10578 2007-09-26 Javier Miranda <miranda@adacore.com>
10579 Gary Dismukes <dismukes@adacore.com>
10581 * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
10582 for thunks associated with interface types.
10584 * einfo.ads: Improve documentatation of Is_Internal
10585 (Is_Thunk): New attribute applicable to subprograms. True for thunks
10586 associated with interface types.
10587 Extensive comment fixes regarding flags that appear in all entities. The
10588 documentation is now consistent for all such flags (there were a number
10589 of errors in the documentation in this regard).
10591 * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
10593 * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
10594 of these procedures are passed a function call that already has
10595 build-in-place actuals (testing new flag
10596 Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
10597 the case where processing continues.
10598 (Expand_Call): If the call is generated from a thunk body then we
10599 propagate the extra actuals associated with the accessibility
10600 level of the access type actuals.
10602 * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
10603 of each extra formal of a protected operation to reference the
10604 corresponding extra formal of the subprogram denoted by the
10605 operation's Protected_Body_Subprogram.
10607 * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
10608 N_Function_Call nodes.
10610 2007-09-26 Robert Dewar <dewar@adacore.com>
10612 * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
10614 * debug.adb: Add d.s flag.
10616 2007-09-26 Gary Dismukes <dismukes@adacore.com>
10618 * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
10619 debug variable so that it won't be initialized when pragma
10620 Initialize_Scalars is in effect.
10622 2007-09-26 Gary Dismukes <dismukes@adacore.com>
10624 * freeze.adb (Freeze_Entity): Remove check for preelaborable
10625 initialization of a full view. This is moved to
10626 Analyze_Package_Specification.
10628 * sem_ch7.adb (Analyze_Package_Specification): Add check for
10629 preelaborable initialization of a full view in entity loop.
10630 (Uninstall_Declarations): If entity is a use-visible compilation unit,
10631 its child units are use-visible only if they are visible child units.
10633 * sem_util.adb (Is_Preelaborable_Expression): New function to determine
10634 whether an expression can be used within a type declaration that
10635 requires preelaborable init.
10636 (Check_Components): Replace inline code that does partial checking for
10637 preelaborable default expressions with call to
10638 Is_Preelaborable_Expression.
10639 (Has_Preelaborable_Initialization): In the case of a generic actual
10640 subtype, (that is, Is_Generic_Actual is True), return the result of
10641 applying Has_Preelaborable_Initialization to the generic actual's base
10644 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
10646 * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
10647 call to Jan_1_Day _Of_Week to optimize its performance.
10648 (Is_Leap): Move the routine to the scope of Week_In_Year.
10649 (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
10650 weekday on which January 1 falls of Year - 1 and Year + 1. This function
10651 avoids calling Time_Of and Split, thus making it more efficent.
10652 (Week_In_Year): Reimplemented in oder to follow ISO 8601.
10654 * g-calend.ads (Week_In_Year): Change comment to reflect new
10657 2007-09-26 Emmanuel Briot <briot@adacore.com>
10659 * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
10660 Command_Line): New types
10661 (Define_Alias, Define_Prefix, Free): New subprograms. These provide
10662 support for defining how switches can be grouped on a command line (as
10663 is the case for -gnatw... for GNAT), and how simple switches can be
10664 used as aliases for more complex switches (-gnatwa is same as
10666 (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
10667 (Start, Current_*): New subprograms
10668 Added support for parsing an array of strings in addition to the real
10670 (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
10671 be moved from the body to the private part of the spec.
10672 (*): All subprograms now have an extra parameter with default value to
10673 specify which parser should be used. For backward compatibility, it
10674 defaults to parsing the command line of the application. They were also
10675 modified to properly handle cases where each of the argument does not
10676 start at index 1 (which is always true for Ada.Command_Line, but not
10677 when processing any Argument_List).
10678 (Free): New subprogram
10679 (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
10680 Argument): New subprograms
10681 (Switch_Parameter_Type): New enum, which clarifies the code. The extra
10682 special characters like ':', '=',... are now handled in a single place,
10683 which makes the code more extensible eventually.
10684 (Getopt, Full_Switch): When the switch was returned as part of the
10685 special character '*', make sure it is prepended by the switch character
10686 ('-' in general), so that the application knows whether "foo" or "-foo"
10687 was specified on the command line.
10689 2007-09-26 Florian Villoing <villoing@adacore.com>
10691 * g-dirope.adb (Remove_Dir): In case we are removing directories
10692 recursively, make sure that if an exception is raised during the
10693 processing, the current working directory is reset to its initial
10694 value before propagating the exception.
10696 2007-09-26 Vincent Celier <celier@adacore.com>
10698 * gnatbind.adb: If there are several ALI files specified and there is
10699 a main program to bind, the first ALI is expected to contain the main
10700 subprogram and the names of the binder generated files will be derived
10701 from the first ALI file name.
10702 (Gnatbind): Fix insertion character in invocation of Error_Msg
10704 2007-09-26 Vincent Celier <celier@adacore.com>
10706 * gnatcmd.adb (Check_Files): Do not include sources that have been
10707 removed by attributes Exclude_Source_Files or Locally_Removed_Files.
10709 2007-09-26 Ed Schonberg <schonberg@adacore.com>
10711 * lib-xref.ads, lib-xref.adb: The entry for array types now carries
10712 information about each of its index types, following the type
10713 reference for its component type.
10715 2007-09-26 Vincent Celier <celier@adacore.com>
10717 * make.adb: (Kill): New procedure (__gnat_kill imported)
10718 (Running_Compile, Outstanding_Compiles): Global variables that
10719 were previously local to procedure Compile_Sources.
10720 (Sigint_Intercepted): Send signal SIGINT to all outstanding
10721 compilation processes.
10723 (Gnatmake): If project files are used, create the mapping of all the
10724 sources, so that the correct paths will be found.
10726 * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
10728 2007-09-26 Vincent Celier <celier@adacore.com>
10730 * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
10732 * prj.ads, prj.adb (Default_Language): Remove function, no longer used
10733 Replace components Compiler_Min_Options and Binder_Min_Options with
10734 Compiler_Required_Switches and Binder_Required_Switches in record
10736 Remove components Default_Language and Config in Project_Tree_Data,
10739 * prj-attr.adb: New attributes Required_Switches (<language>) in
10740 packages Compiler and Binder.
10742 * prj-nmsc.adb: Major rewrite of the processing of configuration
10743 attributes for gprbuild. No impact on GNAT tools.
10745 * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
10746 process configuration attributes: this is done in Prj.Nmsc.Check.
10747 (Recursive_Process): Make a full copy of packages inherited from project
10748 being extended, instead of a shallow copy.
10749 (Process_Project_Tree_Phase_1): New procedure
10750 (Process_Project_Tree_Phase_1): New procedure
10751 (Process): Implementation now uses the two new procedures
10753 * prj-util.adb (Executable_Of): Get the suffix and the default suffix
10754 from the project config, not the tree config that no longer exists.
10756 2007-09-26 Vincent Celier <celier@adacore.com>
10758 * Make-lang.in: Update dependencies..
10760 2007-09-26 Vincent Celier <celier@adacore.com>
10762 * osint.adb, osint.ads: Minor reformatting
10764 * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
10766 2007-09-26 Gary Dismukes <dismukes@adacore.com>
10768 * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
10769 message to cite use of <> in aggregate component associations rather
10770 than wrongly indicating use of limited aggregates.
10772 2007-09-26 Robert Dewar <dewar@adacore.com>
10774 * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
10777 2007-09-26 Ed Schonberg <schonberg@adacore.com>
10779 * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
10780 ancestor of the derived type, the operations are inherited from the
10781 primary dispatch table of the parent.
10782 (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
10783 when the context is an explicit type conversion.
10785 2007-09-26 Ed Schonberg <schonberg@adacore.com>
10787 * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
10788 rule for qualified expressions properly, to detect improper conversions
10789 and resolve some cases of overloading.
10791 2007-09-26 Ed Schonberg <schonberg@adacore.com>
10793 * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
10794 proper kind of reference to the primitive operation, for better source
10796 (Valid_Conversion): A tagged conversion is legal if both operands are
10799 2007-09-26 Robert Dewar <dewar@adacore.com>
10801 * sem_warn.adb (Check_References): Catch more cases of unreferenced
10804 2007-09-26 Vincent Celier <celier@adacore.com>
10806 * snames.adb, snames.ads: Change Include_Option to Include_Switches
10808 2007-09-26 Robert Dewar <dewar@adacore.com>
10810 * s-wchstw.adb: provide messages for run time unit exceptions
10812 * a-witeio.adb: Minor reformatting
10814 * exp_ch13.adb: Minor reformatting
10816 2007-09-26 Sergey Rybin <rybin@adacore.com>
10818 * vms_data.ads: Revise gnatmetric qualifiers.
10819 Add qualified for the new gnatbind option '-y'
10821 * gnat_ugn.texi: Revise the gnatmetric section.
10822 Add entry for new gnatbind option '-y'.
10824 * gnat_rm.texi: Minor spelling correction.
10825 Document restriction on overlaying controlled types
10827 2007-09-26 Vincent Celier <celier@adacore.com>
10829 * makegpr.adb (Link_Executables): Do not fail when the root project has
10830 no sources, but is an extending project.
10832 2007-09-25 Eric Botcazou <ebotcazou@adacore.com>
10834 * trans.c: Fix misplaced #define.
10836 2007-09-22 Eric Botcazou <ebotcazou@adacore.com>
10838 * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
10839 the TYPE_REF_CAN_ALIAS_ALL flag to the result.
10841 2007-09-21 Olivier Hainque <hainque@adacore.com>
10843 * utils.c (type_for_nonaliased_component_p): Return false for
10844 all AGGREGATE_TYPEs.
10846 2007-09-17 Eric Botcazou <ebotcazou@adacore.com>
10848 * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
10849 object covered by 13.3(19) volatile.
10851 2007-09-12 Eric Botcazou <ebotcazou@adacore.com>
10855 * utils.c (unchecked_convert): Use a subtype as the intermediate type
10856 in the special VIEW_CONVERT_EXPR case.
10858 2007-09-12 Robert Dewar <dewar@adacore.com>
10860 * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
10862 * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
10863 lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
10864 s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
10865 s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
10866 s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
10867 s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
10868 s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
10869 s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
10870 a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
10871 g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
10872 s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
10873 s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
10874 snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
10875 s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
10876 s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
10877 s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
10878 s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
10879 pragma Compiler_Unit and adds it to relevant library units.
10881 2007-09-12 Ed Schonberg <schonberg@adacore.com>
10883 * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
10884 a box need not correspond to any component.
10886 2007-09-12 Robert Dewar <dewar@adacore.com>
10888 * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
10889 the tasking version of the Ada run time when foreign threads are
10890 present and there are no explicit Ada tasks or tasking constructs.
10892 * gnat_rm.texi: Clarify documentation of GNAT.Threads.
10894 2007-09-12 Hristian Kirtchev <kirtchev@adacore.com>
10896 * bindusg.adb (Display): Correct comment for switch -X. Add a line for
10897 the usage of switch -y.
10899 * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
10900 when switch -y is present.
10902 * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
10903 leap seconds in Ada.Calendar and its children.
10905 2007-09-12 Jose Ruiz <ruiz@adacore.com>
10907 * a-extiti.ads (Timer): The discriminant is a "not null access
10908 constant" in the Reference Manual.
10909 (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
10911 2007-09-12 Robert Dewar <dewar@adacore.com>
10913 * a-swuwha.adb: Remove junk RM header
10915 2007-09-12 Vincent Celier <celier@adacore.com>
10917 * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
10920 * g-bytswa.ads: Minor reformatting
10922 2007-09-12 Thomas Quinot <quinot@adacore.com>
10924 * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
10925 Add new constant Thread_Blocking_IO, always True by default, set False
10926 on a per-runtime basis.
10927 (Need_Netdb_Buffer): New constant.
10929 2007-09-12 Arnaud Charlet <charlet@adacore.com>
10931 * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
10932 Added renames for corresponding functions in System.Partition_Interface.
10934 2007-09-12 Doug Rupp <rupp@adacore.com>
10936 * Makefile.in: Remove VMS specific System.CRTL packages which are no
10939 * s-crtl-vms64.ads: Removed.
10941 2007-09-12 Olivier Hainque <hainque@adacore.com>
10943 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
10944 with discriminant constraints, generalize the code for BIT_FIELDs
10945 to PACKED fields of constant size and propagate DECL_PACKED.
10947 2007-09-11 Eric Botcazou <ebotcazou@adacore.com>
10949 * decl.c (array_type_has_nonaliased_component): New predicate.
10950 (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
10951 set the TYPE_NONALIASED_COMPONENT flag on the type.
10952 <E_Array_Subtype>: Likewise.
10953 * gigi.h (type_for_nonaliased_component_p): Declare.
10954 * utils.c (type_for_nonaliased_component_p): New predicate.
10955 (create_field_decl): Invoke the above predicate to set the
10956 DECL_NONADDRESSABLE_P flag on the field.
10958 2007-09-11 Javier Miranda <miranda@adacore.com>
10960 * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
10961 in library level record type entities if we are generating statically
10962 allocated dispatch tables.
10964 * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
10965 importing/exporting the _tag declaration by new code
10966 importing/exporting the dispatch table wrapper. This change allows us
10967 to statically allocate of the TSD.
10968 (Make_DT.Export_DT): New procedure.
10969 (Build_Static_DT): New function.
10970 (Has_DT): New function.
10972 * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
10973 True_Constant and Current_Value. Required to statically
10974 allocate the dispatch tables.
10975 (Check_Allocator): Make function iterative instead of recursive.
10976 Also return inner allocator node, when present, so that we do not have
10977 to look for that node again in the caller.
10979 2007-09-11 Jan Hubicka <jh@suse.cz>
10981 * misc.c (gnat_expand_body): Kill.
10982 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
10984 2007-09-10 Robert Dewar <dewar@adacore.com>
10986 * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
10987 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
10988 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
10989 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
10990 ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
10991 bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
10992 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
10993 butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
10994 comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
10995 elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
10996 err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
10997 exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
10998 exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
10999 exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
11000 exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
11001 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
11002 exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
11003 exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
11004 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
11005 exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
11006 exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
11007 exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
11008 fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
11009 get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
11010 gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
11011 gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
11012 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
11013 gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
11014 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
11015 gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
11016 inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
11017 lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
11018 lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
11019 make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
11020 mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
11021 mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
11022 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
11023 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
11024 osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
11025 osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
11026 par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
11027 par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
11028 par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
11029 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
11030 par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
11031 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
11032 prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
11033 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
11034 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
11035 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
11036 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
11037 prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
11038 rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
11039 scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
11040 sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
11041 sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
11042 sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
11043 sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
11044 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
11045 sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
11046 sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
11047 sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
11048 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
11049 sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
11050 sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
11051 sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
11052 sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
11053 sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
11054 stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
11055 styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
11056 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
11057 switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
11058 tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
11059 treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
11060 types.h, uintp.h, urealp.h, usage.adb, usage.ads,
11061 validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
11062 xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
11063 xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
11064 gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
11065 mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
11066 symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
11067 mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
11068 mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
11070 2007-09-10 Emmanuel Briot <briot@adacore.com>
11072 * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
11075 2007-09-10 Vasiliy Fofanov <fofanov@adacore.com>
11077 * adaint.c (__gnat_translate_vms): new function.
11079 2007-09-10 Gary Dismukes <dismukes@adacore.com>
11080 Thomas Quinot <quinot@adacore.com>
11082 * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
11083 create an abstract subprogram in the case of 'Input. For 'Output we now
11084 create a real spec/body when the type is abstract, since it can
11085 potentially be called.
11086 (Predefined_Primitive_Bodies): Now allow the creation of a predefined
11087 body for 'Output when the type is abstract (only the creation of the
11088 body for 'Input is excluded when the type is abstract).
11089 (Stream_Operation_OK): Add an additional condition in the return
11090 statement, so that False will be returned for TTS_Stream_Input if the
11091 associated tagged type is an abstract extension. Add comments for
11093 (Expand_N_Object_Declaration): For the case of a shared passive
11094 variable, insert init proc call only after the shared variable
11095 procedures have been processed, because the IP call needs to undergo
11096 shared passive variable reference expansion, which requires these
11097 procedures to be available (and elaborated).
11099 2007-09-10 Vincent Celier <celier@adacore.com>
11101 * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
11102 parameter Runtime_Project.
11104 2007-09-10 Ed Schonberg <schonberg@adacore.com>
11106 * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
11107 given a box association, the type of the component is discriminated,
11108 and the value of the discriminant is the discriminant of the enclosing
11109 type, retrieve its value from the aggregate itself, where it must have
11112 * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
11113 to remove other spurious ambiguities on arithmetic operations involving
11114 literals and addresses, on systems where Address is a visible integer
11115 type, when the operator is called in functional notation.
11116 (Try_Primitive_Operation): Within an instance, a call in prefixed form
11117 is legal when the types match, even if the operation is currently
11120 2007-09-10 Ed Schonberg <schonberg@adacore.com>
11122 * sem_ch12.adb (Build_Local_Package): A formal package with no
11123 associations is legal if all formals have defaults. It is not
11124 equivalent to a formal declared with a box.
11126 2007-09-10 Sergey Rybin <rybin@adacore.com>
11128 * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
11130 2007-09-10 Sergey Rybin <rybin@adacore.com>
11132 * gnat_ugn.texi: Add description of the new '-lratio' option
11133 Update 7.3.1 section about availability of the feature.
11135 2007-09-10 Thomas Quinot <quinot@adacore.com>
11137 * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
11140 2007-09-10 Olivier Hainque <hainque@adacore.com>
11142 * Makefile.in: (mips-irix section): Activate build of libgmem.
11144 2007-09-10 Eric Botcazou <ebotcazou@adacore.com>
11146 * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
11149 2007-09-10 Eric Botcazou <ebotcazou@adacore.com>
11151 * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
11152 a debug renaming declaration specially.
11154 2007-09-08 Eric Botcazou <ebotcazou@adacore.com>
11156 * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
11157 which a constant renaming is treated as a normal object declaration.
11158 * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
11159 the N_Indexed_Component case.
11160 <N_Indexed_Component>: Fall through to above case.
11161 <N_Object_Renaming_Declaration>: Return true for all composite types.
11163 2007-09-08 Eric Botcazou <ebotcazou@adacore.com>
11165 * decl.c (make_packable_type): If the new type has been given BLKmode,
11166 try again to get an integral mode for it.
11168 2007-09-07 Eric Botcazou <ebotcazou@adacore.com>
11170 Re-apply accidentally reverted change:
11172 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
11174 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
11175 get_action_description_for): Replace _Unwind_Word with _uleb128_t
11176 and _Unwind_SWord with _sleb128_t.
11178 2007-09-06 Eric Botcazou <ebotcazou@adacore.com>
11180 * trans.c (convert_with_check): Update call to real_2expN.
11182 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
11184 * trans.c (Compilation_unit_to_gnu): Use set_cfun.
11185 * utils.c (end_subprog_body): Likewise.
11187 2007-09-03 Nick Clifton <nickc@redhat.com>
11189 * Make-lang.in: Change copyright header to refer to version 3 of
11190 the GNU General Public License and to point readers at the
11191 COPYING3 file and the FSF's license web page.
11192 * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
11193 Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
11194 namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
11195 treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
11198 2007-08-31 Vincent Celier <celier@adacore.com>
11202 * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
11203 gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
11204 (Check_Version_And_Help): New procedure in package Switch to process
11205 switches --version and --help.
11206 Use Check_Version_And_Help in GNAT tools
11209 (Compile_Sources): Make sure that sources that are "excluded" are not
11211 (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
11212 project file is used.
11213 (Version_Switch): Remove, moved to Switch
11214 (Help_Switch): Remove, moved to Switch
11215 (Display_Version): Remove, moved to Switch
11217 * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
11218 package Switch to process switches --version and --help.
11219 (Display_Version): New procedure
11221 * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
11223 2007-08-31 Javier Miranda <miranda@adacore.com>
11225 * a-tags.adb (Internal_Tag): Protect the run-time against wrong
11228 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
11230 * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
11231 (Mark_Non_Null): If the node for which we just generated an access check
11232 is a reference to an *in* parameter and the reference appears in the
11233 declarative part of a subprogram body, mark the node as known non null.
11235 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
11237 * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
11238 structure of E_Exception to reflect the new flag.
11239 (Is_Raised, Set_Is_Raised): New inlined routines.
11240 Update the usage of available flag to reflect the addition of Is_Raised.
11241 (Is_Raised, Set_Is_Raised): Bodies of new routines.
11242 (Write_Entity_Flags): Write the status of flag Is_Raised.
11243 (Is_Descendent_Of_Address): New entity flag, to simplify handling of
11244 spurious ambiguities when integer literals appear in the context of an
11245 address type that is a visible integer type.
11247 * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
11248 exceptions never being raised.
11249 (Analyze_Raise_Statement): When analyzing an exception, mark it as being
11252 2007-08-31 Javier Miranda <miranda@adacore.com>
11254 * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
11255 statement when compiling under restriction No_Exceptions_Proparation.
11257 2007-08-31 Ed Schonberg <schonberg@adacore.com>
11259 * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
11260 initialization aggregate for the type, generate itype references for
11261 thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
11263 2007-08-31 Gary Dismukes <dismukes@adacore.com>
11265 * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
11266 library-level package renaming, pass the declaration associated with
11267 the renaming's special debug variable to Qualify_Entity_Names to ensure
11268 that its encoded name is properly qualified.
11270 * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
11271 occurring in the list of entities to qualify, and do not attempt to
11272 traverse an entity list in that case. Variables associated with
11273 ` library-level package renamings can now occur in the table.
11275 * exp_dbug.ads: Revise documentation of the encoding for renaming
11278 2007-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11280 * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
11281 access type points to an unconstrained array.
11283 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
11285 * restrict.adb, namet.adb, par-util.adb: Remove redundant type
11288 * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
11289 simple redundant qualifications. The check is performed whenever the
11290 expression is a non-overloaded identifier.
11291 (Resolve_Type_Conversion): Enchance the redundant type conversion check
11292 to include loop parameters.
11293 (Valid_Conversion): Avoid generation of spurious error message.
11295 2007-08-31 Bob Duff <duff@adacore.com>
11297 * par-ch4.adb (P_Simple_Expression): Fold long sequences of
11298 concatenations of string literals into a single literal, in order to
11299 avoid very deep recursion in the front end, which was causing stack
11302 * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
11303 string, and the right operand is a string literal (the case of "" &
11304 "..."), optimize by avoiding copying the right operand -- just use the
11305 value of the right operand directly.
11307 * stringt.adb (Store_String_Chars): Optimize by growing the
11308 String_Chars table all at once, rather than appending characters one by
11310 (Write_String_Table_Entry): If the string to be printed is very long,
11311 just print the first few characters, followed by the length. Otherwise,
11312 doing "pn(n)" in the debugger can take an extremely long time.
11314 * sem_prag.adb (Process_Interface_Name): Replace loop doing
11315 Store_String_Char with Store_String_Chars.
11317 2007-08-31 Vincent Celier <celier@adacore.com>
11319 * prj-attr.adb: Add new attribute Excluded_Source_Files
11321 * prj-nmsc.adb: Use attribute Excluded_Source_Files before
11322 Locally_Removed_Files.
11324 * snames.ads, snames.adb: New standard name Excluded_Source_Files
11326 2007-08-31 Ed Schonberg <schonberg@adacore.com>
11328 * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
11329 clauses of subunits, ignore limited_with_clauses that are illegal and
11330 have not been fully analyzed.
11332 2007-08-31 Ed Schonberg <schonberg@adacore.com>
11334 * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
11335 flag, for effiency. It is called when analyzing arithmetic operators
11336 and also for actuals in calls that are universal_integers. The flag is
11337 set for the predefined type address, and for any type or subtype
11340 * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
11341 Universal_Integer, when the formal is a descendent of address and the
11342 call appears in user code.
11343 (Analyze_Selected_Component): if the prefix is a private extension, the
11344 tag component is visible.
11346 * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
11349 2007-08-31 Robert Dewar <dewar@adacore.com>
11351 * s-fileio.adb (Open): Normalize file name to lower case in non-case
11352 sensitive file name systems to avoid unexpected mismatch in Vista.
11354 2007-08-31 Vincent Celier <celier@adacore.com>
11356 * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
11358 2007-08-31 Vincent Celier <celier@adacore.com>
11360 * symbols-vms.adb (Initialize): Read symbol files with continuation
11362 (Finalize): If symbol is long, split the line
11364 2007-08-31 Vincent Celier <celier@adacore.com>
11366 * fmap.ads: Minor comment updates
11368 2007-08-31 GNAT Script <nobody@adacore.com>
11370 * Make-lang.in: Makefile automatically updated
11372 2007-08-31 Bob Duff <duff@adacore.com>
11374 * sinfo.ads: Minor comment fix.
11376 2007-08-31 Thomas Quinot <quinot@adacore.com>
11378 * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
11379 with implementation.
11380 Documentation cleanup only.
11382 2007-08-31 Sergey Rybin <rybin@adacore.com>
11384 * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
11385 gnatpp '--separate-stmt-name' option.
11386 Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
11389 * gnat_ugn.texi: Add description for the new gnatpp
11390 '--separate-stmt-name' and '--use-on-new-line' options.
11392 2007-08-31 Ben Elliston <bje@au.ibm.com>
11394 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
11395 when compiling for powerpc64-*-linux.
11396 * system-linux-ppc64.ads: New file.
11398 2007-08-22 Krister Walfridsson <cato@df.lth.se>
11400 * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
11403 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11405 * misc.c (gnat_type_max_size): Constify.
11407 2007-08-16 Gary Dismukes <dismukes@adacore.com>
11409 * cstand.adb (Create_Standard): Create an entity for a zero-sized type
11410 associated with Standard_Debug_Renaming_Type, to be used as the type of
11411 the special variables whose names provide debugger encodings for
11412 renaming declarations.
11414 * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
11415 (Set_Debug_Renaming_Link): Change to set Node25.
11416 (Write_Field13_Name): Remove case for E_Enumeration_Literal.
11417 (Write_Field25_Name): Add case for E_Variable to output
11418 "Debug_Renaming_Link".
11419 (Write_Field23_Name): Correct the output string for "Limited_View".
11421 * exp_dbug.adb: Add with and use of Tbuild.
11422 (Debug_Renaming_Declaration): Replace creation of an enumeration type
11423 and literal with creation of a variable of type
11424 Standard_Debug_Renaming_Type whose name encodes both the renamed object
11425 and the entity of the renaming declaration.
11426 (Qualify_Entity_Name): Add the delayed qualification of the entity name
11427 part of the name of a variable that has a Debug_Renaming_Link.
11429 * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
11430 special type to be associated with variables that provide debugger
11431 encodings for renaming declarations.
11433 2007-08-16 Gary Dismukes <dismukes@adacore.com>
11434 Ed Schonberg <schonberg@adacore.com>
11435 Javier Miranda <miranda@adacore.com>
11437 * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
11438 ancestor part given by an aggregate to test for an unchecked conversion,
11439 since this can occur in some cases when the ancestor part is a function
11440 call, and we don't want to fall into the recursive call to this
11441 procedure in that case.
11443 * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
11444 stream attributes on limited types to account for user-specified
11445 attributes as well as whether Input (resp. Output) becomes available
11446 due to Read (resp. Write) being available for the type. Change Boolean
11447 variable to the more accurate name
11448 Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
11449 double-"not" predicate at beginning of return statement to more
11450 understandable form.
11452 * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
11453 return has an associated N_Handled_Sequence_Of_Statements, then wrap it
11454 in a block statement and use that as the first statement of the
11455 expanded return rather than incorrectly using the handled sequence as
11456 the first statement.
11458 * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
11459 operation, generate an explicit freeze node for it rather than
11460 generating extra formals, to ensure that gigi has the proper order of
11461 elaboration for anonymous subtypes in the signature of the subprograms.
11462 (Build_In_Place_Formal): Move assertion to beginning of loop.
11463 (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
11464 applied to a function call (occurs for some cases of 'Input).
11465 (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
11466 applied to a function call (occurs for some cases of 'Input).
11468 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
11469 2005, generate an extended return statement enclosing the result object
11472 * freeze.adb (Freeze_Record_Type): Extend the current management of
11473 components that are access type with an allocator as default value: add
11474 missing support to the use of qualified expressions of the
11475 allocator (which also cause freezing of the designated type!)
11476 (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
11477 dispatching operation, since extra formals may be needed by calls to
11478 build-in-place functions (such as stream 'Input).
11480 * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
11481 formals for 'Constrained and accessibility level in the case of a
11482 predefined dispatching operation.
11484 * exp_util.adb (Insert_Actions): A protected body is a valid insertion
11485 point, no need to find the parent node.
11487 2007-08-16 Javier Miranda <miranda@adacore.com>
11489 * exp_attr.adb (Attribute_Priority): Add missing support for entries
11490 and entry barriers.
11492 2007-08-16 Javier Miranda <miranda@adacore.com>
11494 * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
11495 is not really required and can introduce regression with the debugger.
11496 The original problem is fixed with the patch written for checks.adb.
11498 2007-08-16 Thomas Quinot <quinot@adacore.com>
11500 * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
11501 Range_Check on Allocated_Table.
11503 2007-08-16 Vincent Celier <celier@adacore.com>
11505 * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
11506 Including_Non_Switch set to False.
11507 (Gnatmake): For the compiler, call Test_If_Relative_Path with
11508 Including_Non_Switch set to False.
11510 * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
11511 parameter Including_Non_Switch, defaulted to True. When
11512 Including_Non_Switch is False, options that are not switches and
11513 appear as relative path are not converted to absolute paths.
11515 2007-08-16 Nicolas Roche <roche@adacore.com>
11517 * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
11520 * Make-lang.in: Update dependencies
11522 2007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
11524 * sem_ch10.adb (Has_With_Clause): If the name of the with clause
11525 currently inspected is a selected component, retrieve the entity of
11527 (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
11528 from the immediate ancestor of Main_Unit_Entity.
11529 (Install_Limited_Withed_Unit): Do not install the limited view of
11530 package P if P is reachable through an ancestor chain from package C
11531 and C also has a with clause for P in its body.
11532 (Has_Limited_With_Clause): New routine.
11533 (Has_With_Clause): New routine.
11535 2007-08-16 Ed Schonberg <schonberg@adacore.com>
11537 * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
11538 generic for an enclosing instance is a global reference, even though
11539 its scope is the enclosing instance.
11541 2007-08-16 Gary Dismukes <dismukes@adacore.com>
11542 Javier Miranda <miranda@adacore.com>
11544 * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
11545 initialize a limited object.
11546 (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
11548 Make sure Has_Complex_Representation is inherited by derived type.
11550 2007-08-16 Robert Dewar <dewar@adacore.com>
11552 * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
11555 2007-08-16 Ed Schonberg <schonberg@adacore.com>
11557 * sem_disp.adb (Check_Dispatching_Operation): If the operation
11558 implements an operation inherited from a progenitor interface, verify
11559 that they are subtype-conformant.
11561 2007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
11562 Bob Duff <duff@adacore.com>
11563 Nicolas Setton <setton@adacore.com>
11565 * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
11566 (Resolve): Alphabetize local variables. Add new variable From_Lib. When
11567 the statement which is being resolved comes from a predefined library
11568 unit, all non-predefined library interpretations are skipped.
11569 (Resolve_Op_Concat): If string concatenation was folded in the parser,
11570 but the "&" is user defined, give an error, because the folding would
11573 * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
11574 the parser has folded a long sequence of concatenations of string
11577 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
11578 and "JMP_BUF" variables as artificial.
11579 (N_String_Literal): Do not use alloca for very long string literals. Use
11580 xmalloc/free instead. Otherwise the stack might overflow.
11582 * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
11585 2007-08-16 Vincent Celier <celier@adacore.com>
11587 * vms_conv.adb (Process_Argument): Ensure that project related options
11588 are not put in the -cargs section when using GNAT COMPILE.
11590 2007-08-16 Robert Dewar <dewar@adacore.com>
11592 * gnat_ugn.texi: Add note on preprocessing (output file not written)
11594 2007-08-16 Thomas Quinot <quinot@adacore.com>
11596 * a-tags.adb: Minor reformatting.
11598 2007-08-16 Bob Duff <duff@adacore.com>
11600 * sem_type.ads, sem_ch4.adb: Minor reformatting.
11602 2007-08-14 Thomas Quinot <quinot@adacore.com>
11604 * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
11605 s-osinte-interix.ads, system-interix.ads: Removed.
11607 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
11609 * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
11610 calls to Check_Within_Time_Bounds.
11611 ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
11612 (Difference): Account for possible rounding of the resulting difference
11614 2007-08-14 Robert Dewar <dewar@adacore.com>
11616 * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
11617 par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
11618 s-osinte-solaris.adb, s-osinte-solaris.ads,
11619 s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
11621 * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
11622 switch -gnatyS. Enable -gnatyS in GNAT style check mode
11624 2007-08-14 Robert Dewar <dewar@adacore.com>
11625 Ed Schonberg <schonberg@adacore.com>
11627 * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
11628 Suppress unmodified in-out parameter warning in some cases
11629 This patch is a also fairly significant change to the way suppressible
11630 checks are handled.
11632 * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
11633 needed for access to concurrent record types generated by the expander.
11634 (Generate_Range_Check): When generating a temporary to capture the
11635 value of a conversion that requires a range check, set the type of the
11636 temporary before rewriting the node, so that the type is always
11637 properly placed for back-end use.
11638 (Apply_Float_Conversion_Check): Handle case where the conversion is
11640 (Get_Discriminal): Code reformatting. Climb the scope stack looking
11641 for a protected type in order to examine its discriminants.
11643 2007-08-14 Robert Dewar <dewar@adacore.com>
11644 Gary Dismukes <dismukes@adacore.com>
11645 Ed Schonberg <schonberg@adacore.com>
11646 Thomas Quinot <quinot@adacore.com>
11648 * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
11649 a-stwisu.adb, a-strsup.adb: Fix warnings for range
11650 tests optimized out.
11652 * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
11653 (Get_Allocator_Final_List): For the case of an anonymous access type
11654 that has a specified Associated_Final_Chain, do not go up to the
11656 (Expand_N_Type_Conversion): Test for the case of renamings of access
11657 parameters when deciding whether to apply a run-time accessibility
11659 (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
11660 aggregate code before allocator, and ahead of declaration for
11661 temporary, to prevent access before elaboration when the allocator is
11662 an actual for an access parameter.
11663 (Expand_N_Type_Conversion): On an access type conversion involving an
11664 access parameter, do not apply an accessibility check when the
11665 operand's original node was an attribute other than 'Access. We now
11666 create access conversions for the expansion of 'Unchecked_Access and
11667 'Unrestricted_Access in certain cases and clearly accessibility should
11668 not be checked for those.
11670 * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
11671 includes a type conversion of a packed component that has been expanded,
11672 recover the original expression for the object, and use this expression
11673 in the post-call assignment statement, so that the assignment is made
11674 to the object and not to a back-end temporary.
11675 (Freeze_Subprogram): In case of primitives of tagged types not defined
11676 at the library level force generation of code to register the primitive
11677 in the dispatch table. In addition some code reorganization has been
11678 done to leave the implementation clear.
11679 (Expand_Call): When expanding an inherited implicit conversion,
11680 preserve the type of the inherited function after the intrinsic
11681 operation has been expanded.
11683 * exp_ch2.ads, exp_ch2.adb
11684 (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
11685 of an entry formal appearing in an assignment statement does not assign
11687 (Expand_Current_Value): Instead of calling a routine to determine
11688 whether the prefix of an attribute reference should be optimized or
11689 not, prevent the optimization of such prefixes all together.
11691 * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
11692 component whose prefix is known to be of an access type is an implicit
11693 dereference and does not assign to the prefix.
11695 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11696 Robert Dewar <dewar@adacore.com>
11698 * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
11699 itype is visited, make an entry into table to link associated node and
11701 Add comments and correct harmless error in Build_NCT_Hash_Tables
11702 (Array_Aggr_Subtype): Associate each itype created for an index type to
11703 the corresponding range construct, and not to the aggregate itself. to
11704 maintain a one-to-one correspondence between itype and its associated
11705 node, to prevent errors when complex expression is copied.
11706 Fix mishandling of multiple levels of parens
11708 * sem_aggr.adb: Create a limited view of an incomplete type, to make
11709 treatment of limited views uniform for all visible declarations in a
11710 limited_withed package.
11711 (New_Copy_Tree): If hash table is being used and itype is visited,
11712 make an entry into table to link associated node and new itype.
11713 (Resolve_Record_Aggregate): Do not add an others box association for a
11714 discriminated record component that has only discriminants, when there
11715 is a box association for the component itself.
11717 * par-ch4.adb: Fix mishandling of multiple levels of parens
11719 2007-08-14 Robert Dewar <dewar@adacore.com>
11721 * comperr.adb: Fix problem with suppressing warning messages from gigi
11723 * erroutc.ads, erroutc.adb, errout.ads,
11724 errout.adb (Write_Eol): Remove trailing spaces before writing the line
11725 (Write_Eol_Keep_Blanks): New procedure to write a line, including
11726 possible trailing spaces.
11727 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
11728 Fix problem with suppressing warning messages from back end
11729 Improve handling of deleted warnings
11732 Fix problem with suppressing warning messages from back end
11733 Handle setting of Static_Dispatch_Tables flag.
11736 Fix problem with suppressing warning messages from back end
11738 * exp_intr.adb: Improve handling of deleted warnings
11740 2007-08-14 Robert Dewar <dewar@adacore.com>
11742 * debug.adb: Improve -gnatdI to cover all cases of serialization
11743 Add documentation of dZ, d.t
11745 * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
11747 (Sprint_Node_Actual): Generate new output associated with implicit
11748 importation and implicit exportation of object declarations.
11750 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11751 Robert Dewar <dewar@adacore.com>
11752 Javier Miranda <miranda@adacore.com>
11753 Gary Dismukes <dismukes@adacore.com>
11755 * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
11756 to make treatment of limited views uniform for all visible declarations
11757 in a limited_withed package.
11758 Improve warnings for in out parameters
11759 (Set_Related_Interaface/Related_Interface): Allow the use of this
11760 attribute with constants.
11761 (Write_Field26_Name): Handle attribute Related_Interface in constants.
11762 Warn on duplicate pragma Preelaborable_Initialialization
11764 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
11765 generation of a freezing node to ensure proper management of null
11766 excluding access types in the backend.
11767 (Create_Extra_Formals): Test base type of the formal when checking for
11768 the need to add an extra accessibility-level formal. Pass the entity E
11769 on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
11770 originally being done in a couple of cases), to ensure that the
11771 Extra_Formals list gets set on the entity E when the first entity is
11773 (Conforming_Types): Add missing calls to Base_Type to the code that
11774 handles anonymous access types. This is required to handle the
11775 general case because Process_Formals builds internal subtype entities
11776 to handle null-excluding access types.
11777 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
11778 functions that need it, even when not marked Requires_Overriding.
11779 Improve warnings for in out parameters
11780 (Analyze_Function_Return): Warn for disallowed null return
11781 Warn on return from procedure with unset out parameter
11782 Ensure consistent use of # in error messages
11783 (Check_Overriding_Indicator): Add in parameter Is_Primitive.
11784 (Analyze_Function_Return): Move call to Apply_Constraint_Check before
11785 the implicit conversion of the expression done for anonymous access
11786 types. This is required to generate the code of the null excluding
11787 check (if required).
11789 * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
11790 A formal parameter is never publicly referenceable outside of its body.
11791 (Check_References): For an unreferenced formal parameter in an accept
11792 statement, use the same warning circuitry as for subprogram formal
11794 (Warn_On_Unreferenced_Entity): New subprogram, taken from
11795 Output_Unreferenced_Messages, containing the part of that routine that
11796 is now reused for entry formals as described above.
11797 (Goto_Spec_Entity): New function
11798 (Check_References): Do not give IN OUT warning for dispatching operation
11799 Improve warnings for in out parameters
11800 (Test_Ref): Check that the entity is not undefinite before calling
11801 Scope_Within, in order to avoid infinite loops.
11802 Warn on return from procedure with unset out parameter
11803 Improved warnings for unused variables
11805 2007-08-14 Robert Dewar <dewar@adacore.com>
11806 Javier Miranda <miranda@adacore.com>
11807 Gary Dismukes <dismukes@adacore.com>
11809 * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
11810 (Expand_N_Attribute_Reference): Further unify the handling of the
11811 three forms of access attributes, using common code now for all three
11812 cases. Add a test for the case of applying an access attribute to
11813 an explicit dereference when the context is an access-to-interface
11814 type. In that case we need to apply the conversion to the prefix
11815 of the explicit dereference rather than the prefix of the attribute.
11816 (Attribute_Version, UET_Address): Set entity as internal to ensure
11817 proper dg output of implicit importation.
11818 (Expand_Access_To_Type): Removed.
11819 (Expand_N_Attribute_Reference): Merge the code from the three cases
11820 of access attributes, since the processing is largely identical for
11821 these cases. The substantive fix here is to process the case of a
11822 type name prefix (current instance case) before handling the case
11823 of interface prefixes.
11825 2007-08-14 Thomas Quinot <quinot@adacore.com>
11826 Ed Schonberg <schonberg@adacore.com>
11827 Javier Miranda <miranda@adacore.com>
11828 Robert Dewar <dewar@adacore.com>
11830 * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
11831 (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
11832 type that is an anonymous access to controlled object, establish
11833 an associated finalization chain to avoid corrupting the global
11834 finalization list when a dynamically allocated object designated
11835 by such a component is deallocated.
11836 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
11837 functions that need it, even when not marked Requires_Overriding.
11838 (Initialize_Tag): Replace call to has_discriminants by call to
11839 Is_Variable_Size_Record in the circuitry that handles the
11840 initialization of secondary tags.
11841 (Is_Variable_Size_Record): New implementation.
11842 (Expand_N_Object_Declaration): Suppress call to init proc if there is a
11843 Suppress_Initialization pragma for a derived type.
11844 (Is_Variable_Size_Record): New subprogram.
11845 (Build_Offset_To_Top_Functions): New implementation that simplifies the
11846 initial version of this routine and also fixes problems causing
11847 incomplete initialization of the table of interfaces.
11848 (Build_Init_Procedure): Improve the generation of code to initialize the
11849 the tag components of secondary dispatch tables.
11850 (Init_Secondary_Tags): New implementation that simplifies the previous
11851 version of this routine.
11852 (Make_DT): Add parameter to indicate when type has been frozen by an
11853 object declaration, for diagnostic purposes.
11854 (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
11855 diagnose attemps to freeze a subprogram when some untagged type of its
11856 profile is a private type whose full view has not been analyzed yet.
11857 (Freeze_Array_Type): Generate init proc for packed array if either
11858 Initialize or Normalize_Scalars is set.
11859 (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
11860 constructing the new profile, copy the null_exclusion indicator for each
11861 parameter, to ensure full conformance of the new body with the spec.
11863 * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
11864 Create wrappers for constructor functions that need it, even when not
11865 marked Requires_Overriding.
11866 (Covers): Handle properly designated types of anonymous access types,
11867 whose non-limited views are themselves incomplete types.
11868 (Add_Entry): Use an entity to store the abstract operation which hides
11870 (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
11871 (Collect_Interps): Use Empty as an actual for Abstract_Op in the
11872 initialization aggregate.
11873 (Function_Interp_May_Be_Hidden): Rename to
11874 Function_Interp_Has_Abstract_Op.
11875 (Has_Compatible_Type): Remove machinery that skips interpretations if
11876 they are labeled as potentially hidden by an abstract operator.
11877 (Has_Hidden_Interp): Rename to Has_Abstract_Op.
11878 (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
11879 (Write_Overloads): Output the abstract operator if present.
11880 (Add_Entry): Before inserting a new entry into the interpretation table
11881 for a node, determine whether the entry will be disabled by an abstract
11883 (Binary_Op_Interp_May_Be_Hidden): New routine.
11884 (Collect_Interps): Add value for flag May_Be_Hidden in initialization
11886 (Function_Interp_May_Be_Hidden): New routine.
11887 (Has_Compatible_Type): Do not consider interpretations hidden by
11888 abstract operators when trying to determine whether two types are
11890 (Has_Hidden_Interp): New routine.
11891 (Set_May_Be_Hidden_Interp): New routine.
11892 (Write_Overloads): Write the status of flag May_Be_Hidden.
11894 2007-08-14 Ed Schonberg <schonberg@adacore.com>
11895 Javier Miranda <miranda@adacore.com>
11897 * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
11898 types declared in the declarative part of a nested package body or in
11899 the proper body of a stub.
11900 (Set_All_DT_Position): Add missing check to avoid wrong assignation
11901 of the same dispatch table slot to renamed primitives.
11902 (Make_Select_Specific_Data_Table): Handle private types.
11903 (Tagged_Kind): Handle private types.
11904 (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
11905 output of implicit importation and exportation.
11906 (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
11907 first formal of the thunk is always associated with the controlling
11908 type. In addition perform the following code cleanup: remove formal
11909 Thunk_Alias which is no longer required, cleanup evaluation of the
11910 the controlling type, and update the documentation.
11911 Replace occurrence of Default_Prim_Op_Count by
11912 Max_Predef_Prims. Addition of compile-time check to verify
11913 that the value of Max_Predef_Prims is correct.
11914 (Check_Premature_Freezing): Apply check in Ada95 mode as well.
11915 (Make_DT): Add parameter to indicate when type has been frozen by an
11916 object declaration, for diagnostic purposes.
11917 (Build_Static_Dispatch_Tables): New subprogram that takes care of the
11918 construction of statically allocated dispatch tables.
11919 (Make_DT): In case of library-level tagged types export the declaration
11920 of the primary tag. Remove generation of tags (now done by Make_Tags).
11921 Additional modifications to handle non-static generation of dispatch
11922 tables. Take care of building tables for asynchronous interface types
11923 (Make_Tags): New subprogram that generates the entities associated with
11924 the primary and secondary tags of Typ and fills the contents of Access_
11925 Disp_Table. In case of library-level tagged types imports the forward
11926 declaration of the primary tag that will be declared later by Make_DT.
11927 (Expand_Interface_Conversion): In case of access types to interfaces
11928 replace an itype declaration by an explicit type declaration to avoid
11929 problems associated with the scope of such itype in transient blocks.
11931 2007-08-14 Robert Dewar <dewar@adacore.com>
11932 Ed Schonberg <schonberg@adacore.com>
11933 Javier Miranda <miranda@adacore.com>
11935 * exp_util.ads, exp_util.adb:
11936 This patch replaces a number of occurrences of explicit tests for N_Null
11937 with calls to Known_Null. This improves tracking of null values, since
11938 Known_Null also catches null constants, and variables currently known to
11939 be null, so we get better tracking.
11940 (Ensure_Defined): create an itype reference only in the scope of the
11942 (Side_Effect_Free): A selected component of an access type that
11943 denotes a component with a rep clause must be treated as not
11944 side-effect free, because if it is part of a linked structure its
11945 value may be affected by a renaming.
11946 (Expand_Subtype_From_Expr): For limited objects initialized with build
11947 in place function calls, do nothing; otherwise we prematurely introduce
11948 an N_Reference node in the expression initializing the object, which
11949 breaks the circuitry that detects and adds the additional arguments to
11950 the called function. Bug found working in the new patch for statically
11951 allocated dispatch tables.
11952 (Is_Library_Level_Tagged_Type): New subprogram.
11953 (Remove_Side_Effects): If the expression of an elementary type is an
11954 operator treat as a function call.
11955 (Make_Literal_Range): If the index type of the array is not integer, use
11956 attributes properly to compute the constraint on the resulting aggregate
11959 * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
11960 class-wide type whose base type is an incomplete private type, leave
11961 class-wide type unfrozen so that freeze nodes can be generated
11962 properly at a later point.
11963 (Freeze_Entity, array case): Handle case of pragma Pack and component
11964 size attributre clause for same array.
11966 2007-08-14 Vincent Celier <celier@adacore.com>
11968 * prj.ads, prj.adb: Update Project Manager to new attribute names for
11970 Allow all valid declarations in configuration project files
11971 (Reset): Initialize all tables and hash tables in the project tree data
11972 Major update of the Project Manager and of the project aware tools,
11973 including gprmake, so that the same sources in the GNAT repository
11974 can be used by gprbuild.
11975 (Slash_Id): Change type to be Path_Name_Type
11976 (Slash): Return a Path_Name_Type instead of a File_Name_Type
11978 * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
11980 Update Project Manager to new attribute names for ghprbuild
11981 Allow all valid declarations in configuration project files
11982 Major update of the Project Manager and of the project aware tools,
11983 including gprmake, so that the same sources in the GNAT repository
11984 can be used by gprbuild.
11987 Major update of the Project Manager and of the project aware tools,
11988 including gprmake, so that the same sources in the GNAT repository
11989 can be used by gprbuild.
11991 * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
11992 insensitive flag for attributes with optional index.
11993 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
11994 array attribute, put the index in lower case.
11995 Update Project Manager to new attribute names for ghprbuild
11996 Allow all valid declarations in configuration project files
11997 Major update of the Project Manager and of the project aware tools,
11998 including gprmake, so that the same sources in the GNAT repository
11999 can be used by gprbuild.
12001 * prj-env.ads, prj-env.adb:
12002 Major update of the Project Manager and of the project aware tools,
12003 including gprmake, so that the same sources in the GNAT repository
12004 can be used by gprbuild.
12005 (Get_Reference): Change type of parameter Path to Path_Name_Type
12007 * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
12008 removing '-' from the path to start with the first character of the
12010 Major update of the Project Manager and of the project aware tools,
12011 including gprmake, so that the same sources in the GNAT repository
12012 can be used by gprbuild.
12013 Major update of the Project Manager and of the project aware tools,
12014 including gprmake, so that the same sources in the GNAT repository
12015 can be used by gprbuild.
12017 * prj-nmsc.ads, prj-nmsc.adb:
12018 Update Project Manager to new attribute names for ghprbuild
12019 Allow all valid declarations in configuration project files
12020 (Search_Directories): Detect subunits that are specified with an
12021 attribute Body in package Naming. Do not replace a source/unit in the
12022 same project when the order of the source dirs are known. Detect
12023 duplicate sources/units in the same project when the order of the
12024 source dirs are not known.
12025 (Check_Ada_Name): Allow all identifiers that are not reserved words
12027 Major update of the Project Manager and of the project aware tools,
12028 including gprmake, so that the same sources in the GNAT repository
12029 can be used by gprbuild.
12030 (Look_For_Sources): If the list of sources is empty, set the object
12031 directory of non extending project to nil.
12032 Change type of path name variables to be Path_Name_Type
12033 (Locate_Directory): Make sure that on Windows '/' is converted to '\',
12034 otherwise creating missing directories will fail.
12036 * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
12037 prj-part.ads, prj-part.adb:
12038 Major update of the Project Manager and of the project aware tools,
12039 including gprmake, so that the same sources in the GNAT repository
12040 can be used by gprbuild.
12042 * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
12043 insensitive flag for attributes with optional index.
12044 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
12045 array attribute, put the index in lower case.
12046 (Parse_Variable_Reference): Allow the current project name to be used in
12047 the prefix of an attribute reference.
12049 * prj-util.ads, prj-util.adb
12050 (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
12051 defaulted to False. When True, always check against indexes in lower
12054 * snames.ads, snames.h, snames.adb:
12055 Update Project Manager to new attribute names for gprbuild
12056 Allow all valid declarations in configuration project files
12058 2007-08-14 Robert Dewar <dewar@adacore.com>
12059 Ed Schonberg <schonberg@adacore.com>
12061 * opt.ads: Warning for non-local exception propagation now off by
12063 New switch -gnatI to disable representation clauses
12064 Implement new pragma Implicit_Packing
12067 Warning for non-local exception propagation now off by default
12068 Add warning for unchecked conversion of pointers wi different
12070 New switch -gnatI to disable representation clauses
12072 * usage.adb: new switch -gnatyS
12074 * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
12075 note that aggregates of anonymous array types are not flagged.
12076 -gnatwc now includes membership tests optimized away
12077 -gnatw.x warnings are now off by default
12078 Added conditional compilation Appendix
12079 Add documentation of -gnatI
12080 Add documentation for new -gnatyS style check
12081 Update documentation about SAL and auto-init on Windows.
12084 Add documentation for pragma Check_Name and 'Enabled attribute
12085 Document that Eliminate on dispatching operation is ignored
12086 Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
12087 Document pragma Main
12088 Document pragma Implicit_Packing
12090 * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
12091 different conventions
12092 New switch -gnatI to disable representation clauses
12094 * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
12095 recognized, report the invalid characters including "-gnat" instead of
12096 just the first character in the switch.
12097 New switch -gnatI to disable representation clauses
12098 Set Warn_On_Object_Renames_Function true for -gnatg
12100 * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
12101 Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
12102 Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
12103 to switch -aP (add directory to project search dir).
12105 * par-prag.adb: Implement new pragma Implicit_Packing
12107 * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
12108 type as having a non-standard representation, to force expansion on
12109 conversion to related types.
12110 (Analyze_Pragma): Warn on misspelled pragma
12111 (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
12112 Ensure consistent use of # in error messages
12113 Implement pragma Implicit_Packing
12115 2007-08-14 Olivier Hainque <hainque@adacore.com>
12116 Eric Botcazou <ebotcazou@adacore.com>
12118 * targtyps.c (get_target_maximum_default_alignment): New function.
12120 that the compiler might choose by default for a type or object.
12121 (get_target_default_allocator_alignment): New function. Alignment known
12122 to be honored by the target default allocator.
12123 (get_target_maximum_allowed_alignment): New function. Maximum alignment
12124 we might accept for any type or object on the target.
12125 (get_target_maximum_alignment): Now synonym of maximum_default_alignment
12127 * gigi.h (get_target_maximum_default_alignment): Declare new function.
12128 (get_target_default_allocator_alignment): Likewise.
12129 (get_target_maximum_allowed_alignment): Likewise.
12132 * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
12133 result of a function call, first try to use a stabilized reference for
12134 a constant renaming too.
12135 (validate_alignment): Use target_maximum_allowed_alignment instead of
12136 MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
12137 (gnat_to_gnu_entity): Use common nodes directly.
12138 (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
12139 alignment and size for the object.
12140 (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
12141 and N_Procedure_Call_Statement.
12142 (takes_address): Rename to lvalue_required_p, add third parameter
12143 'aliased' and adjust recursive calls.
12144 <N_Indexed_Component>: Update 'aliased' from the array type.
12145 <N_Selected_Component>: New case.
12146 <N_Object_Renaming_Declaration>: New Likewise.
12147 (Identifier_to_gnu): Adjust for above changes.
12148 (maybe_stabilize_reference) <CONST_DECL>: New case.
12150 * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
12151 between type variants.
12152 (build_simple_component_ref): Likewise.
12153 (build_call_alloc_dealloc): Use target_default_allocator_alignment
12154 instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
12155 aligning type circuitry for allocations from the default storage pool.
12156 (build_allocator): Likewise.
12157 (build_simple_component_ref): Manually fold the reference for a
12158 constructor if the record type contains a template.
12160 * utils.c (value_zerop): Delete.
12161 (gnat_init_decl_processing): Emit debug info for common types.
12162 (rest_of_record_type_compilation): If a union contains a field
12163 with a non-constant qualifier, treat it as variable-sized.
12164 (finish_record_type): Give the stub TYPE_DECL a name.
12165 (rest_of_record_type_compilation): Likewise.
12166 (convert) <CONSTRUCTOR>: New case. Build a new constructor if
12167 types are equivalent array types.
12168 (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
12169 even if the type is not passed by reference.
12170 (static_ctors, static_dtors): Delete.
12171 (end_subprog_body): Do not record constructors and destructors.
12172 (build_global_cdtor): Delete.
12173 (gnat_write_global_declarations): Do not call build_global_cdtor.
12175 * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
12176 -fRTS=rtp is specified.
12177 If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
12180 * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
12181 of the personality function with SJLJ exceptions.
12183 * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
12184 the name of the personality function with SJLJ exceptions.
12186 2007-08-14 Robert Dewar <dewar@adacore.com>
12187 Ed Schonberg <schonberg@adacore.com>
12189 * par.ads, par.adb: Improve handling of extra right parens.
12190 (Par): Remove flag From_Limited_With_Clause.
12192 * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
12193 Improve handling of extra right parens.
12195 2007-08-14 Robert Dewar <dewar@adacore.com>
12197 * par-tchk.adb (TF_Semicolon): Improve error recovery
12199 2007-08-14 Robert Dewar <dewar@adacore.com>
12200 Ed Schonberg <schonberg@adacore.com>
12202 * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
12203 enumeration type, mark all literals as referenced.
12204 (Eval_Attribute, case 'Image): If the argument is an enumeration
12205 literal and names are available, constant-fold but mark nevertheless as
12207 Clean up function names.
12208 (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
12210 (Requires_Simple_Name_Prefix): Removed.
12212 2007-08-14 Robert Dewar <dewar@adacore.com>
12213 Ed Schonberg <schonberg@adacore.com>
12215 * sem_ch11.adb: Improved warnings for unused variables
12217 * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
12218 is a synchronized interface, the derived type is limited.
12219 (Analyze_Object_Declaration): Mark the potential coextensions in the
12220 definition and expression of an object declaration node.
12221 (Build_Derived_Type): For the completion of a private type declaration
12222 with a derived type declaration, chain the parent type's representation
12223 items to the last representation item of the derived type (not the
12224 first one) if they are not present already.
12225 (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
12226 object declaration of forward references to tags.
12227 (Access_Subprogram_Declaration): In Ada2005, anonymous access to
12228 subprogram types can appear as access discriminants of synchronized
12230 (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
12231 given in prefixed form as a selected component.
12232 (Process_Discriminants): If not all discriminants have defaults, place
12233 error message on a default that is present.
12234 (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
12235 extend a synchronized tagged type.
12236 Improved warnings for unused variables
12237 (Is_Visible_Component): Fix a visibility hole on a component inherited
12238 by a private extension when parent is itself declared as a private
12239 extension, and the derivation is in a child unit.
12240 (Find_Hidden_Interface): Move spec from the package body.
12242 2007-08-14 Robert Dewar <dewar@adacore.com>
12243 Ed Schonberg <schonberg@adacore.com>
12245 * sem_ch5.adb: Improve warnings on redundant assignments
12247 * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
12249 (Is_Synchronized_Tagged_Type): New subprogram that returns true
12250 in case of synchronized tagged types (AARM 3.9.4 (6/2)).
12251 (Safe_To_Capture_Value): Can now return True for constants, even if Cond
12252 is set to False. Improves handling of Known_[Not_]Null.
12253 (Wrong_Type): Special case address arithmetic attempt
12254 (Collect_Abstract_Interfaces): Add new formal to allow collecting
12255 abstract interfaces just using the partial view of private types.
12256 (Has_Abstract_Interfaces): Add new formal to allow checking types
12257 covering interfaces using the partial view of private types.
12258 (Is_Fully_Initialized_Type): Special VM case for uTag component. This
12259 component still needs to be defined in this case, but is never
12260 initialized as VMs are using other dispatching mechanisms.
12261 (Abstract_Interface_List): For a protected type, use base type to get
12262 proper declaration.
12263 Improve warnings on redundant assignments
12264 (Is_Variable): Handle properly an implicit dereference of a prefixed
12266 (Build_Actual_Subtype): If this is an actual subtype for an
12267 unconstrained formal parameter, use the sloc of the body for the new
12268 declaration, to prevent anomalises in the debugger.
12270 2007-08-14 Robert Dewar <dewar@adacore.com>
12272 * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
12273 dispatching operation
12275 2007-08-14 Ed Schonberg <schonberg@adacore.com>
12276 Gary Dismukes <dismukes@adacore.com>
12279 exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
12280 expanded aggregate code before allocator, and ahead of declaration for
12281 temporary, to prevent access before elaboration when the allocator is
12282 an actual for an access parameter.
12283 (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
12284 the TSD and the table of interfaces.
12285 (Convert_To_Assignments): Augment the test for delaying aggregate
12286 expansion for limited return statements to include the case of extended
12287 returns, to prevent creation of an unwanted transient scope.
12288 (Is_Static_Dispatch_Table_Aggregate): New subprogram.
12289 (Expand_Array_Aggregate): Handle aggregates associated with
12290 statically allocated dispatch tables.
12291 (Expand_Record_Aggregate): Handle aggregates associated with
12292 statically allocated dispatch tables.
12293 (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
12294 of anonymous access type.
12296 2007-08-14 Ed Schonberg <schonberg@adacore.com>
12298 * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
12299 is a variable that renames a slice, use the variable itself in the
12300 expannsion when the renamed expression itself may be modified between
12301 the declaration of the renaming and the array assignment.
12303 2007-08-14 Jerome Guitton <guitton@adacore.com>
12305 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
12306 s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
12307 s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
12308 New functions; dummy implementations.
12310 * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
12311 functions, used to implement the multi-tasks mode routines on VxWorks.
12313 * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
12314 New functions, thin
12315 binding to the VxWorks routines which have changed between VxWorks 5
12317 (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
12318 which are not callable from a RTP.
12320 * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
12321 implemented for the multi-tasks mode on VxWorks 5 and 6.
12323 * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
12325 * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
12328 2007-08-14 Vincent Celier <celier@adacore.com>
12330 * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
12331 gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
12332 mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
12333 mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
12334 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
12335 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
12336 mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
12338 (Major_Id_Name): New function.
12339 mlib-tgt.ads/mlib.tgt.adb:
12340 (Library_Major_Minor_Id_Supported): New function, default returns True
12341 Most mlib-tgt-*.adb that support shared libraries and symbolic links:
12342 (Build_Dynamic_Library): Add support for major/minor ids for shared libs
12343 Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
12344 Implementation of Library_Major_Minor_Id_Supported returns False
12346 (Clean_Library_Directory): If major/minor ids are supported, clean all
12348 Major update of the Project Manager and of the project aware tools,
12349 including gprmake, so that the same sources in the GNAT repository
12350 can be used by gprbuild.
12352 2007-08-14 Olivier Hainque <hainque@adacore.com>
12354 * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
12355 (GCC_ZCX_Support): Switch to True.
12357 * s-intman-solaris.adb (Notify_Exception): Call
12358 Adjust_Context_For_Raise before raising, as expected for signal
12359 handlers in general.
12361 * s-intman-posix.adb (Notify_Exception): Remove declaration of
12362 Adjust_Context_For_Raise, moved to the spec of this unit to be visible
12363 to other implementation bodies.
12365 * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
12366 be visible by multiple implementation bodies.
12368 * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
12369 only for conditions coming from hardware.
12370 [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
12371 adjustments to signal context prior to exception raise from signal
12373 (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
12375 Solaris section: (__gnat_adjust_context_for_raise): New function.
12376 Implementation of the machine context adjustments to perform prior to
12377 raise from a signal handler. Version for both sparc and x86.
12378 (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
12379 (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
12380 prior to raising as expected for any handler, before possible nested
12381 faults to make sure all the contexts in a chain have been adjusted by
12382 the time we propagate.
12384 2007-08-14 Pascal Obry <obry@adacore.com>
12386 * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
12387 (SYSTEM_INFO): New record.
12388 (SetThreadIdealProcessor): New imported routine needed for supporting
12389 task_info pragma on Windows.
12391 * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
12392 info can be applied to the current host.
12393 (Create_Task): Set the ideal processor if information is present.
12395 * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
12396 a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
12398 2007-08-14 Olivier Hainque <hainque@adacore.com>
12400 * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
12401 stack size and initial stack pointer value for a given task.
12402 (Enter_Task): Get the stack attributes of the task we are entering and
12403 let the stack checking engine know about them.
12405 * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
12406 Let the stack-checking engine know about the initial sp value and stack
12407 size associated with the current task.
12408 (Set_Stack_Info): If a stack base has been notified for the current
12409 task, honor it. Fallback to the previous less accurate method otherwise.
12411 * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
12413 2007-08-14 Ed Schonberg <schonberg@adacore.com>
12415 * sem_ch10.adb: Create a limited view of an incomplete type, to make
12416 treatment of limited views uniform for all visible declarations in a
12417 limited_withed package.
12418 Set flag indicating that a subprogram body for a child unit has a
12420 (Analyze_Compilation_Unit): If unit is a subprogram body that has no
12421 separate declaration, remove the unit name from visibility after
12422 compilation, so that environment is clean for subsequent compilations.
12423 (Install_Limited_Context_Clauses): Do not install a
12424 limited_private_with_clause unless the current unit is a body or a
12425 private child unit.
12426 (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
12427 in the same fashion.
12428 (Install_Limited_Withed_Unit): Do not install a limited with clause if
12429 it applies to the declaration of the current package body.
12430 (Remove_Private_With_Clauses): If there is a regular with_clause for
12431 the unit, delete Private_With_Clause from context, to prevent improper
12432 hiding when processing subsequent nested packages and instantiations.
12434 2007-08-14 Jose Ruiz <ruiz@adacore.com>
12436 * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
12437 dir/file, device:/dir/file, and device:drive_letter:/dir/file as
12438 representing absolute path names.
12439 __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
12441 * cstreams.c (__gnat_full_name for VxWorks): Use
12442 __gnat_is_absolute_path to detect whether we need to add the current
12443 directory to normalize the path.
12445 2007-08-14 Javier Miranda <miranda@adacore.com>
12448 a-tags.adb (Displace): Associate a message with the raised CE
12450 (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
12451 To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
12452 To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
12454 (Default_Prim_Op_Count): Removed.
12455 (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
12456 Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
12457 Remove pragma Inline_Always.
12459 * rtsfind.ads (Default_Prim_Op_Count): Removed
12460 (Max_Predef_Prims): New entity
12461 (RE_Expanded_Name): Removed
12462 (RE_HT_Link): Removed
12463 (RE_Iface_Tag): Remmoved
12464 (RE_Ifaces_Table): Removed
12465 (RE_Interfaces_Array): Removed
12466 (RE_Interface_Data_Element): Removed
12467 (RE_Nb_Ifaces): Removed
12468 (RE_RC_Offset): Removed
12469 (RE_Static_Offset_To_Top): Removed
12471 * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
12473 (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
12474 Prim_Op_Count by Max_Predef_Prims.
12476 2007-08-14 Thomas Quinot <quinot@adacore.com>
12477 Vincent Celier <celier@adacore.com>
12479 * binde.adb (Elab_All_Links): Remove unnecessary call to
12480 Generic_Separately_Compiled (if a unit satisfies this predicate, there
12481 won't be an associated Afile).
12482 (Elab_All_Links): Fail if a referenced unit cannot be found
12485 Fix comments in bindgen regarding consistency checks done in Bcheck:
12486 the checks are made across units within a partition, not across several
12488 Fix generation of C binder file for VxWorks.
12490 * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
12491 Generic_May_Lack_ALI, more descriptive of the current use of the
12492 predicate, and update documentation.
12494 * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
12495 reorganization and documentation update for the case of predefined
12496 library generics (for which we do not reference an Afile).
12498 2007-08-14 Robert Dewar <dewar@adacore.com>
12500 * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
12501 s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
12502 s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
12503 s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
12504 s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
12505 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
12506 s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
12507 s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
12508 exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
12509 s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
12510 s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
12511 a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
12512 s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
12513 g-altcon.adb: Minor reformatting
12515 ada-tree.h: Delete empty line.
12517 ali.ads: Minor reformatting
12518 Clarification of comments.
12519 Minor spelling correction
12521 * exp_dbug.adb: Add Warnings Off to suppress new warning
12523 * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
12526 * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
12529 * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
12531 * a-textio.ads: Reorder the standard input/output/error declarations
12534 * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
12536 * par-ch2.adb: Recognize RM specially in errout
12537 Change 'R'M to RM in all error messages
12539 * scng.adb: Recognize RM specially in errout
12541 * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
12542 N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
12544 * s-direio.adb: Add missing routine header box.
12546 * sem_attr.ads: Add ??? comments
12548 * sem_eval.adb: Recognize RM specially in errout
12549 Change 'R'M to RM in all error messages
12551 * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
12553 * s-tasinf.ads: Fix minor comment typo.
12555 * a-cihama.adb: Minor comment addition
12557 * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
12560 * s-tasinf-tru64.ads: Fix minor comment typo.
12562 * itypes.ads: Comment update.
12564 * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
12567 * argv.c: Added protection against null gnat_argv and gnat_envp.
12569 * bcheck.adb (Check_Consistency): Use correct markup character ({) in
12570 warning message when Tolerate_Consistency_Errors is True.
12572 * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
12573 Any_Id, as this subprogram is only applicable to *type* entities (it
12574 sets RM_Size). Instead initialize just Esize and Alignment.
12576 2007-08-14 Bob Duff <duff@adacore.com>
12578 * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
12579 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
12580 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
12581 a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
12582 a-coorse.ads (Next): Applied pragma Inline.
12583 Make all Containers packages Remote_Types (unless they are already
12585 (Previous): applied pragma Inline
12586 (Elements_Type): is now a record instead of an array
12588 2007-08-14 Thomas Quinot <quinot@adacore.com>
12590 * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
12592 (Set_Item): When the new item is an element of the currently allocated
12593 table passed by reference, save a copy on the stack if we're going
12594 to reallocate. Also, in Table.Set_Item, make sure we test the proper
12595 variable to determine whether to call Set_Last.
12597 * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
12598 symbols-vms.adb, symbols-processing-vms-alpha.adb,
12599 symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
12600 some occurrences of the pattern
12602 T.Table (T.Last) := Value;
12603 with a cleaner call to
12606 2007-08-14 Ed Schonberg <schonberg@adacore.com>
12607 Gary Dismukes <dismukes@adacore.com>
12608 Thomas Quinot <quinot@adacore.com>
12610 * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
12611 derived type with interface progenitors use the analyzed formal as the
12612 parent of the actual, to create renamings for all the inherited
12613 operations in Derive_Subprograms.
12614 (Collect_Previous_Instances): new procedure within of
12615 Load_Parent_Of_Generic, to instantiate all bodies in the compilation
12616 unit being loaded, to ensure that the generation of global symbols is
12617 consistent in different compilation modes.
12618 (Is_Tagged_Ancestor): New function testing the ancestor relation that
12619 takes progenitor types into account.
12620 (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
12621 traversing over the primitives of the formal and actual types to locate
12622 any abstract subprograms of the actual type that correspond to a
12623 nonabstract subprogram of the formal type's ancestor type(s), and issue
12624 an error if such is found.
12625 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
12626 Instantiate_Package_Body, Instantiate_Subprogram_Body):
12627 Remove bogus guard around calls to Inherit_Context.
12628 (Reset_Entity): If the entity is the selector of a selected component
12629 that denotes a named number, propagate constant-folding to the generic
12630 template only if the named number is global to the generic unit.
12631 (Set_Instance_Env): Only reset the compilation switches when compiling
12632 a predefined or internal unit.
12634 2007-08-14 Ed Schonberg <schonberg@adacore.com>
12636 * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
12637 parameter to determine whether operation applies to the prefix.
12638 (Complete_Object_Operation): If actual has an access type and
12639 controlling formal is not an in_parameter, reject the actual if it is
12640 an access_to_constant type.
12641 (Try_Primitive_Operation): If the type of the prefix is a formal tagged
12642 type, the candidate operations are found in the scope of declaration of
12643 the type, because the type has no primitive subprograms.
12644 (Analyze_Selected_Component): If prefix is class-wide, and root type is
12645 a private extension, only examine visible components before trying to
12646 analyze as a prefixed call.
12647 Change Entity_List to Type_To_Use, for better readability.
12648 (Has_Fixed_Op): Use base type when checking whether the type of an
12649 operator has a user-defined multiplication/division
12650 (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
12651 user-defined operators are available for fixed-point types.
12653 2007-08-14 Thomas Quinot <quinot@adacore.com>
12654 Ed Schonberg <schonberg@adacore.com>
12656 * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
12657 formal At_Any_Place indicating, when True, that we want to test for
12658 availability of the stream attribute at any place (as opposed to the
12659 current visibility context only).
12660 (Missing_Read_Write_Attributes): A stream attribute is missing for the
12661 purpose of enforcing E.2.2(8) only if it is not available at any place.
12662 Take into account the Ada2005 pragma Has_Preelaborable_Initialization
12663 when checking the legality of an extension aggregate in a preelaborable
12664 package. Treat the literal null as a valid default expression in a
12665 component declaration for a type with preelaborable initialization.
12666 A limited interface is a legal progenitor for the designated type of a
12667 remote access to class-wide type.
12669 2007-08-14 Thomas Quinot <quinot@adacore.com>
12670 Ed Schonberg <schonberg@adacore.com>
12672 * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
12673 reference): Use correct entity as denoted entity for the selector of
12674 the rewritten node.
12675 (Find_Direct_Name): Add comment about Generate_Reference incorrectly
12676 setting the Referenced_As_LHS flag for entities that are implicitly
12678 (Find_Type): If the type is an internally generated incomplete type,
12679 mark the full view as referenced, to prevent spurious warnings.
12680 (Find_Selected_Component, Has_Components): Handle properly non-limited
12681 views that are themselves incomplete types.
12682 Handle interfaces visible through limited-with clauses.
12683 (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
12684 subprogram generic actual for which we have generated a renaming.
12685 Warn when the renaming introduces a homonym of
12686 the renamed entity, and the renamed entity is directly visible.
12688 2007-08-14 Ed Schonberg <schonberg@adacore.com>
12689 Hristian Kirtchev <kirtchev@adacore.com>
12691 * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
12692 appear in the subtree to the current allocator if it is not a static
12694 (Resolve_Allocator): Perform cleanup if resolution has determined that
12695 the allocator is not a coextension.
12696 (Resolve): Skip an interpretation hidden by an abstract operator only
12697 when the type of the interpretation matches that of the context.
12698 (Resolve): When looping through all possible interpretations of a node,
12699 do not consider those that are hidden by abstract operators.
12700 (Resolve_Actuals): When verifying that an access to class-wide object
12701 is an actual for a controlling formal, ignore anonymous access to
12702 subprograms whose return type is an access to class_wide type.
12703 (Resolve_Slice): If the prefix of the slice is a selected component
12704 whose type depends on discriminants, build its actual subtype before
12705 applying range checks on the bounds of the slice.
12706 (Valid_Conversion): In an instance or inlined body, compare root types,
12707 to prevent anomalies between private and public views.
12708 (Resolve): Improve error message for ambiguous fixed multiplication
12709 expressions that involve universal_fixed multiplying operations.
12711 2007-08-14 Javier Miranda <miranda@adacore.com>
12712 Hristian Kirtchev <kirtchev@adacore.com>
12714 * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
12715 location to allow the correct generation of errors in case of
12716 restrictions applied to the expanded code.
12717 (Expand_Entry_Barrier): Remove all generated renamings for a barrier
12718 function if the condition does not reference them.
12719 (Expand_Entry_Body_Declarations): Mark the index constant as having a
12722 2007-08-14 Thomas Quinot <quinot@adacore.com>
12723 Pablo Oliveira <oliveira@adacore.com>
12725 * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
12726 typecode parameters for a union (in a variant record), remove
12727 extraneous layer of Any wrapping for member label.
12728 (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
12729 elabration statements, register the package with the name server
12730 at the beginning, not at the end, of the elaboration statements so
12731 that they can create remote access to subprogram values that designate
12732 remote subprograms from the package.
12734 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
12736 * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
12737 values to compute the number of seconds since the Unix Epoc in order to
12738 account for Daylight Savings Time. Perform special processing for dates
12739 that are earlier than the Unix Epoc to obtain a negative number.
12741 2007-08-14 Emmanuel Briot <briot@adacore.com>
12743 * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
12746 2007-08-14 Eric Botcazou <ebotcazou@adacore.com>
12748 * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
12749 binder-generated file is not in Ada.
12750 Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
12751 recorded in the ALI file.
12752 Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
12754 2007-08-14 Vincent Celier <celier@adacore.com>
12756 * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
12757 (Output_Source): Do nothing if parameter is No_Sdep_Id
12759 * make.adb (Gnatmake): Do not rebuild an archive simply because a
12760 shared library it imports has a later time stamp.
12761 (Check): Resolve the symbolic links in the path name of the object
12763 Check that the ALI file is in the correct object directory
12764 Check if a file name does not correspond to the mapping of units
12766 (Display_Version): New procedure
12767 (Initialize): Process switches --version and --help
12768 Use type Path_Name_Type for path name
12770 2007-08-14 Paul Hilfinger <hilfinger@adacore.com>
12772 * impunit.adb: Re-organize System.Random_Numbers and
12773 GNAT.Random_Numbers and add to builds.
12775 * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
12777 * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
12779 * a-assert.ads, a-assert.adb: New files.
12781 2007-08-14 Gary Dismukes <dismukes@adacore.com>
12783 * layout.adb (Layout_Type): In the case of access-to-subprogram types,
12784 if AAMP_On_Target is True, then the size of the type encompasses two
12785 addresses (a static link and a subprogram address), except in the case
12786 of library-level access types.
12788 2007-08-14 Vincent Celier <celier@adacore.com>
12790 * output.ads, output.adb (Write_Eol): Remove trailing spaces before
12792 (Write_Eol_Keep_Blanks): New procedure to write a line, including
12793 possible trailing spaces.
12794 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
12796 2007-08-14 Javier Miranda <miranda@adacore.com>
12798 * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
12799 null-excluding access types.
12801 2007-08-14 Javier Miranda <miranda@adacore.com>
12803 * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
12804 that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
12805 of private types add missing check on matching interfaces in the
12806 partial and full declarations.
12807 (Analyze_Protected_Type): Code cleanup.
12808 (Analyze_Task_Type): Code cleanup.
12810 2007-08-14 Javier Miranda <miranda@adacore.com>
12812 * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
12813 generated interface thunk.
12815 2007-08-14 Ed Schonberg <schonberg@adacore.com>
12817 * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
12818 obsolescent warning on application of 'Class to an incomplete type.
12820 * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
12821 prevent obsolescent warning on application of 'Class to an incomplete
12824 2007-08-14 Pascal Obry <obry@adacore.com>
12826 * s-fileio.adb (Is_Open): Add check for usability of the underlying
12829 2007-08-14 Cyrille Comar <comar@adacore.com>
12831 * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
12832 since it is potentially used in cases implying double finalization of
12835 2007-08-14 Jose Ruiz <ruiz@adacore.com>
12837 * s-tasini.adb (Get_Stack_Info): Move this function to
12838 System.Soft_Links.Tasking because it is common to the full and the
12839 restricted run times.
12840 (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
12841 in SSL.Tasking.Init_Tasking_Soft_Links.
12843 * s-solita.adb (Get_Stack_Info): Function moved from
12844 System.Tasking.Initialization because it is common to the full and the
12845 restricted run times.
12846 (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
12848 2007-08-14 Arnaud Charlet <charlet@adacore.com>
12850 * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
12851 s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
12852 (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
12855 * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
12858 2007-08-14 Gary Dismukes <dismukes@adacore.com>
12860 * s-veboop.adb (SU): New named number initialized to
12861 System.Storage_Unit.
12862 (True_Val): The initialization expression is revised to use SU (=
12863 Storage_Unit) rather than assuming 8 for the component size of an
12864 unpacked Boolean array.
12866 2007-08-14 Tristan Gingold <gingold@adacore.com>
12868 * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
12870 * tb-ivms.c: New file.
12872 * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
12874 2007-08-14 Geert Bosch <bosch@adacore.com>
12876 * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
12877 s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
12878 Add required linker pragmas for automatically linking with the gnalasup
12879 linear algebra support library, and the systems math library.
12880 Rename cdot to cdotu and zdot to zdotu.
12881 Update header comment to describe purpose of package.
12883 2007-08-14 Thomas Quinot <quinot@adacore.com>
12885 * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
12886 an explicitly specified Associated_Final_Chain, use that list.
12887 (Expand_N_Package_Body): Build dispatch tables of library level tagged
12889 (Expand_N_Package_Declaration): Build dispatch tables of library level
12890 tagged types. Minor code cleanup.
12892 2007-08-14 Vincent Celier <celier@adacore.com>
12894 * gnatchop.adb (Terminate_Program): Remove exception and use
12895 Types.Terminate_Program instead.
12897 * osint.ads, osint.adb (Current_Exit_Status): New global variable
12898 (Find_Program_Name): Added protection against empty name.
12899 (OS_Exit_Through_Exception): New procedure
12901 * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
12902 (OS_Exit_Default): New procedure that contains the previous
12903 implementation of procedure OS_Exit.
12904 (Final_Value): Remove obsolete Interix stuff.
12906 2007-08-14 Thomas Quinot <quinot@adacore.com>
12908 * g-socket.ads: Reorganize example code so that it also works on
12911 2007-08-14 Tristan Gingold <gingold@adacore.com>
12913 * g-trasym.ads: AIX now supports symbolic backtraces.
12915 2007-08-14 Ed Schonberg <schonberg@adacore.com>
12917 * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
12918 units being loaded to detect circularities. A circularity may be
12919 present even if the current chain of pending units to load starts from
12920 a limited_with_clause.
12922 * lib-load.ads: Change profile of Load_Unit to use a with_clause
12923 rather than a boolean flag, in order to detect circularities in
12926 * par-load.adb: Use current with_clause in calls to Load_Unit, rather
12927 than propagating the From_Limited_With flag, in order to handle
12928 properly circularities involving with_clauses.
12930 2007-08-14 Nicolas Setton <setton@adacore.com>
12932 * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
12935 2007-08-14 Arnaud Charlet <charlet@adacore.com>
12937 * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
12938 to build for libgnala.
12939 libgnat: Add rules to build libgnala.a
12940 (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
12941 target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
12942 Add s-osinte-vxworks-kernel.adb to the target pairs of the
12943 kernel run-time lib for VxWorks 6, which would provide a different
12944 implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
12945 x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
12946 running ZCX by default.
12947 Add g-sttsne-locking to LynxOS version.
12948 Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
12949 On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
12951 * system-darwin-x86.ads: New file.
12953 * Make-lang.in: Delete files before copying onto them, so if they are
12954 read-only, the copy won't fail.
12955 Update dependencies
12957 2007-08-14 Pascal Obry <obry@adacore.com>
12959 * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
12962 2007-08-14 Vincent Celier <celier@adacore.com>
12964 * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
12965 (Gcc): Initialize Gcc_Name at the first call
12967 2007-08-14 Ed Schonberg <schonberg@adacore.com>
12969 * sem_ch7.adb (Analyze_Package_Specification): Do not install private
12970 with_clauses of the enclosing unit when analyzing the package
12971 specification of a nested instance.
12973 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
12975 * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
12976 (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
12977 Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
12978 layout of N_Allocator.
12980 2007-08-14 Thomas Quinot <quinot@adacore.com>
12982 * rtsfind.adb (Check_RPC): Add PCS version check.
12984 * gnatvsn.ads, gnatvsn.adb: Add PCS version.
12985 (Gnat_Free_Software): New function.
12987 * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
12988 the PCS_Version value from s-parint, used to check that it is consistent
12989 with what exp_dist expects.
12991 * s-parint.ads (PCS_Version): New entity for checking consistency
12992 between exp_dist and PCS.
12994 * gen-soccon.c: (SO_REUSEPORT): New constant.
12996 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
12998 * a-calfor.adb (Image (Duration; Boolean)): Change type of local
12999 variable Sub_Second to Duration in order to accomodate a larger range
13000 of arithmetic operations.
13002 2007-08-14 Bob Duff <duff@adacore.com>
13004 * g-sttsne-locking.ads: Move comments from spec to body.
13005 * g-sttsne-locking.adb: Move comments from spec to body.
13006 * g-sttsne-vxworks.ads: Removed.
13007 * g-sttsne-vxworks.adb: Removed.
13009 2007-08-11 Ian Lance Taylor <iant@google.com>
13011 * misc.c (gnat_get_alias_set): Change return type to
13014 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13016 * decl.c, utils2.c: Fix whitespace in last change.
13018 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13020 * decl.c (compare_field_bitpos): Constify.
13021 * utils2.c (compare_elmt_bitpos): Likewise.
13023 2007-07-27 Aurelien Jarno <aurelien@aurel32.net>
13025 * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
13026 anonymous access type.
13027 (pthread_sigmask): Now take an access sigset_t.
13029 2007-07-05 Joel Sherrill <joel.sherrill@oarcorp.com>
13031 * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
13033 2007-06-21 Eric Botcazou <ebotcazou@adacore.com>
13035 PR tree-optimization/25737
13036 * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
13038 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
13040 * trans.c (Attribute_to_gnu): When subtracting an
13041 offset from a pointer, use POINTER_PLUS_EXPR with
13042 NEGATE_EXPR instead of MINUS_EXPR.
13043 (gnat_to_gnu): Likewise.
13044 * utils.c (convert): When converting between
13045 thin pointers, use POINTER_PLUS_EXPR and sizetype
13047 * utils2.c (known_alignment): POINTER_PLUS_EXPR
13048 have the same semantics as PLUS_EXPR for alignment.
13049 (build_binary_op): Add support for the semantics of
13050 POINTER_PLUS_EXPR's operands.
13051 When adding an offset to a pointer, use POINTER_PLUS_EXPR.
13053 2007-06-11 Rafael Ávila de Espíndola <espindola@google.com>
13055 * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
13056 of get_signed_or_unsigned_type.
13057 * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
13059 2007-06-11 Bob Duff <duff@adacore.com>
13060 Thomas Quinot <quinot@adacore.com>
13062 * g-stsifd-sockets.adb (Create): Work around strange behavior of
13063 'bind' on windows that causes 'connect' to fail intermittently, by
13064 retrying the 'bind'.
13065 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
13067 2007-06-10 Duncan Sands <baldrick@free.fr>
13069 * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
13070 than to void, for the fields when making a new fat pointer type.
13071 (gnat_substitute_in_type): Now substitute_in_type.
13072 * gigi.h (gnat_substitute_in_type): Likewise. Adjust recursive calls.
13073 * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
13074 * utils.c (update_pointer_to): Update fat pointers by updating the
13075 dummy node pointers used for the fields.
13077 2007-06-06 Thomas Quinot <quinot@adacore.com>
13078 Bob Duff <duff@adacore.com>
13080 * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
13081 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
13082 g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads: Add new
13083 constant Thread_Blocking_IO, always True by default, set False
13084 on a per-runtime basis.
13085 (Need_Netdb_Buffer): New constant.
13087 * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
13088 g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
13091 * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
13092 g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
13093 Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
13094 child package Task_Safe_NetDB
13095 (Host_Error_Messages): Add stub body.
13096 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
13098 * g-soccon-mingw.ads: Add Windows-specific constants.
13099 (Need_Netdb_Buffer): New constant.
13100 (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
13101 wrapper and import inet_addr(3) from the standard sockets library
13103 (In_Addr): Add alignment clause.
13104 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
13106 2007-06-06 Robert Dewar <dewar@adacore.com>
13108 * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
13109 s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
13110 s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
13111 s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
13112 s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
13113 s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
13114 a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
13115 a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
13116 a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
13117 g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
13118 g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
13119 i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
13120 s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
13121 s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
13122 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
13123 s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
13124 s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
13125 s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
13126 s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
13127 s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
13128 s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
13129 s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
13130 s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
13131 s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
13132 s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
13133 s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
13134 s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
13135 s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
13136 s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
13137 s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
13138 s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
13139 a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
13140 Unchecked_* by Ada.Unchecked_*
13142 2007-06-06 Robert Dewar <dewar@adacore.com>
13144 * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
13145 s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
13146 g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
13147 output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
13148 g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
13149 a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
13151 * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
13152 s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
13153 s-tasloc.adb, s-tasloc.ads: New files.
13155 2007-06-06 Bob Duff <duff@adacore.com>
13157 * g-expect-vms.adb:
13158 (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
13159 * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
13160 (Send_Signal, Close): Raise Invalid_Process if the process id is
13162 (Pattern_Matcher_Access): Is now a general access type to be able to
13163 use aliased string.
13165 2007-06-06 Thomas Quinot <quinot@adacore.com>
13166 Arnaud Charlet <charlet@adacore.com>
13168 * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
13169 (SIGEMT is now used instead of SIGTERM on AIX).
13171 * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
13172 (Time_Slice_Supported): Set to True.
13173 Use SIGEMT instead of SIGTERM as SIGADAABORT.
13175 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
13177 * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
13178 (Time, Time)): Use To_Relative_Time rather than manual calculation to
13179 express the bounds of Duration as Time. Raise Time_Error when the
13180 result is greater or equal to the higher bound of Duration (on the
13182 ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
13183 Ada_High_And_Leaps.
13184 ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
13185 Ada_High_And_Leaps.
13186 ("-" (Time, Time)): Reorder code.
13187 (All_Leap_Seconds): Removed.
13188 (Arithmetic_Operations.Add): Remove sign related kludge.
13189 (Arithmetic_Operations.Difference): Control the leaps seconds processing
13190 with flag Leap_Support.
13191 (Arithmetic_Operations.Subtract): Remove sign related kludge.
13192 (Check_Within_Time_Bounds): New procedure.
13193 (Clock): Control the leap seconds processing with flag Leap_Support.
13194 (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
13195 (Formatting_Operations.Split): Control the leap seconds processing with
13197 (Formatting_Operations.Time_Of): Control the leaps seconds processing
13198 with flag Leap_Support. Adjust the year, month and day (if applicable)
13199 when the value of day seconds designates a new day.
13200 (Split): Use parameter associations for better readability. Integrate
13202 (Time_Of): Use parameter associations for better readability. Integrate
13205 * a-calfor.adb (Split): Use parameter associations for better
13206 readability. Integrate flag Is_Ada_05.
13207 (Time_Of): Remove flag Leap_Checks. Use parameter associations for
13208 better readability. Integrate flag Is_Ada_05.
13210 2007-06-06 Arnaud Charlet <charlet@adacore.com>
13212 * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
13213 s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
13214 s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
13215 s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
13216 s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
13217 s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
13218 s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
13219 s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
13220 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
13221 s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
13222 s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
13223 time when entering this routine to detect a backward clock setting
13224 (manual setting or DST adjustment), to avoid waiting for a longer delay
13226 (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
13227 Remove handling of deferred priority change, and replace by setting the
13228 task priority directly, as required by AI-188.
13230 (Max_Task_Image_Length): New constant.
13231 Replace Warnings (Off) by Unreferenced pragma, cleaner.
13232 (Dynamic_Priority_Support): Removed, no longer needed.
13233 (Poll_Base_Priority_Change): Ditto.
13234 (Set_Ceiling): Add this procedure to change the ceiling priority
13235 associated to a lock. This is a dummy implementation because dynamic
13236 priority ceilings are not supported by the underlying system.
13238 * a-dynpri.adb (Set_Priority): Take into account case where Target is
13239 accepting a RV with its priority boosted.
13240 Remove handling of deferred priority change, and replace by setting the
13241 task priority directly, as required by AI-188.
13243 * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
13245 Remove handling of deferred priority change, and replace by setting the
13246 task priority directly, as required by AI-188.
13247 (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
13248 of Self_Id earlier.
13250 * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
13251 (Poll_Base_Priority_Change): Removed.
13252 Code clean up: use SSL.Current_Target_Exception.
13254 * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
13255 to run as this is a potentially dispatching point.
13256 (Call_Synchronous): Use Local_Defer_Abort.
13257 (Callable): Relax assertion.
13258 (Selective_Wait): Relax assertion in case abort is not allowed.
13259 Remove handling of deferred priority change, and replace by setting the
13260 task priority directly, as required by AI-188.
13262 * s-tasuti.adb (Make_Passive): Adjust assertions.
13263 Remove handling of deferred priority change, and replace by setting the
13264 task priority directly, as required by AI-188.
13266 2007-06-06 Arnaud Charlet <charlet@adacore.com>
13268 * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
13269 system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
13270 system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
13271 system-vxworks-mips.ads, system-vxworks-alpha.ads,
13272 system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
13273 system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
13274 system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
13275 system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
13276 system-solaris-sparcv9.ads, system-vms.ads, system.ads,
13277 system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
13278 system-linux-ia64.ads: Document mapping between Ada and OS priorities.
13279 This patch changes the largest non-binary modulus from 2**31-1 to
13281 (Compiler_System_Version): Removed, no longer used.
13282 Clean up system files by removing flags only used on a single target.
13283 Also remove obsolete flags, only used during bootstrap from system.ads
13284 (Address): Add a pragma Preelaborable_Initialization.
13286 * system-aix.ads: Ditto.
13287 (GCC_ZCX_Support): Set to true.
13288 Update priority range on AIX and map Ada priorities to target
13289 priorities appropriately for different scheduling policies.
13291 * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
13293 2007-06-06 Vincent Celier <celier@adacore.com>
13295 * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
13296 mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
13298 * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
13299 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
13300 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
13301 mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
13302 mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
13303 MLib.Tgt, containing the default versions of the exported subprograms.
13304 For each platform, create a specific version of the body of new child
13305 package MLib.Tgt.Specific that contains only the body of subprograms
13306 that are different from the default.
13307 (Archive_Builder_Append_Options): New function.
13309 2007-06-06 Matthew Gingell <gingell@adacore.com>
13311 * s-osinte-aix.adb: Map Ada priorities to target priorities
13312 appropriately for different scheduling policies.
13314 2007-06-06 Arnaud Charlet <charlet@adacore.com>
13316 * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
13318 Remove references to Unchecked_Conversion, and use Ada.xxx instead.
13319 Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
13321 2007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
13323 * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
13324 Noop on VMS, added for interface commonality.
13326 2007-06-06 Eric Botcazou <ebotcazou@adacore.com>
13327 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13328 Olivier Hainque <hainque@adacore.com>
13330 * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
13331 renamed expression of a full renaming at toplevel.
13332 (gnat_to_gnu_entity, case object): If not defining, do not look inside
13333 the values the constant is initialized to if it is an N_Allocator.
13334 (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
13335 TYPE_SIZE_UNIT of inner types after the stride is elaborated.
13336 (make_aligning_type): Accept an extra ROOM argument for storage to be
13337 made available before the aligned field, and an extra BASE_ALIGN
13338 argument for callers to pass the alignment guaranteed to be honored for
13339 the whole aligning object. Avoid call to finish_record_type, which only
13340 interferes with the sizes we want to set.
13341 (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
13342 make_aligning_type for super-aligned objects on stack.
13343 (components_to_record): Pass the adjusted size of the type when creating
13344 fields in the qualified union for the variant part.
13345 (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
13346 (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
13348 (maybe_pad_type): Set TYPE_USER_ALIGN.
13349 (make_aligning_type): Likewise.
13350 ALIGN argument is unsigned int.
13351 (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
13352 (gnat_to_gnu_param): Likewise, for parameters.
13353 (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
13354 if it is constant and stems from a function call.
13355 (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
13356 of the record is specified. Adjust accordingly.
13357 (adjust_packed): New static function.
13358 (gnat_to_gnu_field): Use it to adjust the packedness setting.
13359 (components_to_record): Likewise.
13360 (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
13361 side-effects if the object is deemed constant.
13362 (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
13363 type instead of merely finalizing it. Tidy.
13364 <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
13365 <E_Access_Type>: Likewise.
13366 (defer_debug_incomplete_list): Rename to defer_finalize_list.
13367 (defer_debug_level): Delete.
13368 (gnat_to_gnu_entity) <debug_deferred>: Likewise
13369 <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
13371 <E_Record_Type>: Do not explicitly defer finalizing the type.
13372 Adjust for write_record_type_debug_info renaming.
13373 <E_Subprogram_Type>: Likewise.
13374 Finalize deferred types right after deferred incomplete types are
13376 (rest_of_type_decl_compilation): New global function.
13377 (components_to_record): Rename defer_debug parameter to do_not_finalize.
13378 (components_to_record): Propagate the packedness to the fields of the
13379 qualified union type if there is a variant part.
13380 (gnat_to_gnu_entity) <E_Array_Type>: Use new function
13381 instead of inline code to adjust the XUT field offsets.
13382 (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
13383 <E_Record_Subtype>: Do not let finish_record_type compute the sizes
13384 and write the debug info if the type derives from a discriminated one.
13385 (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
13386 <E_Array_Subtype>: Likewise.
13387 <E_String_Literal_Subtype>: Likewise.
13388 (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
13389 an alignment clause.
13390 (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
13391 before giving warning.
13392 (prepend_one_attribute_to): New function, helper to prepend an attribute
13393 to an attribute list.
13394 (gnat_to_gnu_entity) <E_Procedure>: Use it.
13395 (prepend_attributes): Likewise.
13396 (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
13397 <E_Array_Type>: Declare the padding type for the element type, if any.
13398 <E_Array_Subtype>: Likewise.
13399 (defer_limited_with): New variable.
13400 (Gigi_Equivalent_Type): New function.
13401 (gnat_to_gnu_entity): Use it at start and use result throughout.
13402 (gnat_to_gnu_entity, case E_Access_Type): Rework to use
13403 Gigi_Equivalent_Type, support Limited_With, allow two levels of
13404 indirection, precompute if unconstrained array to simplify logic, and
13405 use defer_limited_with to defer elaboration of some types from limited
13407 (finalize_from_with_types): New function.
13409 2007-06-06 Gary Dismukes <dismukes@adacore.com>
13410 Eric Botcazou <ebotcazou@adacore.com>
13411 Tristan Gingold <gingold@adacore.com>
13412 Olivier Hainque <hainque@adacore.com>
13414 * trans.c (Identifier_to_gnu): Change test for deferred constant by
13415 adding guard that the entity is an E_Constant before testing presence
13416 of Full_view (and remove unnecessary test that entity is not a type).
13417 For a CONST_DECL used by reference, manually retrieve
13418 the DECL_INITIAL. Do not invoke fold in the other DECL_P cases either.
13419 (struct language_function): Move from utils.c to here.
13420 (struct parm_attr): New structure.
13421 (parm_attr, parm_attr vector, parm_attr GC vector): New types.
13422 (f_parm_attr_cache): New macro.
13423 (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
13424 expressions for the 'First, 'Last and 'Length attributes of the
13425 unconstrained array IN parameters.
13426 (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
13427 Allocate the information structure for the function earlier, as well
13428 as the language-specific part.
13429 If the parameter attributes cache has been populated, evaluate the
13430 cached expressions on entry.
13431 (takes_address): Add OPERAND_TYPE parameter. Handle N_Function_Call,
13432 N_Procedure_Call_Statement and N_Indexed_Component.
13433 (Pragma_to_gnu): Translate inspection_point to an asm statement
13434 containaing a comment and a reference to the object (either its address
13435 for BLKmode or its value).
13436 (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
13437 to go to DECL_INITIAL. Together with the size constraint relaxation
13438 in create_var_decl, enlarges the set of situations in which an
13439 identifier may be used as an initializer without implying elaboration
13441 (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
13442 DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
13444 (maybe_stabilize_reference): Remove lvalues_only parameter.
13445 (gnat_stabilize_reference): Adjust for above change.
13446 (gnat_to_gnu): Do not set location information on the result
13447 if it is a reference.
13448 (add_cleanup): Add gnat_node parameter and set the location of the
13450 (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
13451 (Exception_Handler_to_gnu_zcx): Likewise.
13452 (gigi): Remove the cgraph node if the elaboration procedure is empty.
13453 (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
13454 the former right after the latter.
13455 (start_stmt_group): Make global.
13456 (end_stmt_group): Likewise.
13457 (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
13459 (gnu_program_error_label_stack): Likewise.
13460 (gigi): Initialize them.
13461 (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
13462 (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
13464 (push_exception_label_stack): New function.
13465 (takes_address): New function.
13467 * utils.c (struct language_function): Move to trans.c from here.
13468 (unchecked_convert): Do not wrap up integer constants in
13469 VIEW_CONVERT_EXPRs.
13470 (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
13471 the latter for aggregate types, unexpected by later passes, and relax an
13472 arbitrary size constraint on the former.
13473 (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
13474 to compare the sizes.
13475 (convert_vms_descriptor): When converting to a fat pointer type, be
13476 prepared for a S descriptor at runtime in spite of a SB specification.
13477 (shift_unc_components_for_thin_pointers): New function.
13478 (write_record_type_debug_info): For variable-sized fields, cap the
13479 alignment of the pointer to the computed alignment.
13480 (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
13481 If REP_LEVEL is 2, do not compute the sizes.
13482 (build_vms_descriptor): Adjust for new prototype of finish_record_type.
13483 (build_unc_object_type): Likewise.
13484 (declare_debug_type): New function.
13486 * ada-tree.def: USE_STMT: removed (not emitted anymore).
13488 * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
13489 no statement is expandable anymore.
13490 (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
13491 (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
13492 when the user requested it explicitely.
13493 (gnat_post_options): By default, set flag_eliminate_unused_debug_types
13495 (get_alias_set): Return alias set 0 for a type if
13496 TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
13498 * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
13499 (DECL_FUNCTION_STUB): New accessor macro.
13500 (SET_DECL_FUNCTION_STUB): New setter macro.
13502 * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
13504 * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
13507 2007-06-06 Jose Ruiz <ruiz@adacore.com>
13509 * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
13510 Rename to Abort_Task_Interrupt to be able to keep the same interface
13511 as the rest of the targets.
13513 * s-osinte-vxworks.ads s-osinte-vxworks.adb
13514 (To_VxWorks_Priority): Remove explicit "in" mode indicator
13516 * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
13519 2007-06-06 Robert Dewar <dewar@adacore.com>
13521 * a-chahan.ads: Remove obsolescent pragmas
13523 * a-chlat1.ads: Minor reformatting
13525 2007-06-06 Robert Dewar <dewar@adacore.com>
13527 * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
13530 * errout.adb: New Finalize/Compilation_Errors/Output_Messages
13533 * errout.ads (Finalize): Changed interface
13534 (Output_Messages): New procedure
13535 (Compilation_Errors): New Interface
13537 * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
13538 Finalize/Output_Messages interface for Errout
13539 (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
13542 2007-06-06 Thomas Quinot <quinot@adacore.com>
13543 Olivier Hainque <hainque@adacore.com>
13544 Robert Dewar <dewar@adacore.com>
13546 * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
13548 (Raise_Current_Excep): Call Debug_Raise_Exception just before
13549 propagation starts, to let debuggers know about the event in a reliable
13551 (Local_Raise): Moved to System.Exceptions
13552 More convenient to have this as a separate unit
13554 * s-except.adb, s-except.ads: New files.
13556 * a-exextr.adb (Unhandled_Exception): Delete - replaced by
13557 Debug_Unhandled_Exception in System.Exceptions where it belongs
13558 together with a couple of other debug helpers.
13559 (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
13560 the former Unhandled_Exception.
13562 * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
13563 (Warn_No_Exception_Propagation): New procedure
13564 (Warn_If_No_Propagation): Rewritten for new warning generation
13565 (Expand_Exception_Handlers): New warning generation
13566 (Expand_N_Raise_xxx_Error): Rewritten for new warnings
13567 (Add_Exception_Label): Use Special_Exception_Package_Used for test
13568 instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
13569 (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
13570 even if restriction is set (makes life easier in Check_Returns)
13571 (Expand_Local_Exception_Handlers): Follow renamed entity chain when
13572 checking exception identities.
13573 (Expand_Local_Exception_Handlers): Do not optimize when all others case
13574 (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
13575 block for handler (used by Check_Returns)
13576 (Expand_Local_Exception_Handlers): Local_Raise now takes an address
13577 (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
13578 remove all exception handlers when optimizing local raise statements.
13579 (Find_Local_Handler): Use Get_Renamed_Entity
13580 (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
13581 marked analyzed after expanding exception handlers, do not generate
13582 redundant cleanup actions, because they have been constructed already.
13584 2007-06-06 Thomas Quinot <quinot@adacore.com>
13586 * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
13587 presence of this categorization pragma is mandated by the language.
13588 (Limited_Controlled): Add missing pragma Preelaborable_Initialization
13591 2007-06-06 Vincent Celier <celier@adacore.com>
13592 Robert Dewar <dewar@adacore.com>
13594 * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
13595 butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
13596 err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
13597 fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
13598 lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
13599 makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
13600 par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
13601 prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
13602 prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
13603 sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
13604 uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
13606 Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
13607 package Namet. Make File_Name_Type and Unit_Name_Type types derived from
13608 Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
13609 Use variables of types File_Name_Type and Unit_Name_Type in error
13611 (Get_Name): Add parameter Ignore_Special, and set it reading file name
13612 (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
13614 Define flags Flag217-Flag230 with associated subprograms
13615 (Flag_Word5): New record type.
13616 (Flag_Word5_Ptr): New access type.
13617 (To_Flag_Word5): New unchecked conversion.
13618 (To_Flag_Word5_Ptr): Likewise.
13619 (Flag216): New function.
13620 (Set_Flag216): New procedure.
13622 2007-06-06 Arnaud Charlet <charlet@adacore.com>
13624 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
13627 * a-stwifi.ads, a-stzfix.ads: Minor reformatting
13629 2007-06-06 Javier Miranda <miranda@adacore.com>
13631 * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
13633 (Object_Specific_Data_Array): This is now internal to the package.
13634 (Object_Specific_Data): This is now internal to the package.
13635 (Select_Specific_Data_Element): This is now internal to the package.
13636 (Select_Specific_Data_Array): This is now internal to the package.
13637 (Select_Specific_Data): This is now internal to the package.
13638 (Offset_To_Top_Function_Ptr): This is now public.
13639 (To_Offset_To_Top_Function_Ptr): Removed.
13640 (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
13641 local to subprogram Offset_To_Top.
13642 (Predefined_DT): Removed.
13643 (Typeinfo_Ptr): Removed.
13644 (OSD): This function is now internal to this package.
13645 (SSD): This function is now internal to this package.
13646 (DT): New function that displaces the pointer to the table of primitives
13647 to get access to the enclosing wrapper record.
13648 (IW_Membership): Code cleanup.
13649 (Offset_To_Top): Code cleanup.
13650 (Predefined_DT): Removed.
13651 (Register_Interface_Tag): Removed.
13652 (Set_Interface_Table): Removed.
13653 (Set_Offset_Index): Removed.
13654 (Set_Offset_To_Top): Code cleanup.
13655 (Set_OSD): Removed.
13656 (Set_Signature): Removed.
13657 (Set_SSD): Removed.
13658 (Set_Tagged_Kind): Removed.
13659 (Typeinfo_Ptr): Removed.
13661 (Displace): Add missing check on null actual.
13663 * exp_disp.ads, exp_disp.adb
13664 (Select_Expansion_Utilities): Removed.
13665 (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
13666 (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
13667 the interface requires a new parameter.
13668 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
13669 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
13670 calls to subprograms Build_T, Build_S, etc. by the corresponding code.
13671 Done to remove package Select_Expansion_Utilities.
13672 (Make_DT): New implementation for statically allocated dispatch tables.
13673 (Make_Secondary_DT): Moved to the scope of Make_DT.
13674 (Register_Primitive): Code cleanup plus incoporate the use of the new
13675 function DT_Address_Attribute.
13676 (Expand_Interface_Thunk): The profile of this subprogram has been
13677 changed to return the Thunk_Id and the corresponding code.
13678 (Fill_DT_Entry): Removed. Its functionality is now provided by
13679 subprogram Register_Primitive.
13680 (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
13681 subprogram Register_Primitive.
13682 (Register_Primitive): New subprogram that incorporates the previous
13683 functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
13684 (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
13685 was only required to call Make_DT_Access_Action, which is now removed.
13686 (Ada_Actions): Removed
13687 (Action_Is_Proc): Removed
13688 (Action_Nb_Arg): Removed
13689 Replace all the calls to Make_DT_Access_Action by direct calls to
13690 Make_Procedure_Call_Statement or Make_Function_Call.
13691 (Set_DTC_Entity_Value): New subprogram.
13692 (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
13693 (Expand_Interface_Thunk): Add missing support for primitives that are
13694 functions with a controlling result (case in which there is no need
13695 to generate the thunk).
13697 * exp_atag.ads, exp_atag.adb
13698 (Build_DT): New subprogram that displaces the pointer to reference the
13699 base of the wrapper record.
13700 (Build_Typeinfo_Offset): Removed.
13701 (RTE_Tag_Node): Removed.
13702 (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
13703 (Build_Get_RC_Offset): Removed.
13704 (Build_Inherit_Predefined_Prims): Removed.
13705 (Build_Inherit_TSD: Removed.
13706 (Build_New_TSD): Removed.
13707 (Build_Set_External_Tag): Removed.
13708 (Build_Set_Predefined_Prim_Op_Address): Add documentation.
13709 (Build_Set_Prim_Op_Address): Add documentation.
13710 (Build_Set_TSD): Removed.
13712 * rtsfind.ads, rtsfind.adb
13713 (Load_Fail): If load fails and we are not in configurable run-time
13714 mode, then raise Unrecoverable_Error.
13715 (Text_IO_Kludge): Generate an error message if a run-time library is
13716 not available in a given run-time (ie. zfp run-time).
13717 (RTE_Record_Component): Add code to check that the component we search
13718 for is not found in two records in the given run-time package.
13719 (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
13720 (RE_DT_Predef_Prims_Offset): New entity
13721 (RE_Static_Offset_To_Top): New entity
13722 (RE_HT_Link): New entity.
13723 (System_Address_Image): Addition of this run-time package.
13724 (RE_Address_Image): New entity.
13725 (RE_Abstract_Interface): Removed.
13726 (RE_Default_Prim_Op_Count): Removed.
13727 (RE_DT_Entry_Size): Removed.
13728 (RE_DT_Min_Prologue_Size): Removed.
13729 (RE_DT_Prologue_Size): Removed.
13730 (RE_Ifaces_Table_Ptr): Removed.
13731 (RE_Interface_Data_Ptr): Removed.
13732 (RE_Type_Specific_Data): Removed.
13733 (RE_Primary_DT): Removed.
13734 (RE_Register_Interface_Tag): Removed.
13735 (RE_Set_Offset_Index): Removed.
13736 (RE_Set_OSD): Removed.
13737 (RE_Set_SSD): Removed.
13738 (RE_Set_Signature): Removed.
13739 (RE_Set_Tagged_Kind): Removed.
13740 (RE_Address_Array): New entity.
13741 (RE_DT): New entity.
13742 (RE_Iface_Tag): New entity.
13743 (RE_Interfaces_Table): New entity.
13744 (RE_No_Dispatch_Table): New entity.
13745 (RE_NDT_Prims_Ptr): New entity.
13746 (RE_NDT_TSD): New entity.
13747 (RE_Num_Prims): New entity.
13748 (RE_Offset_To_Top_Function_Ptr): New entity.
13749 (RE_OSD_Table): New entity.
13750 (RE_OSD_Num_Prims): New entity.
13751 (RE_Predef_Prims): New entity
13752 (RE_Predef_Prims_Table_Ptr): New entity.
13753 (RE_Primary_DT): New entity.
13754 (RE_Signature): New entity.
13755 (RE_SSD): New entity.
13756 (RE_TSD): New entity.
13757 (RE_Type_Specific_Data): New entity.
13758 (RE_Tag_Kind): New entity.
13760 2007-06-06 Thomas Quinot <quinot@adacore.com>
13762 * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
13763 C imported variable.
13764 (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
13767 2007-06-06 Robert Dewar <dewar@adacore.com>
13769 * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
13772 2007-06-06 Vincent Celier <celier@adacore.com>
13774 * a-tifiio.adb (Put, internal): For negative numbers, check that there
13775 is room for at least one digit and the minus sign.
13776 (Put.Put_Character): Never put a character outside of the range of
13779 2007-06-06 Olivier Hainque <hainque@adacore.com>
13780 Eric Botcazou <ebotcazou@adacore.com>
13782 * utils2.c (build_allocator): Provide the extra arguments to
13783 make_aligning_type for super-aligned objects allocated from the default
13784 pool. Leave enough room for a pointer before the aligning field, and
13785 store the system's allocator return value there.
13786 (build_call_alloc_dealloc): When releasing a super-aligned object,
13787 retrieve the system's allocator return value from where build_allocator
13788 has stored it, just ahead of the adjusted address we are passed.
13789 (build_call_raise): Handle properly the generation of line numbers when
13790 the node is marked No_Location.
13791 (compare_elmt_bitpos): Use tree_int_cst_compare. Stabilize the sort
13792 by using DECL_UID on ties.
13793 (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
13795 (build_call_raise): Handle converting exception into goto; support new
13797 (build_component_ref): Add new arg to build_call_raise.
13799 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
13801 * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
13802 "." in the case of nnn.xxx when nnn terminates with an underscore.
13803 Parse the remaining "#" or ":" in the case of nnn#.xxx#
13805 2007-06-06 Robert Dewar <dewar@adacore.com>
13807 * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
13809 2007-06-06 Arnaud Charlet <charlet@adacore.com>
13810 Vincent Celier <celier@adacore.com>
13811 Robert Dewar <dewar@adacore.com>
13813 * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
13815 (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
13816 ((destructor)) for adafinal, even when switch -a is used.
13817 Do not issue pragma Linker_Destructor for adafinal when switch -a is
13819 (Gen_Object_Files_Options): Add formatting of Linker Options, when
13820 Output_Linker_Option_List is set. Suppress this formatting when
13821 Zero_Formatting is set.
13822 Add case for CLI_Target.
13823 (System_Restrictions_Used): New flag, used to avoid generating with of
13824 System_Restrictions and initialization of the data unless there is
13825 some use of System.Restrictions in the partition.
13826 (Check_System_Restrictions_Used): New procedure
13828 * s-stalib.adb: Remove with of System.Restrictions. No longer needed
13829 since we only with this unit in the binder file if it is used elsewhere
13832 2007-06-06 Vincent Celier <celier@adacore.com>
13834 * bindusg.adb: Add line for @<response file>
13835 Add lines for new switches -R and -Z
13837 * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
13838 hierarchy in the list of files of the closure when -R is used
13839 (Gnatbind): Accept arguments starting with '@' to indicate response
13840 files and take the arguments from the response files.
13841 If List_Closure is set, display the referenced files
13843 2007-06-06 Javier Miranda <miranda@adacore.com>
13844 Robert Dewar <dewar@adacore.com>
13845 Ed Schonberg <schonberg@adacore.com>
13847 * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
13848 which the address-clause is applied to in-mode actuals (allowed by
13850 (Apply_Discriminant_Check): Do not generate a check if the type is
13851 constrained by a current instance.
13852 (Activate_Division_Check): New procedure
13853 (Activate_Overflow_Check): New procedure
13854 (Activate_Range_Check): New procedure
13855 Call these new Activate procedures instead of setting flags directly
13856 (Apply_Array_Size_Check): Removed, no longer needed.
13857 Code clean up: remove obsolete code related to GCC 2.
13858 (Get_E_Length): Protect against bomb in case scope is standard
13859 (Selected_Range_Checks): If the node to be checked is a conversion to
13860 an unconstrained array type, and the expression is a slice, use the
13861 bounds of the slice to construct the required constraint checks.
13862 Improve NOT NULL error messages
13863 (Apply_Constraint_Check): If the context is a null-excluding access
13864 type, diagnose properly the literal null.
13866 2007-06-06 Pascal Obry <obry@adacore.com>
13868 * clean.adb (Clean_Archive): Use untouched casing for the archive name
13869 and the corresponding .deps file.
13870 (Clean_Interface_Copy_Directory): Use untouched casing for the library
13871 src directory. Minor code-clean-up. Use untouched casing for files
13872 read into the library src dir.
13873 (Clean_Library_Directory): Idem.
13874 (Parse_Cmd_Line): Accept new switch -aP
13876 2007-06-06 Javier Miranda <miranda@adacore.com>
13877 Ed Schonberg <schonberg@adacore.com>
13878 Robert Dewar <dewar@adacore.com>
13879 Eric Botcazou <ebotcazou@adacore.com>
13880 Arnaud Charlet <charlet@adacore.com>
13882 * einfo.ads, einfo.adb (Available_View): New synthesized attribute
13883 applicable to types that have the With_Type flag set. Returns the
13884 non-limited view of the type, if available, otherwise the type itself.
13885 For class-wide types, there is no direct link in the tree, so we have
13886 to retrieve the class-wide type of the non-limited view of the Etype.
13887 New attributes Static_Initialization and Static_Elaboration_Desired.
13888 Remove the pragma Thread_Body, and the associated flag
13889 Is_Thread_Body in entities, and all related code.
13890 (Suppress_Value_Tracking_On_Call): New flag
13891 E_Exception has Esize and Alignment fields
13892 (Universal_Aliasing): New function.
13893 (Set_Universal_Aliasing): New procedure.
13894 (Write_Entity_Flags): Deal with Universal_Aliasing flag.
13895 (Check_Nested_Access): New procedure.
13896 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
13897 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
13898 (Related_Interface): New attribute. Present in dispatch table pointer
13899 components of records. Set to point to the entity of the corresponding
13901 (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
13902 (Original_Access_Type): Remove, not needed.
13903 (Root_Type): Handle properly subtypes of class-wide-types.
13906 * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
13907 class-wide types visible through limited-with clauses.
13908 (Try_Primitive_Operation): When examining all primitive operations of a
13909 tagged type, do not consider subprograms labeled as hidden unless they
13910 belong to a private generic type with a tagged parent.
13911 (Try_Object_Operation): Extensive rewriting, to handle properly various
13912 overloading cases, when several ancestors may have class-wide operations
13913 that are possible candidates, and when the overloaded functions return
13914 array types and have defaulted parameters so that the call may be
13915 interpreted as an indexing.
13916 (Analyze_Allocator): Remove Mark_Allocator and its invocation.
13917 (Process_Function_Call): use Next, rather than Next_Actual, to analyze
13918 successive actuals before analyzing the call itself.
13919 (Try_Primitive_Operation): A primitive operation is compatible with the
13920 prefix if the prefix has a synchronized type and the type of the formal
13921 is its corresponding record, as can be the case when the primitive
13922 operation is declared outside of the body of the type.
13923 (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
13924 perform homonym traversal, looking for class-wide operation matches
13925 (formerly done in statements of Try_Class_Wide_Operation). Matches on
13926 access parameters are now restricted to anonymous access types.
13927 (Mark_Allocator): An allocator with a discriminant association parent is
13929 (Try_One_Prefix_Interpretation): If the type of the object is
13930 incomplete, as can be happen when it is a limited view obtained through
13931 a limited_with_clause, the selected component is not part of a prefixed
13933 (Complete_Object_Operation): Diagnose properly an object that is not
13934 aliased when the corresponding controlling formal is an access
13936 (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
13937 ambiguous calls in prefixed notation, where two primitives differ only
13938 in that the controlling argument of one is an access parameter.
13940 * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
13941 whether a function that returns an unconstrained type can be inlined.
13942 (Process_Formals): Diagnose properly the illegal use of an incomplete
13943 type in the profile of an access_to_subprogram declaration.
13944 (Check_Synchronized_Overriding): Nothing check for concurrent types, the
13945 operations are attached to the corresponding record.
13946 (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
13947 When processing a primitive of a concurrent type which implements an
13948 interface change the type of all controlling formals to that of the
13949 corresponding record type.
13950 (Check_Synchronized_Overriding): Relax the conditional logic when trying
13951 to determine the tagged type to which a primitive belongs.
13952 (Check_Conventions): Capture condition to ignore a primitive operation
13953 (which is shared between the loop in Check_Conventions and the one in
13954 Check_Convention) in a new local function Skip_Check.
13955 (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
13956 confusion with Check_Conventions' own Prim_Op local variable.
13957 (Create_Extra_Formals): Test for a tagged result type rather than a
13958 controlling result when determining whether to add a BIP_Alloc_Form
13959 formal and a BIP_Final_List formal to the function.
13960 (Check_Conformance); For parameters that are anonymous access types,
13961 subtype conformance requires that the not null and the constant
13962 indicators must match
13963 (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
13964 to retrieve the appropriate type when processing a concurrent type
13965 declared within a generic. Minor comment reformatting. Change invocation
13966 of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
13968 (Analyze_Subprogram_Body): If the return type of a function is an
13969 anonymous access to the limited view of a class-wide type, and the
13970 non-limited view of the type is available, update the type of the
13971 function so that code can be generated.
13972 (Process_Formals): In case of access-subtype itype whose designated
13973 type is also an itype (situation that happens now with access to
13974 subprograms) we mark the access-type itype with the Has_Delayed_Freeze
13975 attribute to avoid backend problems.
13976 (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
13977 init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
13978 anonymous types' designated types are same before testing
13979 Subtypes_Statically_Match.
13980 (Create_Extra_Formals): Test for a named access parameter that is a
13981 controlling formal as an additional condition for adding an
13982 accessibility level formal. This can occur in the subp type created for
13983 dispatching calls in Expand_Dispatching_Call, and allows calling
13984 Create_Extra_Formals from that procedure rather than special-casing the
13985 extra formals there.
13986 (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
13987 when the function has a controlling result.
13988 (Check_Returns): Add much more knowledge of the optimization of local
13989 raise statements to gotos, to retain proper warnings in this case.
13990 (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
13991 nodes when looking for last statement.
13993 * sem_type.ads, sem_type.adb (Specific_Type): Add support for
13994 class-wide types visible through limited with clauses.
13995 (Add_One_Interp): If the operands are anonymous access types, the
13996 predefined operator on universal_access is immediately visibles
13997 (Find_Unique_Type): Handle anonymous access to subprogram types just as
13998 other anonymous access types.
13999 (Disambiguate): Take into account CIL convention.
14000 (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
14002 2007-06-06 Robert Dewar <dewar@adacore.com>
14004 * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
14005 sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
14006 elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
14007 Fix lower bound of tables.
14010 * nlists.adb: Ditto.
14011 (Prev_Node, Next_Node): Change index type to Int so that it properly
14012 covers the range First_Node_Id - 1 up.
14014 2007-06-06 Javier Miranda <miranda@adacore.com>
14015 Ed Schonberg <schonberg@adacore.com>
14016 Bob Duff <duff@adacore.com>
14017 Hristian Kirtchev <kirtchev@adacore.com>
14019 * exp_aggr.ads, exp_aggr.adb:
14020 (Build_Record_Aggr_Code): Add missing initialization of secondary tags
14021 in extension aggregates.
14022 (Flatten): Other conditions being met, an aggregate is static if the
14023 low bound given by component associations is different from the low
14024 bound of the base index type.
14025 (Packed_Array_Aggregate_Handled): If the component type is itself a
14026 packed array or record, the front-end must expand into assignments.
14027 (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
14028 Init_Pr, instead of Ancestor_Is_Expression.
14029 (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
14030 coextension chain root, either generate a list controller or use the
14031 already existing one.
14032 (Static_Array_Aggregate): New procedure to construct a positional
14033 aggregate that can be handled by the backend, when all bounds and
14034 components are compile-time known constants.
14035 (Expand_Record_Aggregate): Force conversion of aggregates of tagged
14036 types covering interface types into assignments.
14037 (Replace_Type): move to Build_Record_Aggr_Code.
14038 (Expand_Record_Aggr_Code): if the target of the aggregate is an
14039 interface type, convert to the definite type of the aggregate itself,
14040 so that needed components are visible.
14041 (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
14042 components and the context is an extended return statement do not
14043 create a transient block for it, to prevent premature finalization
14044 before the return is executed.
14045 (Gen_Assign): Do not generate a call to deep adjust routine if the
14046 component type is itself an array of controlled (sub)-components
14047 initialized with an inner aggregate.
14048 (Component_Check): New name for Static_Check. This name is now more
14049 appropriate, and documentation is added which was missing.
14050 (Component_Check): Add test for bit aligned component value
14051 (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
14052 Tagged_Comps, name is more appropriate given added function below.
14053 (Component_Not_OK_For_Backend): Check for bit aligned component ref.
14055 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
14056 Javier Miranda <miranda@adacore.com>
14057 Robert Dewar <dewar@adacore.com>
14059 * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
14060 Terminated: Add unchecked type conversion from System.Address to
14061 System.Tasking.Task_Id when calling the predefined primitive
14063 Disable new Ada 05 accessibility check for JVM.NET targets, which
14064 cannot be implemented in a practical way.
14065 (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
14066 the sources always references the tag of the actual object. Therefore,
14067 if 'Tag is applied in the sources to class-wide interface objects we
14068 generate code that displaces "this" to reference the base of the object.
14069 (Expand_N_Attribute_Reference, case Size): Return specified size if
14070 known to front end.
14071 (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
14072 has code that displaces the pointer of the object to manage interface
14073 types. However this code must not be executed when the prefix is a
14074 subprogram. This bug caused the wrong expansion of the internally
14075 generated assignment that fills the dispatch table when the primitive
14076 is a function returning a class-wide interface type.
14077 (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
14078 Set_Attribute_Name for Name_Unaligned_Valid.
14080 2007-06-06 Ed Schonberg <schonberg@adacore.com>
14081 Gary Dismukes <dismukes@adacore.com>
14083 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
14084 If the initialization is the equivalent aggregate of the initialization
14085 procedure of the type, do not remove it.
14086 (Expand_N_Attribute_Definition_Clause): Exclude access variables
14087 initialized to null from having their expression reset to empty and
14088 note this exception in the comment.
14090 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
14091 Robert Dewar <dewar@adacore.com>
14092 Ed Schonberg <schonberg@adacore.com>
14093 Gary Dismukes <dismukes@adacore.com>
14095 * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
14096 Add "with" and "use" clauses for Sem_Attr.
14097 (Expand_Current_Value): Do not replace occurences of attribute
14098 references where the prefix must be a simple name.
14100 * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
14101 Namet. Add new arrays Attribute_Name_Modifies_Prefix and
14102 Attribute_Requires_Simple_Name_Prefix.
14103 (Name_Modifies_Prefix): Body of new function.
14104 (Requires_Simple_Name_Prefix): Body of new function.
14105 (Resolve_Attribute, case Access): Improve error message for case of
14106 mismatched conventions.
14107 (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
14109 (Analyze_Attribute, case 'Access): If the type of the prefix is a
14110 constrained subtype for a nominal unconstrained type, use its base type
14111 to check for conformance with the context.
14112 (Resolve_Attribute): Remove test of the access type being associated
14113 with a return statement from condition for performing accessibility
14114 checks on access attributes, since this case is now captured by
14115 Is_Local_Anonymous_Access.
14116 (Analyze_Access_Attribute): Set Address_Taken on entity
14117 (Analyze_Attribute, case Address): Set Address_Taken on entity
14118 (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
14119 validating an access attribute whose prefix is a current instance.
14120 (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
14121 applied to dispatching operations, if freezing is required then we set
14122 the attribute Has_Delayed_Freeze in the prefix's entity.
14123 (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
14124 current scope if access of local subprogram taken
14125 (Analyze_Access_Attribute): Check legality of self-reference even if the
14126 expression comes from source, as when a single component association in
14127 an aggregate has a box association.
14128 (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
14129 the prefix if it is a protected operation and the attribute is
14130 Unrestricted_Access.
14131 (Resolve_Attribute, case 'Access): Set the Etype of the attribute
14132 reference to the base type of the context, to force a constraint check
14133 when the context is an access subtype with an explicit constraint.
14134 (Analyze_Attribute, case 'Class): If the prefix is an interface and the
14135 node is rewritten as an interface conversion. leave unanalyzed after
14136 resolution, to ensure that type checking against the context will take
14139 2007-06-06 Ed Schonberg <schonberg@adacore.com>
14140 Javier Miranda <miranda@adacore.com>
14141 Robert Dewar <dewar@adacore.com>
14143 * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
14144 wrapper when the full view of the controlling type of an inherited
14145 function that dispatches on result implements interfaces.
14146 (Expand_N_Object_Declaration): In cases where the type of the
14147 declaration is anonymous access, create finalization list for it.
14148 (Expand_N_Object_Declaration): Generate a persistent_bss directive only
14149 if the object has no explicit initialization, to match description of
14150 functionality of pragam Persistent_BSS.
14151 (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
14152 new function to build static aggregates, to replace initialization call
14153 when static initialization is desired.
14154 (Freeze_Type): Generate a list controller for an access type whenever
14155 its designated type has controlled anonymous access discriminants.
14156 (Build_Equivalent_Aggregate): New procedure to compute a static
14157 aggregate to be used as default initialization for composite types,
14158 instead of a generating a call to the initialization procedure for the
14160 (Build_Initialization_Call): When available, replace a call to the
14161 initialization procedure with a copy of the equivalent static aggregate
14163 (Expand_N_Object_Declaration): Use New_Occurrence_Of in generated
14164 declarations for objects of a class-wide interface type, rather than
14165 just identifiers, to prevent visibility problems.
14166 (Expand_N_Object_Declaration): When expanding the declaration for an
14167 object of a class-wide interface type, preserve the homonym chain of
14168 the original entity before exchanging it with that of the generated
14169 renaming declaration.
14170 (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
14171 active, because there is no way to handle the exception.
14172 (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
14173 to do a minimum decoration of the Access_Disp_Table list.
14174 (Expand_Record_Controller): Avoid the addition of the controller between
14175 the component containing the tag of a secondary dispatch table and its
14176 adjacent component that stores the offset to the base of the object.
14177 This latter component is only generated when the parent type has
14178 discriminants ---documented in Add_Interface_Tag_Components).
14179 (Apply_Array_Size_Check): Removed, no longer needed.
14180 (Expand_N_Full_Type_Declaration): If the type has anonymous access
14181 components, create a Master_Entity for it only if it contains tasks.
14182 (Build_Init_Procedure): Suppress the tag assignment compiling under
14184 (Freeze_Record_Type): Remove code associated with creation of dispatch
14186 (Init_Secondary_Tags): Update type of actuals when generating calls to
14187 Ada.Tags.Set_Offset_To_Top
14188 (Stream_Operation_OK): Disable use of streams compiling under no
14190 (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
14191 if Has_Init_Expression set.
14192 (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
14193 Register_Primitive, which provides the same functionality.
14194 (Requires_Init_Proc): Return false in case of interface types.
14195 (Add_Secondary_Tables): Use the new attribute Related_Interface to
14197 (Predefined_Primitive_Freeze): Do not assume that an internal entity
14198 is always associated with a predefined primitive because the internal
14199 entities associated with interface types are not predefined primitives.
14200 Therefore, the call to Is_Internal is replaced by a call to the
14201 function Is_Predefined_Dispatching_Operation.
14202 (Make_Eq_If): When generating the list of comparisons for the
14203 components of a given variant, omit the controller component that is
14204 present if the variant has controlled components.
14206 2007-06-06 Javier Miranda <miranda@adacore.com>
14207 Hristian Kirtchev <kirtchev@adacore.com>
14208 Bob Duff <duff@adacore.com>
14210 * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
14211 handle the creation of finalization lists and calls for nested
14212 coextensions when the root of the chains is part of a return statement.
14213 (Inside_A_Return_Statement): New function inside Complete_Coextension_
14215 (Expand_Record_Equality): Skip components that are interface types.
14216 (Displace_Allocator_Pointer): Add missing support for interface subtypes
14217 (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
14218 with Rewrite_Coextension. Change the condition for detecting coextension
14220 (Is_Local_Access_Discriminant): Removed.
14221 (Rewrite_Coextension): New routine which rewrites a static coextension
14222 as a temporary and uses its unrestricted access in the construction of
14224 (Complete_Coextension_Finalization): New routine. Generate finalization
14225 attachment calls to all delayed coextensions.
14226 (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
14227 the allocator is not a coextension itself and has delayed coextensions.
14228 If the current allocator is controlled, but also a coextension, delay
14229 the generation of the finalization attachment call.
14230 Rename local variable "Node" to "Nod" in order to avoid confusion with
14232 (Expand_Allocator_Expression): Call Adjust for initialized allocators of
14233 limited types that are not inherently limited. Such an allocator is
14234 illegal, but is generated by the expander for a return statement, to
14235 copy the result onto the secondary stack. This is the only case where a
14236 limited object can be copied. Generate code to displace the pointer
14237 to the object if the qualified expression is a class-wide interface
14238 object. Such displacement was missing and hence the copy of the object
14240 (Apply_Accessibility_Check): Handle allocated objects initialized in
14242 (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
14243 and Expand_Allocator_Expression. Allocating class-wide interface objects
14244 this routine displaces the pointer to the allocated object to reference
14245 the component referencing the corresponding secondary dispatch table.
14246 Expand_Allocator_Expression): Add missing support to allocate class-wide
14247 interface objects initialized with a qualified expression.
14248 (Get_Allocator_Final_List): Test for an anonymous access type that is a
14249 function result type, and use the finalization list associated with the
14250 function scope in that case (such an anonymous type should not be
14251 treated like an access parameter's type).
14253 2007-06-06 Ed Schonberg <schonberg@adacore.com>
14254 Gary Dismukes <dismukes@adacore.com>
14255 Javier Miranda <miranda@adacore.com>
14257 * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
14258 controlled type, use Make_Handler_For_Ctrl_Operation to construct the
14259 required exception handler.
14260 (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
14261 properly the case of a function whose return type is a limited
14262 class-wide interface type. Modify the code of the accessibility
14263 check to handle class-wide interface objects. In this case we need to
14264 displace "this" to reference the primary dispatch table to get access
14265 to the TSD of the object (to evaluate its accessibility level).
14266 (Expand_N_Extended_Return_Statement): Test for a tagged result type
14267 rather than a controlling result as one of the conditions for
14268 generating tests of the implicit BIP_Alloc_Form formal. The
14269 initialization assignment is also handled according to whether the
14270 result is tagged instead of controlling.
14271 In the case where the init assignment is inserted in the "then" part of
14272 the allocation conditional, rewrite the target to be a dereference of
14273 the implicit BIP_Object_Access formal.
14274 If the returned value is unconstrained and created on the secondary
14275 stack, mark the enclosing block and function so that the secondary
14276 stack is not reclaimed on return.
14277 Treat returns from functions with controlling results similarly to
14278 returns from functions with unconstrained result subtypes.
14279 If the object returned is unconstrained, and an allocator must be
14280 created for it, analyze the allocator once the block for the extended
14281 return is installed, to ensure that finalizable components
14282 of the expression use the proper finalization list. Guard the call to
14283 Move_Final_List with a check that there is something to finalize.
14284 (Make_Tag_Ctrl_Assignment): Use "old" handling
14285 of controlled type assignment for virtual machines, since new code uses
14286 unsupported features (such as direct access to bytes in memory).
14288 2007-06-06 Gary Dismukes <dismukes@adacore.com>
14289 Ed Schonberg <schonberg@adacore.com>
14291 * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
14292 accessibility actual, check for the case of an aliased object that has
14293 been rewritten as an Access attribute, and assign Prev to Prev_Orig so
14294 we fall into processing for the attribute rather than the name of the
14296 (Expand_Inline_Call): If an actual is a literal, and the corresponding
14297 formal has its address taken in the body, create a temporary to capture
14298 value. If the return type is a limited interface, do not treat the
14299 return value as Controlled.
14300 (Is_In_Place_Function): If the return type is a limited interface,
14301 treat as returning in place. The actual returned object may not always
14302 be limited, but the caller has to assume that it is returned in place.
14303 (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
14304 context of an allocator, use the correct finalization chain (that is,
14305 the chain belonging to the access type, rather than the chain belonging
14306 to the current scope).
14307 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
14308 result type rather than a controlling result as a precondition for
14309 adding an allocation form actual to a build-in-place call.
14310 (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
14311 (Freeze_Subprogram): Code cleanup. Remove all the code that register the
14312 primitive in the dispatch tables. This work is now done by Make_DT when
14313 the type is frozen.
14314 (Register_Predefined_DT_Entry): Removed.
14315 (Add_Return): If end label is not present, use sloc of last statement
14316 for generated return statement in procedure, for better gdb behavior
14318 (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
14319 object address nodes to ensure proper processing by routines like
14321 (Expand_Call): Fix generation of validity check for parameter
14322 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
14323 the allocation form parameter if the result subtype is constrained,
14324 except when the function has a controlling result.
14325 (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
14326 rather than Is_Controlled and Has_Controlled_Component, since we want to
14327 include class-wide result types in this treatment. Also test for a
14328 controlling result, since that also requires passing a finalization
14330 (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
14331 even when the result subtype is constrained, to handle calls involving
14332 controlling results.
14333 (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
14334 is now called even when the result subtype is constrained, to handle
14335 calls involving controlling results.
14336 (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
14337 on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
14338 now performs the test).
14339 (Make_Build_In_Place_Call_In_Object_Declaration):
14340 Add_Alloc_Form_Actual_* is now called even when the result subtype is
14341 constrained, to handle calls involving controlling results.
14342 (Add_Return): Accomodate rewritten pattern from local raise to goto
14343 transformation, so that we still recognize an transfer statement
14344 and do the right thing here in that case.
14345 (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
14346 and end of subprogram code.
14347 (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
14348 support for primitives that are functions (without formals) with a
14349 controlling result.
14350 (Inherited_From_Formal): If the actual subtype has not generic parent
14351 type, it is not an actual for a formal derived type, and there is no
14352 operation to inherit from the formal.
14354 2007-06-06 Ed Schonberg <schonberg@adacore.com>
14355 Thomas Quinot <quinot@adacore.com>
14357 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
14358 inserted cleanup code appropriately for GDB use.
14359 (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
14360 exception handler for Deep_Adjust or Deep_Finalize.
14361 (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
14362 Raise_From_Controlled_Operation is available, use a call to that
14363 subprogram instead of a plain "raise Program_Error" node to raise
14364 Program_Error if an exception is propagated from an Adjust or Finalize
14366 (Insert_Actions_In_Scope_Around): If the statement to be wrapped
14367 appears in the optional statement list of a triggering alternative, the
14368 scope actions can be inserted directly there, and not in the list that
14369 includes the asynchronous select itself.
14371 2007-06-06 Ed Schonberg <schonberg@adacore.com>
14372 Robert Dewar <dewar@adacore.com>
14373 Hristian Kirtchev <kirtchev@adacore.com>
14375 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
14376 generated exception handler appropriately when debugging generated code.
14377 Deal properly with No_Exception_Propagation restriction mode.
14378 (Expand_N_Abort_Statement): Add an unchecked type conversion from
14379 System.Address to System.Tasking.Task_Id when processing the result of
14380 the predefined primitive _disp_get_task_id.
14381 (Expand_N_Asynchronous_Select): Clarify comment.
14382 (Expand_N_Protected_Type_Declaration): Minor code cleanup.
14383 (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
14384 (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
14385 (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
14386 privals and for generated call to Complete_Entry_Body, for better gdb
14388 (Copy_Result_Type): Utility to construct a parameter and result profile
14389 for protected functions whose return type is an anonymous access to
14391 (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
14393 (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
14394 point when the local-raise-to-goto transformation has taken place.
14396 2007-06-06 Javier Miranda <miranda@adacore.com>
14397 Nicolas Setton <setton@adacore.com>
14399 * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
14400 functionality when the backend is generating code.
14401 Otherwise any serious error
14402 reported by the backend calling the frontend routine Error_Msg
14403 changes the Compilation_Mode to Check_Semantics, disables the
14404 functionality of this routine and causes the generation of
14405 spureous additional errors.
14407 * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
14408 debugging information now generated by the compiler for fat-pointer
14410 Document the contents of DW_AT_producer in the GNAT Vendor extensions to
14412 Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
14414 2007-06-06 Thomas Quinot <quinot@adacore.com>
14416 * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
14417 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
14418 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
14419 For a remote call to a function with a classwide return type, apply an
14420 E.4(18) check to the returned value.
14421 (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
14422 stream attributes of the designated type of an RACW, as they are not
14423 dispatching primitive operations.
14425 2007-06-06 Geert Bosch <bosch@adacore.com>
14427 * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
14429 (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
14431 (Do_Divide_Fixed_Universal): Handle case of negative Frac.
14432 (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
14434 (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
14436 2007-06-06 Javier Miranda <miranda@adacore.com>
14438 * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
14439 attribute compiling package Ada.Tags under No_Run_Time_Mode.
14441 2007-06-06 Javier Miranda <miranda@adacore.com>
14443 * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
14444 deallocation of class-wide interface objects.
14445 (Expand_Dispatching_Constructor_Call): Take into account that if the
14446 result of the dispatching constructor is an interface type, the
14447 function returns a class-wide interface type; otherwise the returned
14448 object would be actual. The frontend previously accepted returning
14449 interface types because Expand_Interface_Actuals silently performed
14450 the management of the returned type "as if" it were a class-wide
14452 (Expand_Dispatching_Constructor_Call): Replace call to
14453 Make_DT_Access_Action by direct call to Make_Function_Call.
14455 2007-06-06 Robert Dewar <dewar@adacore.com>
14456 Ed Schonberg <schonberg@adacore.com>
14458 * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
14459 compute masking constant, since we now set Esize properly to the
14461 (Create_Packed_Array_Type): Set proper Esize value adjusted as required
14462 to match the alignment.
14463 (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
14464 packed arrays of 8 bits or less.
14466 * freeze.adb (Freeze_Entity): When freezing the formals of a
14467 subprogram, freeze the designated type of a parameter of an access type
14468 only if it is an access parameter.
14469 Increase size of C convention enumeration object
14470 (Freeze_Entity, array type case): Make sure Esize value is properly
14471 adjusted for the alignment if it is known.
14472 (Freeze_Entity, array type case): When checking bit packed arrays for
14473 the size being incorrect, check RM_Size, not Esize.
14474 (Freeze_Record_Type): Check for bad discriminated record convention
14475 (In_Exp_Body): Return true if the body is generated for a subprogram
14476 renaming, either an attribute renaming or a renaming as body.
14477 (Check_Itype): If the designated type of an anonymous access component
14478 is a non-protected subprogram type, indicate that it is frozen, to
14479 prevent out-of-scope freeze node at some subsequent call.
14480 (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
14481 only if the subprogram is neither imported nor exported, as well as the
14482 NCA descriptor class if the subprogram is exported.
14484 2007-06-06 Ed Schonberg <schonberg@adacore.com>
14485 Arnaud Charlet <charlet@adacore.com>
14486 Robert Dewar <dewar@adacore.com>
14487 Gary Dismukes <dismukes@adacore.com>
14489 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
14490 default initialization on an imported object, when there is no
14491 initialization call generated for it.
14492 (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
14495 * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
14496 Static_Elaboration_Desired.
14497 Remove pragma Thread_Body.
14498 Implement a new pragma No_Body
14499 Removes the Explicit_Overriding pragma
14500 Remove Optional_Overriding pragma
14501 (Prag): Deal with Universal_Aliasing.
14502 (Name_CIL, Name_CIL_Constructor, Convention_CIL,
14503 Pragma_CIL_Constructor): New names.
14505 * sem_cat.adb (Validate_Object_Declaration): An initialization that
14506 uses the equivalent aggregate of a type must be treated as an implicit
14508 (Get_Categorization): Check a unit for pragma Preelaborate only if it
14509 has none of the other categories.
14510 (Process_Import_Or_Interface_Pragma): Report an error for an attempt
14511 to apply Import to an object renaming declaration.
14513 * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
14514 from a C++ class should be declared as limited and that it will be
14515 considererd limited.
14516 (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
14517 should be declared as limited and that it will be considererd limited.
14518 (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
14519 (Analyze_Pragma, case Export): Diagnose export of enumeration literal
14520 (Analyze_Pragma): Deal with Universal_Aliasing.
14521 (Sig_Flags): Likewise.
14522 (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
14523 (Overflow_Checks_Unsuppressed): New flag.
14524 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
14525 (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
14526 case of JVM or .NET targets, and compiling user code.
14527 Add debugging convenience routine rv
14529 2007-06-06 Robert Dewar <dewar@adacore.com>
14531 * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
14532 are interface type.
14533 (Build_Elementary_Input_Call): For floating-point use right type in the
14534 absence of strange size or stream size clauses.
14535 (Build_Elementary_Write_Call): Same fix
14536 (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
14537 set to value that does not match base type size.
14539 2007-06-06 Ed Schonberg <schonberg@adacore.com>
14541 * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
14542 object of a limited type can be initialized with a call to a function
14543 that returns in place. If the limited type has unknown discriminants,
14544 and the underlying type is a constrained composite type, build an actual
14545 subtype from the function call, as is done for private types.
14546 (Side_Effect_Free): An expression that is the renaming of an object or
14547 whose prefix is the renaming of a object, is not side-effect free
14548 because it may be assigned through the renaming and its value must be
14549 captured in a temporary.
14550 (Has_Controlled_Coextensions): New routine.
14551 (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
14552 as is done for other limited types.
14553 (Non_Limited_Designated_Type): new predicate.
14554 (Make_CW_Equivalent_Type): Modified to handle class-wide interface
14556 Remove all handling of with_type clauses.
14558 * par-ch10.adb: Remove all handling of with_type clauses.
14560 * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
14561 checksum if the main source could not be parsed.
14562 (Loat_Unit): When processing a child unit, determine properly whether
14563 the parent unit is a renaming when the parent is itself a child unit.
14564 Remove handling of with_type clauses.
14566 * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
14567 (Set_Is_Static_Coextension): New procedure.
14568 (Has_Local_Raise): New function
14569 (Set_Has_Local_Raise): New procedure
14570 (Renaming_Exception): New field
14571 (Has_Init_Expression): New flag
14572 (Delay_Finalize_Attach): Remove because flag is obsolete.
14573 (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
14574 Remove all handling of with_type clauses.
14575 (Exception_Junk): Can now be set in N_Block_Statement
14577 2007-06-06 Vincent Celier <celier@adacore.com>
14578 Robert Dewar <dewar@adacore.com>
14580 * frontend.adb (Frontend): Return immediately if the main source could
14581 not be parsed, because of preprocessing errors.
14583 * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
14584 (Gnat1drv): Exit with errors if the main source could not be parsed,
14585 because of preprocessing errors.
14586 (Check_Rep_Info): New procedure
14588 2007-06-06 Robert Dewar <dewar@adacore.com>
14590 * g-hesorg.ads, g-heasor.ads,
14591 g-busorg.ads, g-bubsor.ads: Update documentation
14592 GNAT.Heap/Bubble_Sort_G is now pure
14594 2007-06-06 Robert Dewar <dewar@adacore.com>
14596 * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
14598 2007-06-06 Robert Dewar <dewar@adacore.com>
14599 Ed Schonberg <schonberg@adacore.com>
14601 * g-comlin.ads, g-comlin.adb:
14602 Add new warning for renaming of function return objects
14604 * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
14605 (Tree_Read): Use size of object instead of type'object_size, since the
14606 latter is incorrect for packed array types.
14607 (Tree_Write): Same fix
14609 * opt.ads: Add new warning for renaming of function return objects
14610 (Generating_Code): New boolean variable used to indicate that the
14611 frontend as finished its work and has called the backend to process
14612 the tree and generate the object file.
14613 (GCC_Version): Is now private
14614 (Static_Dispatch_Tables): New constant declaration.
14615 (Overflow_Checks_Unsuppressed): New flag.
14616 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
14617 (List_Closure): New flag for gnatbind (-R)
14618 Zero_Formatting: New flag for gnatbind (-Z)
14619 (Special_Exception_Package_Used): New flag.
14620 (Warn_On_Unrepped_Components): New flag.
14622 * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
14623 unit is a compilation unit, rather than relying on its scope, so that
14624 Standard can be renamed.
14625 (Analyze_Object_Renaming): Add new warning for renaming of function
14627 Also reject attempt to rename function return object in Ada 83 mode.
14628 (Attribute_Renaming): In case of tagged types, add the body of the
14629 generated function to the freezing actions of the type.
14630 (Find_Type): A protected type is visible right after the reserved word
14631 "is" is encountered in its type declaration. Set the entity and type
14632 rather than emitting an error message.
14633 (New_Scope): Properly propagate Discard_Names to inner scopes
14634 (Check_Nested_Access): New procedure.
14635 (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
14636 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
14638 * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
14639 Add new warning for renaming of function return objects
14640 (Check_References): Suppress warnings for objects whose type or
14641 base type has Warnings suppressed.
14642 (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
14643 (Set_Warning_Switch): Include new -gnatwc in -gnatwa
14645 2007-06-06 Vincent Celier <celier@adacore.com>
14646 Emmanuel Briot <briot@adacore.com>
14647 Olivier Hainque <hainque@adacore.com>
14649 * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
14650 absolute value of Header.Block_Size when displaying the freed physical
14652 (Allocate): Compute Storage_Address using Integer_Address, not
14653 Storage_Offset, because the range of Storage_Offset may not be large
14655 (Configure): New parameter Low_Level_Traces
14656 (Allocate, Deallocation, Free_Physically): Added low-level traces
14657 (Configure): new parameter Errors_To_Stdout.
14658 (Output_File): new subprogram
14659 (Deallocate, Dereference): Send error messages to the proper stream
14660 (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
14661 documented. Previous code would send it to the current output file
14662 defined in GNAT.IO, which might not be stdout
14663 (Is_Valid): Adjust comment to mention that a positive reply means that
14664 Header_Of may be used to retrieve the allocation header associated with
14665 the subprogram Storage address argument. Return False early if this
14666 address argument is misaligned.
14668 2007-06-06 Vincent Celier <celier@adacore.com>
14670 * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
14672 (ASIS_Main): New global variable
14673 (Get_Closure): New procedure
14674 (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
14675 check, metric or pretty. Call Get_Closure in this case.
14676 (Check_Files): For GNAT LIST, check all sources of all projects when
14677 All_Projects is True.
14678 (GNATCmd): Accept -U for GNAT LIST
14680 2007-06-06 Vincent Celier <celier@adacore.com>
14682 * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
14684 Correct error message when invocation of the linker fails
14685 Add explicit size clause for the C imported variables
14686 Object_List_File_Supported and Using_GNU_Linker to emphasize that
14687 we expect char size.
14688 Read target parameters earlier, since this is needed to set
14689 Target_VM properly. Also do not use -static/shared-libgcc for non GCC
14692 2007-06-06 Vincent Celier <celier@adacore.com>
14695 Add 3 spaces before the default project directory when displaying
14696 the project search path.
14697 Add new command line switch '-l' to display license information.
14699 2007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
14701 * gmem.c: Add support for timestamps on memory operations.
14703 * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
14704 operations (not used currently, just foundation for future
14705 enhancements). Add possibility to perform full dump of gmem.out file.
14706 (Print_Back_Traces): Declare accesses to root arrays constants since
14707 they aren't modified.
14708 (Print_Back_Traces): allocate root arrays on the heap rather than stack.
14710 2007-06-06 Vincent Celier <celier@adacore.com>
14712 * gnatsym.adb: Update Copyright notice
14713 (Parse_Cmd_Line): Accept new switch -D
14714 (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
14717 * prj.ads (Policy): New policy Direct
14718 (Yes_No_Unknown): New enumeration type
14719 (Project_Data): New component Libgnarl_Needed
14721 * prj-nmsc.adb (Check_For_Source): When recording a source file make
14722 use the untouched pathname casing.
14723 (Get_Directories): Ensure that the Display_Exec_Directory is using the
14724 proper casing on non case-sensitive platforms like Windows.
14725 (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
14726 on all platforms, as it is not possible to know which one is allowed
14727 before processing the project files.
14728 (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
14729 specified when symbol policy is Direct. Check that when there is a
14730 symbol file defined (either by default or with attribute
14731 Library_Symbol_File) it is not the same as the reference symbol file.
14732 (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
14733 (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
14734 extending projects.
14735 (Record_Ada_Source): Record a source that has been locally removed in an
14738 * symbols.ads (Policy): New policy Direct
14740 * symbols-vms.adb (Initialize): Take new policy Direct in case
14743 2007-06-06 Vincent Celier <celier@adacore.com>
14745 * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
14746 Correct obvious bug (return Dir; instead of return Directory;).
14747 (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
14749 2007-06-06 Thomas Quinot <quinot@adacore.com>
14751 * g-pehage.adb (Produce): Open output files in Binary mode, so that
14752 they have UNIX line endings (LF only) even on Windows, and thus pass
14753 all GNAT style checks.
14755 2007-06-06 Emmanuel Briot <briot@adacore.com>
14757 * g-regpat.adb (Quote): Fix improper quoting of '.'
14759 2007-06-06 Thomas Quinot <quinot@adacore.com>
14761 * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
14762 default, set False on a per-runtime basis.
14763 (Need_Netdb_Buffer): New constant.
14765 * g-socket.ads, g-socket.adb: Import new package
14766 GNAT.Sockets.Thin.Task_Safe_NetDB.
14767 (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
14768 binding to obtain proper message.
14769 (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
14770 Replace various occurrences of Arry (Arry'First)'Address with the
14771 equivalent Arry'Address (GNAT always follows implementation advice from
14773 (Get_Host_By_Address, Get_Host_By_Name,
14774 Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
14775 instead, rely on platform-specific task safe netdb operations provided
14778 * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
14779 parameter Process_Blocking_IO.
14780 (Host_Error_Messages): Add stub body.
14781 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
14782 (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
14783 Safe_Getservbyport): Move functions into new child package
14785 (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
14786 Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
14787 (In_Addr): Add alignment clause.
14789 2007-06-06 Robert Dewar <dewar@adacore.com>
14791 * g-trasym.ads, g-traceb.ads: Update list of supported targets
14792 Add note about symbolic traceback
14794 2007-06-06 Pascal Obry <obry@adacore.com>
14796 * hostparm.ads (Normalized_CWD): Use the host directory separator
14797 instead of the hardcoded forward slash which is not the proper
14798 character on Windows for example.
14799 (Java_VM): Removed.
14801 2007-06-06 Vincent Celier <celier@adacore.com>
14802 Arnaud Charlet <charlet@adacore.com>
14804 * a-clrefi.adb, a-clrefi.ads: New files
14806 * impunit.adb: Add s-os_lib in the list of user visible units.
14807 (Non_Imp_File_Names_95): Add a-clrefi to this list
14808 Remove obsolete run-time entries.
14809 (Non_Imp_File_Names_05): Add Ada 2005 entries for:
14810 "a-exetim" -- Ada.Execution_Time
14811 "a-extiti" -- Ada.Execution_Time.Timers
14813 * mlib-prj.ads, mlib-prj.adb
14814 (Build_Library): Use untouched object dir and library dir. At the
14815 same time makes sure that the checks are done using the canonical
14816 form. Removes hard-coded directory separator and use the proper host
14818 (Process_Project): Do not look in object directory to check if libgnarl
14819 is needed for a library, if there is no object directory.
14820 (Build_Library): Scan the ALI files to decide if libgnarl is needed for
14822 (Build_Library): When invoking gnatbind, use a response file if the
14823 total size of the arguments is too large.
14825 * Makefile.rtl: (g-sttsne): New object file.
14826 Add entry for a-clrefi, s-utf_32, System.Exceptions
14828 * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
14829 (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
14830 (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
14831 Change g-string to s-string, g-os_lib to s-os_lib
14832 Change all g-utf_32 references to s-utf_32
14834 2007-06-06 Tristan Gingold <gingold@adacore.com>
14835 Olivier Hainque <hainque@adacore.com>
14837 * init.c: Do not adjust IP of an imported VMS exception of ia64.
14838 LIB$STOP is called to raise an exception and the IP of the exception
14839 is the instruction right after the call.
14840 (__gnat_adjust_context_for_raise, AIX): Implement.
14841 (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
14842 adjust_context_for_raise before Raise_From_Signal_Hanler.
14843 (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
14844 siginfo is passed to the handler, necessary to let the zcx propagation
14845 engine unwind past it.
14847 2007-06-06 Olivier Hainque <hainque@adacore.com>
14849 * initialize.c (__gnat_initialize for vxworks): Update documentation
14850 on the ZCX support, using different sets of crtstuff objects than with
14853 2007-06-06 Robert Dewar <dewar@adacore.com>
14855 * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
14857 (Layout_Type): Fix recomputation of size from alignment.
14859 2007-06-06 Ed Schonberg <schonberg@adacore.com>
14860 Javier Miranda <miranda@adacore.com>
14862 * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
14863 association in an instance.
14864 (Copy_Generic_Node): If the node is a string literal, no need to copy
14866 (Is_Generic_Formal): For a formal subprogram, the declaration is the
14867 grandparent of the entity.
14868 (Analyze_Formal_Interface_Type): Transform into a full type declaration,
14869 to simplify handling of formal interfaces that derive from other formal
14871 (Instantiate_Subprogram_Body): The defining unit name of the body of
14872 the instance should be a defining identifier.
14873 (Install_Formal_Packages): make global to the package, for use in
14874 instantiations of child units.
14875 (Analyze_Package_Instantiation): Do not attempt to set information on an
14876 enclosing master of an entry when expansion is disabled.
14877 (Instantiate_Type): If the actual is a tagged synchronized type and the
14878 generic ancestor is an interface, create a generic actual for the
14879 corresponding record.
14880 (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
14881 declaration, to ensure that the interface list is processed correctly.
14882 (Inline_Instance_Body): If enclosing scope is an instance body, remove
14883 its entities from visibiility as well.
14884 (Pre_Analyze_Actuals): if the actual is an allocator with constraints
14885 given with a named association, analyze the expression only, not the
14886 discriminant association itself.
14887 (Reset_Entity): If the analysis of a selected component is transformed
14888 into an expanded name in the prefix of a call with parameters, do not
14889 transform the original node into an expanded name, to prevent visibility
14890 errors in the case of nested generics.
14891 (Check_Private_View): For an array type, check whether the index types
14892 may need exchanging.
14894 2007-06-06 Arnaud Charlet <charlet@adacore.com>
14895 Vincent Celier <celier@adacore.com>
14897 * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
14898 since both are separated.
14899 Add support for imported CIL packages.
14900 Add further special handling of "value_type" for CIL.
14901 Add special handling of pragma Import for CIL.
14903 * make.ads, make.adb: When switch -eS is used, direct all outputs to
14904 standard output instead of standard error, except errors.
14905 (Absolute_Path): Use untouched casing for the parent directory.
14906 (Add_Library_Search_Dir): Use the untouched directory name.
14907 (Add_Source_Search_Dir): Idem.
14908 (Change_To_Object_Directory): Update output to use proper casing.
14909 (Create_Binder_Mapping_File): Use the untouched filename to set
14911 (Gnatmake): Use untouched library and executable directory names.
14912 (Insert_Project_Sources): Use untouched filename for spec and body.
14913 (Is_In_Object_Directory): Use untouched object directory.
14914 (Mark_Directory): Idem.
14915 (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
14916 contains the non-canonical filename in all cases.
14917 (Change_To_Object_Directory): In verbose mode, display the name of the
14918 object directory we're changing to.
14919 (Compile_Sources): Make sure, when a project file is used, to compile
14920 the body of the unit, when there is one, even when only the spec is
14921 recorded in an ALI file.
14922 (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
14924 (Report_Compilation_Failed): New procedure
14925 (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
14926 procedures moved from the spec to the body.
14927 (Extract_Failure): Removed, not used
14928 Replace explicit raises of exception Bind_Failed and Link_Failed with
14929 calls to Make_Failed with the proper message.
14930 Replace explicit raises of exception Compilation_Failed with calls to
14931 procedure Report_Compilation_Failed.
14932 (Initialize): Create mapping files unconditionally when using project
14935 * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
14936 Pragma_CIL_Constructor): New names.
14938 * targparm.ads, targparm.adb
14939 (Compiler_System_Version): Removed, no longer used.
14940 (Get_Target_Parameters): Relax checks on system.ads validity. Add
14941 handling of two new system flags: JVM and CLI.
14943 2007-06-06 Jose Ruiz <ruiz@adacore.com>
14944 Arnaud Charlet <charlet@adacore.com>
14946 * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
14947 time, use the default s-interr body that provides interrupt support
14949 (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
14950 a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
14951 g-soccon.ads, and s-taprop.adb for the marte run time.
14952 (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
14953 timers are supported on marte.
14954 (EH_MECHANISM for marte): Do not use ZCX.
14955 (THREADSLIB for marte): Use -lmarte.
14956 Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
14957 Add mlib-tgt-specific.o to gnatmake objects
14958 mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
14959 longer of MLib.Tgt.
14960 (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
14961 6, either kernel or rtp, use a specialized version of s-osinte.ads.
14963 2007-06-06 Pascal Obry <obry@adacore.com>
14965 * mkdir.c (__gnat_mkdir): Add support for UTF-8.
14967 2007-06-06 Vincent Celier <celier@adacore.com>
14969 * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
14970 separator, use instead the proper host directory separator.
14971 (Copy_ALI_Files): Make sure that an already existing ALI file in the
14972 ALI copy dir is writable, before doing the copy.
14974 * mlib-utl.ads, mlib-utl.adb:
14975 (Gcc): If length of command line is too long, put the list of object
14976 files in a response file, if this is supported by the platform.
14977 (Ar): If invocation of the archive builder is allowed to be done in
14978 chunks and building it in one shot would go above an OS dependent
14979 limit on the number of characters on the command line, build the archive
14982 2007-06-06 Vincent Celier <celier@adacore.com>
14984 * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
14985 of specified object file is not equal to base name of source.
14987 2007-06-06 Javier Miranda <miranda@adacore.com>
14988 Hristian Kirtchev <kirtchev@adacore.com>
14989 Ed Schonberg <schonberg@adacore.com>
14991 * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
14992 the full type declaration.
14993 (Analyze_Component_Declaration): Add local variable E to capture the
14994 initialization expression of the declaration. Replace the occurences of
14995 Expression (N) with E.
14996 (OK_For_Limited_Init_In_05): Allow initialization of class-wide
14997 limited interface object with a function call.
14998 (Array_Type_Declaration): If the declaration lacks subtype marks for
14999 indices, create a simple index list to prevent cascaded errors.
15000 (Is_Null_Extension): Ignore internal components created for secondary
15001 tags when checking whether a record extension is a null extension.
15002 (Check_Abstract_Interfaces): Add missing support for interface subtypes
15003 and generic formals.
15004 (Derived_Type_Declaration): Add missing support for interface subtypes
15005 and generic formals.
15006 (Analyze_Object_Declaration): If an initialization expression is
15007 present, traverse its subtree and mark all allocators as static
15009 (Add_Interface_Tag_Component): When looking for components that may be
15010 secondary tags, ignore pragmas that can appear within a record
15012 (Check_Abstract_Overriding): an inherited function that dispatches on
15013 result does not need to be overriden if the controlling type is a null
15015 (Mentions_T): Handle properly a 'class attribute in an anonymous access
15016 component declaration, when the prefix is an expanded name.
15017 (Inherit_Component): If the derivation is for a private extension,
15018 inherited components remain visible and their ekind should not be set
15020 (Find_Type_Of_Object): In the case of an access definition, always set
15021 Is_Local_Anonymous_Access. We were previously not marking the anonymous
15022 access type of a return object as a local anonymous type.
15023 (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
15024 range with character literal bounds.
15025 (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
15026 (Access_Subprogram_Declaration): Indicate that the type declaration
15027 depends on an incomplete type only if the incomplete type is declared
15029 (Analyze_Subtype_Declaration): Handle properly subtypes of
15030 synchronized types that are tagged, and that may appear as generic
15032 (Access_Subprogram_Declaration): An anonymous access to subprogram can
15033 appear as an access discriminant in a private type declaration.
15034 (Add_Interface_Tag_Components): Complete decoration of the component
15035 containing the tag of a secondary dispatch table and the component
15036 containing the offset to the base of the object (this latter component
15037 is only generated when the parent type has discriminants --as documented
15039 (Inherit_Components): Use the new decoration of the tag components to
15040 improve the condition that avoids inheriting the components associated
15041 with secondary tags of the parent.
15042 (Build_Discriminanted_Subtype): Indicate to the backend that the
15043 size of record types associated with dispatch tables is known at
15045 (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
15046 (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
15047 to include task, protected, and synchronized interfaces as limited
15049 (Process_Discriminants): Remove the setting of
15050 Is_Local_Anonymous_Access on the type of (anonymous) access
15051 discriminants of nonlimited types.
15052 (Analyze_Interface_Type_Declaration): Complete the decoration of the
15053 class-wide entity it is is already present. This situation occurs if
15054 the limited-view has been previously built.
15055 (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
15057 (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
15060 2007-06-06 Ed Schonberg <schonberg@adacore.com>
15062 * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
15063 of the type that specify the position of interface tags when the type
15064 inherits discriminated array components from the parent type.
15065 If a component is initialized with a box, check for the presence of a
15066 default expression in its declaration before using its default
15067 initialization procedure.
15068 (Resolve_Record_Aggregate): If a component is box-initialized, and the
15069 component type has a discriminants, create a partial aggregate for it
15070 by copying the discriminants of the component subtype.
15071 Reject attempt to initialize a discriminant with a box.
15072 (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
15073 associated with dispatch tables is known at compile time.
15074 (Get_Value): If an association in a record aggregate has a box
15075 association, and the corresponding record component has a default
15076 expression, always copy the default expression, even when the
15077 association has a single choice, in order to create a proper
15078 association for the expanded aggregate.
15080 2007-06-06 Ed Schonberg <schonberg@adacore.com>
15081 Robert Dewar <dewar@adacore.com>
15083 * par-ch12.adb (P_Generic_Associations): The source position of an
15084 Others association is that of the others keyword, not that of the token
15085 that follows the box.
15086 (P_Formal_Type_Definition): Handle formal access types that carry a
15087 not null indicator.
15089 * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
15090 multiple identifier are present, save Scan_State before scanning the
15091 colon, to ensure that separate trees are constructed for each
15093 (P_Identifier_Declarations): For object declaration, set new flag
15094 Has_Init_Expression if initialization expression present.
15095 (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
15096 Improve NOT NULL error messages
15098 2007-06-06 Robert Dewar <dewar@adacore.com>
15100 * par-ch4.adb: (P_Name): Recover from literal used as name
15102 2007-06-06 Vincent Celier <celier@adacore.com>
15104 * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
15105 defaulted to False.
15106 In the "not" case, recursive call with Complemented set to True.
15107 Do not allow "or" or "and" operators when Complemented is True.
15109 2007-06-06 Vincent Celier <celier@adacore.com>
15111 * prj.adb (Project_Empty): Gives default value for new component
15114 * prj-attr.ads: Minor reformatting
15116 * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
15117 directory using the untouched casing.
15118 (For_All_Source_Dirs): Idem.
15120 * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
15121 directories specified with switches -aP.
15122 (Add_Search_Project_Directory): New procedure
15123 (Initialize_Project_Path): Put the directories in table
15124 Search_Directories in the project search path.
15125 (Initialize_Project_Path): For VMS, transform into canonical form the
15128 2007-06-06 Arnaud Charlet <charlet@adacore.com>
15130 * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
15131 true if configurable run-time or No_Run_Time is set.
15132 (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
15133 processing an unit which is not the one being compiled.
15135 2007-06-06 Arnaud Charlet <charlet@adacore.com>
15137 * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
15138 Replace UC by Ada.UC
15140 * s-bitops.adb: Get rid of System.Pure_Exceptions.
15141 Replace UC by Ada.UC
15143 2007-06-06 Robert Dewar <dewar@adacore.com>
15145 * scng.adb: (Check_End_Of_Line): Deal with very long lines
15147 2007-06-06 Robert Dewar <dewar@adacore.com>
15149 * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
15150 Remove no longer used nodes.
15152 2007-06-06 Javier Miranda <miranda@adacore.com>
15153 Ed Schonberg <schonberg@adacore.com>
15154 Robert Dewar <dewar@adacore.com>
15156 * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
15157 on obsolescent withed unit in case of limited-withed units.
15158 (Analyze_Compilation_Unit): Add guard to code that removed an
15159 instantiation from visibility, to prevent compiler aborts when
15160 instantiation is abandoned early on.
15161 (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
15162 current unit being analyzed, and Distinguish local incomplete types
15163 from limited views of types declared elsewhere.
15164 (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
15165 to state that the class-wide entity is shared by the limited-view
15167 (Analyze_With_Clause): Improve placement of flag for case of
15168 unimplemented unit.
15169 (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
15170 manner similar to GNAT.Current_Exception. This is a violation of
15171 restriction (No_Exception_Propagation), and also inhibits the
15172 optimization of local raise to goto.
15173 (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
15174 and if so set Most_Recent_Exception_Used flag in Opt, and also check
15175 for violation of restriction No_Exception_Propagation.
15177 2007-06-06 Javier Miranda <miranda@adacore.com>
15178 Hristian Kirtchev <kirtchev@adacore.com>
15179 Gary Dismukes <dismukes@adacore.com>
15181 * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
15182 use of entity Exception_Occurrence if it is not available in the
15185 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
15186 concurrent types are declared within an Ada 2005 generic, build their
15187 corresponding record types since they are needed for overriding-related
15189 (Analyze_Protected_Type): Rearrange and simplify code for testing that a
15190 protected type does not implement a task interface or a nonlimited
15192 (Analyze_Task_Type): Rearrange and simplify code for testing that a task
15193 type does not implement a protected interface or a nonlimited interface.
15194 (Single_Task_Declaration, Single_Protected_Declaration): use original
15195 entity for variable declaration, to ensure that debugging information
15196 is correcty generated.
15197 (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
15198 routines if the expander is not active.
15199 (Analyze_Task_Body): Mark all handlers to stop optimization of local
15200 raise, since special things happen for task exception handlers.
15202 * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
15203 concurrent types declared within a generic.
15204 (Check_Dispatching_Operation): Do not emit warning about late interface
15205 operations in the context of an instance.
15206 (Check_Dispatching_Call): Remove restriction against calling a
15207 dispatching operation with a limited controlling result.
15208 (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
15209 Register_Interface_DT_Entry by calls to Register_Primitive.
15210 (Check_Dispatching_Formals): Handle properly a function with a
15211 controlling access result.
15213 2007-06-06 Robert Dewar <dewar@adacore.com>
15214 Arnaud Charlet <charlet@adacore.com>
15216 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
15217 Check for restriction No_Implementation_Attributes if in Ada 95 mode.
15218 (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
15219 (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
15220 message when using a VM, since this attribute is not supported.
15221 (Analyze_Record_Representation_Clause): Give unrepped component warnings
15223 * usage.adb: Add new warning for renaming of function return objects
15224 Indicate that -gnatwp and -gnatwP concern front-end inlining
15225 Add line for -gnatyg
15226 Add usage information for -gnatw.c/C
15228 2007-06-06 Robert Dewar <dewar@adacore.com>
15229 Ed Schonberg <schonberg@adacore.com>
15232 (Find_Var): Do not consider function call in test for infinite loop
15233 warning if warnings set off for function entity.
15234 (One_Bound): Do not create a temporary for a loop bound if it is a
15236 (Analyze_Assignment): Traverse the right hand side of an assignment and
15237 mark all allocators as static coextensions.
15238 (Analyze_Assignment): Exempt assignments involving a dispatching call
15239 to a function with a controlling access result from the check requiring
15240 the target to be class-wide.
15242 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
15243 Ed Schonberg <schonberg@adacore.com>
15244 Robert Dewar <dewar@adacore.com>
15245 Javier Miranda <miranda@adacore.com>
15247 * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
15248 chain of coextensions when an allocator serves as the root of such a
15250 (Propagate_Coextensions): Remove the test for the root being an
15252 (Resolve_Allocator): Add condition to ensure that all future decoration
15253 occurs on an allocator node. Add processing and cleanup for static
15255 (Valid_Conversion): If the operand type is the limited view of a
15256 class-wide type, use the non-limited view is available to determine
15257 legality of operation.
15258 (Ambiguous_Character): move to spec, for use elsewhere.
15259 (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
15260 (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
15261 character literals.
15262 (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
15263 Do_Division_Check flag explicitly.
15264 (Resolve_Actuals): If the actual is of a synchronized type, and the
15265 formal is of the corresponding record type, this is a call to a
15266 primitive operation of the type, that is declared outside of the type;
15267 the actual must be unchecked-converted to the type of the actual
15268 (Resolve_Call): Kill all current values for any subprogram call if
15269 flag Suppress_Value_Tracking_On_Call is set.
15270 (Resolve_Type_Conversion): Generate error message the the operand
15271 or target of interface conversions come from a limited view.
15272 (Check_Infinite_Recursion): Ignore generated calls
15273 (Check_Allocator_Discrim_Accessibility): New procedure for checking
15274 that an expression that constrains an access discriminant in an
15275 allocator does not denote an object with a deeper level than the
15276 allocator's access type.
15277 (Resolve_Allocator): In the case of an allocator initialized by an
15278 aggregate of a discriminated type, check that associations for any
15279 access discriminants satisfy accessibility requirements by calling
15280 Check_Allocator_Discrim_Accessibility.
15281 (Resolve_Equality_Op): Handle comparisons of anonymous access to
15282 subprogram types in the same fashion as other anonymous access types.
15283 (Resolve_Concatenation_Arg): Remove initial character '\' in an error
15284 message that is not a continuation message.
15285 (Resolve_Type_Conversion): Add missing support for conversion to
15287 (Resolve_Actuals): Introduce a transient scope around the call if an
15288 actual is a call to a function returning a limited type, because the
15289 resulting value must be finalized after the call.
15290 (Resolve_Actuals): If the call was given in prefix notations, check
15291 whether an implicit 'Access reference or implicit dereference must be
15292 added to make the actual conform to the controlling formal.
15294 2007-06-06 Robert Dewar <dewar@adacore.com>
15295 Javier Miranda <miranda@adacore.com>
15297 * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
15298 (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
15299 overriding of an inherited private subprogram now there is no need to
15300 inherit its dispatching slot and reduce the size of the dispatch table.
15301 Set_All_DT_Position now ensures that the same slot is now assigned to
15302 both entities. This is required to statically build the dispatch table.
15303 (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
15304 of calling Set_All_DT_Position to re-evaluate the position of the
15305 entries in the dispatch table. Such reevaluation is not desired if
15306 the tagged type is already frozen.
15308 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
15309 Gary Dismukes <dismukes@adacore.com>
15310 Robert Dewar <dewar@adacore.com>
15311 Javier Miranda <miranda@adacore.com>
15313 * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
15314 reference acts as an lvalue when the attribute name modifies the prefix
15315 (Is_Coextension_Root): New routine.
15316 (Mark_Static_Coextensions): New routine.
15317 (Type_Access_Level): Revise code for checking the level of the
15318 anonymous access type of a return object.
15319 (Safe_To_Capture_Value): Not safe to capture if Address_Taken
15320 (Matches_Prefixed_View_Profile): Remove the no longer necessary
15321 retrieval of the corresponding controlling record type.
15322 (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
15323 concurrent types declared within a generic as well as class wide types.
15324 Emit a mode incompatibility error whenever a protected entry or routine
15325 override an interface routine whose first parameter is not of mode
15326 "out", "in out" or access to variable.
15327 (Overrides_Synchronized_Primitive): Rename to
15328 Find_Overridden_Synchronized_Primitive.
15329 (Collect_Interface_Components): New subprogram that collects all the
15330 components of a tagged record containing tags of secondary dispatch
15332 (Add_Global_Declaration): New procedure
15333 (Abstract_Interface_List): Handle properly the case of a subtype of a
15335 (Type_Access_Level): In the case of a type whose parent scope is a
15336 return statement, call Type_Access_Level recursively on the enclosing
15337 function's result type to determine the level of the return object's
15339 (Build_Elaboration_Entity): Build name of elaboration entity from the
15340 scope chain of the entity, rather than the unit name of the file name.
15341 (Check_Nested_Access): New procedure.
15342 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
15343 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
15344 (Get_Renamed_Entity): Utility routine for performing common operation
15345 of chasing the Renamed_Entity field of an entity.
15347 2007-06-06 Robert Dewar <dewar@adacore.com>
15349 * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
15351 (Check_A_Call): Add check for entry call which was causing blowup
15353 2007-06-06 Olivier Hainque <hainque@adacore.com>
15355 * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
15356 special code on ia64-vms to handle major incompatibilities between the
15357 GCC unwinding ABI and the VMS Condition Handling Facility, both calling
15358 this routine with a very different set of arguments and expectations on
15361 2007-06-06 Thomas Quinot <quinot@adacore.com>
15363 * socket.c (__gnat_close_signalling_fd): New function.
15364 (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
15365 __gnat_safe_getservbyname, __gnat_safe_getservbyport):
15366 New supporting functions for task safe Netdb operations.
15368 2007-06-06 Thomas Quinot <quinot@adacore.com>
15369 Olivier Hainque <hainque@adacore.com>
15371 * a-except-2005.ads, a-except-2005.adb
15372 (Raise_From_Controlled_Operation): New procedure in
15373 (private part of) Ada.Exceptions (standard runtime version). Used to
15374 provide informational exception message when Program_Error is raised as
15375 a result of an Adjust or Finalize operation propagating an exception.
15376 (Rmsg_28): Fix description for E.4(18) check.
15377 (Raise_Current_Excep): Call Debug_Raise_Exception just before
15378 propagation starts, to let debuggers know about the event in a reliable
15380 Take the address of E and dereference to make sure it is homed on stack
15381 and prevent the stores from being deleted, necessary for proper
15382 debugger behavior on "break exception" hits.
15383 (Local_Raise): Moved to System.Exceptions
15385 * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
15386 exception message from the current occurrence and raise Program_Error
15387 has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
15389 2007-06-06 Jose Ruiz <ruiz@adacore.com>
15390 Arnaud Charlet <charlet@adacore.com>
15392 * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
15395 * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
15396 priority associated to a lock.
15398 * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
15399 assertion to take into account case of no abort restriction.
15400 (Initialize_Protection_Entries): Add initialization for the field
15401 New_Ceiling associated to the protected object.
15402 (Unlock_Entries): Change the ceiling priority of the underlying lock, if
15405 * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
15406 since this function needs to be set consistently with Update_Exception.
15408 * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
15409 since this function needs to be set consistently with Update_Exception.
15411 * s-taskin.ads: Update comments on
15412 Interrupt_Server_Blocked_On_Event_Flag.
15413 (Unbind_Handler): Fix handling of server_task wakeup
15414 (Server_Task): Set self's state so that Unbind_Handler can take
15415 appropriate actions.
15416 (Common_ATCB): Now use a constant from System.Parameters to determine
15417 the max size of the Task_Image field.
15419 * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
15420 Initialize_Analyzer function.
15421 ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
15422 take into account case of no abort restriction.
15423 ([Vulnerable_]Complete_Master): Modify assertion.
15425 * s-tataat.adb (Finalize): Use the nestable versions of
15426 Defer/Undefer_Abort.
15428 * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
15430 * s-tpobop.ads: Update comments.
15432 * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
15433 of locking the object manually, to avoid inconsistencies between
15434 Lock/Unlock_Entry assertions.
15436 * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
15438 application and System.Parameters.No_Abort is True.
15439 Update comments on Interrupt_Server_Blocked_On_Event_Flag.
15440 (Unbind_Handler): Fix handling of server_task wakeup
15441 (Server_Task): Set self's state so that Unbind_Handler can take
15442 appropriate actions.
15444 2007-06-06 Thomas Quinot <quinot@adacore.com>
15446 * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
15447 declarations instead of an explicit null body, for conciseness.
15449 2007-06-06 Robert Dewar <dewar@adacore.com>
15451 * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
15452 illegal aggregate and the type is still Any_Composite.
15453 (Subtypes_Statically_Match): Fix problem of empty discriminant list
15455 2007-06-06 Ed Schonberg <schonberg@adacore.com>
15457 * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
15458 to prevent subsequent expansion.
15460 2007-06-06 Robert Dewar <dewar@adacore.com>
15462 * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
15464 2007-06-06 Ed Schonberg <schonberg@adacore.com>
15465 Robert Dewar <dewar@adacore.com>
15467 * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
15469 (Write_Itype): Handle case of string literal subtype, which
15470 comes up in this context.
15471 (Update_Itype): when debugging expanded code, update sloc of itypes
15472 associated with defining_identifiers and ranges, for gdb use.
15473 (Sprint_Node_Actual): Add static keyword to object or exception
15474 declaration output if Is_Statically_Allocated is True.
15475 (Sprint_End_Label): Set entity of end marker for a subprogram, package,
15476 or task body, so that the tree carries the proper Sloc information for
15478 (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
15480 2007-06-06 Arnaud Charlet <charlet@adacore.com>
15482 * s-secsta.adb (Chunk): Ensure this object has a static size known at
15483 compile time, to avoid dynamic memory allocation
15484 (Elaboration code): Only use dynamic memory allocation when needed.
15486 2007-06-06 Quentin Ochem <ochem@adacore.com>
15488 * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
15490 (Stack_Analyzer): Added field "Overflow_Guard"
15491 (Task_Result): Added field "Overflow_Guard".
15492 (Index_Str): New constant.
15493 (Task_Name_Str): New constant.
15494 (Actual_Size_Str): New constant.
15495 (Pattern_Array_Element_Size): New constant.
15496 (Get_Usage_Range): New subprogram.
15497 (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
15498 Now align the output.
15500 (Initialize): Added value for Overflow_Guard.
15501 (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
15502 Update the value of the overflow guard according to the actual
15503 beginning of the pattern array.
15504 (Initialize_Analyzer): Added parameter Overflow_Guard.
15505 Take this parameter into accound when computing the max size.
15506 (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
15507 (Report_Result): Removed extra useless procedure.
15508 Updated call to Output_Result.
15509 Moved full computation of the Task_Result here.
15511 2007-06-06 Thomas Quinot <quinot@adacore.com>
15513 * g-soccon-darwin.ads, gen-soccon.c: Add new constant
15514 Thread_Blocking_IO, always True by default, set False on a per-runtime
15516 Add Windows-specific constants
15517 Add new constant Need_Netdb_Buffer.
15518 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
15519 not, whether to use getXXXbyYYY_r.
15521 * gsocket.h: Add new constant Need_Netdb_Buffer.
15522 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
15523 not, whether to use getXXXbyYYY_r.
15525 2007-06-06 Eric Botcazou <ebotcazou@adacore.com>
15527 * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
15528 than their first call.
15529 Add type Dummy_Communication_Block used in the generation of the pre-
15530 defined dispatching primitive _disp_asynchronous_select.
15531 (Storage_Element): Put Pragma Universal_Aliasing on it.
15533 2007-06-06 Vincent Celier <celier@adacore.com>
15535 * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
15538 * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
15539 letter if it is not followed by a '/' or a '\'.
15540 (Windows): New Boolean function
15542 * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
15544 (Containing_Directory): On Windows, keep at least one '/' or '\' after a
15546 (Containing_Directory): Raise Use_Error when the directory is a root
15548 (Extension): When returning the result, use a conversion to Result_Type,
15549 not a qualification.
15551 2007-06-06 Robert Dewar <dewar@adacore.com>
15553 * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
15554 (Set_Style_Check_Options): Recognize new -gnatyg style switch
15556 * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
15557 Warn_On_Non_Local_Exception to False, to turn off warnings for
15558 No_Exception_Propagation in ZFP runtime.
15559 (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
15561 (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
15563 2007-06-06 Vincent Celier <celier@adacore.com>
15565 * switch-b.adb (Scan_Binder_Switches): Add processing for new
15568 * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
15569 (Scan_Make_Switches): Recognize new switch -aP
15571 2007-06-06 Matthew Gingell <gingell@adacore.com>
15572 Jose Ruiz <ruiz@adacore.com>
15574 * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
15575 VxWorks task descriptor in the Ada run time, call a C subprogram
15576 (__gnat_get_stack_info) that extracts the required information.
15578 * sysdep.c: Back out temporary lynxos workaround.
15579 (__gnat_get_stack_info): Add this procedure that passes to the Ada run
15580 time the stack information associated to the currently executing task.
15581 Only VxWorks systems require this function.
15583 2007-06-06 Eric Botcazou <ebotcazou@adacore.com>
15585 * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
15586 add the stack bias if the offset is computed from a frame address.
15587 (__gnat_backtrace): Adjust for above change.
15589 2007-06-06 Thomas Quinot <quinot@adacore.com>
15591 * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
15592 PE_Non_Transportable_Actual.
15593 (By_Descriptor_Last): New constant.
15594 (By_Copy_Return): Likewise.
15596 2007-06-06 Vincent Celier <celier@adacore.com>
15598 * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
15601 * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
15602 /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
15603 /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
15604 Add missing comment for /OPTIMIZE=SPACE
15605 Add entry for OPTIMIZE=SPACE
15606 Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
15607 Add documentation for new qualifiers corresponding to -gnatw.c/.C
15609 2007-06-06 Vincent Celier <celier@adacore.com>
15610 Robert Dewar <dewar@adacore.com>
15612 * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
15615 * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
15616 Document gnatbind switch -a
15617 (case Constructions): Document that variables declarations are allowed
15618 for previously declared variables.
15619 Fix external lib project example
15620 -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
15621 Indicate that "#if not X or Y then" is not allowed in input files to
15623 Document gnatw.x and gnatw.X warning flags
15624 Mention -Winline switch to activate warnings when back-end inlining is
15626 Add gnatcheck rule descriptions
15627 Describe how to use the GNAT driver to call a tool on a closure.
15628 Describe how to run project-wide checks or metrics.
15629 Document gnatbind's -R option
15630 Updated to account for Ada 2005 support
15632 * gnat_rm.texi (Case Construction): Allow variable declarations for
15633 previously declared variables.
15634 (Representation Clauses and Pragmas): Lift restriction on alignment
15635 clauses for record types.
15636 (Ada.Characters.*): Fix typo in reference to A.3.3(27).
15637 Document No_Exception_Propagation restriction
15638 Document No_Body pragma
15639 Updated to account for Ada 2005 support; corrected some typos
15640 (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
15642 * gnat-style.texi: Make it clear that we never use mode IN for
15643 procedures or functions
15645 * ug_words: Add entries for -gnatw.x and -gnatw.X
15646 Add entries for -gnatw.c/.C
15648 2007-06-06 Pascal Obry <obry@adacore.com>
15649 Vincent Celier <celier@adacore.com>
15651 * makegpr.adb (Add_Archive_Path): Use untouched object and library
15652 dirs and library name.
15653 (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
15655 (Build_Library): Idem.
15656 (Compile_Individual_Sources): Idem.
15657 (Compile_Link_With_Gnatmake): Idem.
15658 (Compile_Sources): Idem.
15659 (Get_Imported_Directories): Idem.
15660 (Link_Executables): Idem. Same change for the executable dir.
15661 (Check_Compilation_Needed): C_Source_Path new variable containing
15662 the canonical form of Source_Path to check against the source names
15663 in the dependency file.
15664 (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
15665 verbose mode, display the name of the object directory we're changing
15667 (Saved_Switches): New name of table X_Switches
15668 (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
15669 (Usage): New line for switch -aP
15670 (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
15671 testing if a directory should be added to the search path.
15673 2007-06-06 Javier Miranda <miranda@adacore.com>
15675 * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
15676 a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
15677 declaration after freezing point of all its associated tagged types;
15678 otherwise such types are frozen too early.
15680 2007-06-06 Robert Dewar <dewar@adacore.com>
15682 * a-reatim.adb: Documentation addition
15684 * g-cgideb.adb: Minor code reorganization
15686 * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
15687 mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
15688 s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
15690 * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
15691 function. Change name New_Scope to Push_Scope
15692 (Get_Debug_Flag_K): Remove unused obsolete function.
15694 * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
15697 * makeusg.adb: Update Copyright notice
15698 Add line for switch -aP
15700 * makeusg.adb: Fix wording of some usage messages
15702 * s-assert.adb (Raise_Assert_Failure): Add call to
15703 Debug_Raise_Assert_Failure.
15705 * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
15706 (2, Standard'Alignment) for compatibility with AAMP (where alignment
15707 is restricted to 1).
15709 * s-wchjis.adb: Remove use of System.Pure_Exceptions
15711 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
15712 node location to No_Location when we're not debugging the expanded
15715 2007-05-22 Alexandre Oliva <aoliva@redhat.com>
15717 * misc.c (enumerate_modes): Consider log2_b to always be one.
15719 2007-05-14 Rafael Ávila de Espíndola <espindola@google.com>
15721 * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
15723 2007-05-02 Pascal Obry <obry@adacore.com>
15725 * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
15726 to use Stream_IO.File_Type. This is needed to make use of the UTF-8
15727 encoding support of Stream_IO.
15728 (Write_Unit): Idem.
15730 * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
15731 filename and corresponding encoding to match the OS requirement.
15732 (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
15733 routine will fail on specific devices like CON: AUX: ...
15735 PR ada/29856: Add missing braces
15737 2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
15740 * ada-tree.h (lang_tree_node): Fix typo in chain_next.
15742 2007-04-21 Jan Hubicka <jh@suse.cz>
15744 * misc.c (gnat_expand_body): Don't call target for destructors,
15745 avoid redundant check on syntax errors.
15747 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
15749 * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
15750 instead of checking GIMPLE_STMT_P in chain_next.
15752 2007-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
15755 * system-linux-alpha.ads: Disable constant condition warning for the
15756 Default_Bit_Order variable.
15757 * system-linux-s390.ads: Likewise.
15758 * system-linux-s390x.ads: Likewise.
15759 * system-linux-sparc.ads: Likewise.
15761 2007-04-06 Javier Miranda <miranda@adacore.com>
15762 Matt Heaney <heaney@adacore.com>
15763 Robert Dewar <dewar@adacore.com>
15765 a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
15766 a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
15767 a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
15768 a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
15769 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
15770 a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
15771 a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
15772 a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
15773 a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
15774 a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
15775 a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
15776 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
15777 a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
15778 a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
15779 a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
15780 a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
15781 a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
15782 i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
15783 unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
15784 a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
15785 a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
15786 a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
15787 expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
15788 s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
15789 s-taprop-tru64.adb, s-taprop-irix.adb,
15790 s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
15791 s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
15792 s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
15793 s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
15794 s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
15795 a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
15796 a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
15797 g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
15798 s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
15799 s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
15800 s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
15801 s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
15802 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
15803 s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
15804 a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
15805 a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
15806 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
15807 a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
15808 a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
15809 a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
15811 Update documentation.
15814 2007-04-06 Robert Dewar <dewar@adacore.com>
15816 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
15817 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
15818 system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
15819 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
15820 system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
15821 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
15822 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
15823 system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
15824 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
15825 system-hpux-ia64.ads, targparm.adb,
15826 targparm.ads (Functions_Return_By_DSP_On_Target): Removed
15828 * system.ads: Move Functions_Return_By_DSP to obsolete section,
15829 kept for bootstrap purposes only.
15831 2007-04-06 Arnaud Charlet <charlet@adacore.com>
15833 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
15834 s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
15835 s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
15836 (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
15838 2007-04-06 Robert Dewar <dewar@adacore.com>
15840 * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
15841 (Local_Raise): New dummy procedure called when a raise is converted
15842 to a local goto. Used for debugger to detect that the exception
15845 * debug.adb: Document new d.g flag (expand local raise statements to
15846 gotos even if pragma Restriction (No_Exception_Propagation) is not set)
15848 * exp_sel.adb: Use Make_Implicit_Exception_Handler
15850 * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
15851 suppress warnings for unused handlers.
15852 (Warn_If_No_Propagation): Use new flag -gnatw.x to suppress
15853 warnings for raise statements not handled locally.
15854 (Get_RT_Exception_Entity): New function
15855 (Get_Local_Call_Entity): New function
15856 (Find_Local_Handler): New function
15857 (Warn_If_No_Propagation): New procedure
15858 (Expand_At_End_Handler): Call Make_Implicit_Handler
15859 (Expand_Exception_Handlers): Major additions to deal with local handlers
15860 (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
15861 Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
15864 * exp_ch11.ads (Get_RT_Exception_Entity): New function
15865 (Get_Local_Call_Entity): New function
15867 * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
15868 of restrictions that the binder will never suggest adding.
15870 * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
15873 * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
15874 be with'ed in the presence of pragma Restriction
15875 (No_Exception_Propagation).
15877 * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
15879 * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
15880 parameter, then the handler is not a suitable target for a local raise,
15881 and this is a violation of restriction No_Exception_Propagation.
15882 (Analyze_Handled_Statements): Analyze choice parameters in exception
15883 handlers before analyzing statement sequence (needed for proper
15884 detection of local raise statements).
15885 (Analyze_Raise_Statement): Reraise statement is a violation of the
15886 No_Exception_Propagation restriction.
15888 * s-rident.ads: Add new restriction No_Exception_Propagation
15890 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
15891 function, like Make_Exception_Handler but sets Local_Raise_Statements
15893 (Add_Unique_Serial_Number): Deal with case where this is called during
15894 processing of configuration pragmas.
15896 2007-04-06 Thomas Quinot <quinot@adacore.com>
15897 Pat Rogers <rogers@adacore.com>
15898 Pascal Obry <obry@adacore.com>
15900 * g-stsifd-sockets.adb: New file.
15902 * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
15903 g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
15904 g-socthi-vms.adb: Move signalling
15905 fd management to a nested package, so that they can conveniently be
15906 moved to a subunit that is shared across Windows, VMS, and VxWorks
15907 (Ada implementation) or completed with imported bodies from socket.c
15909 (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
15911 (Check_Selector): Use Read_Signalling_Fd to read and discard data from
15912 the signalling file descriptor.
15913 (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
15914 signalling file descriptor.
15915 (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
15916 instead of creating a pair of sockets for signalling here.
15918 * g-socthi.adb: Ditto.
15919 Set the runtime process to ignore SIGPIPEs on platforms that support
15920 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
15922 * g-socthi-mingw.adb: Ditto.
15923 (WS_Version): Use Windows 2.2.
15924 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
15926 * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
15927 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
15929 * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
15930 added GNAT byte swapping facility
15931 Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
15933 * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
15935 * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
15937 (__gnat_create_signalling_fds): New subprogram.
15938 Set the runtime process to ignore SIGPIPEs on platforms that support
15939 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
15941 2007-04-06 Hristian Kirtchev <kirtchev@adacore.com>
15942 Vincent Celier <celier@adacore.com>
15944 * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
15945 New version of Ada.Calendar which supports the new upper bound of Ada
15946 time (2399-12-31 86_399.999999999).
15947 The following modifications have been made to the package:
15948 - New representation of time as count of nanoseconds since the start of
15949 Ada time (1901-1-1 0.0).
15950 - Target independent Split and Time_Of routines which service both
15951 Ada 95 and Ada 2005 code.
15952 - Target independent interface to the Ada 2005 children of Calendar.
15953 - Integrated leap seconds into Ada 95 and Ada 2005 mode.
15954 - Handling of non-leap centenial years.
15955 - Updated clock function.
15956 - Updated arithmetic and comparison operators.
15958 * a-caldel.adb (To_Duration): Add call to target independent routine in
15959 Ada.Calendar to handle the conversion of time to duration.
15961 * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
15963 If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
15965 (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
15966 targets do not have a natural time zone, GMT is used as a default.
15967 (__gnat_get_task_options): New.
15969 * a-direct.adb (Modification_Time): Add with and use clauses for
15970 Ada.Calendar and Ada.
15971 Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
15972 since it is no longer needed.
15973 (Duration_To_Time): Removed.
15974 (OS_Time_To_Long_Integer): Removed.
15975 (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
15976 Formatting Time_Of routines which automatically handle time zones,
15977 buffer periods and leap seconds.
15979 * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
15980 target independent routines in Ada.Calendar.
15982 * a-calfor.ads, a-calfor.adb:
15983 Code cleanup and addition of validity checks in various routines.
15984 (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
15987 * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
15988 independent routine in Ada.Calendar.
15990 2007-04-06 Olivier Hainque <hainque@adacore.com>
15993 (convert_addresses): Adjust prototype and dummy definition to expect an
15994 extra file_name argument.
15996 * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
15997 filling the now expected file_name argument with the appropriate
15999 (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
16000 (tracebk): Array of void * instead of char *, corresponding to what
16001 convert_addresses expects.
16002 (exename): New static global, to hold the executable file name to be
16003 used in all convert_addresses invocations.
16004 (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
16006 (__gnat_gmem_a2l_initialize): Resolve exename.
16007 (__gnat_convert_addresses): Use exename as the convert_addresses
16008 file_name argument.
16010 * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
16011 "convert_addresses", now expecting a filename argument. Import the
16012 necessary entities to compute the filename to use and pass it to
16015 2007-04-06 Matt Gingell <gingell@adacore.com>
16017 * system-aix.ads: Back out previous change.
16018 (Functions_Return_By_DSP): Removed
16020 2007-04-06 Pascal Obry <obry@adacore.com>
16022 * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
16023 or the monotonic used by Ada.Real_Time) to compute the sleep duration
16026 2007-04-06 Jose Ruiz <ruiz@adacore.com>
16028 * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
16029 function. Its value changes in different VxWorks versions, and it is
16030 now handled by the function __gnat_get_task_options.
16032 * s-taprop-vxworks.adb (Create_Task): Call the function
16033 __gnat_get_task_options to get the required options for creating a task.
16035 2007-04-06 Pascal Obry <obry@adacore.com>
16036 Thomas Quinot <quinot@adacore.com>
16038 * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
16039 dealing with filename.
16040 (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
16041 filename from a standard string to a wide-string depending on the
16043 (__gnat_freopen): Idem.
16044 (__gnat_current_time): New function (wrapper for time(3) standard C
16047 * g-os_lib.ads (Current_Time): New function. Returns the current
16048 system time as an OS_Time value.
16050 * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
16051 (Monotonic_Clock): Same.
16053 2007-04-06 Quentin Ochem <ochem@adacore.com>
16055 * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
16057 (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
16059 2007-04-06 Jose Ruiz <ruiz@adacore.com>
16061 * a-retide.adb: Add elaboration code to ensure that the tasking run
16062 time is initialized when using delay operations even when no task is
16065 2007-04-06 Javier Miranda <miranda@adacore.com>
16067 * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
16068 component Num_Prim_Ops.
16069 (Set_Num_Prim_Ops): Removed.
16070 Remove all the assertions because all the routines of this
16071 package are inline always.
16072 (Get_Offset_Index): Add support to primary dispatch tables.
16073 Move the documentation about the dispatch table to a-tags.ads
16074 (Set_External_Tag): Removed
16075 (Inherit_TSD): Removed.
16076 (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
16077 moved to a-tags.ads
16078 (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
16079 Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
16080 of the TSD field "Table" because this field has been renamed to
16082 (Inherit_CPP_DT): Removed.
16083 (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
16084 Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
16085 declarations have been moved to a-tags.ads
16086 (Check_Size): Removed.
16087 (Expanded_Name): Updated to get access to the new field of TSD
16088 containing the address of the expanded name.
16089 (Get_Access_Level/Set_Access_Level): Removed.
16090 (Get_Predefined_Prim_Op_Address): Removed.
16091 (Set_Predefined_Prim_Op_Address): Removed.
16092 (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
16093 (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
16094 (Set_Expanded_Name): Removed.
16095 (Inherit_DT): Removed.
16096 (Inherit_CPP_DT): Removed.
16097 (Set_RC_Offset): Removed.
16098 (Set_TSD): Removed.
16099 (Base_Address): New function that displaces "this" to point to the base
16100 of the object (that is, to point to the primary tag of the object).
16102 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16103 Javier Miranda <miranda@adacore.com>
16105 * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
16106 anonymous access component, do not create a master_id if type already
16107 has one, as may happen if the type is a subcomponent of a packed array
16109 (Build_Init_Procedure, Component_Needs_Simple_Initialization,
16110 Initialize_Tag): Remove code associated with the old CPP pragmas.
16111 CPP_Virtual and CPP_Vtable are no longer supported.
16112 (Build_Offset_To_Top_Internal): Add support for concurrent record types
16113 (Build_Offset_To_Top_Functions): Add support for concurrent record types
16114 (Freeze_Record_Type): Remove call to
16115 Init_Predefined_Interface_Primitives.
16116 (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
16117 code required to initialize the tags of the secondary dispatch tables.
16118 This leaves the algoritm more clear.
16119 (Init_Secondary_Tags): Add support for concurrent record types
16120 (Make_Predefined_Primitive_Specs): Code cleanup.
16121 (Predefined_Primitive_Bodies): Code cleanup.
16122 (Build_Master_Renaming): New local subprogram.
16123 (Expand_N_Full_Type_Declaration): Build the master_id associated with
16124 anonymous access to task type components.
16125 (Expand_N_Subtype_Indication): The bounds of a range constraint in a
16126 subtype indication are resolved during analysis, and must not be done
16128 (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
16130 2007-04-06 Geert Bosch <bosch@adacore.com>
16131 Ed Schonberg <schonberg@adacore.com>
16132 Javier Miranda <miranda@adacore.com>
16133 Bob Duff <duff@adacore.com>
16135 * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
16136 for conversion of a Float_Type'Truncation to integer.
16138 * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
16139 check if a node is an attribute that can be handled directly by the
16141 (Expand_N_Attribute_Reference): Suppress expansion of floating-point
16142 attributes that can be handled directly by the back end.
16143 (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
16144 use new predicate Is_Access_Protected_Subprogram_Type.
16145 (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
16146 and Unchecked_Union if it is generated as part of the default Output
16147 procedure for a type with default discriminants.
16148 (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
16149 if we are compiling under restriction No_Dispatching_Calls.
16150 (Constrained): Use Underlying_Type, in case the type is private without
16151 discriminants, but the full type has discriminants.
16152 (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
16153 call to Build_Get_Access_Level.
16154 (Expand_N_Attribute_Reference): The use of 'Address with class-wide
16155 interface objects requires a call to the run-time subprogram that
16156 returns the base address of the object.
16157 (Valid_Conversion): Improve error message on illegal attempt to store
16158 an anonymous access to subprogram value into a record component.
16160 * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
16162 (Simplify_Type_Conversion): New procedure that performs simplification
16163 of Int_Type (Float_Type'Truncation (X)).
16164 (Resolve_Type_Conversion): Call above procedure after resolving operand
16165 and before performing checks. This replaces the existing ineffective
16167 (Set_String_Literal_Subtype): When creating the internal static lower
16168 bound subtype for a string literal, use a newly created copy of the
16169 subtree representing the lower bound.
16170 (Resolve_Call): Exclude build-in-place function calls from transient
16171 scope treatment. Update comments to describe this exception.
16172 (Resolve_Equality_Op): In case of dispatching call check violation of
16173 restriction No_Dispatching_Calls.
16174 (Resolve_Call): If the call returns an array, the context imposes the
16175 component type of the array, and the function has one non-defaulted
16176 parameter, rewrite the call as the indexing of a call with a single
16177 parameter, to handle an Ada 2005 syntactic ambiguity for calls written
16179 (Resolve_Actuals): If an actual is an allocator for an access parameter,
16180 the master of the created object is the innermost enclosing statement.
16181 (Remove_Conversions): For a binary operator, check if type of second
16182 formal is numeric, to check if an abstract interpretation is present
16183 in the case of exponentiation as well.
16185 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16186 Bob Duff <duff@adacore.com>
16188 * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
16189 copying a parameter list in a call, set properly the First_Named_Formal
16190 and Next_Named_Formal fields in the new list and in the enclosing call.
16191 (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
16192 names, to ease typing in the debugger. Improve comments.
16193 (Watch_Node): New variable, intended to be set in the debugger.
16194 (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
16195 called when the watched node is created.
16196 (New_Node_Debugging_Output): Combined version of local procedures
16197 New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
16198 with a parameter so that conditional breakpoints like "if Node = 12345"
16200 (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
16201 Add Elist1 function
16203 2007-04-06 Thomas Quinot <quinot@adacore.com>
16204 Ed Schonberg <schonberg@adacore.com>
16205 Gary Dismukes <dismukes@adacore.com>
16207 * checks.ads, checks.adb (Selected_Range_Checks): No range check is
16208 required for a conversion between two access-to-unconstrained-array
16210 (Expr_Known_Valid): Validity checks do not apply to discriminants, but
16211 to discriminant constraints on discriminant objects. This rule must
16212 apply as well to discriminants of protected types in private components.
16213 (Null_Exclusion_Static_Checks): If No_Initialization is set on an
16214 object of a null-excluding access type then don't require the
16215 the object declaration to have an expression and don't emit a
16218 2007-04-06 Arnaud Charlet <charlet@adacore.com>
16219 Eric Botcazou <botcazou@adacore.com>
16221 * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
16224 * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
16225 Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
16228 * fe.h (Compiler_Abort): Add third parameter.
16230 * misc.c (internal_error_function): Build third argument from current
16231 input location and pass it to Compiler_Abort.
16233 2007-04-06 Gary Dismukes <dismukes@adacore.com>
16235 * cstand.adb (Create_Standard): When the target's storage unit size is
16236 greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
16239 2007-04-06 Nicolas Roche <roche@adacore.com>
16241 * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
16242 absolute path can have the following form: device:/a/b. In this case
16243 '/' should be inserted between the path and the filename.
16245 2007-04-06 Olivier Hainque <hainque@adacore.com>
16246 Eric Botcazou <botcazou@adacore.com>
16248 * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
16249 VAR_DECL to a CONST_DECL we make for a public constant when we know the
16250 corresponding definition has created the so made visible variable.
16251 Handle anonymous access to protected subprogram.
16252 (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
16253 object with an address clause volatile. Re-enable original fix.
16254 <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
16256 (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
16257 associated with either the Equivalent or Root type, instead of the
16259 (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
16260 subtree for every field of a global record type.
16261 (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
16262 discriminants, invoke again variable_size on its newly computed sizes.
16264 2007-04-06 Robert Dewar <dewar@adacore.com>
16265 Thomas Quinot <quinot@adacore.com>
16266 Ed Schonberg <schonberg@adacore.com>
16267 Bob Duff <duff@adacore.com>
16269 * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
16270 (Next_Component_Or_Discriminant): New function and procedure
16271 (First_Index, First_Literal, Master_Id,
16272 Set_First_Index, Set_First_Literal, Set_Master_Id):
16273 Add missing Ekind assertions.
16274 (Is_Access_Protected_Subprogram_Type): New predicate.
16275 (Has_RACW): New entity flag, set on package entities to indicate that
16276 the package contains the declaration of a remote accecss-to-classwide
16278 (E_Return_Statement): This node type has the Finalization_Chain_Entity
16279 attribute, in case the result type has controlled parts.
16280 (Requires_Overriding): Add this new flag, because "requires
16281 overriding" is subtly different from "is abstract" (see AI-228).
16282 (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
16283 Is_Abstract_Type. Make sure these are called only when appropriate.
16284 (Has_Pragma_Unreferenced_Objects): New flag
16286 * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
16287 class-wide, the tag of the right-hand side must be an exact match, not
16288 an ancestor of that of the object on left-hand side.
16289 (Move_Activation_Chain): New procedure to create the call to
16290 System.Tasking.Stages.Move_Activation_Chain.
16291 (Expand_N_Extended_Return_Statement): Generate code to call
16292 System.Finalization_Implementation.Move_Final_List at the end of a
16293 return statement if the function's result type has controlled parts.
16294 Move asserts to Build_In_Place_Formal.
16295 (Move_Final_List): New function to create the call statement.
16296 (Expand_N_Assignment_Statement): In case of assignment to a class-wide
16297 tagged type, replace generation of call to the run-time subprogram
16298 CW_Membership by call to Build_CW_Membership.
16299 (Expand_N_Return_Statement): Replace generation of call to the run-time
16300 subprogram Get_Access_Level by call to Build_Get_Access_Level.
16301 (Expand_N_Simple_Function_Return): Replace generation of call to the
16302 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
16304 * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
16305 Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
16306 access to protected operations.
16307 (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
16308 master and chain actual parameters to a build-in-place function call
16310 (BIP_Formal_Suffix): Add new enumeration literals to complete the case
16312 (Make_Build_In_Place_Call_In_Allocator,
16313 Make_Build_In_Place_Call_In_Anonymous_Context,
16314 Make_Build_In_Place_Call_In_Assignment,
16315 Make_Build_In_Place_Call_In_Object_Declaration): Call
16316 Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
16317 (Expand_Inlined_Call): If the subprogram is a null procedure, or a
16318 stubbed procedure with a null body, replace the call with a null
16319 statement without using the full inlining machinery, for efficiency
16320 and to avoid invalid values in source file table entries.
16322 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
16323 renamings of calls to build-in-place functions.
16325 * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
16326 provides the functionality of RTE_Available to record components.
16327 (RTU_Entity): The function Entity has been renamed to RTU_Entity
16328 to avoid undesired overloading.
16329 (Entity): New subprogram that returns the entity for the referened
16330 unit. If this unit has not been loaded, it returns Empty.
16331 (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
16332 Remove no longer used entities.
16333 (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
16334 (RE_Type_Specific_Data): New entity.
16335 (RE_Move_Any_Value): New entity.
16336 (RE_TA_A, RE_Get_Any_Type): New entities.
16337 (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
16338 RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
16339 RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
16340 (Entity): New subprogram that returns the entity for the referened
16341 unit. If this unit has not been loaded, it returns Empty.
16342 (RTE): Addition of a new formal that extends the search to the scopes
16343 of the record types found in the chain of the package.
16345 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
16346 "abstract subprograms must be visible" message, whether or not the type
16347 is an interface; that is, remove the special case for interface types.
16348 (Analyze_Function_Return): Remove error message "return of task objects
16349 is not yet implemented" because this is now implemented.
16350 (Create_Extra_Formals): Add the extra master and activation chain
16351 formals in case the result type has tasks.
16352 Remove error message "return of limited controlled objects is not yet
16354 (Create_Extra_Formals): Add the extra caller's finalization list formal
16355 in case the result type has controlled parts.
16356 (Process_Formals): In case of access formal types there is no need
16357 to continue with the analysis of the formals if we already notified
16359 (Check_Overriding_Indicator): Add code to check overriding of predefined
16361 (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
16362 flags for formals that do not require them,.
16363 (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
16364 hidden entity is use visible or directly visible.
16365 (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
16366 Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
16367 Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
16368 New_Overloaded_Entity): Split Is_Abstract flag into
16369 Is_Abstract_Subprogram and Is_Abstract_Type.
16371 * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
16372 a return statement's finalization list to the caller's list, used for
16373 build-in-place functions with result type with controlled parts.
16374 Remove no longer used entities.
16376 * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
16377 longer needed, because the full type is now limited, and therefore a
16378 pass-by-reference type.
16379 (Foreign_Task_Level): New constant.
16381 * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
16382 move tasks from the activation chain belonging to a return statement to
16383 the one passed in by the caller, and update the master to the one
16384 passed in by the caller.
16385 (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
16386 of unactivated tasks, so we don't kill the ones that are being returned
16387 by a build-in-place function.
16388 (Create_Task): Ignore AI-280 for foreign threads.
16390 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16391 Robert Dewar <dewar@adacore.com>
16392 Bob Duff <duff@adacore.com>
16393 Gary Dismukes <dismukes@adacore.com>
16395 * errout.adb (Unwind_Internal_Type): Use predicate
16396 Is_Access__Protected_Subprogram_Type.
16398 * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
16399 (Freeze_Entity, packed array case): Do not override explicitly set
16400 alignment and size clauses.
16401 (Freeze_Entity): An entity declared in an outer scope can be frozen if
16402 the enclosing subprogram is a child unit body that acts as a spec.
16403 (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
16404 (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
16405 Remove all code for DSP option
16407 * layout.adb (Layout_Record_Type): Use First/
16408 Next_Component_Or_Discriminant
16409 (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
16410 to handle properly the anonymous access case.
16412 * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
16413 for all access attributes, because overload resolution should work the
16414 same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
16415 causes the error message for the ambiguous "X'Access = Y'Access" and
16416 "X'Unrestricted_Access = Y'Access" and so forth to match.
16417 (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
16418 now that anonymous access to protected operations have their own kind.
16419 (Resolve_Attribute): In case of dispatching call check the violation of
16420 restriction No_Dispatching_Calls.
16421 (Check_Array_Type): Check new -gnatyA array index style option
16423 * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
16424 attempt to derive from a synchronized tagged type.
16425 (Analyze_Type_Declaration): If there is a incomplete tagged view of the
16426 type, inherit the class-wide type already created, because it may
16427 already have been used in a self-referential anonymous access component.
16428 (Mentions_T): Recognize self-referential anonymous access components
16429 that use (a subtype of) the class-wide type of the enclosing type.
16430 (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
16431 Derived_Type for Prev formal on call to
16432 Check_Anonymous_Access_Components rather than Empty.
16433 (Make_Incomplete_Type_Declaration): Add test for case where the type has
16434 a record extension in deciding whether to create a class-wide type,
16435 rather than just checking Tagged_Present.
16436 (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
16437 to stand-alone object declarations as well as component declarations.
16438 (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
16439 prevent accidental overwriting when enclosing package appears in
16440 a limited_with_clause.
16441 (Array_Type_Declaration): If the component type is an anonymous access,
16442 the associated_node for the itype is the type declaration itself.
16443 (Add_Interface_Tag_Components): Modified to support concurrent
16444 types with abstract interfaces.
16445 (Check_Abstract_Interfaces): New subprogram that verifies the ARM
16446 rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
16447 (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
16448 to complete the decoration of synchronized interface types. Add also
16449 a call to Check_Abstract_Interfaces to verify the ARM rules.
16450 (Derive_Interface_Subprograms): Modified to support concurrent types
16451 with abstract interfaces.
16452 (Analyze_Subtype_Indication): Resolve the range with the given subtype
16453 mark, rather than delaying the full resolution depending on context.
16454 (Analyze_Component_Declaration,Analyze_Interface_Declaration,
16455 Analyze_Object_Declaration,Analyze_Subtype_Declaration,
16456 Array_Type_Declaration,Build_Derived_Record_Type,
16457 Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
16458 Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
16459 Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
16460 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
16461 called only when appropriate.
16462 (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
16464 (Analyze_Subtype_Declaration): For an access subtype declaration, create
16465 an itype reference for the anonymous designated subtype, to prevent
16466 scope anonmalies in gigi.
16467 (Build_Itype_Reference): New utility, to simplify construction of such
16470 2007-04-06 Vincent Celier <celier@adacore.com>
16472 * errutil.adb (Initialize): Initialize warnings table, if all warnings
16473 are suppressed, supply an initial dummy entry covering all possible
16476 * make.adb (Scan_Make_Arg): Reject options that should start with "--"
16477 and start with only one, such as "-RTS=none".
16478 (Collect_Arguments): Do not check for sources outside of projects.
16479 Do not collect arguments if project is externally built.
16480 (Compile_Sources): Do nothing, not even check if the source is up to
16481 date, if its project is externally built.
16482 (Compile): When compiling a predefined source, add -gnatpg
16483 as the second switch, after -c.
16484 (Compile_Sources): Allow compilation of Annex J renames without -a
16485 (Is_In_Object_Directory): Check if the ALI file is in the object
16486 even if there is no project extension.
16487 (Create_Binder_Mapping_File): Only put a unit in the mapping file for
16488 gnatbind if the ALI file effectively exists.
16489 (Initialize): Add the directory where gnatmake is invoked in front of
16490 the path if it is invoked from a bin directory, even without directory
16491 information, so that the correct GNAT tools will be used when spawned
16492 without directory information.
16494 * makeusg.adb: Change switch -S to -eS
16495 Add lines for new switches -we, -wn and -ws
16496 Add line for new switch -p
16498 * prj-proc.adb (Process): Set Success to False when Warning_Mode is
16499 Treat_As_Error and there are warnings.
16501 * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
16502 -gnatww Change gnatmake switch -S to -eS
16503 (Scan_Make_Switches): Code reorganisation. Process separately multi
16504 character switches and single character switches.
16505 (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
16506 False when switch is not recognized by gnatmake.
16507 (Scan_Make_Switches): Set Setup_Projects True when -p or
16508 --create-missing-dirs is specified.
16510 * fname.adb (Is_Predefined_File_Name): Return True for annex J
16511 renamings Calendar, Machine_Code, Unchecked_Conversion and
16512 Unchecked_Deallocation only when Renamings_Included is True.
16514 * par.adb: Allow library units Calendar, Machine_Code,
16515 Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
16516 when -gnatg is not specified.
16517 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
16518 there is no need to generate always a record_definition_node in case
16519 of synchronized interface types.
16520 (SIS_Entry_Active): Initialize global variable to False
16521 (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
16522 indicate cases where AI-447 says "not null" is legal.
16524 * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
16526 * makegpr.adb (Check_Compilation_Needed): Take into account dependency
16527 files with with several lines starting with the object fileb name.
16528 (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
16530 (Initialize): Add the directory where gprmake is invoked in front of the
16531 path, if it is invoked from a bin directory or with directory
16532 information, so that the correct GNAT tools will be used when invoked
16534 (Check_Compilation_Needed): Process correctly backslashes on Windows.
16536 * vms_data.ads: Update switches/qualifiers
16538 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16539 Thomas Quinot <quinot@adacore.com>
16542 If the array component is a discriminated record, the array aggregate
16543 is non-static even if the component is given by an aggregate with
16545 (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
16546 (Convert_Aggr_In_Allocator): If the allocator is for an access
16547 discriminant and the type is controlled. do not place on a finalization
16548 list at this point. The proper list will be determined from the
16550 (Build_Record_Aggr_Code): If aggregate has box-initialized components,
16551 initialize record controller if needed, before the components, to ensure
16552 that they are properly finalized.
16553 (Build_Record_Aggr_Code): For the case of an array component that has a
16554 corresponding array aggregate in the record aggregate, perform sliding
16557 2007-04-06 Javier Miranda <miranda@adacore.com>
16558 Gary Dismukes <dismukes@adacore.com>
16559 Ed Schonberg <schonberg@adacore.com>
16561 * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
16562 run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
16564 * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
16565 accessibility on class-wide allocators if the allocator occurs at the
16566 same scope level as the allocator's type. The check is guaranteed to
16567 succeed in that case, even when the expression originates from a
16568 parameter of the containing subprogram.
16569 (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
16570 under No_Dispatching_Calls restriction. During the semantic analysis
16571 we already notified such violation.
16572 (Tagged_Membership): Constant folding. There is no need to check
16573 the tag at run-time if the type of the right operand is non
16574 class-wide abstract.
16575 Replace call to Is_Ancestor by call to Is_Parent
16576 to support concurrent types with interface types.
16577 (Expand_N_Allocator): Add an assertion associated with the generation
16579 (Expand_N_Slice): Do not enable range check to nodes associated
16580 with the frontend expansion of the dispatch table.
16581 (Is_Local_Access_Discriminant): Subsidiary function to
16582 Expand_N_Allocator.
16583 (Tagged_Membership): Replace generation of call to the run-time
16584 subprogram CW_Membership by call to Build_CW_Membership.
16585 (Expand_Allocator_Expression): Replace generation of call to the
16586 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
16588 * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
16589 initialize most the TSD components by means of an aggregate.
16590 Modify the declaration of the object containing the TSD
16591 because we now expand code that has a higher level of abstraction.
16592 The TSD has a discriminant containing the Inheritance Depth Level,
16593 value that is used in the membership test but also to fix the size
16594 of the table of ancestors.
16595 (Expand_Interface_Conversion): Insert function body at the closest place
16596 to the conversion expression, to prevent access-before-elaboration
16597 errors in the backend.
16598 Code improved to reduce the size of the dispatch table if
16599 compiling under restriction No_Dispatching_Calls plus code cleanup.
16600 Code reorganization plus removal of calls to Set_Num_Prim_Ops
16601 (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
16602 (Expand_Dispatching_Call): Minor code reorganization plus addition of
16603 code to return immediately if compiling under No_Dispatching_Calls
16605 (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
16606 CPP_Virtual and CPP_Vtable are no longer supported.
16607 (Expand_Interface_Conversion): Add missing support for interface type
16609 (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
16610 Is_Parent to support concurrent types with interfaces.
16611 (Init_Predefined_Interface_Primitives): Removed.
16612 (Make_Secondary_DT): Modified to support concurrent record types.
16613 (Set_All_DT_Position): Modified to support concurrent record types.
16614 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
16615 with Get_External_Tag, Inherit_TSD, Set_External_Tag.
16616 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
16617 with CW_Membership.
16618 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
16619 with Get_Access_Level, Get_Predefined_Prim_Op_Address,
16620 Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
16621 Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
16622 Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
16623 (Expand_Dispatching_Call): Replace generation of call to the run-time
16624 subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
16625 calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
16627 (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
16628 the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
16629 Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
16630 Build_Set_Prim_Op_Address.
16631 (Get_Remotely_Callable): Subprogram removed.
16632 (Init_Predefined_Interface_Primitives): Replace generation of call to
16633 the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
16636 * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
16637 First (Parameter_Associations ()) with the call to First_Actual that
16638 returns an actual parameter expression for both named and positional
16641 * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
16642 check violation of restriction No_Dispatching_Calls.
16643 (Check_Controlling_Type): A formal of a tagged incomplete type is a
16644 controlling argument.
16646 * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
16647 First/Next_Component_Or_Discriminant
16648 (Insert_Actions): Add entries for new N_Push and N_Pop nodes
16649 (Find_Implemented_Interface): Removed. All the calls to this subprogram
16650 specify Any_Limited_Interface, and this functionality is already
16651 provided by the function Has_Abstract_Interfaces.
16652 (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
16653 support concurrent types implementing interfaces.
16654 (Find_Implemented_Interface): Removed. All the calls to this subprogram
16655 specify kind Any_Limited_Interface, and this functionality is already
16656 provided by the function Has_Abstract_Interfaces.
16657 (Remove_Side_Effects): replace Controlled_Type by
16658 CW_Or_Controlled_Type whenever the issue is related to
16659 using or not the secondary stack.
16661 * par-ch12.adb (P_Formal_Type_Definition): Update calls to
16662 P_Interface_Type_Definition to fulfill the new interface (the formal
16663 Is_Synchronized is no longer required).
16665 * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
16666 Update dependencies.
16668 * exp_atag.ads, exp_atag.adb: New file
16670 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16671 Bob Duff <duff@adacore.com>
16672 Cyrille Comar <comar@adacore.com>
16674 * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
16675 anonymous, use finalization list of enclosing dynamic scope.
16676 (Expand_N_Package_Declaration): For a library package declaration
16677 without a corresponding body, generate RACW subprogram bodies in the
16678 spec (just as we do for the task activation call).
16679 (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
16680 Is_Abstract_Type. Make sure these are called only when appropriate.
16681 Remove all code for DSP option
16682 (CW_Or_Controlled_Type): new subprogram.
16684 2007-04-06 Eric Botcazou <botcazou@adacore.com>
16685 Ed Schonberg <schonberg@adacore.com>
16686 Gary Dismukes <dismukes@adacore.com>
16688 * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
16689 parameter. If it is set to true, return a result capped according to
16690 the global upper bound for the index of an entry family.
16691 (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
16692 (Build_Find_Body_Index): Adjust for above change.
16693 (Entry_Index_Expression): Likewise.
16694 (Is_Potentially_Large_Family): New function extracted from...
16695 (Collect_Entry_Families): ...here. Call it to detect whether the family
16696 is potentially large.
16697 (Build_Entry_Count_Expression): If the family is potentially large, call
16698 Family_Size with 'Cap' set to true.
16699 (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
16700 a protected version of an operation declared in the private part of
16701 a protected object, because they may be invoked through a callback.
16702 (Set_Privals): If the type of a private component is an anonymous access
16703 type, do not create a new itype for each protected body.
16704 If the body of a protected operation creates
16705 controlled types (including allocators for class-widetypes), the
16706 body of the corresponding protected subprogram must include a
16708 (Build_Activation_Chain_Entity): Build the chain entity for extended
16710 (Type_Conformant_Parameters): Use common predicate Conforming_Types
16711 to determine whether operation overrides an inherited primitive.
16712 (Build_Wrapper_Spec): Add code to examine the parents while looking
16713 for a possible overriding candidate.
16714 (Build_Simple_Entry_Call): Set No_Initialization on the object used to
16715 hold an actual parameter value since its initialization is separated
16716 from the the declaration. Prevents errors on null-excluding access
16719 2007-04-06 Thomas Quinot <quinot@adacore.com>
16720 Pablo Oliveira <oliveira@adacore.com>
16722 * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
16723 Do an Unchecked_Conversion to handle the passage from the Underlying
16724 Type to the Base Type when calling Build_To_Any_Call and
16725 Build_From_Any_Call.
16726 (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
16727 E_Constant, depending upon Variable formal.
16728 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
16729 PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
16730 parameter that requires an extra constrained parameter, declare
16731 temporary for actual as a variable, not a constant.
16732 (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
16733 the unit being compiled is the one that contains the stub type.
16734 Change primitive operation name for the RACW associated with a RAS
16735 from Call to _Call so it cannot clash with any legal identifier.
16736 (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
16738 (Append_RACW_Bodies): New subprogram.
16739 (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
16740 Add_Receiving_Stubs_To_Declarations functions.
16741 When expanding a package body, this list correspond to the
16742 statements in the HSS at the end of the pacakge.
16743 When expanding a package spec, this list correspond to the
16745 (Add_Receiving_Stubs_To_Declarations): Append the function
16746 registering the receiving stubs at the end of the 'Stmts' list.
16747 (RCI_Package_Locator): Pass the new Version generic formal when
16748 instantiating a RCI_Locator package.
16749 (Build_From_Any_Function): To compute the High bound for an
16750 unconstrained array actual, we add the Low bound with the length.
16751 Thus we must convert the low bound and the length to an appropriate
16752 type before doing the sum.
16753 (Build_Subprogram_Receiving_Stubs, PolyORB):
16754 * Retrieve the extra formals parameters at the
16755 end of the parameter stream.
16756 * Use Move_Any_Value to write back out parameters
16757 after executing the request as it is more efficient
16758 than Copy_Any_Value.
16759 * Build the any containing Extra Formals with the
16760 appropriate typecode.
16761 (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
16762 empty Component_List.
16763 (Build_Actual_Object_Declaration): New subprogram. Build and insert into
16764 the tree the declaration for an object that serves as actual parameter
16765 in server-side stubs.
16766 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
16767 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
16768 Use Build_Actual_Object_Declaration to prepare the actuals.
16769 (Add_Parameter_To_NVList): Set the parameter mode to In for
16770 Extra Constrained Parameters.
16771 (Build_General_Calling_Stubs): Set the parameter type to boolean for
16772 Extra Constrained parameters.
16773 (Build_To_Any_Function, Build_From_Any_Function,
16774 Built_TypeCode_Function): When Typ is implicit, call the correct
16775 function with the first not implicit parent type.
16776 (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
16777 (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
16778 typecode from the Etype. Therefore we retrieve the correct typecode
16779 with a call to Get_Any_Type.
16780 (Copy_Specification): Do controlling formal type substitution based on
16781 Is_Controlling_Formal flag, instead of caller-provided object type.
16782 (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
16783 a RACW primitive operation, we might get a subprogram declaration for an
16784 ancestor of the RACW designated type (not for the designated type
16785 itself), in the case where this operation is inherited. In this case we
16786 have no easy means of determining the original tagged type for which
16787 the primitive was declared, so instead we now rely on
16788 Copy_Specification to use the Is_Controlling_Formal flag to determine
16789 which formals require type substitution.
16791 2007-04-06 Robert Dewar <dewar@adacore.com>
16792 Ed Schonberg <schonberg@adacore.com>
16794 * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
16795 GNAT.Current_Exception are not allowed if pragma Restrictions
16796 (No_Exception_Propagation) is set and in any case make the associated
16797 handler unsuitable as a target for a local raise statement.
16798 (Expand_Dispatching_Constructor_Call): Replace generation of call to the
16799 run-time subprogram CW_Membership by call to Build_CW_Membership.
16800 (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
16801 by a function call, a temporary must be created before expanding the
16802 Constructor_Call itself, to prevent out-of-order elaboration in the
16803 back-end when stack checking is enabled..
16805 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16807 * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
16808 result are the bounds of the left operand, not the right.
16810 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16813 (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
16814 discriminant defaults.
16815 (Build_Record_Or_Elementary_Output_Procedure): Ditto.
16816 (Make_Component_List_Attributes): Ditto.
16818 2007-04-06 Ed Schonberg <schonberg@adacore.com>
16819 Bob Duff <duff@adacore.com>
16821 * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
16822 an association with a box as providing a value even though the
16823 initialization procedure for the type is not available.
16824 (Resolve_Record_Aggregate): Check that a choice of an association with a
16825 box corresponds to a component of the type.
16826 (Resolve_Record_Aggregate): Split Is_Abstract flag into
16827 Is_Abstract_Subprogram and Is_Abstract_Type.
16829 * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
16832 * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
16833 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
16834 called only when appropriate.
16836 2007-04-06 Olivier Hainque <hainque@adacore.com>
16838 * g-alleve.ads (Low Level Vector type definitions): Map each to the
16839 associated vector view instead of all to the unsigned char view.
16841 * g-altcon.adb (Generic_Conversions): New internal generic package,
16842 offering facilities for all the Vector/View conversion routines
16843 implemented by this unit.
16844 (To_View/To_Vector - all versions): Reimplemented in a systematic
16845 manner, using the internal Generic_Conversions facilities.
16847 2007-04-06 Pascal Obry <obry@adacore.com>
16849 * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
16851 (Create): Free the source string before storing the new one.
16853 2007-04-06 Vincent Celier <celier@adacore.com>
16855 * g-debpoo.adb (Validity): New package with a complete new
16856 implementation of subprograms Is_Valid and Set_Valid.
16857 (Is_Valid): Move to local package Validity
16858 (Set_Valid): Move to local package Validity
16860 2007-04-06 Arnaud Charlet <charlet@adacore.com>
16861 Pablo Oliveira <oliveira@adacore.com>
16863 * g-expect.adb (Get_Command_Output): When expanding the output buffer
16864 we must ensure that there is enough place for the new data we are going
16867 2007-04-06 Thomas Quinot <quinot@adacore.com>
16869 * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
16872 2007-04-06 Jose Ruiz <ruiz@adacore.com>
16873 Vincent Celier <celier@adacore.com>
16875 * gnatcmd.adb (B_Start): Add prefix of binder generated file.
16876 (Stack_String): Add this String that contains the name of the Stack
16877 package in the project file.
16878 (Packages_To_Check_By_Stack): Add this list that contains the packages
16879 to be checked by gnatstack, which are the naming and the stack packages.
16880 (Check_Files): If no .ci files were specified for gnatstack we add all
16881 the .ci files belonging to the projects, including binder generated
16883 (Non_VMS_Usage): Document that gnatstack accept project file switches.
16884 (GNATCmd): Update the B_Start variable if we are in a VMS environment.
16885 Add gnatstack to the list of commands that use project file related
16886 switches, and get the single attribute Switches from the stack package
16887 in a project file when calling gnatstack. Parse the -U flag for
16888 processing files belonging to all projects in the project tree.
16889 Remove all processing for command Setup
16891 * prj-attr.adb: Add new package Stack with single attribute Switches
16893 * vms_conv.ads (Command_Type): Add command Stack.
16894 Move to body declarations that are only used in the body: types Item_Id,
16895 Translation_Type, Item_Ptr, Item and its subtypes.
16897 * vms_conv.adb: (Initialize): Add data for new command Stack.
16898 Add declarations moved from the spec: types Item_Id, Translation_Type,
16899 Item_Ptr, Item and its subtypes.
16900 (Cargs_Buffer): New table
16901 (Cargs): New Boolean global variable
16902 (Process_Buffer): New procedure to create arguments
16903 (Place): Put character in table Buffer or Cargs_Buffer depending on the
16905 (Process_Argument): Set Cargs when processing qualifiers for GNAT
16907 (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
16908 empty, for table Cargs_Buffer.
16909 (Initialize): Remove component Setup in Command_List
16911 2007-04-06 Vincent Celier <celier@adacore.com>
16913 * gprep.adb (Process_Files.Process_One_File): Use full file name when
16914 issuing pragma Source_Reference.
16916 2007-04-06 Emmanuel Briot <briot@adacore.com>
16918 * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
16919 [[:xdigit:]] character class.
16920 Also raise an exception when an invalid character class is used.
16922 2007-04-06 Pascal Obry <obry@adacore.com>
16924 * i-cstrea.ads: (fopen): Add encoding parameter.
16926 Change reference from a-sysdep.c to sysdep.c in comment.
16927 Update copyright notice.
16928 This set of patch add support for the encoding form parameter.
16930 * mingw32.h (S2WSU): New macro to convert from a string to a
16931 wide-string using the UTF-8 encoding. The S2WS macro supports now only
16932 standard 8bits encoding.
16933 (WS2SU): As above but converting from wide-sring to string.
16934 This is needed as it is necessary to have access to both versions in the
16935 runtime for the form parameter encoding support.
16936 This set of patch add support for the encoding form parameter.
16937 (S2WS): Improve implementation to handle cases where the filename is not
16938 UTF-8 encoded. In this case we default to using the current code page
16939 for the conversion.
16941 * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
16942 type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
16943 the constants defined in adaint.h.
16944 (fopen): Add encoding parameter.
16947 * s-ficobl.ads (AFCB): Add Encoding field to record the filename
16948 encoding. This is needed for the Reset routine (freopen low level-call).
16950 * s-fileio.adb (Open): Decode encoding form parameter and set the
16951 corresponding encoding value into AFCB structure.
16952 (Reset): Pass the encoding value to freopen.
16953 (Close): Move the call to Lock_Task to the beginning of the procedure.
16955 2007-04-06 Geert Bosch <bosch@adacore.com>
16956 Robert Dewar <dewar@adacore.com>
16958 * i-fortra.ads: Add Double_Complex type.
16960 * impunit.adb: (Is_Known_Unit): New function
16961 Add Gnat.Byte_Swapping
16963 Add new Ada 2005 units
16964 Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
16965 Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
16966 Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
16967 Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
16969 * impunit.ads (Is_Known_Unit): New function
16971 * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
16972 a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
16973 a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
16974 g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
16975 s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
16976 s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
16979 * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
16981 * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
16983 2007-04-06 Eric Botcazou <botcazou@adacore.com>
16984 Arnaud Charlet <charlet@adacore.com>
16986 * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
16987 __gnat_adjust_context_for_raise.
16988 (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
16989 implementation of floating point operations as native x86 targets.
16990 So the FPU should be initialized in the same way using finit. Fix
16991 floating point operations accuracy issues.
16992 (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
16993 member in struct sigaction, so as to avoid warning for incompatible
16996 2007-04-06 Serguei Rybin <rybin@adacore.com>
16998 * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
16999 switches from previously loaded tree
17001 2007-04-06 Thomas Quinot <quinot@adacore.com>
17003 * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
17004 cases where a given dependency has a body or not.
17005 (Write_With_File_Names): New subprogram, common code for the two cases
17008 2007-04-06 Ed Schonberg <schonberg@adacore.com>
17009 Javier Miranda <miranda@adacore.com>
17011 * lib-xref.ads, lib-xref.adb:
17012 Modify the loop that collects type references, to include interface
17013 types that the type implements. List each of these interfaces when
17014 building the entry for the type.
17015 (Generate_Definition): Initialize component Def and Typ of new entry
17016 in table Xrefs, to avoid to have these components unitialized.
17017 (Output_References): Split Is_Abstract flag into
17018 Is_Abstract_Subprogram and Is_Abstract_Type.
17019 (Generate_Reference): Add barrier to do not generate the warning
17020 associated with Ada 2005 entities with entities generated by the
17023 2007-04-06 Robert Dewar <dewar@adacore.com>
17024 Arnaud Charlet <charlet@adacore.com>
17025 Vincent Celier <celier@adacore.com>
17027 * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
17028 Update 'Exception Handling Control' chapter which was outdated.
17029 Minor fix to documentation of -gnatwq
17030 Remove section "Adapting the Run Time to a New C++ Compiler" because
17031 it is now obsolete.
17032 Add passage on need of -nostart-files in some non-ada-main cases.
17033 Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
17034 Update documentation about Interfacing with C++
17035 Add documentation for new gnatmake switch -p
17036 Add missing protocol part in URLs.
17038 Document pragma Compile_Time_Error
17039 Add documentation for Object_Size indicating that stand alone
17040 objects can have a larger size in some cases.
17041 Add node for GNAT.Byte_Swapping, GNAT.SHA1
17042 Update reference to the Ravenscar profile.
17043 Document pragma Unreferenced_Objects
17045 * gnat-style.texi: Fix typo
17047 2007-04-06 Vincent Celier <celier@adacore.com>
17049 * mlib.adb (Building_Library): Only output "building a library..." in
17052 * mlib-prj.adb (Build_Library): Only output lists of object and ALI
17053 files in verbose mode.
17055 * mlib-utl.adb (Ar): Only output the first object files when not in
17057 (Gcc): Do not display all the object files if not in verbose mode, only
17060 2007-04-06 Robert Dewar <dewar@adacore.com>
17062 * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
17063 it no longer destroys the contents of Name_Buffer or Name_Len and
17064 non-standard and invalid names are handled better.
17065 (Get_Decoded_Name_String): Improve performance by using
17066 Name_Has_No_Encodings flag in the name table.
17067 (Is_Valid_Name): New function to determine whether a Name_Id is valid.
17068 Used for debugging printouts.
17070 2007-04-06 Robert Dewar <dewar@adacore.com>
17071 Javier Miranda <miranda@adacore.com>
17072 Bob Duff <duff@adacore.com>
17074 * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
17075 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
17076 there is no need to generate always a record_definition_node in case
17077 of synchronized interface types.
17078 (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
17079 (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
17080 illegal in Ada 95, in cases where it is legal. Change the warnings to
17081 errors in other cases. Don't give the error unless the "not null"
17082 parses properly. Correct the source position at which the error occurs.
17083 (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
17084 P_Null_Exclusion, to suppress "not null" warnings.
17085 (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
17086 associated goto statements.
17088 * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
17091 * scans.ads (Type_Token_Location): New flag
17093 * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
17094 (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
17095 P_Null_Exclusion, to suppress "not null" warnings.
17097 2007-04-06 Robert Dewar <dewar@adacore.com>
17098 Javier Miranda <miranda@adacore.com>
17099 Bob Duff <duff@adacore.com>
17100 Vincent Celier <celier@adacore.com>
17102 * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
17103 (Extensions_Allowed): No longer sets Ada_Version
17104 Entry for pragma Unreferenced_Objects
17106 * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
17107 system.tasking if pragma priority used in a procedure
17108 (Analyze_Pragma, case Warning): Handle dot warning switches
17109 (Process_Compile_Time_Warning_Or_Error): New procedure
17110 (Analyze_Pragma): Add processing for Compile_Time_Error
17111 Add support for extra arguments External_Name and Link_Name.
17112 Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
17113 (Process_Import_Or_Interface): Add support for the use of pragma Import
17115 (Extensions_Allowed): No longer affects Ada_Version
17116 (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
17117 Is_Abstract_Type. Make sure these are called only when appropriate.
17118 Add processing for pragma Unreferenced_Objects
17120 * snames.h, snames.ads, snames.adb: Add entry for pragma
17122 Add new standard name Minimum_Binder_Options for new gprmake
17123 Add new standard names for gprmake: Archive_Suffix,
17124 Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
17125 Library_Support, Library_Version_Options,
17126 Shared_Library_Minimum_Options,
17127 Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
17128 Change Name_Call to Name_uCall so that it cannot clash with a legal
17130 Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
17131 Append C_Plus_Plus to convention identifiers as synonym for CPP
17132 Add new standard names Stack and Builder_Switches
17133 Add new standard names: Compiler_Minimum_Options, Global_Config_File,
17134 Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
17135 Run_Path_Option, Toolchain_Version.
17136 Entry for pragma Unreferenced_Objects
17138 * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
17139 switches, without repetition of "eD". Make sure that last character of
17140 -gnatep= switch is not taken as -gnat switch character.
17141 Complete rewrite of circuit for handling saving compilation options
17142 Occasioned by need to support dot switchs for -gnatw, but cleans up
17144 -gnatX does not affect Ada_Version
17145 Include -gnatyA in -gnatg style switches
17147 * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
17148 warnings on return objects.
17149 (Warn_On_Useless_Assignment): Exclude warnings on return objects
17150 (Set_Dot_Warning_Switch): New procedure
17151 (Check_References): Add missing case of test for
17152 Has_Pragma_Unreferenced_Objects
17153 (Output_Unreferenced_Messages): Implement effect of new pragma
17154 Unreferenced_Objects, remove special casing of limited controlled
17157 2007-04-06 Vincent Celier <celier@adacore.com>
17159 * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
17160 the default project path, initially done during elaboration of the
17162 If the prefix returned by Sdefault is null, get the prefix from a call
17163 to Executable_Prefix_Path.
17164 (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
17167 * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
17168 canonical directory name to open the directory from which files are
17170 (Record_Other_Sources): Idem.
17171 (Locate_Directory): Add the possibility to create automatically missing
17172 directories when Setup_Projects is True.
17173 Call Locate_Directory so that the directory will be created when
17174 Setup_Projects is True, for object dir, library dir, library ALI dir,
17175 library source copy dir and exec dir.
17177 * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
17180 2007-04-06 Robert Dewar <dewar@adacore.com>
17182 * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
17183 Use First/Next_Component_Or_Discriminant
17184 (Analyze_Record_Representation_Clause):
17185 Use First/Next_Component_Or_Discriminant
17186 (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
17187 (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
17188 definition if type is unconstrained.
17189 (Adjust_Record_For_Reverse_Bit_Order): New procedure
17190 (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
17191 Is_Abstract_Subprogram and Is_Abstract_Type.
17192 (Adjust_Record_For_Reverse_Bit_Order): New procedure
17194 * repinfo.adb (List_Record_Info): Use First/
17195 Next_Component_Or_Discriminant.
17197 * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
17200 * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
17201 Include -gnatyA in default switches
17203 * opt.ads: (Warn_On_Non_Local_Exception): New flag
17204 (Warn_On_Reverse_Bit_Order): New flag
17205 (Extensions_Allowed): Update the documentation.
17206 (Warn_On_Questionable_Missing_Parens): Now on by default
17208 * usage.adb: Add documentation of -gnatw.x/X switches
17209 Document new -gnatyA style switch
17210 -gnatq warnings are on by default
17212 2007-04-06 Ed Falis <falis@adacore.com>
17214 * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
17215 full word is no longer compared twice.
17217 2007-04-06 Ed Schonberg <schonberg@adacore.com>
17219 * sem_ch10.adb (Install_Limited_Context_Clauses.
17220 Expand_Limited_With_Clause): Use a new copy of selector name in the
17221 call to Make_With_Clause. This fixes the tree structure for ASIS
17222 purposes. Nothing is changed in the compiler behaviour.
17223 (Process_Body_Clauses): Handle properly use clauses whose prefix is
17224 a package renaming.
17225 (Install_Limited_With_Clauses): Do not install non-limited view when it
17226 is still incomplete.
17228 2007-04-06 Ed Schonberg <schonberg@adacore.com>
17229 Gary Dismukes <dismukes@adacore.com>
17231 * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
17232 when capturing size information, instead of base type, which for a
17233 formal array type will be the unconstrained type.
17234 (Analyze_Formal_Object_Declaration): Add check for illegal default
17235 expressions for a formal in object of a limited type.
17236 (Instantiate_Object): Ditto.
17237 (Check_Formal_Package_Instance): Skip entities that are formal objects,
17238 because they were defaulted in the formal package and no check applies
17240 (Check_Formal_Package_Instance): Extend conformance check to other
17241 discrete types beyond Integer.
17242 (Process_Default): Copy directly the unmatched formal. A generic copy
17243 has already been performed in Analyze_Formal_Package.
17244 (Analyze_Associations): If a formal subprogram has no match, check for
17245 partial parametrization before looking for a default, to prevent
17247 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
17248 not set the instantiation environment before analyzing the actuals.
17249 Fixes regression on 8515-003 with implementation of AI-133.
17250 Set_Instance_Env checks whether the generic unit is a predefined
17251 unit, in which case the instance must be analyzed with the latest Ada
17252 mode. This setting must take place after analysis of the actuals,
17253 because the actuals must be analyzed and frozen in the Ada mode extant
17254 outside of the current instantiation.
17255 (Save_Env, Restore_Env): Preserve and restore the configuration
17256 parameters so that predefined units can be compiled in the proper Ada
17258 (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
17259 Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
17260 and Is_Abstract_Type.
17261 (Analyze_Formal_Package): For better error recovery, Add exception
17262 handler to catch Instantion_Error, which can be raised in
17263 Analyze_Associations
17265 2007-04-06 Ed Schonberg <schonberg@adacore.com>
17266 Bob Duff <duff@adacore.com>
17267 Gary Dismukes <dismukes@adacore.com>
17269 * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
17270 prefix type is a discriminated subtype of the type of the formal.
17271 (Analyze_Allocator): Collect all coextensions regardless of the context.
17272 Whether they can be allocated statically is determined in exp_ch4.
17273 (Analyze_Selected_Component): If the prefix is a limited view and the
17274 non-limited view is available, use the non-limited one.
17275 (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
17276 therefore illegal), suggest a qualified expression rather than a type
17277 conversion, because a type conversion would be illegal in this context.
17278 (Anayze_Allocator): Trace recursively all nested allocators so that all
17279 coextensions are on the corresponding list for the root. Do no mark
17280 coextensions if the root allocator is within a declaration for a stack-
17281 allocated object, because the access discriminants will be allocated on
17283 (Analyze_Call): Remove restriction on calls to limited functions for the
17284 cases of generic actuals for formal objects, defaults for formal objects
17285 and defaults for record components.
17286 (Analyze_Allocator): Before analysis, chain coextensions on the proper
17287 element list. Their expansion is delayed until the enclosing allocator
17288 is processed and its finalization list constructed.
17289 (Try_Primitive_Operation): If the prefix is a concurrent type, looks
17290 for an operation with the given name among the primitive operations of
17291 the corresponding record type.
17292 (Analyze_Selected_Component): If the prefix is a task type that
17293 implements an interface, and there is no entry with the given name,
17294 check whether there is another primitive operation (e.g. a function)
17296 (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
17297 properly the indexing of a function call written in prefix form, where
17298 the function returns an array type, and all parameters of the function
17299 except the first have defaults.
17300 (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
17301 the original operands, rather than relocating them, for efficiency and
17302 to work properly when an operand is overloaded.
17303 (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
17304 Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
17305 (Analyze_Selected_Component): If the prefix is a private extension, only
17306 scan the visible components, not those of the full view.
17307 (Try_Primitive_Operation): If the operation is a procedure, collect all
17308 possible interpretations, as for a function, because in the presence of
17309 classwide parameters several primitive operations of the type can match
17310 the given arguments.
17312 2007-04-06 Ed Schonberg <schonberg@adacore.com>
17313 Robert Dewar <dewar@adacore.com>
17315 * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
17316 tag-indeterminate call to an abstract function, when the left-hand side
17318 (Analyze_Loop_Statement): Improve detection of infinite loops
17320 2007-04-06 Ed Schonberg <schonberg@adacore.com>
17321 Thomas Quinot <quinot@adacore.com>
17323 * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
17324 out of Analyze_Package_Declaration, because processing must be applied
17325 to package bodies as well, for deferred constants completed by pragmas.
17326 (Analyze_Package_Declaration): When the package declaration being
17327 analyzed does not require an explicit body, call Check_Completion.
17328 (May_Need_Implicit_Body): An implicit body is required when a package
17329 spec contains the declaration of a remote access-to-classwide type.
17330 (Analyze_Package_Body): If the package contains RACWs, append the
17331 pending subprogram bodies generated by exp_dist at the end of the body.
17332 (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
17333 Is_Abstract_Subprogram and Is_Abstract_Type.
17334 (Preserve_Full_Attributes): The full entity list is not an attribute
17335 that must be preserved from full to partial view.
17337 * sem_dist.adb (Add_RAS_Dereference_TSS):
17338 Change primitive name to _Call so it cannot clash with any legal
17339 identifier, and be special-cased in Check_Completion.
17340 Mark the full view of the designated type for the RACW associated with
17341 a RAS as Comes_From_Source to get proper view switching when installing
17342 private declarations.
17343 Provite a placeholder nested package body along with the nested spec
17344 to have a place for Append_RACW_Bodies to generate the calling stubs
17345 and stream attributes.
17347 2007-04-06 Ed Schonberg <schonberg@adacore.com>
17348 Robert Dewar <dewar@adacore.com>
17350 * sem_ch8.adb (Has_Components): If the argument is an incomplete type
17351 that is a limited view, check the non-limited view if available.
17352 (Undefined): Refine error message for missing with of Text_IO
17353 (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
17354 to distinguish real missing with cases.
17355 Fix format of all missing with messages
17356 (Analyze_Subprogram_Renaming): Emit proper error message on illegal
17357 renaming as body when renamed entity is abstract.
17359 2007-04-06 Ed Schonberg <schonberg@adacore.com>
17360 Javier Miranda <miranda@adacore.com>
17362 * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
17363 predicate recursive, to handle complex expressions on literals whose
17364 spurious ambiguity comes from the abstract interpretation of some
17366 (Interface_Present_In_Ancestor): Add support to concurrent record
17368 (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
17369 Is_Abstract_Subprogram and Is_Abstract_Type.
17371 2007-04-06 Ed Schonberg <schonberg@adacore.com>
17372 Javier Miranda <miranda@adacore.com>
17374 * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
17375 dereference of a local object R created as a reference to another
17376 object O, use the access level of O.
17377 (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
17378 rather than local Same_Formal_Type, to check whether protected operation
17379 overrides an inherited one.
17380 (Same_Formal_Type): New predicate, used when matching signatures of
17381 overriding synchronized operations, to handle the case when a formal
17382 has a type that is a generic actual.
17383 (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
17384 predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
17385 (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
17386 syntactic ambiguities involving indexing of function calls that return
17388 (Abstract_Interface_List): New subprogram that returns the list of
17389 abstract interfaces associated with a concurrent type or a
17390 concurrent record type.
17391 (Interface_Present_In_Parent): New subprogram used to check if a
17392 given type or some of its parents implement a given interface.
17393 (Collect_Abstract_Interfaces): Add support for concurrent types
17394 with interface types.
17395 (Has_Abstract_Interfaces): Add support for concurrent types with
17397 (Is_Parent): New subprogram that determines whether E1 is a parent
17398 of E2. For a concurrent type its parent is the first element of its
17399 list of interface types; for other types this function provides the
17400 same result than Is_Ancestor.
17401 (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
17402 (Collect_Synchronized_Interfaces): Removed because the subprogram
17403 Collect_Abstract_Interfaces provides this functionality.
17404 (Collect_Abstract_Interfaces): Minor update to give support to
17405 concurrent types and thus avoid undesired code duplication.
17406 (Get_Subprogram_Entity): Handle entry calls.
17407 (May_Be_Lvalue): Include actuals that appear as in-out parameters in
17409 (Enter_Name): Do not give -gnatwh hiding warning for record component
17410 entities, they never result in hiding.
17412 2007-04-06 Ed Schonberg <schonberg@adacore.com>
17413 Robert Dewar <dewar@adacore.com>
17415 * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
17416 to chain nested components that are allocators for access discriminants
17417 of the enclosing object.
17418 Add N_Push and N_Pop nodes
17419 New field Exception_Label added
17420 (Local_Raise_Statements): New field in N_Exception_Handler_Node
17421 (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
17422 (Is_Coextension): New flag for allocators, to mark allocators that
17423 correspond to access discriminants of dynamically allocated objects.
17424 (N_Block_Statement): Document the fact that the corresponding entity
17425 can be an E_Return_Statement.
17426 (Is_Coextension): New flag for allocators.
17427 Remove all code for DSP option
17429 * sprint.ads, sprint.adb: Display basic information for class_wide
17430 subtypes. Add handling of N_Push and N_Pop nodes
17432 2007-04-06 Arnaud Charlet <charlet@adacore.com>
17434 * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
17435 before propagating exception.
17437 2007-04-06 Olivier Hainque <hainque@adacore.com>
17439 * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
17440 an address always within the call instruction from a return address.
17442 2007-04-06 Olivier Hainque <hainque@adacore.com>
17443 Eric Botcazou <botcazou@adacore.com>
17445 * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
17446 expression with a COMPOUND_EXPR including the call instead of emitting
17447 the call directly here.
17448 (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
17449 high bound is constant and the slice is empty. Tidy.
17450 (tree_transform, case N_Op_Not): Handle properly the case where the
17451 operation applies to a private type whose full view is a modular type.
17452 (Case_Statement_To_gnu): If an alternative is an E_Constant with an
17453 Address_Clause, use the associated Expression as the GNAT tree
17454 representing the choice value to ensure the corresponding GCC tree is
17455 of the proper kind.
17456 (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
17457 instead of just the operands, as the base GCC stabilize_reference does.
17458 <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
17459 requested; otherwise fail.
17460 (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
17462 2007-04-06 Thomas Quinot <quinot@adacore.com>
17464 * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
17465 implementation of UI_Div.
17466 (UI_Div): Reimplement as a call to UI_Div_Rem.
17467 (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
17468 remainder, avoiding the cost of a multiplication and a subtraction.
17469 (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
17470 provides both quotient and remainder in a single computation.
17471 (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
17472 functions for uint.
17473 (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
17474 is undefined if the given n is not inversible.
17476 2007-04-06 Olivier Hainque <hainque@adacore.com>
17478 * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
17479 BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
17482 2007-04-06 Eric Botcazou <botcazou@adacore.com>
17483 Olivier Hainque <hainque@adacore.com>
17485 * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
17486 when updating the contents of the old pointer to an unconstrained array.
17487 (end_subprog_body): Set error_gnat_node to Empty.
17488 (write_record_type_debug_info): Do not be unduly sparing with our bytes.
17489 (unchecked_convert): For subtype to base type conversions, require that
17490 the source be a subtype if it is an integer type.
17491 (builtin_decls): New global, vector of available builtin functions.
17492 (gnat_pushdecl): Add global builtin function declaration nodes to the
17493 builtin_decls list.
17494 (gnat_install_builtins): Adjust comments.
17495 (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
17496 calling gnat_pushdecl, so that it knows when it handed a builtin
17497 function declaration node.
17498 (builtin_decl_for): Search the builtin_decls list.
17500 2007-04-06 Eric Botcazou <botcazou@adacore.com>
17502 * s-stchop-vxworks.adb:
17503 (Stack_Check): Raise Storage_Error if the argument has wrapped around.
17505 2007-04-06 Robert Dewar <dewar@adacore.com>
17506 Arnaud Charlet <charlet@adacore.com>
17508 * a-diroro.ads: Inserted the pragma Unimplemented_Unit
17510 * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
17512 Add mention of -Sev (set initialize_scalars option from environment
17513 variable at run time) in gnatbind usage message.
17515 * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
17517 * fname-uf.ads: Minor comment fix
17519 * osint.ads: Change pragma Elaborate to Elaborate_All
17521 * par-load.adb: Add documentation.
17523 * sem_cat.ads, sem_cat.adb: Minor code reorganization
17525 * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
17527 * s-secsta.ads: Extra comments
17529 * s-soflin.ads: Minor comment fixes
17531 * s-stratt.ads (Block_Stream_Ops_OK): Removed.
17533 * s-wchcon.ads: Minor comment addition
17535 * treepr.adb: Minor change in message
17536 (Print_Name,Print_Node): Make these debug printouts more robust: print
17537 "no such..." instead of crashing on bad input.
17539 2007-03-30 Rafael Ávila de Espíndola <espindola@google.com>
17541 * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
17542 instead of gnat_signed_or_unsigned_type.
17543 * utils.c (gnat_signed_or_unsigned_type): Remove.
17544 * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
17545 * gigi.h (gnat_signed_or_unsigned_type): Remove
17547 2007-03-09 Roger Sayle <roger@eyesopen.com>
17549 * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
17550 fold with the result of buildN.
17551 * decl.c (gnat_to_gnu_entity): Likewise.
17552 * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
17553 * utils.c (finish_record_type, merge_sizes, max_size, convert):
17555 * utils2.c (gnat_truthvalue_conversion, compare_arrays,
17556 nonbinary_modular_operation, build_binary_op, build_unary_op,
17557 build_cond_expr): Likewise.
17559 * utils.c (convert): Use fold_build1 when casting values to void.
17560 * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
17561 fold_convert instead of convert when appropriate.
17563 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
17565 * Make-lang.in: Add install-pdf target as copied from
17566 automake v1.10 rules.
17568 2007-02-28 Andreas Schwab <schwab@suse.de>
17570 * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
17571 $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
17572 (doc/gnat-style.info): Likewise.
17574 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
17576 * gnat-style.texi: Standardize title page.
17577 * gnat_rm.texi: Likewise.
17578 * gnat_ugn.texi: Likewise.
17580 2007-02-25 Mark Mitchell <mark@codesourcery.com>
17582 * decl.c (annotate_value): Adjust for refactoring of tree_map
17585 2007-02-24 Mark Mitchell <mark@codesourcery.com>
17587 * decl.c (annotate_value): Adjust for refactoring of tree_map
17590 2007-02-21 Ed Schonberg <schonberg@adacore.com>
17593 * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
17594 untagged derived type, add hidden components to keep discriminant
17595 layout consistent, when a given discriminant of the derived type
17596 constraints several discriminants of the parent type.
17598 2007-02-16 Eric Botcazou <ebotcazou@adacore.com>
17599 Sandra Loosemore <sandra@codesourcery.com>
17601 * trans.c (call_to_gnu): Use build_call_list instead of build3 to
17602 build the call expression.
17603 (gnat_stabilize_reference_1): Handle tcc_vl_exp.
17604 * utils.c (max_size) <tcc_exceptional>: Delete.
17605 <tcc_vl_exp>: New case.
17606 <tcc_expression>: Delete CALL_EXPR subcase.
17607 (build_global_cdtor): Use build_call_nary instead of build3.
17608 * utils2.c (build_call_1_expr): Likewise.
17609 (build_call_2_expr): Likewise.
17610 (build_call_0_expr): Likewise.
17611 (build_call_alloc_dealloc): Likewise.
17613 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
17615 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
17616 get_action_description_for): Replace _Unwind_Word with _uleb128_t
17617 and _Unwind_SWord with _sleb128_t.
17619 2007-02-06 Paolo Bonzini <bonzini@gnu.org>
17621 * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
17622 * decl.c: Include gt-ada-decl.h.
17623 (annotate_value_cache): New.
17624 (annotate_value): Use it instead of TREE_COMPLEXITY.
17626 2007-02-03 Kazu Hirata <kazu@codesourcery.com>
17628 * misc.c, utils2.c: Fix comment typos.
17630 2007-01-24 Roger Sayle <roger@eyesopen.com>
17632 * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
17633 TREE_CONSTANT_OVERFLOW.
17634 (allocatable_size_p, annotate_value): Likewise.
17635 * trans.c (gnat_to_gnu): Likewise.
17636 * utils.c (unchecked_convert): Likewise.
17637 * utils2.c (build_simple_component_ref): Likewise.
17639 2007-01-23 Richard Guenther <rguenther@suse.de>
17642 * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
17643 (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
17644 (gnatboot3): Likewise.
17645 (GNATBIND): Do not define.
17646 * Makefile.in (GNATBIND): Do not define.
17648 2007-01-08 Richard Guenther <rguenther@suse.de>
17650 * cuintp.c (build_cst_from_int): Use built_int_cst_type.
17651 * trans.c (gnat_to_gnu): Likewise.
17653 2006-12-07 Geoffrey Keating <geoffk@apple.com>
17655 * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
17656 * adaint.c: Likewise.
17658 2006-12-05 Aldy Hernandez <aldyh@redhat.com>
17660 Merge from gimple-tuples-branch:
17661 2006-11-02 Aldy Hernandez <aldyh@redhat.com>
17663 * ada-tree.h (lang_tree_node): Handle gimple tuples.
17664 * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
17665 GIMPLE_MODIFY_STMT.
17667 2006-12-02 Kazu Hirata <kazu@codesourcery.com>
17669 * Makefile.in, mingw32.h, trans.c: Fix comment typos.
17670 * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
17673 2006-11-17 Eric Botcazou <ebotcazou@adacore.com>
17676 * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
17677 if the initializer takes into account the padding.
17679 2006-11-11 Richard Guenther <rguenther@suse.de>
17681 * trans.c (maybe_stabilize_reference): Remove handling of
17682 FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
17684 2006-11-05 Arnaud Charlet <charlet@adacore.com>
17687 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
17688 (To_Target_Priority): New function.
17690 2006-10-31 Robert Dewar <dewar@adacore.com>
17692 * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
17693 a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
17694 s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
17695 a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
17696 a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
17697 a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
17698 a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
17699 a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
17700 a-szbzha.adb: Minor reformatting. Fix header.
17702 * a-numaux-x86.adb: Add parentheses for use of unary minus
17703 * a-ngcefu.adb: Supply missing parentheses for unary minus
17704 * a-ngcoty.adb: Add parens for use of unary minus
17705 * a-ngelfu.adb: Add missing parens for unary minus
17706 * a-tifiio.adb: Add parentheses for uses of unary minus
17708 2006-10-31 Robert Dewar <dewar@adacore.com>
17709 Bob Duff <duff@adacore.com>
17710 Ed Schonberg <schonberg@adacore.com>
17712 * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
17713 with multiplying operator.
17714 (Expected_Type_Is_Any_Real): New function to determine from the Parent
17715 pointer whether the context expects "any real type".
17716 (Resolve_Arithmetic_Op): Do not give an error on calls to the
17717 universal_fixed "*" and "/" operators when they are used in a context
17718 that expects any real type. Also set the type of the node to
17719 Universal_Real in this case, because downstream processing requires it
17720 (mainly static expression evaluation).
17721 Reword some continuation messages
17722 Add some \\ sequences to continuation messages
17723 (Resolve_Call): Refine infinite recursion case. The test has been
17724 sharpened to eliminate some false positives.
17725 Check for Current_Task usage now includes entry barrier, and is now a
17726 warning, not an error.
17727 (Resolve): If the call is ambiguous, indicate whether an interpretation
17728 is an inherited operation.
17729 (Check_Aggr): When resolving aggregates, skip associations with a box,
17730 which are priori correct, and will be replaced by an actual default
17731 expression in the course of expansion.
17732 (Resolve_Type_Conversion): Add missing support for conversion from
17733 a class-wide interface to a tagged type. Minor code cleanup.
17734 (Valid_Tagged_Converion): Add support for abstact interface type
17736 (Resolve_Selected_Component): Call Generate_Reference here rather than
17737 during analysis, and use May_Be_Lvalue to distinguish read/write.
17738 (Valid_Array_Conversion): New procedure, abstracted from
17739 Valid_Conversion, to incorporate accessibility checks for arrays of
17740 anonymous access types.
17741 (Valid_Conversion): For a conversion to a numeric type occurring in an
17742 instance or inlined body, no need to check that the operand type is
17743 numeric, since this has been checked during analysis of the template.
17744 Remove legacy test for scope name Unchecked_Conversion.
17746 * sem_res.ads: Minor reformatting
17748 * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
17749 (PE_Current_Task_In_Entry_Body): New exception code
17750 (SE_Restriction_Violation): Removed, not used
17752 * a-except.ads: Update comments.
17754 * types.h, types.ads: Add definition for Validity_Check
17755 (PE_Current_Task_In_Entry_Body): New exception code
17756 (SE_Restriction_Violation): Removed, not used
17758 2006-10-31 Thomas Quinot <quinot@adacore.com>
17760 * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
17763 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
17764 Jose Ruiz <ruiz@adacore.com>
17766 * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
17767 part of Ada.Calendar: all subprogram raise Unimplemented.
17768 (Split_W_Offset): Temp function body, raising Unimplemented
17770 * a-calend.ads, a-calend-vms.ads:
17771 Add imported variable Invalid_TZ_Offset used to designate targets unable
17772 to support time zones.
17773 (Unimplemented): Temporary function raised by the body of new
17775 (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
17776 unit provides handling of leap seconds and is used by the new Ada 2005
17777 packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
17778 (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
17779 version returns an extra value which is the offset to UTC.
17781 * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
17782 (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
17783 (Split_W_Offset): New function body.
17784 (Time_Of): When a date is close to UNIX epoch, compute the time for
17785 that date plus one day (that amount is later substracted after
17786 executing mktime) so there are no problems with time zone adjustments.
17788 * a-calend-mingw.adb: Remove Windows specific version no longer needed.
17790 * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
17791 a-catizo.ads, a-catizo.adb: New files.
17793 * impunit.adb: Add new Ada 2005 entries
17795 * sysdep.c: Add external variable __gnat_invalid_tz_offset.
17796 Rename all occurences of "__gnat_localtime_r" to
17797 "__gnat_localtime_tzoff".
17798 (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
17799 zone data and calculate the GMT offset.
17800 (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
17801 Use the field "tm_gmtoff" to extract the GMT offset.
17802 (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
17803 the external variable "timezone" to calculate the GMT offset.
17805 2006-10-31 Arnaud Charlet <charlet@adacore.com>
17806 Jose Ruiz <ruiz@adacore.com>
17808 * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
17809 s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
17810 s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
17811 s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
17812 System.Any_Priority to a POSIX priority on the target.
17814 * system-linux-ia64.ads:
17815 Extend range of Priority types on Linux to use the whole range made
17816 available by the system.
17818 * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
17819 function maps from System.Any_Priority to a POSIX priority on the
17821 (PTHREAD_PRIO_PROTECT): Set real value.
17822 (PTHREAD_PRIO_INHERIT): Now a function.
17823 (SIGCPUFAIL): New signal.
17824 (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
17825 are documented as reserved by the OS.
17827 * system-aix.ads: Use the full range of priorities provided by the
17830 * s-taprop-posix.adb: Call new function To_Target_Priority.
17831 (Set_Priority): Take into account Task_Dispatching_Policy and
17832 Priority_Specific_Dispatching pragmas when determining if Round Robin
17833 must be used for scheduling the task.
17835 * system-linux-x86_64.ads, system-linux-x86.ads,
17836 system-linux-ppc.ads: Extend range of Priority types on Linux to use
17837 the whole range made available by the system.
17839 * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
17840 s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
17841 s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
17842 when deallocating the TCB in order to avoid potential references to
17844 (Set_Priority): Take into account Task_Dispatching_Policy and
17845 Priority_Specific_Dispatching pragmas when determining if Round Robin
17846 or FIFO within priorities must be used for scheduling the task.
17848 * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
17849 the Thread field (to be used internally by the run-time system) and the
17850 kernel-level task id in the LWP field (to be used by the debugger).
17851 (Create_Task): Reorganize to unify the calls to taskSpawn into a single
17852 instance, and propagate the current task options to the spawned task.
17853 (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
17854 (Initialize): Set Round Robin dispatching when the corresponding pragma
17857 2006-10-31 Robert Dewar <dewar@adacore.com>
17859 * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
17860 system-linux-hppa.ads, system-hpux-ia64.ads,
17861 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
17862 system-vxworks-sparcv9.ads, system-solaris-x86.ads,
17863 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
17864 system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
17865 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
17866 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
17867 system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
17868 Default_Bit_Order) to kill constant condition warnings for references
17871 2006-10-31 Vincent Celier <celier@adacore.com>
17872 Eric Botcazou <ebotcazou@adacore.com>
17874 * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
17875 mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
17876 mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
17877 Ext_To, when building the library file name
17879 * mlib-tgt-vxworks.adb: ditto.
17880 (Get_Target_Suffix): Add support for x86 targets.
17882 * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
17884 * mlib-tgt-darwin.adb:
17885 Use Append_To, instead of Ext_To, when building the library file name
17886 (Flat_Namespace): New global variable.
17887 (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
17888 (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
17889 (Link_Shared_Libgcc): Delete.
17890 (Build_Dynamic_Library): Adjust for above changes.
17892 (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
17894 2006-10-31 Eric Botcazou <ebotcazou@adacore.com>
17896 * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
17897 (Initialize): Add type conversions required by above change.
17899 2006-10-31 Jose Ruiz <ruiz@adacore.com>
17901 * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
17902 (getpid): New body for this function that uses the underlying taskIdSelf
17903 function for VxWorks 5 and VxWorks 6 in kernel mode.
17904 (unsigned_int): New type, modular to allow logical bit operations.
17905 (taskOptionsGet): New imported function.
17907 * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
17908 field to be compliant with the type used by the corresponding operating
17911 2006-10-31 Pascal Obry <obry@adacore.com>
17912 Eric Botcazou <ebotcazou@adacore.com>
17913 Vincent Celier <celier@adacore.com>
17915 * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
17916 ASCII version of the registry API. This is needed as the GNAT runtime
17917 is now UNICODE by default.
17919 (get_gcc_version): Do not hardcode the return value.
17920 (__gnat_file_time_name): On Windows properly set the default returned
17921 value to -1 which corresponds to Invalid_Time.
17922 (__gnat_fopen): New routine. A simple wrapper on all plateforms
17923 except on Windows where it does conversion for unicode support.
17924 (__gnat_freopen): Idem.
17925 (__gnat_locate_exec_on_path): If environment variable PATH does not
17926 exist, return a NULL pointer
17928 * adaint.h: (__gnat_fopen): Declare.
17929 (__gnat_freopen): Likewise.
17931 * mingw32.h (_tfreopen): Define this macro here for older MingW
17933 Activate the unicode support on platforms using a MingW runtime
17934 version 3.9 or newer.
17936 * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
17937 This is needed for proper unicode support on Windows.
17940 2006-10-31 Eric Botcazou <ebotcazou@adacore.com>
17941 Nicolas Setton <setton@adacore.com>
17942 Olivier Hainque <hainque@adacore.com>
17943 Gary Dismukes <dismukes@adacore.com>
17945 * gigi.h: (tree_code_for_record_type): Declare.
17946 (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
17947 (get_global_renaming_pointers): Rename to
17948 invalidate_global_renaming_pointers.
17949 (static_ctors): Delete.
17950 (static_dtors): Likewise.
17951 (gnat_write_global_declarations): Declare.
17952 (create_var_decl): Adjust descriptive comment to indicate that the
17953 subprogram may return a CONST_DECL node.
17954 (create_true_var_decl): Declare new function, similar to
17955 create_var_decl but forcing the creation of a VAR_DECL node.
17956 (get_global_renaming_pointers): Declare.
17957 (add_global_renaming_pointer): Likewise.
17959 * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
17961 * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
17962 tree before setting TREE_ADDRESSABLE for by-reference return mechanism
17964 (gnat_to_gnu_entity): Remove From_With_Type from computation for
17966 <E_Access_Type>: Use the Non_Limited_View as the full view of the
17967 designated type if the pointer comes from a limited_with clause. Make
17968 incomplete designated type if it is in the main unit and has a freeze
17970 <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
17971 Underlying_Full_View similarly. Return earlier if the full view already
17972 has an associated tree.
17973 (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
17974 (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
17975 (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
17976 reference type built for objects with an address clause.
17977 Use create_true_var_decl with const_flag set for
17978 DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
17980 (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
17981 for Character and Wide_Character types. This info is read by the
17982 dwarf-2 writer, and is needed to be able to use the command "ptype
17983 character" in the debugger.
17984 (gnat_to_gnu_entity): When generating a type representing
17985 a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
17986 so that debug writers can distinguish it from ordinary integers.
17987 (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
17988 addition to TREE_READONLY to assert the constantness of variables for
17989 elaboration purposes.
17990 (gnat_to_gnu_entity, subprogram cases): Change loops on formal
17991 parameters to call new Einfo function First_Formal_With_Extras.
17992 (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
17993 protected type with its corresponding discriminant, to obtain a usable
17995 (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
17996 for a multiple elaboration of the "equivalent" type.
17997 (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
17998 into record_global_renaming_pointer.
17999 (gnat_to_gnu_entity) <E_Array_Type>: Do not force
18000 TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
18001 <E_Array_Subtype>: Likewise.
18002 (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
18003 incomplete subtypes and incomplete subtypes of incomplete types visible
18004 through a limited with clause.
18005 (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
18006 the base index type for the maximum size of the array only if they are
18008 (gnat_to_gnu_entity, renaming object case): Do not wrap up the
18009 expression into a SAVE_EXPR if stabilization failed.
18011 * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
18012 a result decl into DECL_BY_REFERENCE on this decl, now what is expected
18013 by lower level compilation passes.
18014 (gnat_genericize): New function, lowering a function body to GENERIC.
18015 Turn the type of RESULT_DECL into a real reference type if the decl
18016 has been marked DECL_BY_REFERENCE, and adjust references to the latter
18018 (gnat_genericize_r): New function. Tree walking callback for
18020 (convert_from_reference, is_byref_result): New functions. Helpers for
18022 (create_type_decl): Call gnat_pushdecl before calling
18023 rest_of_decl_compilation, to make sure that field TYPE_NAME of
18024 type_decl is properly set before calling the debug information writers.
18025 (write_record_type_debug_info): The heuristics which compute the
18026 alignment of a field in a variant record might not be accurate. Add a
18027 safety test to make sure no alignment is set to a smaller value than
18028 the alignment of the field type.
18029 (make_dummy_type): Use the Non_Limited_View as the underlying type if
18030 the type comes from a limited_with clause. Do not loop on the full view.
18031 (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
18032 (dummy_node_table): New global variable, moved from decl.c.
18033 (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
18034 (save_gnu_tree): Use above macros.
18035 (get_gnu_tree): Likewise.
18036 (present_gnu_tree): Likewise.
18037 (init_dummy_type): New function, moved from decl.c. Use above macros.
18038 (make_dummy_type): Likewise.
18039 (tree_code_for_record_type): New function extracted from make_dummy_type
18040 (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
18041 (static_ctors): Change it to a vector, make static.
18042 (static_dtors): Likewise.
18043 (end_subprog_body): Adjust for above change.
18044 (build_global_cdtor): Moved from trans.c.
18045 (gnat_write_global_declarations): Emit global constructor and
18046 destructor, and call cgraph_optimize before emitting debug info for
18047 global declarations.
18048 (global_decls): New global variable.
18049 (gnat_pushdecl): Store the global declarations in global_decls, for
18051 (gnat_write_global_declarations): Emit debug information for global
18053 (create_var_decl_1): Former create_var_decl, with an extra argument to
18054 state whether the creation of a CONST_DECL is allowed.
18055 (create_var_decl): Behavior unchanged. Now a wrapper around
18056 create_var_decl_1 allowing CONST_DECL creation.
18057 (create_true_var_decl): New function, similar to create_var_decl but
18058 forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
18059 (create_field_decl): Do not always mark the field as addressable
18060 if its type is an aggregate.
18061 (global_renaming_pointers): New static variable.
18062 (add_global_renaming_pointer): New function.
18063 (get_global_renaming_pointers): Likewise.
18065 * misc.c (gnat_dwarf_name): New function.
18066 (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
18067 (gnat_post_options): Add comment about structural alias analysis.
18068 (gnat_parse_file): Do not call cgraph_optimize here.
18069 (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
18071 * trans.c (process_freeze_entity): Don't abort if we already have a
18072 non dummy GCC tree for a Concurrent_Record_Type, as it might
18073 legitimately have been elaborated while processing the associated
18074 Concurrent_Type prior to this explicit freeze node.
18075 (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
18076 exception handler volatile if it is of variable size.
18077 (process_type): Remove bypass for types coming from a limited_with
18079 (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
18080 actual, convert the corresponding gnu_actual to the real destination
18081 type when necessary.
18082 (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
18083 originally TREE_READONLY but whose elaboration cannot be performed
18085 Part of fix for F504-021.
18086 (tree_transform, subprogram cases): Change loops on formal parameters to
18087 call new Einfo function First_Formal_With_Extras.
18088 (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
18089 stemming from type conversion for the lhs.
18090 (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
18091 number of bits per unit for components of records.
18092 (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
18093 (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
18094 with At_End_Proc after the SJLJ EH cleanup.
18095 (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
18097 (elaborate_all_entities): Do not retest type_annotate_only.
18098 (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
18099 result type of an abstract subprogram, which may be an itype associated
18100 with an anonymous access result (related to AI-318-02).
18101 (build_global_cdtor): Move to utils.c.
18102 (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
18103 this choice is not a null tree nor an integer constant.
18104 (gigi): Run unshare_save_expr via walk_tree_without_duplicates
18105 on the body of elaboration routines instead of mark_unvisited.
18106 (add_stmt): Do not mark the tree.
18107 (add_decl_expr): Tweak comment.
18108 (mark_unvisited): Delete.
18109 (unshare_save_expr): New static function.
18110 (call_to_gnu): Issue an error when making a temporary around a
18111 procedure call because of non-addressable actual parameter if the
18112 type of the formal is by_reference.
18113 (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
18114 after building the elaboration routine.
18116 2006-10-31 Bob Duff <duff@adacore.com>
18118 * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
18119 as finalization-started, so we can raise Program_Error on 'new'.
18121 * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
18122 collection has already started.
18124 * s-finimp.ads (Collection_Finalization_Started): Added new special
18125 flag value for indicating that a collection's finalization has started.
18127 * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
18128 create a task whose master has already waited for dependent tasks.
18130 2006-10-31 Robert Dewar <dewar@adacore.com>
18132 * lib.adb, lib.ads: (In_Predefined_Unit): New functions
18134 * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
18135 a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
18136 a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
18137 a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
18138 a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
18139 a-except-2005.ads: Add pragma Preelaborable_Warning
18141 2006-10-31 Robert Dewar <dewar@adacore.com>
18142 Jose Ruiz <ruiz@adacore.com>
18144 * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
18146 * ali.adb (Get_Name): Properly handle scanning of wide character names
18147 encoded with brackets notation.
18148 (Known_ALI_Lines): Add S lines to this list.
18149 (Scan_ALI): Acquire S (priority specific dispatching) lines.
18150 New flag Elaborate_All_Desirable in unit table
18152 * ali.ads (Priority_Specific_Dispatching): Add this range of
18153 identifiers to be used for Priority_Specific_Dispatching table entries.
18154 (ALIs_Record): Add First_Specific_Dispatching and
18155 Last_Specific_Dispatching that point to the first and last entries
18156 respectively in the priority specific dispatching table for this unit.
18157 (Specific_Dispatching): Add this table for storing each S (priority
18158 specific dispatching) line encountered in the input ALI file.
18159 New flag Elaborate_All_Desirable in unit table
18161 * bcheck.adb: (Check_Configuration_Consistency): Add call to
18162 Check_Consistent_Dispatching_Policy.
18163 (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
18164 verifying that the use of Priority_Specific_Dispatching,
18165 Task_Dispatching_Policy, and Locking_Policy is consistent across the
18168 * bindgen.adb: (Public_Version_Warning): function removed.
18169 (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
18170 required information from ALI files in order to initialize the table
18171 containing the specific dispatching policy.
18172 (Gen_Adainit_Ada): Generate the variables required for priority specific
18173 dispatching entries (__gl_priority_specific_dispatching and
18174 __gl_num_specific_dispatching).
18175 (Gen_Adainit_C): Generate the variables required for priority specific
18176 dispatching entries (__gl_priority_specific_dispatching and
18177 __gl_num_specific_dispatching).
18178 (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
18180 (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
18181 (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
18183 (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
18184 a call to gnat_set_globals.
18185 Generate a string containing settings from
18186 Priority_Specific_Dispatching pragma entries.
18187 (Gen_Object_Files_Options): Do not include the runtime libraries when
18188 pragma No_Run_Time is specified.
18190 * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
18191 consistency with s-intman-posix.adb.
18192 (__gnat_error_handler, case FreeBSD): Account for the fact that the
18193 handler is installed with SA_SIGINFO.
18194 (__gnat_adjust_context_for_raise, FreeBSD case): New function for
18195 FreeBSD ZCX support, copied from Linux version.
18196 Add MaRTE-specific definitions for the linux target. Redefine sigaction,
18197 sigfillset, and sigemptyset so the routines defined by MaRTE.
18198 (__gl_priority_specific_dispatching): Add this variable that stores the
18199 string containing priority specific dispatching policies in the
18201 (__gl_num_specific_dispatching): Add this variable that indicates the
18202 highest priority for which a priority specific dispatching pragma
18204 (__gnat_get_specific_dispatching): Add this routine that returns the
18205 priority specific dispatching policy, as set by a
18206 Priority_Specific_Dispatching pragma appearing anywhere in the current
18207 partition. The input argument is the priority number, and the result
18208 is the upper case first character of the policy name.
18209 (__gnat_set_globals): Now a dummy function.
18210 (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
18211 mechargs instead of sigargs, as the latter can be retrieved from the
18212 former and sigargs is not what we want on ia64.
18213 (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
18215 (__gnat_adjust_context_for_raise, ia64-vms): New function.
18216 (tasking_error): Remove unused symbol.
18217 (_abort_signal): Move this symbol to the IRIX specific part since this
18218 is the only target that uses this definition.
18219 (Check_Abort_Status): Move this symbol to the IRIX specific part since
18220 this is the only target that uses this definition.
18221 (Lock_Task): Remove unused symbol.
18222 (Unlock_Task): Remove unused symbol.
18224 * lib-writ.adb (Write_ALI): Output new S lines for
18225 Priority_Specific_Dispatching pragmas.
18226 Implement new flag BD for elaborate body desirable
18228 * lib-writ.ads: Document S lines for Priority Specific Dispatching.
18229 (Specific_Dispatching): Add this table for storing the entries
18230 corresponding to Priority_Specific_Dispatching pragmas.
18231 Document new BD flag for elaborate body desirable
18233 * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
18236 2006-10-31 Javier Miranda <miranda@adacore.com>
18238 * a-tags.ads, a-tags.adb:
18239 (Predefined_DT): New function that improves readability of the code.
18240 (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
18241 Inherit_DT): Use the new function Predefined_DT to improve code
18243 (Register_Interface_Tag): Update assertion.
18244 (Set_Interface_Table): Update assertion.
18245 (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
18246 determining progenitor interfaces in Tags.
18247 (Inherit_CPP_DT): New subprogram.
18249 * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
18250 analysis of the thunk code.
18251 (Expand_Interface_Conversion): Handle run-time conversion of
18252 access to class wide types.
18253 (Expand_Dispatching_Call): When generating the profile for the
18254 subprogram itype for a dispatching operation, properly terminate the
18255 formal parameters chaind list (set the Next_Entity of the last formal
18257 (Collect_All_Interfaces): Removed. This routine has been moved to
18258 sem_util and renamed as Collect_All_Abstract_Interfaces.
18259 (Set_All_DT_Position): Hidden entities associated with abstract
18260 interface primitives are not taken into account in the check for
18261 3.9.3(10); this check is done with the aliased entity.
18262 (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
18263 interfacing with CPP by default.
18264 (Expand_Interface_Conversion): Add missing support for static conversion
18265 from an interface to a tagged type.
18266 (Collect_All_Interfaces): Add new out formal containing the list of
18267 abstract interface types to cleanup the subprogram Make_DT.
18268 (Make_DT): Update the code to generate the table of interfaces in case
18269 of abstract interface types.
18270 (Is_Predefined_Dispatching_Alias): New function that returns true if
18271 a primitive is not a predefined dispatching primitive but it is an
18272 alias of a predefined dispatching primitive.
18273 (Make_DT): If the ancestor of the type is a CPP_Class and we are
18274 compiling under full ABI compatibility mode we avoid the generation of
18275 calls to run-time services that fill the dispatch tables because under
18276 this mode we currently inherit the dispatch tables in the IP subprogram.
18277 (Write_DT): Emit an "is null" indication for a null procedure primitive.
18278 (Expand_Interface_Conversion): Use an address as the type of the formal
18279 of the internally built function that handles the case in which the
18280 target type is an access type.
18282 2006-10-31 Robert Dewar <dewar@adacore.com>
18284 * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
18286 2006-10-31 Robert Dewar <dewar@adacore.com>
18288 * bindusg.ads, bindusg.adb:
18289 Change to package and rename procedure as Display, which
18290 now ensures that it only outputs usage information once.
18292 2006-10-31 Jose Ruiz <ruiz@adacore.com>
18294 * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
18297 * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
18300 2006-10-31 Robert Dewar <dewar@adacore.com>
18301 Ed Schonberg <schonberg@adacore.com>
18303 * treepr.adb: Use new subtype N_Membership_Test
18305 * checks.ads, checks.adb: Add definition for Validity_Check
18306 (Range_Or_Validity_Checks_Suppressed): New function
18307 (Ensure_Valid): Test Validity_Check suppressed
18308 (Insert_Valid_Check): Test Validity_Check suppressed
18309 (Insert_Valid_Check): Preserve Do_Range_Check flag
18310 (Validity_Check_Range): New procedure
18311 (Expr_Known_Valid): Result of membership test is always valid
18312 (Selected_Range_Checks): Range checks cannot be applied to discriminants
18313 by themselves. Disabling those checks must also be done for task types,
18314 where discriminants may be used for the bounds of entry families.
18315 (Apply_Address_Clause_Check): Remove side-effects if address expression
18316 is non-static and is not the name of a declared constant.
18317 (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
18318 Code cleanup and new error messages.
18319 (Enable_Range_Check): Test for some cases of suppressed checks
18320 (Generate_Index_Checks): Suppress index checks if index checks are
18321 suppressed for array object or array type.
18322 (Apply_Selected_Length_Checks): Give warning for compile-time detected
18323 length check failure, even if checks are off.
18324 (Ensure_Valid): Do not generate a check on an indexed component whose
18325 prefix is a packed boolean array.
18326 * checks.adb: (Alignment_Checks_Suppressed): New function
18327 (Apply_Address_Clause_Check): New procedure, this is a completely
18328 rewritten replacement for Apply_Alignment_Check
18329 (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
18330 we request a discriminal value only in case of discriminants.
18331 (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
18332 assignments where the target subtype is unconstrained and the target
18333 object is a parameter or dereference (other aliased cases are known
18334 to be unconstrained).
18336 2006-10-31 Robert Dewar <dewar@adacore.com>
18338 * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
18339 prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
18340 vms_conv.adb: Fix bad table increment values (much too small)
18342 * table.adb (Realloc): Make sure we get at least some new elements
18343 Defends against silly small values for table increment
18345 2006-10-31 Robert Dewar <dewar@adacore.com>
18346 Ed Schonberg <schonberg@adacore.com>
18347 Bob Duff <duff@adacore.com>
18349 * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
18350 entities. Move other fields around to make this possible
18351 (Is_Derived_Type): Add missing call to Is_Type.
18352 (Extra_Formals): New function for subprograms, entries, subprogram
18354 (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
18355 (First_Formal_With_Extras): New function for subprogs, entries, subp
18357 (Write_Field28_Name): New procedure for node display of "Extra_Formals".
18358 Add node information for E_Return_Statement.
18359 (Elaborate_Body_Desirable): New flag
18360 (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
18361 to be Is_Inherently_Limited_Type, because return-by-reference has
18362 no meaning in Ada 2005.
18363 (E_Return_Statement): New entity kind.
18364 (Return_Applies_To): Field of E_Return_Statement.
18365 (Is_Return_Object): New flag in object entities.
18366 (Is_Dynamic_Scope): Make it True for E_Return_Statement.
18367 (Must_Have_Preelab_Init): New flag
18368 (Known_To_Have_Preelab_Init): New flag
18369 (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
18370 (Is_Visible_Formal): New flag on entities in formal packages.
18371 (Low_Bound_Known): New flag
18372 (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
18374 (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
18375 output when Id is an incomplete subtype.
18377 2006-10-31 Robert Dewar <dewar@adacore.com>
18379 * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
18380 Avoid abbreviation Creat
18381 (Finalize): List all sources in extended mail source if -gnatl
18383 Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
18384 (Finalize): Implement new -gnatl=xxx switch to output listing to file
18385 (Set_Specific_Warning_On): New procedure
18386 (Set_Specific_Warning_Off): New procedure
18387 Add implementation of new insertion \\
18388 (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
18389 (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
18391 (Error_Msg_Internal): Make sure that we set Last_Killed to
18392 True when a message from another package is suppressed.
18393 Implement insertion character ~ (insert string)
18394 (First_Node): Minor adjustments to get better placement.
18397 Implement new -gnatl=xxx switch to output listing to file
18400 Implement new -gnatl=xxx switch to output listing to file
18402 * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
18403 (Commands_To_Stdout): New flag
18404 Implement new -gnatl=xxx switch to output listing to file
18405 New switch Dump_Source_Text
18406 (Warn_On_Deleted_Code): New warning flag for -gnatwt
18407 Define Error_Msg_Line_Length
18408 (Warn_On_Assumed_Low_Bound): New switch
18410 * osint.ads, osint.adb
18411 (Normalize_Directory_Name): Fix bug.
18412 Implement new -gnatl=xxx switch to output listing to file
18413 (Concat): Removed, replaced by real concatenation
18414 Make use of concatenation now allowed in compiler
18415 (Executable_Prefix.Get_Install_Dir): First get the full path, so that
18416 we find the 'lib' or 'bin' directory even when the tool has been
18417 invoked with a relative path.
18418 (Executable_Name): New function taking string parameters.
18420 * osint-c.ads, osint-c.adb:
18421 Implement new -gnatl=xxx switch to output listing to file
18423 * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
18426 Implement new -gnatl=xxx switch to output listing to file
18427 Recognize new -gnatL switch
18428 (no longer keep in old warning about old style usage)
18429 Use concatenation to simplify code
18430 Recognize -gnatjnn switch
18431 (Scan_Front_End_Switches): Clean up handling of -gnatW
18432 (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
18434 2006-10-31 Robert Dewar <dewar@adacore.com>
18436 * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
18437 (Set_Specific_Warning_Off): New procedure
18438 (Warning_Specifically_Suppressed): New function
18439 (Validate_Specific_Warnings): New procedure
18440 (Output_Msg_Text): Complete rewrite to support -gnatjnn
18442 * err_vars.ads: Implement insertion character ~ (insert string)
18444 2006-10-31 Bob Duff <duff@adacore.com>
18445 Ed Schonberg <schonberg@adacore.com>
18447 * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
18448 the parent part is a build-in-place function call, generate assignments.
18449 (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
18450 are build-in-place function calls.
18451 (Replace_Self_Reference): New subsidiary of
18452 Make_OK_Assignment_Statement, to replace an access attribute that is a
18453 self-reference into an access to the appropriate component of the
18454 target object. Generalizes previous mechanism to handle self-references
18455 nested at any level.
18456 (Is_Self_Referential_Init): Remove, not needed.
18457 (Is_Self_Referential_Init): New predicate to simplify handling of self
18458 referential components in record aggregates.
18459 (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
18460 check for presence of entity before checking for self-reference.
18461 (Has_Default_Init_Comps): Return True if a component association is a
18462 self-reference to the enclosing type, which can only come from a
18463 default initialization.
18464 (Make_OK_Assignment_Statement): If the expression is of the form
18465 Typ'Acc, where Acc is an access attribute, the expression comes from a
18466 default initialized self-referential component.
18467 (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
18468 that has been derived from several abstract interfaces we must also
18469 initialize the tags of the secondary dispatch tables.
18471 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18472 Thomas Quinot <quinot@adacore.com>
18473 Javier Miranda <miranda@adacore.com>
18474 Robert Dewar <dewar@adacore.com>
18477 (Expand_Access_To_Protected_Op): If the context indicates that an access
18478 to a local operation may be transfered outside of the object, create an
18479 access to the wrapper operation that must be used in an external call.
18480 (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
18481 target, pass the Valid attribute applied to a floating-point prefix on
18482 to the back end without expansion.
18483 (Storage_Size): Use the new run-time function Storage_Size to retrieve
18484 the allocated storage when it is specified by a per-object expression.
18485 (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
18486 Nothing to do here, the attribute has been rewritten during semantic
18488 (Expand_Attribute_Reference): Handle expansion of the new Priority
18490 (Find_Fat_Info): Handle case of universal real
18491 (Expand_Access_To_Protected_Op): Fix use of access to protected
18492 subprogram from inside the body of a protected entry.
18493 (Expand_Access_To_Protected_Op): Common procedure for the expansion of
18494 'Access and 'Unrestricted_Access, to transform the attribute reference
18495 into a fat pointer.
18496 (Is_Constrained_Aliased_View): New predicate to help determine whether a
18497 subcomponent's enclosing variable is aliased with a constrained subtype.
18498 (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
18499 test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
18500 an aliased prefix must be known to be constrained in order to use True
18501 for the attribute value, and now it's possible for some aliased views
18502 to be unconstrained.
18504 2006-10-31 Robert Dewar <dewar@adacore.com>
18506 * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
18507 (Expand_Entity_Reference): Correct error of not handling subprogram
18508 formals in current_value processing.
18510 2006-10-31 Javier Miranda <miranda@adacore.com>
18511 Robert Dewar <dewar@adacore.com>
18512 Ed Schonberg <schonberg@adacore.com>
18513 Gary Dismukes <dismukes@adacore.com>
18515 * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
18516 register in the final list objects containing class-wide interfaces;
18517 otherwise we incorrectly register the tag of the interface in the final
18519 (Make_Controlling_Function_Wrappers): Add missing barrier to do not
18520 generate the wrapper if the parent primitive is abstract. This is
18521 required to report the correct error message.
18522 (Expand_N_Subtype_Indication): Do validity checks on range
18523 (Clean_Task_Names): If an initialization procedure includes a call to
18524 initialize a task (sub)component, indicate that the procedure will use
18525 the secondary stack.
18526 (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
18527 compatibility for interfacing with CPP by default.
18528 (Expand_N_Object_Declaration): Only build an Adjust call when the
18529 object's type is a nonlimited controlled type.
18530 * exp_ch3.adb: Add with and use of Exp_Ch6.
18531 (Expand_N_Object_Declaration): Check for object initialization that is a
18532 call to build-in-place function and apply Make_Build_In_Place_Call_In_
18533 Object_Declaration to the call.
18534 (Freeze_Type): When the designated type of an RACW was not frozen at the
18535 point where the RACW was declared, validate the primitive operations
18536 with respect to E.2.2(14) when it finally is frozen.
18537 (Build_Initialization_Call,Expand_Record_Controller): Rename
18538 Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
18539 return-by-reference has no meaning in Ada 2005.
18540 (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
18541 to register tag of the immediate ancestor interfaces in the
18542 run-time structure.
18543 (Init_Secondary_Tags): Moved to the specification to allow the
18544 initialization of extension aggregates with abstract interfaces.
18545 (Build_Master_Renaming): Make public, for use by function declarations
18546 whose return type is an anonymous access type.
18547 (Freeze_Record_Type): Replace call to Insert_List_Before by call to
18548 Insert_List_Before_And_Analyze after the generation of the specs
18549 associated with null procedures.
18550 (Expand_Tagged_Root): Update documentation in its specification.
18551 (Init_Secondary_Tags): Update documentation.
18552 (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
18553 tibility mode and the immediate ancestor is a CPP_Pragma tagged type
18554 then generate code to inherit the contents of the dispatch table
18555 directly from the ancestor.
18556 (Expand_Record_Controller): Insert controller component after tags of
18557 implemented interfaces.
18558 (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
18559 create null procedure overridings when null procedures are inherited
18561 (Make_Null_Procedure_Specs): New procedure to generate null procedure
18562 declarations for overriding null primitives inherited from interfaces.
18563 (Is_Null_Interface_Procedure): New function in
18564 Make_Null_Procedure_Specs.
18565 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
18566 immediate ancestor of a tagged type is an abstract interface type we
18567 must generate the specification of the predefined primitives associated
18568 with controlled types (because the dispatch table of the ancestor is
18569 null and hence these entries cannot be inherited). This is required to
18570 elaborate well the dispatch table.
18572 2006-10-31 Javier Miranda <miranda@adacore.com>
18573 Ed Schonberg <schonberg@adacore.com>
18574 Bob Duff <duff@adacore.com>
18575 Gary Dismukes <dismukes@adacore.com>
18576 Robert Dewar <dewar@adacore.com>
18578 * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
18580 (Expand_N_In): Do validity checks on range
18581 (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
18582 (Expand_N_Allocator): For "new T", if the object is constrained by
18583 discriminant defaults, allocate the right amount of memory, rather than
18584 the maximum for type T.
18585 (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
18586 when the allocator is initialized by a build-in-place call, since the
18587 allocator is already rewritten as a reference to the function result,
18588 and this prevents an unwanted duplication of the function call.
18589 Add with and use of Exp_Ch6.
18590 (Expand_Allocator_Expresssion): Check for an allocator whose expression
18591 is a call to build-in-place function and apply
18592 Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
18593 untagged designated types).
18594 (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
18595 optimization if source or target is biased.
18596 (Expand_N_Allocator): Add comments for case of an allocator within a
18597 function that returns an anonymous access type designating tasks.
18598 (Expand_N_Allocator): apply discriminant checks for access
18599 discriminants of anonymous access types (AI-402, AI-416)
18601 2006-10-31 Bob Duff <duff@adacore.com>
18602 Robert Dewar <dewar@adacore.com>
18603 Gary Dismukes <dismukes@adacore.com>
18604 Ed Schonberg <schonberg@adacore.com>
18606 * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
18608 * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
18609 (Expand_N_Assignment_Statement): Call
18610 Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
18611 build-in-place function call. Currently, this can happen only for
18612 assignments that come from aggregates.
18613 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18614 in order to alleviate the upward compatibility introduced by AI-318.
18615 (Expand_N_Extended_Return_Statement): Add support for handling the
18616 return object as a build-in-place result.
18617 (Expand_Non_Function_Return): Implement simple return statements nested
18618 within an extended return.
18619 (Enable_New_Return_Processing): Turn on the new processing of return
18621 (Expand_Non_Function_Return): For a return within an extended return,
18622 don't raise Program_Error, because Sem_Ch6 now gives a warning.
18623 (Expand_N_Extended_Return_Statement): Implement AI-318
18624 (Expand_Simple_Function_Return): Ditto.
18625 (Expand_N_If_Statement): Handle new -gnatwt warning
18626 (Expand_N_Case_Statement): Handle new -gnatwt warning
18627 (Expand_N_Assignment): Handle assignment to the Priority attribute of
18628 a protected object.
18629 (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
18630 validity checking of assignments to elementary record components.
18631 (Expand_N_Return_Statement): return Class Wide types on the secondary
18632 stack independantly of their controlled status since with HIE runtimes,
18633 class wide types are not potentially controlled anymore.
18635 * expander.adb (Expand): Add case for new N_Extended_Return_Statement
18638 * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
18639 Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
18640 it expects a block, procedure, or task. The return statement will get
18641 turned into a block, and Expand_Cleanup_Actions will happen then.
18643 2006-10-31 Robert Dewar <dewar@adacore.com>
18644 Ed Schonberg <schonberg@adacore.com>
18645 Bob Duff <duff@adacore.com>
18646 Gary Dismukes <dismukes@adacore.com>
18648 * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
18650 (Expand_Inlined_Call): Tagged types are by-reference types, and
18651 therefore should be replaced by a renaming declaration in the expanded
18652 body, as is done for limited types.
18653 (Expand_Call): If this is a call to a function with dispatching access
18654 result, propagate tag from context.
18655 (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
18657 (Make_Build_In_Place_Call_In_Assignment): New procedure to do
18658 build-in-place when the right-hand side of an assignment is a
18659 build-in-place function call.
18660 (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
18661 of the explicit dereference of the allocator to the result subtype of
18662 the build-in-place function. This is needed to satisfy type checking
18663 in cases where the caller's return object is created by an allocator for
18664 a class-wide access type and the type named in the allocator is a
18666 (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
18667 conversion of the reference to the declared object to the result subtype
18668 of the build-in-place function. This is needed to satisfy type checking
18669 in cases where the declared object has a class-wide type. Also, in the
18670 class-wide case, change the type of the object entity to the specific
18671 result subtype of the function, to avoid passing a class-wide object
18672 without explicit initialization to the back end.
18673 (Register_Interface_DT_Entry): Moved outside the body of
18674 Freeze_Subprogram because this routine is now public; it is called from
18675 Check_Dispatching_Overriding to handle late overriding of abstract
18676 interface primitives.
18677 (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
18678 adding an implicit access actual on a call to a build-in-place function.
18679 (Expand_Actuals): Test for an actual parameter that is a call to a
18680 build-in-place function and apply
18681 Make_Build_In_Place_Call_In_Anonymous_Context to the call.
18682 (Is_Build_In_Place_Function): New function to determine whether an
18683 entity is a function whose calls should be handled as build-in-place.
18684 (Is_Build_In_Place_Function_Call): New function to determine whether an
18685 expression is a function call that should handled as build-in-place.
18686 (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
18687 calls to build-in-place functions as the initialization of an allocator.
18688 (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
18689 handling calls to build-in-place functions in contexts that do not
18690 involve init of a separate object (for example, actuals of subprogram
18692 (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
18693 handling calls to build-in-place functions as the initialization of an
18694 object declaration.
18695 (Detect_Infinite_Recursion): Add explicit parameter Process to
18696 instantiation of Traverse_Body to avoid unreferenced warning.
18697 (Check_Overriding_Inherited_Interfaces): Removed.
18698 (Register_Interface_DT_Entry): Code cleanup.
18699 (Register_Predefined_DT_Entry): Code cleanup.
18700 (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
18701 inlined statements if within a transient scope.
18702 (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
18703 formal parameters with occurrences of actuals in inlined body, establish
18704 visibility on the proper view of the actual's subtype for the body's
18706 (Freeze_Subprogram): Do nothing if we are compiling under full ABI
18707 compatibility mode and we have an imported CPP subprogram because
18708 for now we assume that imported CPP primitives correspond with
18709 objects whose constructor is in the CPP side (and therefore we
18710 don't need to generate code to register them in the dispatch table).
18711 (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
18712 aligned selected component.
18713 (Add_Call_By_Copy_Node): Add missing code to handle the case in which
18714 the actual of an in-mode parameter is a type conversion.
18715 (Expand_Actuals): If the call does not come from source and the actual
18716 is potentially misaligned, let gigi handle it rather than rejecting the
18717 (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
18718 Class Wide types as returning by reference independantly of their
18719 controlled status since with HIE runtimes class wide types are not
18720 potentially controlled anymore.
18722 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18724 * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
18725 references that are private components of the protected object.
18726 (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
18727 (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
18728 instantiation to deal with warnings.
18729 (Initialize_Protection): If expression for priority is non-static, use
18730 System_Priority as its expected type, in case the expression has not
18733 2006-10-31 Robert Dewar <dewar@adacore.com>
18735 * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
18736 initialization of Homonym_Len.
18737 (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
18738 names from fully qualified name. Fixes problem of duplicate
18739 external names differing only in the presence of such a block name.
18741 2006-10-31 Thomas Quinot <quinot@adacore.com>
18742 Pablo Oliveira <oliveira@adacore.com>
18744 * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
18745 subprogram Ids, even if they are not yet assigned.
18746 (Build_Subprogram_Id): It is now this function that will take care of
18747 calling Assign_Subprogram_Ids if necessary.
18748 (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
18749 should be done only once they are assigned.
18750 (Build_From_Any_Function, case of tagged types): Add missing call to
18752 (Corresponding_Stub_Type): New subprogram. Returns the associated stub
18753 type for an RACW type.
18754 (Add_RACW_Features): When processing an RACW declaration for which the
18755 designated type is already frozen, enforce E.2.2(14) rules immediately.
18756 (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
18757 special reordering of controlling formals.
18759 * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
18760 associated stub type for an RACW type.
18762 2006-10-31 Ed Schonberg <schonberg@adacore.com>
18764 * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
18765 fixed-point operations in an integer context, i.e. as operands of a
18766 conversion to an integer type, indicate that result must be rounded.
18768 2006-10-31 Robert Dewar <dewar@adacore.com>
18770 * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
18771 cases, pass the encoding method, since it is now required by the run
18774 * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
18775 assumption that Str'First = 1.
18776 (Value_Wide_Character): Takes EM (encoding method) parameter and passes
18777 it on to the Value_Wide_Wide_Character call.
18778 (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
18779 properly handles a string of the form quote-encoded_wide_char-quote.
18781 * s-wchcnv.adb: Minor reformatting
18783 2006-10-31 Javier Miranda <miranda@adacore.com>
18785 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
18786 run-time membership test to ensure that the constructed object
18787 implements the target abstract interface.
18789 2006-10-31 Robert Dewar <dewar@adacore.com>
18791 * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
18792 Machine_Attribute pragma internally to implement the user pragma.
18793 Add processing for pragma Interface so that it is now completely
18794 equivalent to pragma Import.
18796 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
18797 so that it can be applied to all entities, including record components
18798 and enumeration literals.
18799 (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
18800 priority ranges are correct, verify compatibility against task
18801 dispatching and locking policies, and if everything is correct an entry
18802 is added to the table containing priority specific dispatching entries
18803 for this compilation unit.
18804 (Delay_Config_Pragma_Analyze): Delay processing
18805 Priority_Specific_Dispatching pragmas because when processing the
18806 pragma we need to access run-time data, such as the range of
18807 System.Any_Priority.
18808 (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
18809 Allow pragma Unreferenced as a context item
18810 Add pragma Preelaborable_Initialization
18811 (Analyze_Pragma, case Interface): Interface is extended so that it is
18812 now syntactically and semantically equivalent to Import.
18813 (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
18814 insertion characters.
18815 Add handling for Pragma_Wide_Character_Encoding
18816 (Process_Restrictions_Restriction_Warnings): Ensure that a warning
18817 never supercedes a real restriction, and that a real restriction
18818 always supercedes a warning.
18819 (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
18822 2006-10-31 Bob Duff <duff@adacore.com>
18823 Ed Schonberg <schonberg@adacore.com>
18824 Robert Dewar <dewar@adacore.com>
18826 * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
18827 Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
18828 Is_Inherently_Limited_Type, because return-by-reference has no meaning
18830 (Find_Node_To_Be_Wrapped): Use new method of determining the result
18831 type of the function containing a return statement, because the
18832 Return_Type field was removed. We now use the Return_Applies_To field.
18834 * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
18835 (Build_Task_Image_Decl): If procedure is not called from an
18836 initialization procedure, indicate that function that builds task name
18837 uses the sec. stack. Otherwise the enclosing initialization procedure
18838 will carry the indication.
18839 (Insert_Actions): Remove N_Return_Object_Declaration. We now use
18840 N_Object_Declaration instead.
18841 (Kill_Dead_Code): New interface to implement -gnatwt warning for
18842 conditional dead code killed, and change implementation accordingly.
18843 (Insert_Actions): Add N_Return_Object_Declaration case.
18844 Correct comment to mention N_Extension_Aggregate node.
18845 (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
18846 attempts to save information for global variables which cannot be
18848 (Get_Current_Value_Condition): Handle conditions the other way round
18849 (constant on left). Also handle right operand of AND and AND THEN
18850 (Set_Current_Value_Condition): Corresponding changes
18851 (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
18852 (Get_Current_Value_Condition): Handle simple boolean operands
18853 (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
18854 (Get_Current_Value_Condition): If the variable reference is within an
18855 if-statement, does not appear in the list of then_statments, and does
18856 not come from source, treat it as being at unknown location.
18857 (Get_Current_Value_Condition): Enhance to allow while statements to be
18858 processed as well as if statements.
18859 (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
18861 (OK_To_Do_Constant_Replacement): Allow constant replacement within body
18862 of loop. This is safe now that we fixed Kill_Current_Values.
18863 (OK_To_Do_Constant_Replacement): Check whether current scope is
18864 Standard, before examining outer scopes.
18866 2006-10-31 Vincent Celier <celier@adacore.com>
18868 * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
18869 When True, apply VMS treatment to children of packages A, G, I and S.
18872 * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
18874 2006-10-31 Robert Dewar <dewar@adacore.com>
18875 Ed Schonberg <schonberg@adacore.com>
18877 * freeze.adb: Add handling of Last_Assignment field
18878 (Warn_Overlay): Supply missing continuation marks in error msgs
18879 (Freeze_Entity): Add check for Preelaborable_Initialization
18881 * g-comlin.adb: Add Warnings (Off) to prevent new warning
18883 * g-expect.adb: Add Warnings (Off) to prevent new warning
18885 * lib-xref.adb: Add handling of Last_Assignment field
18886 (Generate_Reference): Centralize handling of pragma Obsolescent here
18887 (Generate_Reference): Accept an implicit reference generated for a
18888 default in an instance.
18889 (Generate_Reference): Accept a reference for a node that is not in the
18890 main unit, if it is the generic body corresponding to an subprogram
18893 * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
18895 * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
18897 (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
18899 (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
18900 use clauses, to avoid messages on packages used to qualify, and also
18901 to avoid messages from obsolescent units.
18902 (Warn_On_Useless_Assignments): Don't generate messages for imported
18903 and exported variables.
18904 (Warn_On_Useless_Assignments): New procedure
18905 (Output_Obsolescent_Entity_Warnings): New procedure
18906 (Check_Code_Statement): New procedure
18908 * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
18909 Change name Is_Ada_2005 to Is_Ada_2005_Only
18910 (Last_Assignment): New field for useless assignment warning
18912 2006-10-31 Olivier Hainque <hainque@adacore.com>
18914 * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
18915 closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
18917 2006-10-31 Bob Duff <duff@adacore.com>
18918 Robert Dewar <dewar@adacore.com>
18919 Ed Schonberg <schonberg@adacore.com>
18921 * g-awk.adb (Default_Session, Current_Session): Compile this file in
18922 Ada 95 mode, because it violates the new rules for AI-318.
18924 * g-awk.ads: Use overloaded subprograms in every case where we used to
18925 have a default of Current_Session. This makes the code closer to be
18926 correct for both Ada 95 and 2005.
18928 * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
18929 code, relying on the fact that the compiler generates a warning
18930 instead of an error in -gnatg mode.
18932 * lib-xref.ads (Xref_Entity_Letters): Add entry for new
18933 E_Return_Statement entity kind.
18934 Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
18936 * par.adb (P_Interface_Type_Definition): Addition of one formal to
18937 report an error if the reserved word abstract has been previously found.
18938 (SS_End_Type): Add E_Return for new extended_return_statement syntax.
18940 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
18941 parenthesized range attribute usage
18942 (P_Expression_No_Right_Paren): Add missing comment about error recovery.
18944 * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
18945 in the syntax for extended_return_statement. This is not in the latest
18946 RM, but the ARG is expected to issue an AI allowing this.
18947 (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
18948 N_Return_Object_Declaration. We now use N_Object_Declaration instead.
18949 (P_Return_Object_Declaration, P_Return_Subtype_Indication,
18950 P_Return_Statement): Parse the new syntax for extended_return_statement.
18952 * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
18953 Output_End_Missing): Add error-recovery code for the new
18954 extended_return_statement syntax; that is, the new E_Return entry on
18957 * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
18958 limited to nonlimited, because otherwise we violate the new Ada 2005
18959 rules about returning limited types in function Create_AST_Handler in
18962 * sem.adb (Analyze): Add cases for new node kinds
18963 N_Extended_Return_Statement and N_Return_Object_Declaration.
18965 * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
18966 type is in the same category as type of context before applying check,
18967 to prevent anomalies in instantiations.
18968 (Resolve_Aggregate): Remove test for limited components in aggregates.
18969 It's unnecessary in Ada 95, because if it has limited components, then
18970 it must be limited. It's wrong in Ada 2005, because limited aggregates
18972 (Resolve_Record_Aggregate): Move check for limited types later, because
18973 OK_For_Limited_Init requires its argument to have been resolved.
18974 (Get_Value): When copying the component default expression for a
18975 defaulted association in an aggregate, use the sloc of the aggregate
18976 and not that of the original expression, to prevent spurious
18977 elaboration errors, when the expression includes function calls.
18978 (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
18979 were missing. We also didn't handle qualified expressions. Now also
18980 allow function calls. Use new common routine OK_For_Limited_Init.
18981 (Resolve_Extension_Aggregate): Minor fix to bad error message (started
18982 with space can upper case letter).
18984 * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
18985 Has_Static_Discriminants flag
18986 (Record_Type_Declaration): Diagnose an attempt to declare an interface
18987 type with discriminants.
18988 (Process_Range_Expr_In_Decl): Do validity checks on range
18989 (Build_Discriminant_Constraints): Use updated form of
18990 Denotes_Discriminant.
18991 (Process_Subtype): If the subtype is a private subtype whose full view
18992 is a concurrent subtype, introduce an itype reference to prevent scope
18994 (Build_Derived_Record_Type, Collect_Interface_Primitives,
18995 Record_Type_Declaration): The functionality of the subprograms
18996 Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
18997 is now performed by a single routine.
18998 (Build_Derived_Record_Type): If the type definition includes an explicit
18999 indication of limitedness, then the type must be marked as limited here
19000 to ensure that any access discriminants will not be treated as having
19001 a local anonymous access type.
19002 (Check_Abstract_Overriding): Issue a detailed error message when an
19003 abstract subprogram was not overridden due to incorrect mode of its
19005 (Analyze_Private_Extension_Declaration): Add support for the analysis of
19006 synchronized private extension declarations. Verify that the ancestor is
19007 a limited or synchronized interface or in the generic case, the ancestor
19008 is a tagged limited type or synchronized interface and all progenitors
19009 are either limited or synchronized interfaces.
19010 Derived_Type_Declaration): Check for presence of private extension when
19011 dealing with synchronized formal derived types.
19012 Process_Full_View): Enchance the check done on the usage of "limited" by
19013 testing whether the private view is synchronized.
19014 Verify that a synchronized private view is completed by a protected or
19016 (OK_For_Limited_Init_In_05): New function.
19017 (Analyze_Object_Declaration): Move check for limited types later,
19018 because OK_For_Limited_Init requires its argument to have been resolved.
19019 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
19020 in order to alleviate the upward compatibility introduced by AI-318.
19021 (Constrain_Corresponding_Record): If the constraint is for a component
19022 subtype, mark the itype as frozen, to avoid out-of-scope references to
19023 discriminants in the back-end.
19024 (Collect_Implemented_Interfaces): Protect the recursive algorithm of
19025 this subprogram against wrong sources.
19026 (Get_Discr_Value, Is_Discriminant): Handle properly references to a
19027 discriminant of limited type completed with a protected type, when the
19028 discriminant is used to constrain a private component of the type, and
19029 expansion is disabled.
19030 (Find_Type_Of_Object): Do not treat a return subtype that is an
19031 anonymous subtype as a local_anonymous_type, because its accessibility
19032 level is the return type of the enclosing function.
19033 (Check_Initialization): In -gnatg mode, turn the error "cannot
19034 initialize entities of limited type" into a warning.
19035 (OK_For_Limited_Init): Return true for generated nodes, since it
19036 sometimes violates the legality rules.
19037 (Make_Incomplete_Declaration): If the type for which an incomplete
19038 declaration is created happens to be the currently visible entity,
19039 preserve the homonym chain when removing it from visibility.
19040 (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
19041 inherited subprograms.
19042 (Access_Definition): If this is an access to function that is the return
19043 type of an access_to_function definition, context is a type declaration
19044 and the scope of the anonymous type is the current one.
19045 (Analyze_Subtype_Declaration): Add the defining identifier of a regular
19046 incomplete subtype to the set of private dependents of the original
19048 (Constrain_Discriminated_Type): Emit an error message whenever an
19049 incomplete subtype is being constrained.
19050 (Process_Incomplete_Dependents): Transform an incomplete subtype into a
19051 corresponding subtype of the full view of the original incomplete type.
19052 (Check_Incomplete): Properly detect invalid usage of incomplete types
19055 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
19057 * g-catiio.ads, g-catiio.adb (Value): New function.
19058 Given an input String, try and parse a valid Time value.
19060 2006-10-31 Vincent Celier <celier@adacore.com>
19062 * g-debpoo.adb (Is_Valid): Correctly compute Offset using
19063 Integer_Address arithmetic, as in Set_Valid.
19065 2006-10-31 Arnaud Charlet <charlet@adacore.com>
19066 Robert Dewar <dewar@adacore.com>
19068 * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
19069 handling executable extension manually and duplicating code.
19071 * make.adb: Implement new -S switch
19072 (Gnatmake): Use new function Osint.Executable_Name instead
19073 of handling executable extension manually.
19075 * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
19076 is specified, the executable name ends with this suffix.
19077 Take advantage of Osint.Executable_Name instead of duplicating code.
19079 * switch-m.adb: Recognize new gnatmake -S switch
19081 * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
19083 (Get_Target_Parameters): Set Executable_Extension_On_Target if
19086 * makeusg.adb: Add line for gnatmake -S switch
19088 2006-10-31 Vincent Celier <celier@adacore.com>
19090 * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
19091 call it with -static-libgcc, as there are some platforms, such as
19092 Darwin, where one of these two switches is compulsory to link.
19094 2006-10-31 Vincent Celier <celier@adacore.com>
19096 * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
19097 instead of ADA_PROJECT_PATH, for the project path.
19098 (Gnatls): When displaying the project path directories, use host dir
19101 * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
19102 names in the project path, as absolute paths may correspond to
19103 multi-valued VMS logical names.
19105 2006-10-31 Vincent Celier <celier@adacore.com>
19107 * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
19108 absolute path name.
19109 (Locate_Regular_File): Ditto
19110 (Change_Dir): Remove, no longer used
19111 (Normalize_Pathname): Do not use Change_Dir to get the drive letter
19112 on Windows. Get it calling Get_Current_Dir.
19113 (OpenVMS): Remove imported boolean, no longer needed.
19114 (Normalize_Pathname)[VMS]: Do not resolve directory names.
19115 (Pid_To_Integer): New function to convert a Process_Id to Integer
19117 2006-10-31 Thomas Quinot <quinot@adacore.com>
19119 * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
19120 sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
19122 (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
19125 2006-10-31 Robert Dewar <dewar@adacore.com>
19127 * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
19128 initial letter o as a zero.
19130 2006-10-31 Robert Dewar <dewar@adacore.com>
19132 * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
19134 2006-10-31 Robert Dewar <dewar@adacore.com>
19136 * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
19138 (Layout_Variant_Record): Retrieve the discriminants from the entity
19139 rather than from the type definition, because in the case of a full
19140 type for a private type we need to take the discriminants from the
19142 (Layout_Component_List): When applying the Max operator to variants with
19143 a nonstatic size, check whether either operand is static and scale that
19144 operand from bits to storage units before applying Max.
19145 (Layout_Type): In VMS, if a C-convention access type has no explicit
19146 size clause (and does not inherit one in the case of a derived type),
19147 then the size is reset to 32 from 64.
19149 2006-10-31 Vincent Celier <celier@adacore.com>
19151 * lib-load.adb (Load_Unit): Skip the test for a unit not found when
19152 its file has already been loaded, according to the unit being loaded,
19153 not to the current value of Multiple_Unit_Index.
19155 2006-10-31 Thomas Quinot <quinot@adacore.com>
19156 Eric Botcazou <ebotcazou@adacore.com>
19157 Arnaud Charlet <charlet@adacore.com>
19159 * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
19160 (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
19162 (a-except.o): Pass it to the compiler.
19163 (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
19164 (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
19165 a-calend-mingw.adb version.
19167 * Makefile.rtl: Added s-dsaser.
19168 Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
19169 (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
19170 Ada.Dispatching.Round_Robin.
19171 Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
19173 * Make-lang.in: Remove all references to gt-ada-decl.h.
19174 Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
19176 Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
19177 Update dependencies.
19179 * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
19181 2006-10-31 Vincent Celier <celier@adacore.com>
19183 * mlib-utl.adb (Initialized): Remove, no longer used
19184 (Initialize): Remove, no longer used
19185 (Ar): If Ar_Exec is null, get the location of the archive builder and,
19186 if there is one, the archive indexer. Fail if the archive builder cannot
19188 (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
19191 2006-10-31 Ed Schonberg <schonberg@adacore.com>
19193 * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
19194 Process_Body_Clauses): If the context of a body includes a use clause
19195 for P.Q then a with_clause for P in the same body is not redundant,
19196 even if the spec also has a with_clause on P.
19197 Add missing continuation mark to error msg
19198 (Build_Limited_Views): A limited view of a type is tagged if its
19199 declaration includes a record extension.
19200 (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
19201 node, even if the subunit has errors. This avoids malfunction by
19202 Lib.Check_Same_Extended_Unit in the presence of syntax errors.
19203 (Analyze_Compilation_Unit): Add circuit to make sure we get proper
19204 generation of obsolescent messages for with statements (cannot do
19205 this too early, or we cannot implement avoiding the messages in the
19206 case of obsolescent units withing obsolescent units).
19207 (Install_Siblings): If the with_clause is on a remote descendant of
19208 an ancestor of the current compilation unit, find whether there is
19209 a sibling child unit that is immediately visible.
19210 (Remove_Private_With_Clauses): New procedure, invoked after completing
19211 the analysis of the private part of a nested package, to remove from
19212 visibility the private with_clauses of the enclosing package
19214 (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
19215 now centralized in Generate_Reference.
19216 (Install_Limited_Context_Clauses): Remove superfluous error
19217 message associated with unlimited view visible through use
19218 and renamings. In addition, at the point in which the error
19219 is reported, we add the backslash to the text of the error
19220 to ensure that it is reported as a single error message.
19221 Use new // insertion for some continuation messages
19222 (Expand_Limited_With_Clause): Use copy of name rather than name itself,
19223 to create implicit with_clause for parent unit mentioned in original
19224 limited_with_clause.
19225 (Install_Limited_With_Unit): Set entity of parent identifiers if the
19226 unit is a child unit. For ASIS queries.
19227 (Analyze_Subunit): If the subunit appears within a child unit, make all
19228 ancestor child units directly visible again.
19230 2006-10-31 Robert Dewar <dewar@adacore.com>
19232 * par-ch10.adb (P_Context_Clause): Minor error message fix
19234 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
19235 Javier Miranda <miranda@adacore.com>
19237 * par-ch12.adb: Grammar update and cleanup.
19238 (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
19239 support for synchronized derived type definitions.
19240 Add the new actual Abstract_Present to every call to
19241 P_Interface_Type_Definition.
19242 (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
19243 a formal object declaration with an access definition or a subtype mark
19244 with a null exclusion.
19245 (P_Generic_Association): Handle association with box, and others_choice
19246 with box, to support Ada 2005 partially parametrized formal packages.
19248 2006-10-31 Robert Dewar <dewar@adacore.com>
19249 Javier Miranda <miranda@adacore.com>
19251 * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
19252 (P_Type_Declaration): Remove barrier against the reserved word "limited"
19253 after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
19254 (P_Type_Declaration): Minor code cleanup. Add support for synchronized
19255 private extensions.
19256 (P_Type_Declaration): Add the new actual Abstract_Present to every call
19257 to P_Interface_Type_Definition.
19258 (P_Interface_Type_Definition): Addition of one formal to report an error
19259 if the reserved word abstract has been previously found.
19260 (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
19261 object renaming declaration with an access definition or subtype mark
19262 with a possible null exclusion.
19264 * par-ch9.adb: Minor error msg fix
19266 * par-load.adb: Add missing continuation mark to error msg
19268 * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
19270 2006-10-31 Vincent Celier <celier@adacore.com>
19272 * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
19273 unknown attribute in unknown package or in package that does not need
19275 (Parse_Package_Declaration): Do not issue warning for unknown package in
19278 2006-10-31 Vincent Celier <celier@adacore.com>
19280 * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
19281 (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
19284 2006-10-31 Vincent Celier <celier@adacore.com>
19286 * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
19287 on VMS, change "__" to '.' before checking the name.
19288 (Record_Ada_Source): Always add the source file name in the list of
19289 of sources, even if it is not the first time, as it is for another
19291 (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
19292 dot, instead of replacing only the first '_'.
19294 * prj-part.adb (Parse): Convert project file path to canonical form
19296 * prj-proc.adb (Recursive_Process): Make sure that, when a project is
19297 extended, the project id of the project extending it is recorded in its
19298 data, even when it has already been processed as an imported project.
19300 2006-10-31 Robert Dewar <dewar@adacore.com>
19302 * repinfo.adb (List_Entities): Don't list entities from renaming
19305 2006-10-31 Arnaud Charlet <charlet@adacore.com>
19306 Robert Dewar <dewar@adacore.com>
19308 * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
19309 only a restriction warning is active for the given restriction. This is
19310 desirable because we do not want to modify code in the case where only
19312 (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
19313 causes overriding of real restrictions.
19314 Take advantage of new No_Restrictions constant.
19316 * raise.h: (__gnat_set_globals): Change profile.
19318 2006-10-31 Arnaud Charlet <charlet@adacore.com>
19320 * rtsfind.adb: Remove s-polint from comment as it exists no more.
19323 Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
19324 Move all the entities in obsolete package System.PolyORB_Interface to
19325 System.Partition_Interface.
19326 (RE_Storage_Size): New function in System.Tasking.
19327 (RE_Get_Ceiling): New entity.
19328 (RE_Set_Ceiling): New entity.
19329 (RO_PE_Get_Ceiling): New entity.
19330 (RO_RE_Set_Ceiling): New entity.
19331 (Inherit_CPP_DT): New entity
19333 2006-10-31 Robert Dewar <dewar@adacore.com>
19335 * scng.adb (Scan, case of numeric literal): Better msg for identifier
19336 starting with a digit.
19338 2006-10-31 Ed Schonberg <schonberg@adacore.com>
19339 Thomas Quinot <quinot@adacore.com>
19340 Javier Miranda <miranda@adacore.com>
19341 Gary Dismukes <dismukes@adacore.com>
19343 * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
19344 properly an attempt to apply Unchecked_Access to a protected operation.
19345 (OK_Self_Reference): New subprogram to check the legality of an access
19346 attribute whose prefix is the type of an enclosing aggregate.
19347 Generalizes previous mechanism to handle attribute references nested
19348 arbitrarily deep within the aggregate.
19349 (Analyze_Access_Attribute): An access attribute whose prefix is a type
19350 can appear in an aggregate if this is a default-initialized aggregate
19351 for a self-referential type.
19352 (Resolve_Attribute, case Access): Ditto.
19353 Add support for new implementation defined attribute Stub_Type.
19354 (Eval_Attribute, case Attribute_Stub_Type): New case.
19355 (Analyze_Attribute, case Attribute_Stub_Type): New case.
19356 (Stream_Attribute_Available): Implement using new subprogram from
19357 sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
19358 Has_Specified_Stream_Attribute flag.
19359 Disallow Storage_Size and Storage_Pool for access to subprogram
19360 (Resolve_Attribute, case 'Access et al): Take into account anonymous
19361 access types of return subtypes in extended return statements. Remove
19362 accessibility checks on anonymous access types when Unchecked_Access is
19364 (Analyze_Attribute): Add support for the use of 'Class to convert
19365 a class-wide interface to a tagged type.
19366 Add support for the attribute Priority.
19367 (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
19368 whether the designated type is discriminated with a constrained partial
19369 view and require static matching in that case.
19370 Add local variable Des_Btyp. The Designated_Type
19371 of an access to incomplete subtype is either its non-limited view if
19372 coming from a limited with or its etype if regular incomplete subtype.
19374 * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
19375 Fix predicate to identify and allow cases of (expander-generated)
19376 references to tag of designated object of a RACW.
19377 (Validate_Static_Object_Name): In Ada 2005, a formal object is
19378 non-static, and therefore cannot appear as a primary in a preelaborable
19380 (Has_Stream_Attribute_Definition): New subprogram, abstracted from
19381 Has_Read_Write_Attributes.
19382 (Has_Read_Write_Attributes): Reimplement in termes of
19383 Has_Stream_Attribute_Definition.
19384 (Missing_Read_Write_Attributes): When checking component types in a
19385 record, unconditionally call Missing_Read_Write_Attributes recursively
19386 (remove guard checking for Is_Record_Type / Is_Access_Type).
19388 2006-10-31 Robert Dewar <dewar@adacore.com>
19390 * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
19391 useless assignments here and conditionalize it on absence of exception
19393 (Analyze_Exception_Handlers): Small code reorganization of error
19394 detection code, for new handling of formal packages.
19396 2006-10-31 Ed Schonberg <schonberg@adacore.com>
19397 Hristian Kirtchev <kirtchev@adacore.com>
19399 * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
19400 that has been constant-folded, preserve information of original tree,
19402 (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
19403 generated private extension declaration if the formal derived type is
19404 synchronized. Carry synchronized present over to the generated private
19406 (Validate_Derived_Type_Instance): Ensure that the actual of a
19407 synchronized formal derived type is a synchronized tagged type.
19408 (Instantiate_Formal_Package): When creating the instantiation used to
19409 validate the actual package of a formal declared without a box, check
19410 whether the formal itself depends on a prior actual.
19411 (Instantiate_Formal_Subprogram): Create new entities for the defining
19412 identifiers of the formals in the renaming declaration, for ASIS use.
19413 (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
19414 a renaming declaration or a subtype declaration for an actual in an
19415 instance, capture location information of declaration in generic, for
19417 (Instantiate_Formal_Package): Add comments on needed additional tests.
19418 AI-317 (partial parametrization) is fully implemented.
19419 (Validate_Private_Type_Instance): Add check for actual which
19420 must have preelaborable initialization
19421 Use new // insertion for some continuation messages
19422 (Analyze_Formal_Object_Declaration): Change usage of Expression to
19423 Default_Expression. Add type retrieval when the declaration has an
19424 access definition. Update premature usage of incomplete type check.
19425 (Check_Access_Definition): New subsidiary routine. Check whether the
19426 current compilation version is Ada 05 and the supplied node has an
19428 (Instantiate object): Alphabetize local variables. Handle the creation
19429 of new renaming declarations with respect to the kind of definition
19430 used - either an access definition or a subtype mark. Guard against
19431 unnecessary error message in the context of anonymous access types after
19432 they have been resolved. Add check for required null exclusion in a
19433 formal object declaration.
19434 (Switch_View): A private subtype of a non-private type needs to be
19435 switched (the base type can have been switched without its private
19436 dependents because of the last branch of Check_Private_View.
19437 (Check_Private_View): Do not recompute Base_Type (T), instead use cached
19439 (Instantiate_Type): Emit an error message whenever a class-wide type of
19440 a tagged incomplete type is used as a generic actual.
19441 (Find_Actual_Type): Extend routine to handle a component type in a child
19442 unit that is imported from a formal package in a parent.
19443 (Validate_Derived_Type_Instance): Check that analyzed formal and actual
19444 agree on constrainedness, rather than checking against ultimate ancestor
19445 (Instantiate_Subprogram_Body): Create a cross-reference link to the
19446 generic body, for navigation purposes.
19448 2006-10-31 Robert Dewar <dewar@adacore.com>
19449 Thomas Quinot <quinot@adacore.com>
19451 * sem_ch13.adb: Storage pool cannot be given for access to subprogram
19453 (New_Stream_Subprogram): When processing an attribute definition clause
19454 for a stream-oriented subprogram, record an entity node occurring at
19455 the point of clause to use for checking the visibility of the clause,
19456 as defined by 8.3(23) as amended by AI-195.
19457 (New_Stream_Subprogram): New procedure, factoring behaviour from both
19458 New_Stream_Function and New_Stream_Procedure.
19459 (New_Stream_Function, New_Stream_Procedure): Removed.
19460 (Analyze_Attribute_Definition_Clause, case Address): Check new
19461 Alignment_Check check
19463 2006-10-31 Ed Schonberg <schonberg@adacore.com>
19464 Javier Miranda <miranda@adacore.com>
19465 Robert Dewar <dewar@adacore.com>
19467 * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
19468 generate the same errors compiling under -gnatc.
19469 (Try_Object_Operation): If no candidate interpretation succeeds, but
19470 there is at least one primitive operation with the right name, report
19471 error in call rather than on a malformed selected component.
19472 (Analyze_Selected_Component): If the prefix is an incomplete type from
19473 a limited view, and the full view is available, use the full view to
19474 determine whether this is a prefixed call to a primitive operation.
19475 (Operator_Check): Verify that a candidate interpretation is a binary
19476 operation before checking the type of its second formal.
19477 (Analyze_Call): Add additional warnings for function call contexts not
19479 (Analyze_Allocator): Move the check for "initialization not allowed for
19480 limited types" after analyzing the expression. This is necessary,
19481 because OK_For_Limited_Init looks at the structure of the expression.
19482 Before analysis, we don't necessarily know what sort of expression it
19483 is. For example, we don't know whether F(X) is a function call or an
19484 indexed component; the former is legal in Ada 2005; the latter is not.
19485 (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
19486 were missing. We also didn't handle qualified expressions. Now also
19487 allow function calls. Use new common routine OK_For_Limited_Init.
19488 (Analyze_Type_Conversion): Do not perform some legality checks in an
19489 instance, because the error message will be redundant or spurious.
19490 (Analyze_Overloaded_Selected_Component): Do not do style check when
19491 setting an entity, since we do not know it is the right entity yet.
19492 (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
19493 (Analyze_Overloaded_Selected_Component): Same change
19494 (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
19495 since regular incomplete subtypes are transformed into corresponding
19496 subtypes of their full views.
19497 (Complete_Object_Operation): Treat name of transformed subprogram call
19498 as coming from source, for browsing purposes.
19499 (Try_Primitive_Operation): If formal is an access parameter, compare
19500 with base type of object to determine whether it is a primitive
19502 (Operator_Check): If no interpretation of the operator matches, check
19503 whether a use clause on any candidate might make the operation legal.
19504 (Try_Class_Wide_Operation): Check whether the first parameter is an
19505 access type whose designated type is class-wide.
19507 2006-10-31 Robert Dewar <dewar@adacore.com>
19508 Ed Schonberg <schonberg@adacore.com>
19509 Gary Dismukes <dismukes@adacore.com>
19511 * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
19512 warn on infinite loops.
19513 Add \\ to some continuation messages
19514 (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
19515 (Process_Bounds): If the bounds are integer literals that result from
19516 constant-folding, and they carry a user-defined type, preserve that type
19517 rather than treating this as an integer range.
19518 (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
19519 (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
19520 (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
19521 left hand side of assignment.
19522 (Analyze_Assignment): Add suport to manage assigments to the attribute
19523 priority of a protected object.
19524 (Check_Possible_Current_Value_Condition): Allow fully qualified names
19525 not just identifiers.
19526 (Check_Possible_Current_Value_Condition): Acquire left operand of AND
19527 or AND THEN for possible tracking.
19528 (Analyze_Iteration_Scheme): Check for setting Current_Value for the
19529 case of while loops so we can track values in the loop body.
19531 2006-10-31 Ed Schonberg <schonberg@adacore.com>
19532 Hristian Kirtchev <kirtchev@adacore.com>
19533 Bob Duff <duff@adacore.com>
19535 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
19536 procedure cannot be a protected operation (it is a basic_declaration,
19537 not a subprogram_declaration).
19538 (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
19539 Subp. Add logic for entry processing.
19540 (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
19541 Determine whether an entry or subprogram of a protected or task type
19542 override an inherited primitive of an implemented interface.
19543 (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
19544 Update the actual used in calls to Check_Overriding_Indicator.
19545 (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
19546 generate the proper reference to the parent unit, for cross-reference.
19547 (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
19549 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
19550 (Add_Extra_Formal): Revise procedure to allow passing in associated
19551 entity, scope, and name suffix, and handle setting of the new
19552 Extra_Formals field.
19553 (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
19554 pass new parameters. Add support for adding the new extra access formal
19555 for functions whose calls are treated as build-in-place.
19556 (Analyze_A_Return_Statement): Correct casing in error message.
19557 Move Pop_Scope to after Analyze_Function_Return, because an extended
19558 return statement really is a full-fledged scope. Otherwise, visibility
19559 doesn't work right. Correct use of "\" for continuation messages.
19560 (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
19561 evilly trying to call Analyze_Object_Declaration directly. Otherwise,
19562 the node doesn't get properly marked as analyzed.
19563 (Analyze_Subprogram_Body): If subprogram is a function that returns
19564 an anonymous access type that denotes a task, build a Master Entity
19566 (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
19567 proper usage of null exclusion in a result definition.
19568 (Process_Formals): Code cleanup and new error message.
19569 (Process_Formals): Detect incorrect application of null exclusion to
19571 (Conforming_Types): Handle conformance between [sub]types and itypes
19572 generated for entities that have null exclusions applied to them.
19573 (Maybe_Primitive_Operation): Add an additional type retrieval when the
19574 base type is an access subtype. This case arrises with null exclusions.
19575 (New_Overloaded_Entity): Do not remove the overriden entity from the
19576 homonym chain if it corresponds with an abstract interface primitive.
19577 (Process_Formals): Replace membership test agains Incomplete_Kind with a
19578 call to the synthesized predicate Is_Incomplete_Type.
19579 (Analyze_Subprogram_Body): Check wrong placement of abstract interface
19581 (Analyze_Subprogram_Declaration): Check that abstract interface
19582 primitives are abstract or null.
19583 (Analyze_Subprogram_Specification): Remove previous check for abstract
19584 interfaces because it was not complete.
19585 (Has_Interface_Formals): Removed.
19587 2006-10-31 Ed Schonberg <schonberg@adacore.com>
19588 Javier Miranda <miranda@adacore.com>
19590 * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
19591 of Analyze_Package_Body, to create Itype references for anonymous
19592 access types created in the package declaration, whose designated types
19593 may have only a limited view.
19594 (Analyze_Package_Specification): For the private part of a nested
19595 package, install private_with_clauses of enclosing compilation unit if
19596 we are in its visible part.
19597 (Declare_Inherited_Private_Subprograms): Complete barrier
19598 to ensure that the primitive operation has an alias to some parent
19599 primitive. This is now required because, after the changes done for the
19600 implementation of abstract interfaces, the contents of the list of
19601 primitives has entities whose alias attribute references entities of
19602 such list of primitives.
19603 (Analyze_Package_Specification): Simplify code that handles parent units
19604 of instances and formal packages.
19605 (Uninstall_Declarations): Check the convention consistency among
19606 primitive overriding operations of a tagged record type.
19608 2006-10-31 Robert Dewar <dewar@adacore.com>
19609 Hristian Kirtchev <kirtchev@adacore.com>
19610 Javier Miranda <miranda@adacore.com>
19611 Ed Schonberg <schonberg@adacore.com>
19613 * sem_ch8.adb: Minor error msg rewording
19614 (Undefined): When checking for misspellings, invert arguments (to get
19615 expected and found set right)
19616 (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
19617 (Analyze_Generic_Renaming): Same fix
19618 (Use_One_Package): Do not take into account the internal entities of
19619 abstract interfaces during the analysis of entities that are marked
19620 as potentially use-visible.
19621 (Find_Type): Handle the case of an attribute reference for
19622 implementation defined attribute Stub_Type (simply let the analysis of
19623 the attribute reference rewrite it).
19624 (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
19625 type that appears in a Use_Type clause.
19626 (Analyze_Object_Renaming): Add support for renaming of the Priority
19628 (Find_Type): In Ada 2005, a task type can be used within its own body,
19629 when it appears in an access definition.
19630 (Analyze_Object_Renaming): Remove warning on null_exclusion.
19631 (Analyze_Object_Renaming): Introduce checks for required null exclusion
19632 in a formal object declaration or in a subtype declaration.
19633 (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
19634 (Check_Null_Exclusion): New local routine to
19635 Analyze_Subprogram_Renaming. Check whether the formals and return
19636 profile of a renamed subprogram have required null exclusions when
19637 their counterparts of the renaming already impose them.
19638 (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
19639 Determine whether an entity is inside a generic scope.
19640 (In_Open_Scope): First pass of documentation update.
19641 (Find_Expanded_Name): Add support for shadow entities associated with
19642 limited withed packages. This is required to handle nested packages.
19643 (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
19644 that makes a renaming of a limited withed package illegal.
19646 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
19647 Ed Schonberg <schonberg@adacore.com>
19649 * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
19650 Check_Overriding_Indicator.
19651 (Analyze_Task_Definition): Ditto.
19652 (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
19653 (Check_Overriding_Indicator): To find overridden interface operation,
19654 examine only homonyms that have an explicit subprogram declaration, not
19655 inherited operations created by an unrelated type derivation.
19656 (Check_Overriding_Indicator): When checking for the presence of "null"
19657 in a procedure, ensure that the queried node is a procedure
19659 (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
19660 type when the formal is an access to variable.
19661 (Analyze_Protected_Type): Add check for Preelaborable_Initialization
19662 (Analyze_Task_Type): Same addition
19663 (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
19664 provide navigation capabilities for entries.
19666 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
19667 Ed Schonberg <schonberg@adacore.com>
19668 Javier Miranda <miranda@adacore.com>
19669 Gary Dismukes <dismukes@adacore.com>
19671 * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
19672 inherited from an interface ancestor by another interface in the
19673 context of an instance as 'late'.
19674 (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
19675 of a call to a function that dispatches on access result.
19676 (Check_Dispatching_Operation): In case of late overriding of a primitive
19677 that covers abstract interface subprograms we register it in all the
19678 secondary dispatch tables associated with abstract interfaces.
19679 (Check_Dispatching_Call): Add check that a dispatching call is not made
19680 to a function with a controlling result of a limited type. This is a
19681 current implementation restriction.
19682 (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
19683 (Check_Dispatching_Operation): Do no emit a warning if the controlling
19684 argument is an interface type that is a generic formal.
19685 (Is_Interface_Subprogram): Removed.
19686 (Check_Dispatching_Operation): If the subprogram is not a dispatching
19687 operation, check the formals to handle the case in which it is
19688 associated with an abstract interface type.
19690 2006-10-31 Robert Dewar <dewar@adacore.com>
19691 Ed Schonberg <schonberg@adacore.com>
19693 * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
19694 Add new calls to this procedure during traversal
19695 (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
19696 another unit if expansion is disabled.
19698 2006-10-31 Robert Dewar <dewar@adacore.com>
19700 * sem_eval.adb (Compile_Time_Compare): Make use of information from
19701 Current_Value in the conditional case, to evaluate additional
19702 comparisons at compile time.
19704 2006-10-31 Ed Schonberg <schonberg@adacore.com>
19705 Hristian Kirtchev <kirtchev@adacore.com>
19706 Javier Miranda <miranda@adacore.com>
19708 * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
19709 subprogram type to provide better diagnostics in case of ambiguity.
19710 (Covers): Handle coverage of formal and actual anonymous access types in
19711 the context of generic instantiation.
19712 (Covers/Interface_Present_In_Ancestors): Use the base type to manage
19713 abstract interface types; this is required to handle concurrent types
19714 with discriminants and abstract interface types.
19715 (Covers): Include type coverage of both regular incomplete subtypes and
19716 incomplete subtypes of incomplete type visibles through a limited with
19719 2006-10-31 Robert Dewar <dewar@adacore.com>
19720 Hristian Kirtchev <kirtchev@adacore.com>
19721 Ed Schonberg <schonberg@adacore.com>
19723 * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
19724 messages for entities in packages which are not used.
19725 (Collect_Synchronized_Interfaces): New procedure.
19726 (Overrides_Synchronized_Primitive): New function.
19727 (Denotes_Discriminant): Extend predicate to apply to task types.
19728 Add missing continuation marks in error msgs
19729 (Unqualify): New function for removing zero or more levels of
19730 qualification from an expression. There are numerous places where this
19731 ought to be used, but we currently only deal properly with zero or one
19733 (In_Instance); The analysis of the actuals in the instantiation of a
19734 child unit is not within an instantiation, even though the parent
19735 instance is on the scope stack.
19736 (Safe_To_Capture_Value): Exclude the case of variables that are
19738 (Check_Obsolescent): Removed
19739 (Is_Aliased_View): A reference to an enclosing instance in an aggregate
19740 is an aliased view, even when rewritten as a reference to the target
19741 object in an assignment.
19742 (Get_Subprogram_Entity): New function
19743 (Known_To_Be_Assigned): New function
19744 (Type_Access_Level): Compute properly the access level of a return
19745 subtype that is an anonymous access type.
19746 (Explain_Limited_Type): Correct use of "\" for continuation messages.
19747 (Is_Transfer): The new extended_return_statement causes a transfer of
19749 (Has_Preelaborable_Initialization): New function
19750 (Has_Null_Exclusion): New function. Given a node N, determine whether it
19751 has a null exclusion depending on its Nkind.
19752 Change Is_Lvalue to May_Be_Lvalue
19753 (May_Be_Lvalue): Extensive additional code to deal with subprogram
19754 arguments (IN parameters are not Lvalues, IN OUT parameters are).
19755 (Safe_To_Capture_Value): Extend functionality so it can be used for
19756 the current value condition case.
19757 (Has_Compatible_Alignment): New function
19758 (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
19759 objects to handle the Ada 2005 case, where aliasedness no longer implies
19760 that the object is constrained. In particular, for dereferenced names,
19761 the designated object must be assumed to be unconstrained.
19762 (Kill_Current_Values): Properly deal with the case where we encounter
19763 a loop in the scope chain.
19764 (Safe_To_Capture_Value): Do not let a loop stop us from capturing
19766 (Compile_Time_Constraint_Error): Improve error message in error case
19768 * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
19769 associated with entities of abstract interface primitives.
19770 Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
19772 2006-10-31 Robert Dewar <dewar@adacore.com>
19774 * s-osinte-tru64.adb:
19775 Mark Asm statements Volatile to prevent warnings (seems a
19776 reasonable change anyway)
19779 * s-mastop-irix.adb: Add Volatile to Asm statements
19780 Suppresses warning, and seems appropriate in any case
19782 * s-osinte-vms.adb: Add Volatile to Asm statement
19784 * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
19786 * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
19788 Add call to Check_Code_Statement
19790 2006-10-31 Robert Dewar <dewar@adacore.com>
19791 Ed Schonberg <schonberg@adacore.com>
19792 Bob Duff <duff@adacore.com>
19794 * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
19795 Synchronized_Present): Add Formal_Derived_Type_Definition and
19796 Private_Extension_Declaration to the list of assertions.
19797 (Is_Entry_Barrier_Function): New flag
19798 (Has_Self_Reference): New flag on aggregates, to indicate that they
19799 contain a reference to the enclosing type, inserted through a default
19801 (Next_Rep_Item): Move from Node4 to Node5.
19802 (Entity): Add this field for N_Attribute_Definition_Clause.
19803 (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
19804 (N_Return_Object_Declaration): Remove this node kind. We now use
19805 N_Object_Declaration instead.
19806 (Actual_Designated_Subtype): Move to a different place to make room in
19807 N_Extended_Return_Statement.
19808 (Procedure_To_Call): Move to a different place to make room in
19809 N_Extended_Return_Statement.
19810 (Return_Type): Removed this field to make room in return statements
19812 (Return_Statement_Entity): New field in return statements, in part to
19813 replace Return_Type, and in part to support the fact that return
19814 statements are now pushed on the scope stack during semantic analysis.
19815 (Return_Object_Declarations): New field to support extended return
19817 (N_Extended_Return_Statement): New node for extended_return_statement
19819 (N_Return_Object_Declaration): New node for part of
19820 extended_return_statement nonterminal. Needed because all the necessary
19821 fields won't fit in N_Extended_Return_Statement.
19822 Generic_associations now carry the Box_Present flag, to indicate a
19823 default for an actual in a partially parametrized formal package.
19825 * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
19826 (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
19827 and for the new predefined dispatching policies: EDF_Across_Priorities,
19828 Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
19829 Introduce new name Stub_Type for implementation defined attribute.
19830 Add pragma Preelaborable_Initialization
19831 Add entry for Priority attribute.
19832 Add Pragma_Wide_Character_Encoding
19833 (Get_Convention_Name): Given a convention id, this function returns the
19834 corresponding name id from the names table.
19836 2006-10-31 Ed Schonberg <schonberg@adacore.com>
19837 Robert Dewar <dewar@adacore.com>
19838 Bob Duff <duff@adacore.com>
19840 * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
19841 print null exclusion twice in the case of an access definition,
19842 Implement new -gnatL switch
19843 Remove N_Return_Object_Declaration. We now use
19844 N_Object_Declaration instead. Implement the case for
19845 N_Extended_Return_Statement. Alphabetize the cases.
19846 Add cases for new nodes N_Extended_Return_Statement and
19847 N_Return_Object_Declaration. The code is not yet written.
19848 Update the output for N_Formal_Object_Declaration
19849 and N_Object_Renaming_Declaration.
19850 (Write_Itype): Account for the case of a modular integer subtype whose
19851 base type is private.
19853 2006-10-31 Arnaud Charlet <charlet@adacore.com>
19855 * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
19856 Remove elaboration code, now done in the binder.
19858 * s-rident.ads: Make this unit Preelaborate.
19859 (No_Restrictions): New constant used to clean up code and follow
19860 preelaborate constraints.
19863 Add System.Restrictions dependence, referenced directly from the
19864 binder generated file.
19866 2006-10-31 Gary Dismukes <dismukes@adacore.com>
19868 * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
19869 True when AAMP extended floating-point is in use (48-bit). Change type
19870 ByteLF to ByteLLF, add new array type ByteLF and condition the size of
19871 the two byte array types on AFloat. Change type of IV_Ilf overlay
19872 variable from Byte8 to ByteLF. Add appropriate initializations of
19873 floating-point overlays for AAMP cases.
19875 2006-10-31 Javier Miranda <miranda@adacore.com>
19877 * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
19878 (Get_Ceiling): New subprogram that returns
19879 the ceiling priority of the protected object.
19880 (Set_Ceiling): New subprogram that sets the new ceiling priority of
19881 the protected object.
19883 * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
19885 * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
19887 2006-10-31 Jose Ruiz <ruiz@adacore.com>
19889 * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
19890 requeuing to the same protected object to give higher priority tasks
19891 the opportunity to execute.
19893 2006-10-31 Robert Dewar <dewar@adacore.com>
19895 * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
19896 add more precise check for the character sequence that follows '[' to
19897 avoid possible confusion in case if '[' is the last character of a
19899 (Scan_Wide): Always allow brackets encoding
19901 2006-10-31 Olivier Hainque <hainque@adacore.com>
19903 * s-stchop.ads: make this unit preelaborate. This is desirable in
19904 general and made mandatory by the use of this unit by s-taprop which
19905 is itself preelaborate.
19907 * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
19908 Td_Events component.
19910 2006-10-31 Vincent Celier <celier@adacore.com>
19912 * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
19915 2006-10-31 Vincent Celier <celier@adacore.com>
19917 * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
19919 2006-10-31 Vincent Celier <celier@adacore.com>
19921 * makegpr.adb (Check_Compilation_Needed): Take into account path names
19923 (Check_Compilation_Needed): When checking a C or C++ source, do not
19924 resolve symbolic links.
19925 (Display_Command): New Boolean parameter Ellipse, defaulted to False.
19926 When not in verbose mode and Ellipse is True, display "..." for the
19927 first argument with Display set to False.
19928 (Build_Global_Archive): Always set Display True for the first object
19929 file. Call Display_Command with Ellipse set to True.
19931 2006-10-31 Matt Heaney <heaney@adacore.com>
19933 * a-crbtgo.ads: Commented each subprogram
19935 * a-crbtgo.adb: Added reference to book from which algorithms were
19938 * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
19939 indicate which child.
19940 (Generic_Conditional_Insert): changed parameter name from "Success" to
19942 (Generic_Unconditional_Insert_With_Hint): improved algorithm
19944 * a-coorse.adb (Replace_Element): changed parameter name in call to
19945 conditional insert operation.
19947 * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
19949 * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
19952 * a-ciorse.adb (Replace_Element): changed parameter name in call to
19953 conditional insert operation.
19955 * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
19958 * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
19959 instead of mode inout.
19961 * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
19963 (Generic_Read): preserve existing buckets array if possible
19964 (Generic_Write): don't send buckets array length anymore
19966 * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
19967 instead of mode inout.
19969 * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
19970 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19972 * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
19973 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19974 (Replace_Element): local operation is now an instantiation
19976 * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
19977 check current length.
19978 (Generic_Replace_Element): new operation
19980 2006-10-31 Doug Rupp <rupp@adacore.com>
19982 * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
19983 Call TBK$SYMBOLIZE without omitting parameters.
19985 2006-10-31 Vincent Celier <celier@adacore.com>
19987 * symbols-processing-vms-ia64.adb,
19988 symbols-processing-vms-alpha.adb (Process): Do not include symbols
19989 that come from generic instantiations in bodies.
19991 2006-10-31 Pat Rogers <rogers@adacore.com>
19993 * a-rttiev.ads, a-rttiev.adb:
19994 This is a significant redesign primarily for the sake of automatic
19995 timer task termination but also to fix a design flaw.
19996 Therefore we are now using an RTS lock, instead of a protected
19997 object, to provide mutual exclusion to the queue of pending events
19998 and the type Timing_Event is no longer a protected type.
20000 2006-10-31 Robert Dewar <dewar@adacore.com>
20001 Cyrille Comar <comar@adacore.com>
20002 Ben Brosgol <brosgol@adacore.com>
20004 * debug.adb: Update flags documentation
20006 * gnat_ugn.texi: Add documentation for new -gnatwq switch
20007 Clean up documentation for several other warning switches
20008 Clarify how task stack size can be specified with various
20009 versions of Windows.
20010 Add note that -gnatVo includes ranges including loops
20011 Add documentation for -gnatL switch
20012 Add note on elaboration warning for initializing variables
20013 Add documentation for new -gnatwt warning switch
20014 Document new form of pragma Warnings (On|Off, string)
20015 Add comment on use of pragma Warnings to control warnings
20016 Add documentation for -gnatjnn switch
20017 Modify section on interfacing with C for VMS 64-bit.
20018 Add doc for -gnatVe/E
20019 Add documentation of new warning flags -gnatww/-gnatwW
20020 Add warnings about address clause overlays to list of warnings
20021 (Exception Handling Control): Document that the option --RTS must be
20022 used consistently for gcc and gnatbind.
20023 Clarify that inlining is not always possible
20024 Update documentation on pragma Unchecked_Union.
20027 Add documentation for new extended version of pragma Obsolescent
20028 Add documentation for implementation defined attribute 'Stub_Type.
20029 Add note on use of Volatile in asm statements
20030 Add documentation on use of pragma Unreferenced in context clause
20031 Document new form of pragma Warnings (On|Off, pattern)
20032 Document pragma Wide_Character_Encoding
20033 Add note that pragma Restrictions (No_Elaboration_Code) is only fully
20034 enforced if code generation is active.
20035 Add section on pragma Suppress to document GNAT specific check
20037 Clarify difference between No_Dispatching_Calls & No_Dispatch.
20038 Add documentation for pragma Restrictions (No_Elaboration_Code)
20041 Add comments on layout of subprogram local variables in the
20042 presence of nested subprograms.
20044 * ug_words: Resync.
20046 * elists.ads: Minor reformatting
20047 Node returns Node_Or_Entity_Id (doc change only)
20049 * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
20051 * g-arrspl.ads (Create): Update comments.
20053 * sem.ads: Add details on the handling of the scope stack.
20055 * usage.adb: Update documentation.
20057 * validsw.ads, validsw.adb:
20058 Add definition of Validity_Check_Components and implement -gnatVe/E
20060 * vms_data.ads: Add missing VMS qualifiers.
20062 * s-addope.ads: Add documentation on overflow and divide by zero
20064 2006-10-31 Robert Dewar <dewar@adacore.com>
20065 Thomas Quinot <quinot@adacore.com>
20066 Arnaud Charlet <charlet@adacore.com>
20068 * fmap.adb: Put routines in alpha order
20070 * g-boumai.ads: Remove redundant 'in' keywords
20072 * g-cgi.adb: Minor reformatting
20074 * g-cgi.ads: Remove redundant 'in' keywords
20076 * get_targ.adb: Put routines in alpha order
20078 * prj-attr.ads: Minor reformatting
20080 * s-atacco.ads: Minor reformatting
20082 * scn.adb: Put routines in alpha order
20084 * sinput-l.adb: Minor comment fix
20086 * sinput-p.adb: Minor comment fix
20088 * s-maccod.ads: Minor reformatting
20090 * s-memory.adb: Minor reformatting
20092 * s-htable.adb: Fix typo in comment.
20094 * s-secsta.adb: Minor comment update.
20096 * s-soflin.adb: Minor reformatting
20099 Add comment about odd qualification in Storage_Offset declaration
20102 Remove unnecessary 'in' keywords for formal parameters.
20104 * treeprs.adt: Minor reformatting
20106 * urealp.adb: Put routines in alpha order
20108 * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
20111 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
20113 * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
20115 * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
20116 workaround as on other platforms.
20118 * g-eacodu-vms.adb: Remove redundant 'in' keywords
20119 * g-expect-vms.adb: Remove redundant 'in' keywords
20121 * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
20122 clear error message if the list-of-files file cannot be opened.
20124 * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
20125 equality operator is always visible.
20127 * lang.opt: Woverlength-strings: New option.
20130 Update copyright, since nmake.ads and nmake.adb have changed.
20132 * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
20133 (Binder_Output_Time_Stamps_Set): removed.
20134 (Old_Binder_Output_Time_Stamp): idem.
20135 (New_Binder_Output_Time_Stamp): idem.
20136 (Recording_Time_From_Last_Bind): idem.
20137 (Recording_Time_From_Last_Bind): Make constant.
20139 * output.ads, output.adb (Write_Str): Allow LF characters
20140 (Write_Spaces): New procedure
20142 * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
20144 * inline.adb: Minor reformatting
20146 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
20148 * s-mastop-vms.adb: Remove redundant 'in' keywords
20150 * s-osprim-vms.adb: Remove redundant 'in' keywords
20152 * s-trafor-default.adb: Remove redundant 'in' keywords
20154 * 9drpc.adb: Remove redundant 'in' keywords
20156 * s-osinte-mingw.ads: Minor reformatting
20158 * s-inmaop-posix.adb: Minor reformatting
20160 * a-direio.ads: Remove quotes from Compile_Time_Warning message
20162 * a-exexda.adb: Minor code reorganization
20164 * a-filico.adb: Minor reformatting
20166 * a-finali.adb: Minor reformatting
20168 * a-nudira.ads: Remove quote from Compile_Time_Warning message
20170 * a-numeri.ads: Minor reformatting
20172 * a-sequio.ads: Remove quotes from Compile_Time_Warning message
20174 * exp_pakd.ads: Fix obsolete comment
20176 * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
20177 a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
20178 Probably not a bug, but certainly neater and more efficient.
20180 * a-tienio.adb: Minor reformatting
20182 * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
20183 Avoid assuming low bound of string is 1.
20185 * gnatbind.adb: Change Bindusg to package and rename procedure as
20186 Display, which now ensures that it only outputs usage information once.
20187 (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
20189 * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
20192 * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
20194 (Match): Add pragma Assert to ensure that Matches'First is zero
20196 * g-regpat.ads (Match): Document that Matches lower bound must be zero
20198 * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
20199 documented preconditions (also kills warnings about bad indexes).
20201 * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
20203 (Build_Import_Library): Ditto;
20205 * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
20207 * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
20209 * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
20210 lower bound of choice table is 1.
20212 * sem_case.ads (Analyze_Choices): Document that lower bound of
20215 * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
20218 * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
20219 and add appropriate Assert pragma to suppress warnings.
20221 * atree.h, atree.ads, atree.adb
20222 Change Elist24 to Elist25
20223 Add definitions of Field28 and Node28
20224 (Traverse_Field): Use new syntactic parent table in sinfo.
20226 * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
20228 * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
20230 * exp_tss.adb: Put routines in alpha order
20232 * fe.h: Remove redundant declarations.
20234 2006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
20236 * utils.c (builtin_function): Rename to gnat_builtin_function.
20237 Move common code to add_builtin_function.
20238 * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
20239 gnat_builtin_function.
20240 * gigi.h (builtin_function): Rename to gnat_builtin_function.
20241 Change the signature.
20243 2006-10-16 Brooks Moses <bmoses@stanford.edu>
20245 * Makefile.in: Add TEXI2PDF definition.
20246 * Make-lang.in: Add "ada.pdf" target.
20248 2006-10-03 Kazu Hirata <kazu@codesourcery.com>
20250 * decl.c, utils.c: Fix comment typos.
20251 * utils.c: Fix a typo.
20253 2006-09-28 Eric Botcazou <ebotcazou@adacore.com>
20255 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
20256 on "pure" Ada subprograms if SJLJ exceptions are used.
20257 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
20258 on the declaration node of JMPBUF_SAVE.
20259 * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
20260 of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
20261 * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
20263 2006-08-20 Laurent Guerby <laurent@guerby.net>
20266 g-socket.adb (Bind_Socket): Call Set_Address.
20268 2006-09-15 Eric Botcazou <ebotcazou@adacore.com>
20271 * decl.c (same_discriminant_p): New static function.
20272 (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
20273 subtype and we have discriminants, fix up the COMPONENT_REFs
20274 for the discriminants to make them reference the corresponding
20275 fields of the parent subtype after it has been built.
20277 2006-09-15 Roger Sayle <roger@eyesopen.com>
20280 * utils.c (max_size): Perform constant folding of (A ? B : C) - D
20281 into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
20283 2006-09-13 Olivier Hainque <hainque@adacore.com>
20286 * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
20287 of a SAVE_EXPR, just make the operand addressable/not-readonly and
20288 let the common gimplifier code make and propagate a temporary copy.
20289 (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
20290 out/in-out actuals and defer setting the addressable/readonly bits
20293 2006-09-13 Eric Botcazou <ebotcazou@adacore.com>
20296 * decl.c (components_to_record): Defer emitting debug info for the
20297 record type associated with the variant until after we are sure to
20300 2006-09-13 Eric Botcazou <ebotcazou@adacore.com>
20303 * gigi.h (gnat_internal_attribute_table): Declare.
20304 * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
20305 * utils.c (gnat_internal_attribute_table): New global variable.
20306 (builtin_function): Always call decl_attributes on the builtin.
20307 (handle_const_attribute): New static function.
20308 (handle_nothrow_attribute): Likewise.
20310 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
20312 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
20314 2006-06-23 Olivier Hainque <hainque@adacore.com>
20316 * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
20317 not been able to get a constant upper bound from TYPE_SIZE_UNIT.
20319 2006-06-20 James A. Morrison <phython@gcc.gnu.org>
20320 Eric Botcazou <ebotcazou@adacore.com>
20323 * Make-lang.in: Add check-gnat to lang_checks. Rename existing
20324 check-gnat into check-acats.
20326 2006-06-17 Karl Berry <karl@gnu.org>
20328 * gnat-style.texi (@dircategory): Use "Software development"
20329 instead of "Programming", following the Free Software Directory.
20331 2006-06-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20334 * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
20336 2006-06-06 Laurent Guerby <laurent@guerby.net>
20339 mlib-utl.adb: Use Program_Name.
20341 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
20343 * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
20344 sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
20345 trans.c, utils.c: Fix comment typos. Follow spelling
20347 * gnat_rm.texi, gnat_ugn.texi, : Fix typos. Follow spelling
20350 2006-05-19 Nicolas Setton <setton@adacore.com>
20352 * misc.c (gnat_dwarf_name): New function.
20353 (LANG_HOOKS_DWARF_NAME): Define to it.
20355 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
20357 * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
20358 (ada/misc.o): Likewise.
20359 (ada/utils.o): Likewise.
20361 2006-04-08 Aurelien Jarno <aurel32@debian.org>
20363 * Makefile.in: Add Ada support for GNU/kFreeBSD.
20364 * s-osinte-kfreebsd-gnu.ads: New file.
20366 2006-03-29 Carlos O'Donell <carlos@codesourcery.com>
20368 * Make-lang.in: Rename docdir to gcc_docdir.
20370 2006-03-04 Eric Botcazou <ebotcazou@adacore.com>
20372 * gigi.h (get_ada_base_type): Delete.
20373 * utils2.c (get_ada_base_type): Likewise.
20374 * trans.c (convert_with_check): Operate in the real base type.
20376 2006-03-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
20378 * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
20380 2006-03-02 Richard Sandiford <richard@codesourcery.com>
20382 * utils.c (create_var_decl): Use have_global_bss_p when deciding
20383 whether to make the decl common.
20385 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
20387 * Make-lang.in (Ada): Remove.
20388 (.PHONY): Remove Ada
20390 2006-02-17 Ed Schonberg <schonberg@adacore.com>
20392 * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
20393 aggregate, check the interpretations of the other operand to find one
20394 that may be a boolean array.
20396 (Analyze_Selected_Component): Fix flow-of-control typo in case where
20397 the prefix is a private extension.
20399 2006-02-17 Eric Botcazou <botcazou@adacore.com>
20402 * utils2.c (find_common_type): If both input types are BLKmode and
20403 have the same constant size, keep using the first one.
20405 * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
20407 * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
20409 * misc.c (gnat_handle_option): New case for -Woverlength-strings.
20411 2006-02-17 Jose Ruiz <ruiz@adacore.com>
20413 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
20414 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
20415 s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
20416 s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
20417 Abort_Defer/Undefer pairs to avoid the possibility of a task being
20418 aborted while owning a lock.
20420 2006-02-17 Javier Miranda <miranda@adacore.com>
20421 Robert Dewar <dewar@adacore.com>
20423 * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
20424 through an access to class-wide interface we force the displacement of
20425 the pointer to the allocated object to reference the corresponding
20426 secondary dispatch table.
20427 (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
20428 if Long_Shifts are supported on the target, even if 64 bit divides
20429 are not supported (configurable run time mode).
20430 (Expand_N_Type_Conversion): Do validity check if validity checks on
20431 operands are enabled.
20432 (Expand_N_Qualified_Expression): Do validity check if validity checks
20433 on operands are enabled.
20435 2006-02-17 Ed Schonberg <schonberg@adacore.com>
20437 * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
20438 must be materialized when the renamed expression is an explicit
20441 2006-02-17 Ed Schonberg <schonberg@adacore.com>
20443 * freeze.adb (Statically_Discriminated_Components): Return false if
20444 the bounds of the type of the discriminant are not static expressions.
20446 * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
20447 the bounds of the discriminant type are not static.
20449 2006-02-17 Robert Dewar <dewar@adacore.com>
20451 * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
20452 then we close To if it is valid.
20454 2006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
20456 * init.c (facility_resignal_table): new array
20457 (__gnat_default_resignal_p): enhance default predicate to resignal if
20458 VMS condition has one of the predefined facility codes.
20460 2006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
20462 * Makefile.in: Use VMS64 specialized versions of several units in
20463 Interfaces.C hierarchy to be compatible with HP C default size choices.
20464 Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
20466 2006-02-17 Ed Schonberg <schonberg@adacore.com>
20468 * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
20469 instantiation, the corresponding entity is the related_instance of the
20470 wrapper package created for the instance.
20472 2006-02-17 Ed Schonberg <schonberg@adacore.com>
20474 * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
20475 the current instance is nested within another instance in a child unit.
20477 2006-02-17 Javier Miranda <miranda@adacore.com>
20478 Ed Schonberg <schonberg@adacore.com>
20480 * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
20481 type we cannot inherit the primitive operations; we inherit the
20482 Corresponding_Record_Type (which has the list of primitive operations).
20483 (Check_Anonymous_Access_Types): When creating anonymous access types for
20484 access components, use Rewrite in order to preserve the tree structure,
20486 (Analyze_Object_Declaration): For limited types with access
20487 discriminants with defaults initialized by an aggregate, obtain
20488 subtype from aggregate as for other mutable types.
20489 (Derived_Type_Declaration): If the derived type is a limited interface,
20490 set the corresponding flag (Is_Limited_Record is not sufficient).
20492 2006-02-17 Ed Schonberg <schonberg@adacore.com>
20494 * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
20495 to inline a function that returns an unconstrained type, the return
20496 expression must be the first variable declared in the body of the
20499 2006-02-17 Javier Miranda <miranda@adacore.com>
20501 * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
20502 abstract interface type, the static analysis is not enough to know if
20503 the interface is implemented or not by the source tagged type. Hence
20504 we must pass the work to the expander to generate the required code to
20505 evaluate the conversion at run-time.
20506 (Resolve_Equality_Op): Do not apply previous
20507 transformation if expansion is disasbled, to prevent anomalies when
20508 locating global references in a generic unit.
20510 2006-02-17 Vincent Celier <celier@adacore.com>
20512 * snames.ads, snames.adb: New standard names for new project attributes:
20513 archive_builder, archive_indexer, compiler_pic_option,
20514 config_body_file_name, config_body_file_name_pattern,
20515 config_file_switches, config_file_unique, config_spec_file_name,
20516 config_spec_file_name_pattern, default_builder_switches,
20517 default_global_compiler_switches, default_language,
20518 dependency_file_kind, global_compiler_switches, include_path,
20519 include_path_file, language_kind, linker_executable_option,
20520 linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
20521 roots, runtime_project.
20523 2006-02-17 Matthew Heaney <heaney@adacore.com>
20525 * a-convec.ads, a-convec.adb:
20526 (operator "&"): handle potential overflow for large index types
20527 (Insert): removed Contraint_Error when using large index types
20528 (Insert_Space): removed Constraint_Error for large index types
20529 (Length): moved constraint check from Length to Insert
20531 * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
20532 as not null access.
20533 Explicit raise statements now include an exception message.
20534 (operator "&"): handle potential overflow for large index types
20535 (Insert): removed Contraint_Error when using large index types
20536 (Insert_Space): removed Constraint_Error for large index types
20537 (Length): moved constraint check from Length to Insert
20539 2006-02-17 Robert Dewar <dewar@adacore.com>
20541 * s-wchcnv.adb: Document handling of [ on output (we do not change
20542 this to ["5B"] and the new comments say why not.
20545 Add note for -gnatVo that this now includes the cases of type
20546 conversions and qualified expressions.
20547 Add comments on handling of brackets encoding for Text_IO
20549 2006-02-17 Ramon Fernandez <fernandez@adacore.com>
20550 Thomas Quinot <quinot@adacore.com>
20551 Robert Dewar <dewar@adacore.com>
20552 Javier Miranda <miranda@adacore.com>
20554 * expander.adb: Fix typo in comment
20556 * exp_pakd.adb: Fix typo
20557 Minor comment reformatting.
20559 * g-dyntab.adb: Minor reformatting
20561 * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
20562 aliased subprograms to look for the abstract interface subprogram.
20564 2006-02-16 Eric Botcazou <ebotcazou@adacore.com>
20566 * env.c (__gnat_setenv): Use size_t.
20567 (__gnat_unsetenv): Likewise.
20568 (__gnat_clearenv): Likewise.
20570 2006-02-16 Arnaud Charlet <charlet@adacore.com>
20572 * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
20574 2006-02-13 Arnaud Charlet <charlet@adacore.com>
20576 * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
20577 g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
20578 i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
20579 s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
20580 s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
20581 s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
20582 s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
20583 s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
20584 s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
20587 2006-02-13 Jose Ruiz <ruiz@adacore.com>
20589 * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
20590 protection against race conditions is not needed.
20591 (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
20593 (Set_Specific_Handler): Add mutual exclusive access to the specific
20595 (Specific_Handler): Add mutual exclusive access for retrieving the
20598 * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
20601 * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
20602 Fall_Back_Handler and Specific_Handler.
20604 * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
20605 termination handlers.
20606 Set two different owerflow depending on the maximal stack size.
20608 * s-solita.adb (Task_Termination_Handler_T): Document why explicit
20609 protection against race conditions is not needed when executing the
20610 task termination handler.
20612 2006-02-13 Robert Dewar <dewar@adacore.com>
20614 * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
20615 a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
20616 a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
20617 a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
20618 a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
20619 a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
20620 a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
20621 a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
20622 a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
20623 a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
20624 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
20625 a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
20626 a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
20627 a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
20628 a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
20629 a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
20630 a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
20631 a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
20632 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
20633 a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
20634 g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
20635 g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
20636 mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
20637 prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
20638 s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
20639 s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
20640 s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
20641 s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
20642 s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
20643 s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
20644 a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
20645 fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
20646 par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
20647 system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
20650 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
20652 * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
20653 s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
20654 s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
20655 s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
20656 a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
20657 s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
20658 a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
20659 s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
20660 s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
20662 2006-02-13 Arnaud Charlet <charlet@adacore.com>
20664 * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
20665 s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
20666 s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
20667 s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
20668 s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
20669 s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
20670 replaced by anonymous access type.
20671 (pthread_sigmask): Now take an access sigset_t
20673 * s-osinte-hpux.ads: Ditto.
20674 (pthread_mutex_t, pthread_cond_t): Update definitions to support
20675 properly 32 and 64 bit ABIs.
20677 2006-02-13 Pascal Obry <obry@adacore.com>
20679 * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
20680 s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
20681 s-taprop-linux.adb, s-taprop-solaris.adb,
20682 s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
20683 adjustement is already done when calling this routine.
20685 2006-02-13 Pascal Obry <obry@adacore.com>
20687 * system-mingw.ads (Underlying_Priorities): Update the priority mapping
20688 table to take advantage of the 16 priority levels available on Windows
20689 2000 and XP. On NT4 there are only 7 priority levels, this is properly
20690 supported by this new mapping.
20692 2006-02-13 Nicolas Setton <setton@adacore.com>
20694 * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
20695 (get_encoding): New subprogram. Extracts the encodings from an encoded
20698 2006-02-13 Pascal Obry <obry@adacore.com>
20699 Nicolas Roche <roche@adacore.com>
20700 Arnaud Charlet <charlet@adacore.com>
20702 * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
20704 (__gnat_try_lock): Add unicode support by using a specific section on
20706 (__gnat_get_current_dir): Idem.
20707 (__gnat_open_read): Idem.
20708 (__gnat_open_rw): Idem.
20709 (__gnat_open_create): Idem.
20710 (__gnat_create_output_file): Idem.
20711 (__gnat_open_append): Idem.
20712 (__gnat_open_new): Idem.
20713 (__gnat_file_time_name): Idem.
20714 (__gnat_set_file_time_name): Idem.
20715 (__gnat_stat): Idem.
20716 (win32_no_block_spawn): Idem.
20717 (__gnat_locate_exec_on_path): Idem.
20718 (__gnat_opendir): New routine.
20719 (__gnat_closedir): Idem.
20720 (__gnat_readdir): Add new parameter length (pointer to int). Update
20721 implementation to use it and add specific Win32 code for Unicode
20723 (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
20724 (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
20725 (convert_addresses): Do not define this dummy routine on VMS.
20727 * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
20728 runtime Unicode support will be activated.
20729 (S2WS): String to Wide-String conversion. This version just copy a
20730 string in non Unicode version.
20731 (WS2S): Wide-String to String conversion. This version just copy a
20732 string in non Unicode version.
20734 * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
20735 (Open): Now import __gnat_opendir from adaint.c.
20736 (Read): Change the implementation to support unicode characters. It is
20737 not possible to use strlen() on Windows as this version supports only
20738 standard ASCII characters. So the length of the directory entry is now
20739 returned from the imported __gnat_readdir routine.
20740 Update copyright notice.
20742 * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
20743 (opendir): Moved to adaint.c.
20745 * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
20746 (Get_Directory): Fix wrong indexing.
20747 (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
20748 __gnat_getenv from env.c
20749 (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
20752 * env.h, env.c: New file.
20754 * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
20755 adaint.c by __gnat_getenv from env.c
20757 * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
20758 adaint.c by __gnat_getenv from env.c
20760 * Make-lang.in: Add env.o in the list of C object needed by gnat1
20762 Update dependencies.
20764 2006-02-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
20765 Olivier Hainque <hainque@adacore.com>
20766 Eric Botcazou <ebotcazou@adacore.com>
20768 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
20770 * gigi.h (value_factor_p): Add prototype and description, now public.
20772 * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
20773 promotion for field with rep clause if the associated size was proven
20775 Expand comments describing attempts to use a packable type.
20776 (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
20777 E_Floating_Point_Subtype>: Inherit alias set of what we are making a
20778 subtype of to ensure conflicts amongst all subtypes in a hierarchy,
20779 necessary since these are not different types and pointers may
20780 actually designate any subtype in this hierarchy.
20781 (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
20782 discriminants but put them into record only if not Unchecked_Union;
20783 pass flag to components_to_record showing Unchecked_Union.
20784 (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
20785 components before variants; don't set TYPE_UNCHECKED_UNION_P.
20786 (components_to_record): New argument UNCHECKED_UNION.
20787 Remove special case code for Unchecked_Union and instead use main code
20788 with small changes.
20791 (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
20792 variable with the expression being built, only its inner field.
20794 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
20795 emit_sequence_entry_statements.
20796 (emit_sequence_entry_statements, body_with_handlers_p): Delete.
20797 (establish_gnat_vms_condition_handler): Move before
20798 Subprogram_Body_to_gnu.
20799 (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
20800 for a subprogram if it has a foreign convention or is exported.
20801 (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
20802 substituted for a CONST_DECL.
20803 (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
20804 Etype to assoc_to_constructor.
20805 (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
20806 discriminants of Unchecked_Union.
20807 (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
20808 don't need cluttering preprocessor directives.
20809 (establish_gnat_vms_condition_handler): New function. Establish the GNAT
20810 condition handler as current in the compiled function.
20811 (body_with_handlers_p): New function. Tell whether a given sequence of
20812 statements node is attached to a package or subprogram body and involves
20813 exception handlers possibly nested within inner block statements.
20814 (emit_sequence_entry_statements): New function, to emit special
20815 statements on entry of sequences when necessary. Establish GNAT
20816 condition handler in the proper cases for VMS.
20817 (Handled_Sequence_Of_Statements_to_gnu): Start block code with
20818 emit_sequence_entry_statements.
20820 * utils2.c (find_common_type): If both input types are BLKmode and
20821 have a constant size, use the smaller one.
20822 (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
20825 * utils.c (value_factor_p): Make public, to allow uses from other gigi
20827 (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
20828 (convert, case UNION_TYPE): Remove special treatment for unchecked
20832 (update_pointer_to): Update variants of pointer types to unconstrained
20833 arrays by attaching the list of fields of the main variant.
20835 2006-02-13 Arnaud Charlet <charlet@adacore.com>
20836 Robert Dewar <dewar@adacore.com>
20838 * a-exexpr.adb, a-exexpr-gcc.adb
20839 (Process_Raise_Exception): Removed, merged with Propagate_Exception.
20840 (Propagate_Exception): Now take extra From_Signal_Handler parameter.
20841 Remove code unused for exception propagation for the compiler itself
20842 from a-except.adb and update to still share separate packages.
20844 * a-except.ads, a-except.adb: Ditto.
20845 Add comments that this version is now used only by the compiler and
20846 other basic tools. The full version that includes the Ada 2005 stuff
20847 is in separate files a-except-2005.ads/adb. The reason is that we do
20848 not want to cause bootstrap problems with compilers not recognizing
20850 Add exception reason code PE_Implicit_Return
20851 Add new exception reason code (Null Exception_Id)
20853 * a-except-2005.adb, a-except-2005.ads: New files.
20855 * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
20857 * s-wchcon.adb: New file.
20859 * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
20860 (traceback.o deps): Likewise.
20861 (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
20862 Activate build of GMEM instrumentation library on VMS targets.
20863 (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
20864 Use a-except-2005.ads/adb for all run-time library builds unless
20865 specified otherwise.
20866 [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
20867 s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
20868 Use s-parame.adb on all native platforms.
20869 Use s-parame-vxworks.adb on all vxworks platforms.
20870 Add env.c env.h in LIBGNAT_SRCS
20871 Add env.o in LIBGNAT_OBJS
20872 (GNATMAKE_OBJS): Remove ctrl_c.o object.
20873 (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
20874 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
20875 supports VxWorks 6 RTPs.
20876 (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
20877 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
20879 * types.h, types.ads (Terminate_Program): New exception
20880 Add comment on modifying multiple versions of a-except.adb when the
20881 table of exception reasons is modified.
20882 Add exception reason code PE_Implicit_Return
20883 Add new exception reason code (Null Exception_Id)
20885 * clean.adb (Initialize): Get the target parameters before checking
20886 if target is OpenVMS. Move the OpenVMS specific code here from package
20887 body elaboration code.
20889 2006-02-13 Thomas Quinot <quinot@adacore.com>
20890 Vincent Celier <celier@adacore.com>
20891 Robert Dewar <dewar@adacore.com>
20893 * ali-util.adb (Get_File_Checksum): Update to account for change in
20894 profile of Initialize_Scanner.
20896 * gprep.adb (Gnatprep): Update to account for change in profile of
20897 Initialize_Scanner.
20898 (Process_One_File): Same.
20900 * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
20901 common code between Get_Code_Unit and Get_Source_Unit. Reimplement
20902 that behaviour using the new Unit information recorded in the source
20903 files table, rather than going through all units every time.
20904 (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
20905 (Get_Source_Unit): Same.
20907 * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
20908 change in profile of Initialize_Scanner.
20909 (Prepare_To_Preprocess): Same.
20911 * lib.ads: Fix typo in comment (templace -> template).
20913 * prj-part.adb (Parse_Single_Project): Update to account for change in
20914 profile of Initialize_Scanner.
20916 * scn.adb (Initialize_Scanner): Account for change in profile of
20917 Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
20918 Also record the association of the given Source_File_Index to the
20919 corresponding Unit_Number_Type.
20921 * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
20923 (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
20924 Remove Unit formal for generic scanner: this formal
20925 is only relevant to Scn (the scanner instance used to parse Ada source
20926 files), not to other instances. Update comment accordingly.
20927 (Scan): Use new function Snames.Is_Keyword_Name.
20929 * sinfo-cn.adb: Fix typo in comment.
20931 * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
20934 * sinput.ads (Source_File_Record): New component Unit, used to capture
20935 the unit identifier (if any) associated to a source file.
20937 * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
20938 Unit in Source_File_Record.
20940 * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
20941 in profile of Initialize_Scanner.
20943 * scans.adb (Initialize_Ada_Keywords): New procedure
20945 * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
20946 Ada keywords in the Namet table, without the need to call
20947 Initialize_Scanner.
20949 * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
20950 (Is_Keyword_Name): New function
20952 * snames.ads: Add subtype Configuration_Pragma_Names
20953 Add pragma Ada_2005 (synonym for Ada_05)
20954 (Is_Keyword_Name): New function
20956 * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
20958 2006-02-13 Arnaud Charlet <charlet@adacore.com>
20960 * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
20963 * a-stwima.adb (To_Set): Add extra check when N = 0.
20965 * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
20967 2006-02-13 Arnaud Charlet <charlet@adacore.com>
20969 * s-parame-mingw.adb, s-parame-linux.adb,
20970 s-parame-solaris.adb: Removed, replaced by s-parame.adb
20972 * s-parame-vxworks.ads: Fix typo.
20974 * s-parame-vxworks.adb: New file.
20976 * s-parame.adb: Version now used by all native platforms.
20977 (Default_Stack_Size): Use 2 megs for default stack size and use
20978 __gl_default_stack_size when available.
20979 (Minimum_Stack_Size): Use 12K.
20981 * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
20982 (Create_Task): Refine implementation taking advantage of the XP stack
20983 size support. On XP, we now create the thread using the flag
20984 STACK_SIZE_PARAM_IS_A_RESERVATION.
20986 * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
20988 * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
20989 XP and 0 on older Windows versions.
20991 * interfac-vms.ads: Removed, no longer used.
20993 2006-02-13 Matthew Heaney <heaney@adacore.com>
20995 * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
20996 a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
20997 a-cohase.adb: All explicit raise statements now include an exception
21000 * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
21001 (Update_Element_Preserving_Key): renamed op to just Update_Element.
21002 Explicit raise statements now include an exception message
21004 * a-cihase.ads, a-cohase.ads: Removed comment.
21006 * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
21007 a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
21008 a-szbzha.adb, a-szfzha.ads: New files.
21010 2006-02-13 Matthew Heaney <heaney@adacore.com>
21012 * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
21015 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
21017 * lang.opt: Wvariadic-macros: New option.
21018 Wold-style-definition: Likewise.
21019 Wmissing-format-attribute: Likewise.
21021 * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
21022 -Wold-style-definition and -Wmissing-format-attribute.
21024 2006-02-13 Robert Dewar <dewar@adacore.com>
21026 * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
21028 * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
21030 2006-02-13 Nicolas Roche <roche@adacore.com>
21032 * a-envvar.adb, a-envvar.ads: New files.
21034 2006-02-13 Douglas Rupp <rupp@adacore.com>
21036 * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
21038 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
21040 2006-02-13 Pat Rogers <rogers@adacore.com>
21042 * a-rttiev.adb, a-rttiev.ads: New files.
21044 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
21046 * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
21047 a-wwboio.ads, a-zzboio.adb, a-zzboio.ads: New files.
21049 * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
21051 2006-02-13 Robert Dewar <dewar@adacore.com>
21053 * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
21054 sem_case.adb: Minor code reorganization (not Present should be No)
21056 2006-02-13 Geert Bosch <bosch@adacore.com>
21057 Gary Dismukes <dismukes@adacore.com>
21059 * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
21060 0, since the lower bound of the actual string may be greater than one.
21063 * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
21064 layout is requested.
21066 2006-02-13 Vincent Celier <celier@adacore.com>
21068 * back_end.adb (Scan_Compiler_Arguments): Check if
21069 Search_Directory_Present is True and, if it is, add the argument in
21070 the source search directory path.
21072 * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
21073 Search_Directory_Present to True.
21075 2006-02-13 Joel Brobecker <brobecke@adacore.com>
21077 * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
21078 volatile, to tell the compiler to preserve this variable at any level
21080 (Gen_Versions_Ada): Temporarily work around codegen bug.
21082 2006-02-13 Vincent Celier <celier@adacore.com>
21084 * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
21085 gcc to link with option -shared-libgcc.
21086 (Gnatlink): Remove duplicate switches -shared-libgcc
21088 2006-02-13 Robert Dewar <dewar@adacore.com>
21090 * gnatvsn.ads (Current_Year): New constant, used to easily update
21091 copyright on all GNAT tools.
21093 * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
21096 2006-02-13 Robert Dewar <dewar@adacore.com>
21098 * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
21099 after hyphen (small aesthetic change useful for a range of numbers
21101 Suppress range checks for a couple of assignments which otherwise
21102 cause validity checks with validity checking turned on.
21104 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
21105 Improvement in error message for object.
21106 (Rep_Item_Too_Late): Remove '!' in warning message.
21108 2006-02-13 Robert Dewar <dewar@adacore.com>
21109 Eric Botcazou <ebotcazou@adacore.com>
21111 * err_vars.ads: Suppress range checks for a couple of assignments
21112 which otherwise cause validity checks with validity checking turned on.
21115 * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
21116 Make message unconditional if it is a warning.
21117 (Error_Msg_NEL): Always output warning messages.
21118 Suppress range checks for a couple of assignments which otherwise
21119 cause validity checks with validity checking turned on.
21121 * errout.ads (Message Insertion Characters): Document that '!' is
21122 implied by '?' in error messages.
21124 * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
21125 (Gnat1drv): Use a goto to end of main subprogram instead of
21126 Exit_Program (E_Success) so that finalization can occur normally.
21128 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
21130 * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
21133 2006-02-13 Vincent Celier <celier@adacore.com>
21135 * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
21136 Unchecked_Conversion functions.
21137 (Modification_Time): Use direct conversion of OS_Time to Calendar time
21138 when OpenVMS returns False.
21140 * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
21141 a-dirval.adb (OpenVMS): New Boolean function
21143 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21144 Thomas Quinot <quinot@adacore.com>
21146 * checks.adb (Build_Discriminant_Checks): If the expression being
21147 checks is an aggregate retrieve the values of its discriminants to
21148 generate the check, rather than creating a temporary and a reference
21150 (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
21151 (Install_Null_Excluding_Check): Ditto
21152 (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
21153 not for the renamed object, so that the actual itype is attached in the
21156 2006-02-13 Robert Dewar <dewar@adacore.com>
21157 Vincent Celier <celier@adacore.com>
21159 * debug.adb: Eliminate numeric switches for binder/gnatmake
21161 * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
21162 switches for the compiler.
21163 (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
21164 (Scan_Make_Switches): When failing with an illegal switch, output an
21165 error message with the full switch.
21166 Eliminate numeric switches for binder/gnatmake
21168 * switch.ads, switch.adb (Bad_Switch): New procedure
21170 * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
21171 Remove 0-9 as debug flag character possibilities
21172 -d is now controlling the primary stack size when its value is a
21173 positive. Also add checks against invalid values, and support for kb,
21174 mb. Ditto for -D switch.
21176 2006-02-13 Robert Dewar <dewar@adacore.com>
21177 Serguei Rybin <rybin@adacore.com>
21179 * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
21180 save/restore routines.
21181 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
21182 were not always properly handled previously.
21183 Since we are changing the tree format anyway, also get rid of the
21184 junk obsolete Immediate_Errors flag.
21185 (Tree_Read): Change the way of reading Tree_Version_String - now we
21186 read the version string from the tree even if its length is not the
21187 same as the length of the version string computed from Gnatvsn.
21188 (Search_Directory_Present): New Boolean flag for the compiler.
21189 Define Tree_Version_String as a dynamic string.
21190 (Default_Stack_Size): new variable, used to handle switch -d.
21193 For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
21194 only for main unit.
21195 Add pragma Ada_2005 (synonym for Ada_05)
21196 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
21197 were not always properly handled previously.
21199 * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
21200 explicit Ada_95 to Ada_2005.
21202 2006-02-13 Javier Miranda <miranda@adacore.com>
21203 Robert Dewar <dewar@adacore.com>
21204 Ed Schonberg <schonberg@adacore.com>
21206 * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
21207 against errors in the source program: a private types for which the
21208 corresponding full type declaration is missing and pragma CPP_Virtual
21210 (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
21211 (Is_Known_Null): New flag
21212 (Has_Pragma_Pure): New flag
21213 (No_Return): Present in all entities, set only for procedures
21214 (Is_Limited_Type): A type whose ancestor is an interface is limited if
21215 explicitly declared limited.
21216 (DT_Offset_To_Top_Func): New attribute that is present in E_Component
21217 entities. Only used for component marked Is_Tag. If present it stores
21218 the Offset_To_Top function used to provide this value in tagged types
21219 whose ancestor has discriminants.
21221 * exp_ch2.adb: Update status of new Is_Known_Null flag
21223 * sem_ch7.adb: Maintain status of new Is_Known_Null flag
21225 * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
21226 the categorization sense if Is_Pure was set by pragma Pure_Function.
21228 2006-02-13 Quentin Ochem <ochem@adacore.com>
21229 Olivier Hainque <hainque@adacore.com>
21231 * bindusg.adb: Updated documentation for -d and -D switches.
21233 * raise.h (__gnat_set_globals): added new parameter for
21234 Default_Stack_Size.
21236 * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
21237 (__gnat_handle_vms_condition): Adjust context before raise.
21238 (__gnat_install_handler): Restore the global vector setup for GCC
21239 versions before 3.4, as the frame based circtuitry is not available
21241 (__gnat_set_globals): added a parameter default_stack_size
21242 (__gl_default_stack_size): new variable.
21244 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21246 * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
21247 "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
21248 does not exist in the Ada RM.
21249 (Compatible_Int_Bounds): Determine whether two integer range bounds
21250 are of equal length and have the same start and end values.
21251 (Is_Int_Range_Bounds): Determine whether a node is an integer range.
21252 (Build_Record_Aggr_Code): Perform proper sliding of a nested array
21253 aggregate when it is part of an object declaration.
21254 (Build_Record_Aggr_Code) If the aggregate ttype is a derived type that
21255 constrains discriminants of its parent, add explicitly the discriminant
21256 constraints of the ancestor by retrieving them from the
21257 stored_constraint of the parent.
21259 2006-02-13 Robert Dewar <dewar@adacore.com>
21261 * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
21262 attribute Mechanism_Code is applied to renamed subprogram, modify
21263 prefix to point to base subprogram.
21264 Max/Min attributes now violate Restriction No_Implicit_Conditionals
21266 * sinfo.ads: Document that Mechanism_Code cannot be applied to
21267 renamed subprograms so that the front-end must replace the prefix
21270 2006-02-13 Javier Miranda <miranda@adacore.com>
21271 Gary Dismukes <dismukes@adacore.com>
21273 * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
21274 availability of RE_Interface_Tag.
21275 (Build_Initialization_Call): Fix wrong access to the discriminant value.
21276 (Freeze_Record_Type): Do not generate the tables associated with
21277 timed and conditional dispatching calls through synchronized
21278 interfaces if compiling under No_Dispatching_Calls restriction.
21279 When compiling for Ada 2005, for a nonabstract
21280 type with a null extension, call Make_Controlling_Function_Wrappers
21281 and insert the wrapper function declarations and bodies (the latter
21282 being appended as freeze actions).
21283 (Predefined_Primitive_Bodies): Do not generate the bodies of the
21284 predefined primitives associated with timed and conditional
21285 dispatching calls through synchronized interfaces if we are
21286 compiling under No_Dispatching_Calls.
21287 (Build_Init_Procedure): Use RTE_Available to check if a run-time
21288 service is available before generating a call.
21289 (Make_Controlling_Function_Wrappers): New procedure.
21290 (Expand_N_Full_Type_Declaration): Create a class-wide master for
21291 access-to-limited-interfaces because they can be used to reference
21292 tasks that implement such limited interface.
21293 (Build_Offset_To_Top_Functions): Build the tree corresponding to the
21294 procedure spec and body of the Offset_To_Top function that is generated
21295 when the parent of a type with discriminants has secondary dispatch
21297 (Init_Secondary_Tags): Handle the case in which the parent of the type
21298 containing secondary dispatch tables has discriminants to generate the
21299 correct arguments to call Set_Offset_To_Top.
21300 (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
21302 * a-tags.ads, a-tags.adb: (Check_Index): Removed.
21303 Add Wide_[Wide_]Expanded_Name.
21304 (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
21305 the same functionality of Get_Prim_Op_Address but applied to predefined
21306 primitive operations because the pointers to the predefined primitives
21307 are now saved in a separate table.
21308 (Parent_Size): Modified to get access to the separate table of primitive
21309 operations or the parent type.
21310 (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
21311 functionality of Set_Prim_Op_Address but applied to predefined primitive
21313 (Set_Signature): New subprogram used to store the signature of a DT.
21314 (Displace): If the Offset_To_Top value is not static then call the
21315 function generated by the expander to get such value; otherwise use
21316 the value stored in the table of interfaces.
21317 (Offset_To_Top): The type of the actual has been changed to Address to
21318 give the correct support to tagged types with discriminants. In this
21319 case this value is stored just immediately after the tag field.
21320 (Set_Offset_To_Top): Two new formals have been added to indicate if the
21321 offset_to_top value is static and hence pass this value to the run-time
21322 to store it in the table of interfaces, or else if this value is dynamic
21323 and then pass to the run-time the address of a function that is
21324 generated by the expander to provide this value for each object of the
21327 * rtsfind.ads (Default_Prin_Op_Count): Removed.
21328 (Default_Prim_Op_Count): New entity
21329 (Get_Predefined_Prim_Op_Address): New entity
21330 (Set_Predefined_Prim_Op_Address): New entity
21331 (RE_Set_Signature): New entity
21333 2006-02-13 Thomas Quinot <quinot@adacore.com>
21334 Ed Schonberg <schonberg@adacore.com>
21336 * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
21337 Make_Adjust_Call done for a newly-allocated object.
21339 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
21340 in a subprogram are wrapped in a cleanup block, indicate that the
21341 subprogram contains an inner block with an exception handler.
21342 (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
21343 Adjust call is for a newly-allocated object. In that case we must not
21344 assume that the finalization list chain pointers are correct (since they
21345 come from a bit-for-bit copy of the original object's pointers) so if
21346 the attach level would otherwise be zero (no change), we set it to 4
21347 instead to cause the pointers to be reset to null.
21349 * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
21350 reset chain pointers to null.
21352 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21354 * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
21355 string, and the context requires a loop for the assignment (e.g.
21356 because the left-hand side is packed), generate a unique name for the
21357 temporary that holds the string, to prevent spurious name clashes.
21359 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21360 Javier Miranda <miranda@adacore.com>
21361 Robert Dewar <dewar@adacore.com>
21362 Gary Dismukes <dismukes@adacore.com>
21364 * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
21365 return unconstrained arrays.
21367 (Expand_Call): An indirect call through an access parameter of a
21368 protected operation is not a protected call.
21369 Add circuit to raise CE in Ada 2005 mode following call
21370 to Raise_Exception.
21371 (Register_DT_Entry): Do nothing if
21372 the run-time does not give support to abstract interfaces.
21373 (Freeze_Subprogram): In case of dispatching operations, do not generate
21374 code to register the operation in the dispatch table if the source
21375 is compiled with No_Dispatching_Calls.
21376 (Register_Predefined_DT_Entry): Generate code that calls the new
21377 run-time subprogram Set_Predefined_Prim_Op_Address instead of
21378 Set_Prim_Op_Address.
21380 * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
21381 on array assignments if the right-hand side is a function call that has
21382 been inlined. Check is performed on the assignment in the block.
21383 (Process_Bounds): If bounds and range are overloaded, apply preference
21384 rule for root operations to disambiguate, and diagnose true ambiguity.
21385 (Analyze_Assignment): Propagate the tag for a class-wide assignment with
21386 a tag-indeterminate right-hand side even when Expander_Active is True.
21387 Needed to ensure that dispatching calls to T'Input are allowed and
21388 get the tag of the target class-wide object.
21390 * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
21391 an inherited primitive operation that already overrides several
21392 abstract interface primitives. For transitivity, the new entity must
21393 also override all the abstract interface primitives covered by the
21394 inherited overriden primitive.
21395 Emit warning if new entity differs from homograph in same scope only in
21396 that one has an access parameter and the other one has a parameter of
21397 a general access type with the same designated type, at the same
21398 position in the signature.
21399 (Make_Inequality_Operator): Use source locations of parameters and
21400 subtype marks from corresponding equality operator when creating the
21401 tree structure for the implicit declaration of "/=". This does not
21402 change anything in behaviour except that the decoration of the
21403 components of the subtree created for "/=" allows ASIS to get the
21404 string images of the corresponding identifiers.
21405 (Analyze_Return_Statement): Remove '!' in warning message.
21406 (Check_Statement_Sequence): Likewise.
21407 (Analyze_Subprogram_Body): For an access parameter whose designated type
21408 is an incomplete type imported through a limited_with clause, use the
21409 type of the corresponding formal in the body.
21410 (Check_Returns): Implicit return in No_Return procedure now raises
21411 Program_Error with a compile time warning, instead of beging illegal.
21412 (Has_Single_Return): Function returning unconstrained type cannot be
21413 inlined if expression in unique return statement is not an identifier.
21414 (Build_Body_To_Inline): It is possible to inline a function call that
21415 returns an unconstrained type if all return statements in the function
21416 return the same local variable. Subsidiary procedure Has_Single_Return
21417 verifies that the body conforms to this restriction.
21419 * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
21420 same type, and one of them is of an anonymous access type, convert
21421 the other operand to it, so that this is a valid binary operation for
21423 (Resolve_Type_Conversion): Handle subtypes of protected types and
21424 task types when accessing to the corresponding record type.
21425 (Resolve_Allocator): Add '\' in 2-line warning message.
21426 Remove '!' in warning message.
21427 (Resolve_Call): Add '\' in 2-line warning message.
21428 (Valid_Conversion): Likewise.
21429 (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
21430 resulting type may be an access type with an implicit dereference.
21431 Obtain the proper component from the designated type.
21432 (Make_Call_Into_Operator): Handle properly a call to predefined equality
21433 given by an expanded name with prefix Standard, when the operands are
21434 of an anonymous access type.
21435 (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
21436 Explicit_Dereference and Resolve_Selected_Component, to verify that the
21437 prefix of the expression is not of an incomplete type. Allows full
21438 diagnoses of all semantic errors.
21439 (Resolve_Actuals): If the actual is an allocator whose directly
21440 designated type is a class-wide interface we build an anonymous
21441 access type to use it as the type of the allocator. Later, when
21442 the subprogram call is expanded, if the interface has a secondary
21443 dispatch table the expander will add a type conversion to force
21444 the displacement of the pointer.
21445 (Resolve_Call): If a function that returns an unconstrained type is
21446 marked Inlined_Always and inlined, the call will be inlined and does
21447 not require the creation of a transient scope.
21448 (Check_Direct_Boolean_Op): Removed
21449 (Resolve_Comparison_Op): Remove call to above
21450 (Resolve_Equality_Op): Remove call to above
21451 (Resolve_Logical_Op): Inline above, since this is only call.
21452 (Valid_Conversion): Handle properly conversions between arrays of
21453 convertible anonymous access types.
21456 (Set_Literal_String_Subtype): If the lower bound is not static, wrap
21457 the literal in an unchecked conversion, because GCC 4.x needs a static
21458 value for a string bound.
21460 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21461 Hristian Kirtchev <kirtchev@adacore.com>
21463 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
21464 components of the corresponding record, take into account component
21465 definitions that are access definitions.
21466 (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
21467 procedure is not considered a dispatching call and will be expanded
21470 2006-02-13 Javier Miranda <miranda@adacore.com>
21472 * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
21473 controlling argument of the dispatching call is an abstract interface
21474 class-wide type then we use it directly.
21475 Check No_Dispatching_Calls restriction.
21476 (Default_Prim_Op_Position): Remove the code that looks for the last
21477 entity in the list of aliased subprograms. This code was wrong in
21479 (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
21480 when the source is compiled with the No_Dispatching_Calls restriction.
21481 (Init_Predefined_Interface_Primitives): No need to inherit primitives
21482 if we are compiling with restriction No_Dispatching_Calls.
21483 (Make_Disp_XXX): Addition of assertion to avoid the use of all these
21484 subprograms if we are compiling under No_Dispatching_Calls restriction.
21485 (Make_DT): Generate a dispatch table with a single dummy entry if
21486 we are compiling with the No_Dispatching_Calls restriction. In
21487 addition, in this case we don't generate code that calls to the
21488 following run-time subprograms: Set_Type_Kind, Inherit_DT.
21489 (Make_Select_Specific_Data_Table): Add assertion to avoid the use
21490 of this subprogram if compiling with the No_Dispatching_Calls
21492 (Expand_Type_Conversion): Instead of using the actual parameter,
21493 the argument passed as parameter to the conversion function was
21494 erroneously referenced by the expander.
21495 (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
21496 Set_Predefined_Primitive_Op_Address and Set_Signature.
21497 (Expand_Dispatching_Call): Generate call to
21498 Get_Predefined_Prim_Op_Address for predefined primitives.
21499 (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
21500 predefined primitives.
21501 (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
21502 primitives we reserve one dummy entry to ensure that the tag does not
21503 point to some memory that is associated with some other object. In
21504 addition, remove all the old code that generated the assignments
21505 associated with the signature of the dispatch table and replace them
21506 by a call to the new subprogram Set_Signature.
21507 (Set_All_DT_Position): Change the algorithm because now we have a
21508 separate dispatch table associated with predefined primitive operations.
21509 (Expand_Interface_Conversion): In case of non-static offset_to_top
21510 add explicit dereference to get access to the object after the call
21511 to displace the pointer to the object.
21512 (Expand_Interface_Thunk): Modify the generation of the actual used
21513 in the calls to the run-time function Offset_To_Top to fulfil its
21515 (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
21517 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21519 * exp_dist.adb (Copy_Specification): For access parameters, copy
21520 Null_Exclusion flag, which will have been set for stream subprograms
21523 2006-02-13 Pascal Obry <obry@adacore.com>
21525 * expect.c (__gnat_expect_portable_execvp): New implementation. The
21526 previous implementation was using the C runtime spawnve routine but
21527 the corresponding wait was using directly the Win32 API. This was
21528 causing some times a lock when waiting for an event using
21529 WaitForSingleObject in __gnat_waitpid. This new implementation uses
21530 the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
21531 API fixes this problem.
21533 2006-02-13 Robert Dewar <dewar@adacore.com>
21535 * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
21538 2006-02-13 Thomas Quinot <quinot@adacore.com>
21540 * exp_pakd.ads: Fix typos in comments.
21542 * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
21543 array reference that is an explicit dereference, mark the converted
21544 (packed) array reference as analyzed to prevent a forthcoming
21545 reanalysis from resetting its type to the original (non-packed) array
21548 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21549 Javier Miranda <miranda@adacore.com>
21550 Eric Botcazou <ebotcazou@adacore.com>
21552 * exp_util.ads, exp_util.adb (Find_Prim_Op,
21553 Is_Predefined_Primitive_Operation): When
21554 searching for the predefined equality operator, verify that operands
21555 have the same type.
21556 (Is_Predefined_Dispatching_Operation): Remove the code that looks
21557 for the last entity in the list of aliased subprograms. This code
21558 was wrong in case of renamings.
21559 (Set_Renamed_Subprogram): New procedure
21560 (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
21561 Exp_Type constant computed when entering this subprogram.
21562 (Known_Null): New function
21563 (OK_To_Do_Constant_Replacement): New function
21564 (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
21565 (Side_Effect_Free): An attribute reference 'Input is not free of
21566 side effect, unlike other attributes that are functions. (from code
21568 (Remove_Side_Effects): Expressions that involve packed arrays or records
21569 are copied at the point of reference, and therefore must be marked as
21570 renamings of objects.
21571 (Is_Predefined_Dispatching_Operation): Return false if the operation is
21572 not a dispatching operation.
21575 (Remove_Side_Effects): Lift enclosing type conversion nodes for
21576 elementary types in all cases.
21578 2006-02-13 Javier Miranda <miranda@adacore.com>
21580 * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
21581 task types when accessing to the corresponding record type.
21582 Remove '!' in warning message.
21584 2006-02-13 Olivier Hainque <hainque@adacore.com>
21586 * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
21587 to avoid useless and space inefficient overalignments on targets where
21588 Max_Alignment is larger than 16.
21590 2006-02-13 Pascal Obry <obry@adacore.com>
21592 * g-catiio.adb (Sec_Number): New type used to compute the number of
21593 seconds since 1-1-1970.
21594 (Image) [Natural]: The parameter was an Integer, as we can't deal with
21595 negative numbers (years, months...) it is better to have a Natural here.
21597 (Image) [Number]: Change parameter from Long_Integer to Number.
21598 (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
21599 overflow for dates past year 2038.
21601 2006-02-13 Matthew Heaney <heaney@adacore.com>
21603 * g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
21606 2006-02-13 Arnaud Charlet <charlet@adacore.com>
21608 * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
21610 (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
21611 finalization can occur normally.
21613 2006-02-13 Vincent Celier <celier@adacore.com>
21615 * gnatcmd.adb (Rules_Switches): New table
21616 (Add_To_Rules_Switches): New procedure
21617 (GNATCmd): For command CHECK, put all options following "-rules" in the
21618 Rules_Switches table. Append these -rules switches after the -cargs
21621 2006-02-13 Robert Dewar <dewar@adacore.com>
21623 * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
21624 These two cases were generating incorrect output, and if this unit
21625 was built with checks on, generated a discriminant mismatch constraint
21628 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21629 Robert Dewar <dewar@adacore.com>
21631 * lib-xref.adb (Get_Type_Reference): For a private type whose full
21632 view is an array type, indicate the component type as well, for
21633 navigation purposes.
21634 (Generate_Reference): Don't consider array ref on LHS to be a case
21635 of violating pragma Unreferenced.
21636 Do not give Ada 2005 warning except on real reference.
21638 2006-02-13 Vincent Celier <celier@adacore.com>
21640 * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
21641 main source, add switch -mdebug-main=_ada_ so that the executable can
21642 be debugged by the standard VMS debugger.
21643 (Gnatmake): Set No_Main_Subprogram to True when there is no main
21644 subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
21645 Exit the Multi_Main_Loop when Unique_Compile is True after compilation
21646 of the last source, as the binding and linking phases are never
21648 Set all executable obsolete when rebuilding a library.
21650 * makeutl.adb (Linker_Options_Switches): Do not process empty linker
21653 2006-02-13 Javier Miranda <miranda@adacore.com>
21656 * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
21657 code to improve the error message reported when the program has
21658 declarations of abstract interface types and it is not compiled with
21659 the -gnat05 switch.
21660 (P_Access_Definition): Reorganize the code to improve the error
21661 message reported when the new Ada 2005 syntax for anonymous
21662 access types is used and the program is not compiled with the
21665 2006-02-13 Robert Dewar <dewar@adacore.com>
21667 * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
21668 stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
21671 2006-02-13 Javier Miranda <miranda@adacore.com>
21673 * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
21674 against source containing syntax errors.
21676 2006-02-13 Vincent Celier <celier@adacore.com>
21678 * prj.adb (Reset): Initialize the first element of table Namings with
21679 the standard naming data.
21681 2006-02-13 Vincent Celier <celier@adacore.com>
21683 * prj.ads (Error_Warning): New enumeration type
21685 * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
21686 unknown, use the location of the project to report the error.
21687 (When_No_Sources): New global variable
21688 (Report_No_Ada_Sources): New procedure
21689 (Check): New parameter When_No_Sources. Set value of global variable
21691 (Find_Sources): Call Report_No_Ada_Sources when appropriate
21692 (Get_Sources_From_File): Ditto
21693 (Warn_If_Not_Sources): Better warning messages indicating the unit name
21696 * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
21697 Call Prj.Proc.Process with parameter When_No_Sources.
21699 * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
21700 Call Recursive_Check with parameter When_No_Sources.
21701 (Recursive_Check): New parameter When_No_Sources. Call itself and
21702 Prj.Nmsc.Check with parameter When_No_Sources.
21703 (Process): New parameter When_No_Sources. Call Check with parameter
21705 (Copy_Package_Declarations): New procedure to copy renamed parameters
21706 and setting the location of the declared attributes to the location
21707 of the renamed package.
21708 (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
21711 2006-02-13 Vincent Celier <celier@adacore.com>
21713 * prj-makr.adb (Make): Preserve the comments from the original project
21715 When removing nodes (attributes Source_Dirs, Source_Files,
21716 Source_List_File and package Naming), save the comments and attach the
21717 saved comments to the newly created nodes.
21718 Do not add a with clause for the naming package if one already exists.
21720 2006-02-13 Javier Miranda <miranda@adacore.com>
21721 Gary Dismukes <dismukes@adacore.com>
21722 Robert Dewar <dewar@adacore.com>
21724 * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
21726 * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
21727 aliased entities to look for the overriden abstract interface
21729 (Is_Interface_Subprogram): Complete documentation.
21730 (Check_Dispatching_Operation): Do not generate code to register the
21731 operation in the dispatch table if the source is compiled with
21732 restriction No_Dispatching_Calls.
21733 (Override_Dispatching_Operation): Check for illegal attempt to override
21734 No_Return procedure with procedure that is not No_Return
21735 (Check_Dispatching_Call): Suppress the check for an abstract operation
21736 when the original node of an actual is a tag-indeterminate attribute
21737 call, since the attribute, which must be 'Input, can never be abstract.
21738 (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
21739 call to the Input attribute (even when rewritten).
21740 (Propagate_Tag): Augment comment to indicate the possibility of a call
21741 to an Input attribute.
21743 * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
21744 calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
21746 * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
21747 No_Wide_Characters is no longer partition-wide
21748 No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
21751 2006-02-13 Douglas Rupp <rupp@adacore.com>
21753 * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
21755 2006-02-13 Javier Miranda <miranda@adacore.com>
21757 * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
21758 handles default-initialized components to keep separate the management
21759 of this feature but also avoid the unrequired resolution and
21760 expansion of components that do not have partially initialized
21762 (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
21763 (Check_Bounds): Likewise.
21764 (Check_Length): Likewise.
21766 2006-02-13 Javier Miranda <miranda@adacore.com>
21767 Ed Schonberg <schonberg@adacore.com>
21769 * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
21770 abstract interface type call analyze_and_resolve to expand the type
21771 conversion into the corresponding displacement of the
21772 reference to the base of the object.
21773 (Eval_Attribute, case Width): For systems where IEEE extended precision
21774 is supported, the maximum exponent occupies 4 decimal digits.
21775 (Accessibility_Message): Add '\' in 2-line warning message.
21776 (Resolve_Attribute): Likewise.
21777 (case Attribute_Access): Significantly revise checks
21778 for illegal access-to-subprogram Access attributes to properly enforce
21779 the rules of 3.10.2(32/2).
21780 Diagnose use of current instance with an illegal attribute.
21782 * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
21784 (Enclosing_Generic_Unit): New function to return a node's innermost
21785 enclosing generic declaration node.
21786 (Compile_Time_Constraint_Error): Remove '!' in warning messages.
21787 (Type_Access_Level): The accessibility level of anonymous acccess types
21788 associated with discriminants is that of the current instance of the
21789 type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
21790 (Compile_Time_Constraint_Error): Handle case of conditional expression.
21791 (Kill_Current_Values_For_Entity): New function
21792 (Enter_Name): Change formal type to Entity_Id
21794 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
21795 Ed Schonberg <schonberg@adacore.com>
21796 Gary Dismukes <dismukes@adacore.com>
21798 * sem_ch10.adb (Check_Redundant_Withs): New procedure in
21799 Analyze_Compilation_Unit.
21800 Detect and warn on redundant with clauses detected in a package spec
21801 and/or body when -gnatwr is used.
21802 (Analyze_Context): Analyze config pragmas before other items
21803 (Install_Context_Items): Don't analyze config pragmas here
21804 (Install_Limited_Withed_Unit): Set limited entity of package in
21805 with_clause so that cross-reference information or warning messages on
21806 unused packages can be properly generated
21807 (Is_Visible_Through_Renamings): Return false if the limited_with_clause
21808 has Error_Posted set. Prevent infinite loops in illegal programs.
21809 (Check_Private_Child_Unit): Move test for a nonprivate with clause down
21810 to the point of the error test requiring the current unit to be private.
21811 This ensures that private with clauses are not exempted from the basic
21812 checking for being a descendant of the same library unit parent as a
21813 withed private descendant unit.
21814 (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
21815 handle private with clauses properly, as well as to account for cases
21816 where the withed unit is a public descendant of a private ancestor
21817 (in which case the current unit must be a descendant of the private
21818 ancestor's parent). The spec comments were updated accordingly. Also,
21819 the old error message in this subprogram was replaced with error
21820 messages that mirror the errors tested and reported by
21821 Check_Private_Child_Unit.
21822 Parameter and variable names improved for readability.
21823 (Install_Limited_Context_Clauses): Remove test for a withed unit being
21824 private as the precondition for calling
21825 Check_Private_Limited_Withed_Unit since that subprogram has been
21826 revised to test public units as well as private units.
21828 2006-02-13 Thomas Quinot <quinot@adacore.com>
21829 Robert Dewar <dewar@adacore.com>
21830 Ed Schonberg <schonberg@adacore.com>
21831 Javier Miranda <miranda@adacore.com>
21833 * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
21834 that Scope_Stack.First = 1.
21835 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
21836 were not always properly handled previously.
21837 (Formal_Entity): Complete rewrite, to handle properly some complex case
21838 with multiple levels of parametrization by formal packages.
21839 (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
21840 to the corresponding derived type declaration for proper semantics.
21842 * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
21843 (Check_Component): Enforce restriction on components of
21844 unchecked_unions: a component in a variant cannot contain tasks or
21846 (Unchecked_Union): Allow nested variants and multiple discriminants, to
21848 Add pragma Ada_2005 (synonym for Ada_05)
21849 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
21850 were not always properly handled previously.
21851 Document that pragma Propagate_Exceptions has no effect
21852 (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
21853 (Set_Convention_From_Pragma): Check that if a convention is
21854 specified for a dispatching operation, then it must be
21855 consistent with the existing convention for the operation.
21856 (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
21857 longer required to specify an vtable-ptr component in the record. For
21858 compatibility reasons we leave the support for the previous definition.
21859 (Analyze_Pragma, case No_Return): Allow multiple arguments
21861 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
21862 non-overrideen inherited operation with a controlling result as
21863 illegal only its implicit declaration comes from the derived type
21864 declaration of its result's type.
21865 (Check_Possible_Deferred_Completion): Relocate the object definition
21866 node of the subtype indication of a deferred constant completion rather
21867 than directly analyzing it. The analysis of the generated subtype will
21868 correctly decorate the GNAT tree.
21869 (Record_Type_Declaration): Check whether this is a declaration for a
21870 limited derived record before analyzing components.
21871 (Analyze_Component_Declaration): Diagnose record types not explicitly
21872 declared limited when a component has a limited type.
21873 (Build_Derived_Record_Type): Code reorganization to check if some of
21874 the inherited subprograms of a tagged type cover interface primitives.
21875 This check was missing in case of a full-type associated with a private
21877 (Constant_Redeclaration): Check that the subtypes of the partial and the
21878 full view of a constrained deferred constant statically match.
21879 (Mentions_T): A reference to the current type in an anonymous access
21880 component declaration must be an entity name.
21881 (Make_Incomplete_Type_Declaration): If type is tagged, set type of
21882 class_wide type to refer to full type, not to the incomplete one.
21883 (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
21884 available. Required to give support to the certified run-time.
21885 (Analyze_Component_Declaration): In case of anonymous access components
21886 perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
21887 (Process_Discriminants): For an access discriminant, use the
21888 discriminant specification as the associated_node_for_itype, to
21889 simplify accessibility checks.
21891 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21892 Javier Miranda <miranda@adacore.com>
21894 * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
21895 abstract interpretations on an operator, remove interpretations that
21896 yield Address or a type derived from it, if one of the operands is an
21898 (Try_Object_Operation.Try_Primitive_Operation,
21899 Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
21900 location when creating the new reference to a primitive or class-wide
21901 operation as a part of rewriting a subprogram call.
21902 (Try_Primitive_Operations): If context requires a function, collect all
21903 interpretations after the first match, because there may be primitive
21904 operations of the same type with the same profile and different return
21905 types. From code reading.
21906 (Try_Primitive_Operation): Use the node kind to choose the proper
21907 operation when a function and a procedure have the same parameter
21909 (Complete_Object_Operation): If formal is an access parameter and prefix
21910 is an object, rewrite as an Access reference, to match signature of
21911 primitive operation.
21912 (Find_Equality_Type, Find_One_Interp): Handle properly equality given
21913 by an expanded name with prefix Standard, when the operands are of an
21914 anonymous access type.
21915 (Remove_Abstract_Operations): If the operation is abstract because it is
21916 inherited by a user-defined type derived from Address, remove it as
21917 well from the set of candidate interpretations of an overloaded node.
21918 (Analyze_Membership_Op): Membership test not applicable to cpp-class
21921 2006-02-13 Bob Duff <duff@adacore.com>
21923 * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
21924 redundant use clauses.
21925 In particular, if the scope of two use clauses overlaps, but one is not
21926 entirely included in the other, we should not warn. This can happen
21927 with nested packages.
21928 (Analyze_Subprogram_Renaming): Protect the compiler against previously
21929 reported errors. The bug was reported when the compiler was built
21930 with assertions enabled.
21931 (Find_Type): If the node is a 'Class reference and the prefix is a
21932 synchronized type without a corresponding record, return the type
21935 2006-02-13 Javier Miranda <miranda@adacore.com>
21937 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
21938 if this is the full-declaration associated with a private declaration
21939 that implement interfaces, then the private type declaration must be
21941 (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
21942 as aliased. The use of the 'access attribute is not available for such
21943 object (for this purpose the object should be explicitly marked as
21944 aliased, but being an anonymous type this is not possible).
21946 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21947 Robert Dewar <dewar@adacore.com>
21949 * sem_elab.adb (Same_Elaboration_Scope): A package that is a
21950 compilation unit is an elaboration scope.
21951 (Add_Task_Proc): Add '\' in 2-line warning message.
21952 (Activate_All_Desirable): Deal with case of unit with'ed by parent
21954 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21955 Javier Miranda <miranda@adacore.com>
21957 * sem_type.adb (Write_Overloads): Improve display of candidate
21959 (Add_One_Interp): Do not add to the list of interpretations aliased
21960 entities corresponding with an abstract interface type that is an
21961 immediate ancestor of a tagged type; otherwise we have a dummy
21962 conflict between this entity and the aliased entity.
21963 (Disambiguate): The predefined equality on universal_access is not
21964 usable if there is a user-defined equality with the proper signature,
21965 declared in the same declarative part as the designated type.
21966 (Find_Unique_Type): The universal_access equality operator defined under
21967 AI-230 does not cover pool specific access types.
21968 (Covers): If one of the types is a generic actual subtype, check whether
21969 it matches the partial view of the other type.
21971 2006-02-13 Thomas Quinot <quinot@adacore.com>
21973 * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
21974 line. This is necessary to allow In_Extended_Main_Unit to provide
21975 correct results for itypes while writing out expanded source.
21976 (Close_File): No need to update the source_index_table here since it's
21977 now done for each line.
21979 2006-02-13 Ed Schonberg <schonberg@adacore.com>
21980 Robert Dewar <dewar@adacore.com>
21982 * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
21983 preserve the source unit where the itype is declared, and prevent a
21985 (Note_Implicit_Run_Time_Call): New procedure
21986 (Write_Itype): Handle missing cases (E_Class_Wide_Type and
21989 * sprint.ads: Document use of $ for implicit run time routine call
21991 2006-02-13 Quentin Ochem <ochem@adacore.com>
21993 * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
21996 2006-02-13 Bob Duff <duff@adacore.com>
21998 * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
21999 Scan_Unsigned, so we do not scan leading blanks and sign twice.
22000 Integer'Value("- 5") and Integer'Value("-+5") now correctly
22001 raise Constraint_Error.
22003 * s-vallli.adb (Scan_Long_Long_Integer): Call
22004 Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
22005 do not scan leading blanks and sign twice.
22006 Integer'Value("- 5") and Integer'Value("-+5") now correctly
22007 raise Constraint_Error.
22009 * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
22010 Scan_Long_Long_Unsigned): Split out most of the processing from
22011 Scan_Long_Long_Unsigned out into
22012 Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
22013 This prevents scanning leading blanks and sign twice.
22014 Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
22017 * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
22018 out most of the processing from Scan_Unsigned out into
22019 Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
22020 This prevents scanning leading blanks and sign twice.
22022 * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
22023 use with Modular'Value attribute.
22024 (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
22027 2006-02-13 Robert Dewar <dewar@adacore.com>
22029 * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
22031 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
22033 * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
22034 (PPC VxWorks): Likewise.
22035 (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
22036 (forced_callee): Make non-inlinable and non-pure.
22037 (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
22039 2006-02-13 Arnaud Charlet <charlet@adacore.com>
22040 Ben Brosgol <brosgol@adacore.com>
22041 Robert Dewar <dewar@adacore.com>
22043 * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
22045 Document that gnatbind -M option is for cross environments only.
22046 Added description of using gnatmem to trace gnat rtl allocs and deallocs
22047 Add note on use of $ to label implicit run time calls
22048 Add documentation for -gnatyI (check mode IN)
22049 Updated chapter on compatibility with HP Ada
22050 VMS-oriented edits.
22051 Ran spell and corrected errors
22052 Add documentation for gnatbind -d and rework documentation of -D
22054 Add subprogram/data elimination section.
22055 Minor editing of annex A.
22056 Add section for gnatcheck.
22057 Add documentation for restriction No_Dispatching_Calls
22058 Add documentation for pragma Ada_2005
22059 Remove mention of obsolete pragma Propagate_Exceptions
22060 Document that pragma Unreferenced can appear after DO in ACCEPT
22061 Clarify Pure_Function for library level units
22062 Mention Max/Min in connection with No_Implicit_Conditionals
22063 No_Wide_Characters restriction is no longer partition-wide
22064 Add a nice example for Universal_Literal_String attribute
22065 Document that pragma No_Return can take multiple arguments
22067 * ug_words: Added entry for gnatcheck
22069 * g-ctrl_c.ads (Install_Handler): Enhance comments
22071 * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
22073 * g-trasym.ads: Add documentation on how to do off line symbolic
22074 traceback computation.
22076 * s-fatgen.adb: Add comments for Unaligned_Valid
22078 * stand.ads: Fix typo in comment
22080 2006-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
22082 * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
22084 2006-02-06 Roger Sayle <roger@eyesopen.com>
22086 * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
22088 2006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22091 * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
22092 implementation that calls __main.
22094 2006-01-25 Peter O'Gorman <peter@pogma.com>
22097 * Makefile.in (GCC_LINK): Remove quotes.
22098 (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
22101 (powerpc-darwin): Pass -shared-libgcc when building shared library.
22103 2006-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22106 * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
22108 2005-12-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22110 * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
22112 2005-12-12 Arnaud Charlet <charlet@adacore.com>
22114 * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
22117 2005-12-12 Arnaud Charlet <charlet@adacore.com>
22119 * Make-lang.in: Update dependencies
22121 2005-12-12 Arnaud Charlet <charlet@adacore.com>
22123 * Make-lang.in: Add rule for ada/exp_sel.o
22125 2005-12-12 Arnaud Charlet <charlet@adacore.com>
22127 * Makefile.in (mingw section): Remove EH_MECHANISM setting.
22129 2005-12-09 Arnaud Charlet <charlet@adacore.com>
22131 * gnatvsn.ads (Library_Version): Bump to version 4.2
22132 (ASIS_Version_Number): Bumped.
22134 2005-12-09 Doug Rupp <rupp@adacore.com>
22136 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
22137 Ada bind file prefix on VMS from b$ to b__.
22138 (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
22141 * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
22142 Targparm.OpenVMS_On_Target.
22143 (Object_Suffix): Initialize with target object suffix.
22144 (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
22146 * butil.adb: Change some Hostparm.OpenVMS checks to
22147 Targparm.OpenVMS_On_Target.
22149 * clean.adb: Change some Hostparm.OpenVMS checks to
22150 Targparm.OpenVMS_On_Target.
22151 (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
22152 ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
22153 Ada bind file prefix on VMS from b$ to b__.
22155 * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
22156 --GCC so that Get_Target_Parameters can find system.ads.
22157 (Gnatlink): Call Get_Target_Parameters in mainline.
22158 Initialize standard packages for Targparm.
22159 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
22160 (Process_Args): Also Check for object files with target object
22162 (Make_Binder_File_Names): Create with target object extension.
22163 (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
22166 * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
22167 Targparm.OpenVMS_On_Target.
22168 ({declaration},Build_Library,Check_Library): Change Ada bind file
22169 prefix on VMS from b$ to b__.
22171 * osint-b.adb: Change some Hostparm.OpenVMS checks to
22172 Targparm.OpenVMS_On_Target.
22173 (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
22176 * targext.c: New file.
22178 * Makefile.in: add support for vxworks653 builds
22179 (../../vxaddr2line): gnatlink with targext.o.
22180 (TOOLS_LIBS): Move targext.o to precede libgnat.
22181 (init.o, initialize.o): Minor clean up in dependencies.
22182 (GNATLINK_OBJS): Add targparm.o, snames.o
22183 Add rules fo building targext.o and linking it explicitly with all
22185 Also add targext.o to gnatlib.
22187 * Make-lang.in: Add rules for building targext.o and linking it in
22188 with gnat1 and gnatbind.
22189 Add entry for exp_sel.o.
22191 * osint.adb Change some Hostparm.OpenVMS checks to
22192 Targparm.OpenVMS_On_Target.
22193 (Object_File_Name): Use target object suffix.
22195 * osint.ads (Object_Suffix): Remove, no longer used.
22196 (Target_Object_Suffix): Initialize with target object suffix.
22198 * rident.ads: Add special exception to license.
22200 * targparm.adb (Get_Target_Parameters): Set the value of
22201 Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
22203 (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
22205 * targparm.ads: Add special exception to license.
22207 * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
22209 (Copy_File): Make sure from file is closed if error on to file
22210 (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
22212 * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
22213 (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
22215 * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
22216 target object suffix.
22218 2005-12-09 Jose Ruiz <ruiz@adacore.com>
22219 Quentin Ochem <ochem@adacore.com>
22220 Florian Villoing <villoing@adacore.com>
22222 * a-taster.ads, a-taster.adb: New files.
22224 * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
22225 link to the version that does nothing. This way the task termination
22226 routine is not executed twice for the environment task when finishing
22227 because of an unhandled exception.
22229 * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
22230 handler because of an unhandled exception.
22232 * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
22233 System.Tasking.Utilities instead of that in System.Tasking.Stages.
22235 * s-finimp.adb (initialization code): Modify the soft link for the
22236 finalization of the global list instead of Adafinal.
22238 * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
22239 non-tasking version of the soft link for task termination. We do
22240 nothing since if we are using the non-tasking version it
22241 means that the task termination functionality is not used.
22242 (Null_Finalize_Global_List): Add this null version for the procedure
22243 in charge of finalizing the global list for controlled objects.
22244 (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
22245 instead for handling run-time termination in a more flexible way.
22246 (Adafinal_NT): This new procedure will take care of finalizing the
22247 global list for controlled objects if needed, but no tasking
22250 * s-tarest.adb (Task_Lock): Do not try to lock again the
22251 Global_Task_Lock if we already own it. Otherwise, we get blocked in
22252 some run-time operations.
22253 (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
22254 until all nested locks have been released.
22255 (Task_Wrapper): Call the fall-back task termination handler. It
22256 applies to all tasks but the environment task.
22257 (Finalize_Global_Tasks): Add the call for the task termination
22258 procedure for the environment task.
22259 (Task_Wrapper): suppress warnings around declaration of
22260 Secondary_Stack_Address.
22262 * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
22263 moved to the Common_ATCB record.
22264 (Task_Lock): Global_Task_Lock_Nesting has been moved to the
22265 Common_ATCB record.
22266 (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
22267 Common_ATCB record.
22269 * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
22270 Fall_Back_Handler, and Specific_Handler.
22272 * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
22273 defined in Ada.Task_Termination, to avoid circular dependencies.
22274 (Termination_Handler): Redefine this type here, alredy defined in
22275 Ada.Task_Termination, for avoiding circular dependencies.
22276 (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
22277 for storing task termination handlers. In addition,
22278 Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
22279 Common_ATCB because it is used by both the regular and the restricted
22281 (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
22282 Common_ATCB because it is used by both the regular and the restricted
22284 (Common_ATCB): Added a dynamic task analyzer field.
22286 * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
22287 potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
22288 (Task_Wrapper): Call the task termination handler. It applies to all
22289 tasks but the environment task.
22290 (Finalize_Global_Tasks): Call the task termination procedure for the
22291 environment task. The call to Finalize_Global_List is now performed
22292 using the soft links mechanism.
22293 (Task_Wrapper): added dynamic stack analysis.
22295 * s-tasuti.adb (Abort_Tasks): The code in charge of checking
22296 potentially blocking operations has been moved from
22297 System.Tasking.Stages.Abort_Tasks to this procedure. There can be
22298 direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
22299 through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
22300 this run-time check.
22302 * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
22303 of task termination procedure.
22304 (Init_Tasking_Soft_Links): Install the task-safe version of the soft
22305 link for the task termination procedure.
22307 * bindusg.adb: (Bindusg): Added documentation for -u option.
22309 * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
22310 (Get_Main_C): Add handling of dynamic stack analysis.
22311 (Gen_Output_File_C): Add external functions for dynamic stack analysis.
22313 * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
22314 (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
22315 (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
22317 * opt.ads: Added flags used by dynamic stack measurement.
22318 (Max_Line_Length): Remove (not used anymore)
22320 * s-io.ads, s-io.adb (Standard_Error): new subprogram
22321 (Standart_Output): new subprogram
22322 (Set_Output): new subprogram
22323 (Put): now uses the value of Current_Out to know if the output has to be
22324 send to stderr or stdout.
22326 * s-stausa.ads: Complete implementation.
22328 * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
22330 * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
22331 list of Ada 05 files.
22332 (GNAT Library Units): Add AltiVec files.
22334 * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
22335 g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
22336 g-alvety.ads, g-alvevi.ads: New files providing altivec API.
22338 2005-12-09 Nicolas Setton <setton@adacore.com>
22340 * adaint.c (__gnat_locate_regular_file): Return immediately if
22341 file_name is empty.
22343 2005-12-09 Javier Miranda <miranda@adacore.com>
22344 Hristian Kirtchev <kirtchev@adacore.com>
22346 * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
22347 to the specification because the frontend generates code that uses this
22349 (Set_Interface_Table): Add missing assertion.
22350 Update documentation describing the run-time structure.
22351 (Displace): New subprogram that displaces the pointer to the object
22352 to reference one of its secondary dispatch tables.
22353 (IW_Membership): Modified to use the new table of interfaces.
22354 (Inherit_TSD): Modified to use the new table of interfaces.
22355 (Register_Interface_Tag): Use the additional formal to fill the
22356 contents of the new table of interfaces.
22357 (Set_Interface_Table): New subprogram that stores in the TSD the
22358 pointer to the table of interfaces.
22359 (Set_Offset_To_Top): Use the additional formal to save copy of
22360 the offset value in the table of interfaces.
22361 Update structure of GNAT Primary and Secondary dispatch table diagram.
22362 Add comment section on GNAT dispatch table prologue.
22363 (Offset_To_Signature): Update the constant value of the Signature field.
22364 (Dispatch_Table): Update comment on hidden fields in the prologue.
22365 (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
22366 Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
22367 the type of formal parameter T to Tag, introduce additional assertions.
22368 (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
22370 (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
22372 * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
22373 in all the calls to Expand_Interface_Thunk. Instead of referencing the
22374 record component containing the tag of the secondary dispatch table we
22375 have to use the Offset_To_Top run-time function to get this information;
22376 otherwise if the pointer to the base of the object has been displace
22377 we get a wrong value if we use the 'position attribute.
22379 * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
22380 all the calls to Expand_Interface_Thunk.
22381 (Make_Secondary_DT): Secondary dispatch tables do not have a table of
22382 interfaces; hence the call to Set_Interface_Table was clearly wrong.
22383 (Collect_All_Interfaces): Modify the internal subprogram Collect to
22384 ensure that the interfaces implemented by the ancestors are placed
22385 at the header of the generated list.
22386 (Expand_Interface_Conversion): Handle the case in which the displacement
22387 associated with the interface conversion is not statically known. In
22388 this case we generate a call to the new run-time subprogram Displace.
22389 (Make_DT): Generate and fill the new table of interfaces.
22390 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
22391 Get_Tagged_Kind and Set_Tagged_Kind.
22392 (Tagged_Kind): New function that determines the tagged kind of a type
22393 with respect to limitedness and concurrency and returns a reference to
22395 (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
22396 Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
22397 primary dispatch table for a type.
22398 (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
22399 secondary dispatch table respectively of a tagged type.
22401 * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
22402 (Expand_Interface_Conversion): New subprogram to indicate if the
22403 displacement of the type conversion is statically known.
22404 (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
22406 * rtsfind.ads (RE_Offset_To_Top): New entity
22407 (RTU_Id): Add Ada_Task_Termination to the list so that it is made
22408 accessible to users.
22409 (Re_Displace): New entity
22410 (RE_Interface_Data): New entity
22411 (RE_Set_Interface_Data): New_Entity
22412 (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
22413 Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
22414 RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
22415 RE_TK_Tagged, RE_TK_Task.
22417 * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
22418 Init_Secondary_Tags_Internal to allow its use with interface types and
22419 also to generate the code for the new additional actual required
22420 by Set_Offset_To_Top.
22421 (Build_Init_Statements): In case of components associated with abstract
22422 interface types there is no need to generate a call to its IP.
22423 (Freeze_Record_Type): Generate Select Specific Data tables only for
22425 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
22426 the bodies and specifications of the predefined primitive operations
22427 dealing with dispatching selects and abort, 'Callable, 'Terminated only
22428 for concurrent types.
22430 * exp_sel.ads, exp_sel.adb: New files.
22432 * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
22433 Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
22434 properly protected objects and attach handler in the case of the
22435 restricted profile.
22436 Move embeded package Select_Expansion_Utilities into a separate external
22438 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
22439 Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
22440 (Build_K, Build_S_Assignment): New subprograms, part of the select
22441 expansion utilities.
22442 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
22443 Expand_N_Timed_Entry_Call): Optimize expansion of select statements
22444 where the trigger is a dispatching procedure of a limited tagged type.
22446 2005-12-09 Olivier Hainque <hainque@adacore.com>
22448 * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
22449 pointer initialization values. Make a SAVE_EXPR instead. Add comments
22450 about the use and expansion of SAVE_EXPRs in the various possible
22451 renaming handling cases.
22452 (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
22453 abusing DECL_FCONTEXT.
22455 2005-12-09 Matthew Heaney <heaney@adacore.com>
22457 * a-convec.adb (Merge): Added assertions to check whether vector params
22460 * a-coinve.adb (Merge): Added assertions to check whether vector params
22463 * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
22465 (Cursor'Read): raises PE
22467 * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
22468 to its default value.
22470 * a-cihama.adb: Manually check whether cursor's key and elem are
22473 * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
22474 (Merge): Assert that target and source lists are in order
22475 (Swap): Declare non-const temporaries, to pass to Splice
22477 * a-cdlili.ads: (Splice): Changed param name and param mode
22479 * a-cdlili.adb: (Splice): Changed param name and param mode
22480 (Merge): Assert that target and source lists are in order
22481 (Swap): Declare non-const temporaries, to pass to Splice
22483 * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
22484 (Write): declare Stream param as not null
22486 * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
22487 an exception message.
22489 2005-12-09 Thomas Quinot <quinot@adacore.com>
22490 Robert Dewar <dewar@adacore.com>
22492 * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
22493 which is the absolute maximum length we can support.
22495 * frontend.adb: For the processing of configuration pragma files,
22496 remove references to Opt.Max_Line_Length, which is not checked anymore.
22498 * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
22501 * scn.adb, scng.adb:
22502 Always check line length against the absolute supported maximum,
22503 Hostparm.Max_Line_Length.
22505 * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
22506 value for the maximum line length is Max_Line_Length (not
22507 Column_Number'Last).
22508 Minor error msg update
22509 (Set_Style_Check_Options): New interface returning error msg
22510 Minor code reorganization (processing for 'M' was out of alpha order)
22512 * switch-c.adb: New interface for Set_Style_Check_Options
22514 * stylesw.ads (Set_Style_Check_Options): New interface returning error
22517 2005-12-09 Javier Miranda <miranda@adacore.com>
22519 * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
22520 with IP subprogram were only supported if there were limited types.
22522 * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
22523 records with IP subprogram were only supported if there were limited
22526 2005-12-09 Olivier Hainque <hainque@adacore.com>
22527 Eric Botcazou <ebotcazou@adacore.com>
22529 * trans.c (tree_transform, emit_check): Adjust calls to
22530 build_call_raise, passing the now expected GNAT_NODE argument.
22532 * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
22533 source line information than what the current global locus indicates
22536 * utils2.c (build_simple_component_ref): Return 0 if the offset of the
22537 field has overflowed.
22538 (build_call_raise): Add a GNAT_NODE argument to convey better source
22539 line information than what the current global locus indicates when
22541 (build_component_ref): Adjust call to build_call_raise.
22543 2005-12-09 Pascal Obry <obry@adacore.com>
22545 * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
22546 the iterator is quitting iteration on parent directory.
22548 2005-12-09 Javier Miranda <miranda@adacore.com>
22550 * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
22551 and the assignment to a class-wide object, before the assignment we
22552 generate a run-time check to ensure that the tag of the Target is
22553 covered by the tag of the source.
22555 2005-12-09 Robert Dewar <dewar@adacore.com>
22557 * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
22558 parameter in call to Image_Wide_Character.
22560 * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
22561 parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
22562 (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
22563 annoying FFFE/FFFF inconsistency.
22565 2005-12-09 Robert Dewar <dewar@adacore.com>
22566 Javier Miranda <miranda@adacore.com>
22567 Ed Schonberg <schonberg@adacore.com>
22569 * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
22570 of type conversion.
22571 (Find_Interface): New subprogram that given a tagged type and one of its
22572 component associated with the secondary table of an abstract interface
22573 type, return the entity associated with such abstract interface type.
22574 (Make_Subtype_From_Expr): If type has unknown discriminants, always use
22575 base type to create anonymous subtype, because entity may be a locally
22576 declared subtype or generic actual.
22577 (Find_Interface): New subprogram that given a tagged type and one of its
22578 component associated with the secondary table of an abstract interface
22579 type, return the entity associated with such abstract interface type.
22581 * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
22582 conversion cannot be handled at compile time. In this case we pass this
22583 information to the expander to generate the appropriate code.
22585 2005-12-09 Robert Dewar <dewar@adacore.com>
22586 Ed Schonberg <schonberg@adacore.com>
22587 Gary Dismukes <dismukes@adacore.com>
22588 Javier Miranda <miranda@adacore.com>
22589 Hristian Kirtchev <kirtchev@adacore.com>
22591 * einfo.adb (Itype_Printed): New flag
22592 (Is_Limited_Type): Derived types do not inherit limitedness from
22593 interface progenitors.
22594 (Is_Return_By_Reference_Type): Predicate does not apply to limited
22597 * einfo.ads (Itype_Printed): New flag
22598 Move Is_Wrapper_Package to proper section
22599 Add missing Inline for Is_Volatile
22601 * output.ads, output.adb (Write_Erase_Char): New procedure
22602 (Save/Restore_Output_Buffer): New procedures
22603 (Save/Restore_Output_Buffer): New procedures
22605 * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
22606 Add missing support for anonymous access type
22607 (Write_Id): Insert calls to Write_Itype
22608 (Write_Itype): New procedure to output itypes
22610 * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
22611 use of "limited" in declaration.
22613 * sinfo.ads, sinfo.adb:
22614 Formal derived types can carry an explicit "limited" indication.
22616 * sem_ch3.adb: Add with and use of Targparm.
22617 (Create_Component): If Frontend_Layout_On_Target is True and the
22618 copied component does not have a known static Esize, then reset
22619 the size and positional fields of the new component.
22620 (Analyze_Component_Declaration): A limited component is
22621 legal within a protected type that implements an interface.
22622 (Collect_Interfaces): Do not add to the list the interfaces that
22623 are implemented by the ancestors.
22624 (Derived_Type_Declaration): If the parent of the full-view is an
22625 interface perform a transformation of the tree to ensure that it has
22626 the same parent than the partial-view. This simplifies the job of the
22627 expander in order to generate the correct object layout, and it is
22628 needed because the list of interfaces of the full-view can be given in
22630 (Process_Full_View): The parent of the full-view does not need to be
22631 a descendant of the parent of the partial view if both parents are
22633 (Analyze_Private_Extension_Declaration): If declaration has an explicit
22634 "limited" the parent must be a limited type.
22635 (Build_Derived_Record_Type): A derived type that is explicitly limited
22636 must have limited ancestor and progenitors.
22637 (Build_Derived_Type): Ditto.
22638 (Process_Full_View): Verify that explicit uses of "limited" in partial
22639 and full declarations are consistent.
22640 (Find_Ancestor_Interface): Remove function.
22641 (Collect_Implemented_Interfaces): New procedure used to gather all
22642 implemented interfaces by a type.
22643 (Contain_Interface): New function used to check whether an interface is
22645 (Find_Hidden_Interface): New function used to determine whether two
22646 lists of interfaces constitute a set equality. If not, the first
22647 differing interface is returned.
22648 (Process_Full_View): Improve the check for the "no hidden interface"
22649 rule as defined by AI-396.
22651 2005-12-09 Robert Dewar <dewar@adacore.com>
22653 * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
22654 types, not on record subtypes.
22655 (Freeze_Entity): Code cleanup. Add barrier to the loop
22656 that generates the references for primitive operations. This allows to
22657 remove an unnecessary exception handler.
22658 Code reformatting and comment clean ups.
22660 2005-12-09 Vincent Celier <celier@adacore.com>
22662 * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
22663 If GNAT CHECK is called with a project file, but with no
22664 source on the command line, call gnatcheck with all the compilable
22665 sources of the project.
22666 Take into account the new command Check, for gnatcheck. Treat as for
22667 other ASIS tools: take into account project, specific package Check and
22669 For ASIS tools, add the switches in package Compiler for
22670 the invocation of the compiler.
22672 * prj-attr.adb: Add package Check and its attributes
22674 * vms_conv.ads (Command_Type): New command Check, for gnatcheck
22676 * vms_conv.adb (Initialize): Change Params of command Check to
22678 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
22679 Add data for new command Check
22681 * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
22683 Add qualifiers for Check command options
22684 (Command_Type): New command Check
22686 2005-12-09 Thomas Quinot <quinot@adacore.com>
22688 * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
22689 command line switch overruns the output buffer.
22691 2005-12-09 Robert Dewar <dewar@adacore.com>
22693 * sem_prag.adb: Processing for new pragma Complete_Representation
22694 (Analyze_Pragma, case Debug): Implement two argument form.
22696 * par-prag.adb: Entry for new pragma Complete_Representation
22697 (Prag, case Debug): Recognize two argument form of pragma Debug
22698 New interface for Set_Style_Check_Options.
22700 * sem_ch13.adb: Implement new pragma Complete_Representation.
22702 * snames.adb, snames.ads, snames.h: Entry for new pragma
22703 Complete_Representation.
22705 2005-12-09 Gary Dismukes <dismukes@adacore.com>
22707 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
22708 available user-specified stream attributes on limited parameters to
22709 also test the type directly rather than only its underlying type (for
22710 Ada 95) and, in the case of Ada 2005, to check that the user-specified
22711 attributes are visible at the point of the subprogram declaration.
22712 For Ada 2005, the error message is modified to indicate that the
22713 type's stream attributes must be visible (again, only for -gnat05).
22715 2005-12-09 Ed Schonberg <schonberg@adacore.com>
22717 * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
22718 anonymous access types.
22720 * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
22721 matching of anonymous access types and anonymous access to subprogram
22722 types. 'R'M 4.9.1 (2/2).
22724 2005-12-09 Ed Schonberg <schonberg@adacore.com>
22726 * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
22727 rule prematurely when operands are universal, remaining ambiguities
22728 will be removed during resolution.
22731 * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
22732 that are Ada 2005 functions.
22733 (Has_Abstract_Interpretation): Subsidiary to
22734 Remove_Conversions, to remove ambiguities caused by abstract operations
22735 on numeric types when operands are universal.
22737 2005-12-09 Robert Dewar <dewar@adacore.com>
22739 * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
22740 for case where spec is categorized.
22742 2005-12-09 Javier Miranda <miranda@adacore.com>
22744 * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
22745 types use the corresponding record type. This was not needed before
22746 the implementation of Ada 2005 synchronized types because
22747 concurrent types were never tagged types in Ada 95.
22749 2005-12-09 Ed Schonberg <schonberg@adacore.com>
22751 * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
22752 first subtype of the type of the expression to verify that it is a
22755 2005-12-09 Robert Dewar <dewar@adacore.com>
22757 * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
22760 2005-12-09 Quentin Ochem <ochem@adacore.com>
22761 Robert Dewar <dewar@adacore.com>
22762 Ed Falis <falis@adacore.com>
22763 Florian Villoing <villoing@adacore.com>
22764 Thomas Quinot <quinot@adacore.com>
22765 Arnaud Charlet <charlet@adacore.com>
22767 * gnat_ugn.texi: Created section "Stack Related Tools"
22768 Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
22769 "Stack Related Tools"
22770 Added subsection "Static Stack Usage Analysis"
22771 Added subsection "Dynamic Stack Usage Analysis"
22772 Include documentation of itypes in sprint listing (-gnatG)
22773 Documented gnatbind -D switch (default sec stack size for fixed sec
22775 Added Interrupt_State and Persistent_BSS to list of configuration
22777 Add missing doc for maximum value of nnn in -gnatyMnnn
22779 * gnat_rm.texi: Document the AltiVec binding.
22780 Add documentation for pragma Complete_Representation
22781 Shortened an overly long line (> 79 chars)
22782 Clarify documentation of unchecked conversion in implementation
22784 Document two argument form of pragma Debug
22786 * types.ads (Column_Number): Update documentation.
22788 * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
22789 library level Finalize_Storage_Only objects (these are not attached to
22790 any finalization list).
22792 * system-mingw.ads: (Underlying_Priorities): Update comment.
22794 2005-12-09 Robert Dewar <dewar@adacore.com>
22796 * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
22797 i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
22798 inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
22799 i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
22800 krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
22801 lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
22802 interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
22803 s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
22806 2005-12-09 Robert Dewar <dewar@adacore.com>
22808 * s-vaflop-vms-alpha.adb: (Ne_F): New function
22809 (Ne_G): New function
22811 * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
22812 for tag assignment.
22813 (Rewrite_Comparison): Handle case where operation is not a comparison
22814 and ignore, and also handle type conversion case.
22816 2005-12-09 Thomas Quinot <quinot@adacore.com>
22818 * exp_aggr.ads: Fix typo in comment.
22819 ???-mark Convert_Aggr_In_Assignment as needing documentation.
22821 2005-12-09 Gary Dismukes <dismukes@adacore.com>
22823 * layout.adb: Replace various uses of byte by storage unit throughout.
22824 (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
22825 static size, convert to storage units before returning, to conform to
22828 2005-12-09 Matthew Gingell <gingell@adacore.com>
22830 * g-exctra.ads: Fix typo in comment.
22832 2005-12-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22834 * utils.c: Minor reformatting.
22836 2005-12-09 Robert Dewar <dewar@adacore.com>
22839 Further comment fixes to make the status of the default file clear
22841 * s-bitops.adb: Clarify comment for Bits_Array
22843 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
22845 * Make-lang.in (ada.install-normal): Remove.
22847 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
22849 * Make-lang.in: Remove all dependencies on s-gtype.
22851 2005-12-05 Richard Guenther <rguenther@suse.de>
22853 * utils.c (convert): Use fold_convert where appropriate.
22855 2005-12-05 Paolo Bonzini <bonzini@gnu.org>
22857 * Makefile.in (gnatlib): Fix regex, using \. instead of . when
22860 2005-12-02 Richard Guenther <rguenther@suse.de>
22862 * trans.c (gnat_gimplify_expr): Use buildN instead of build.
22864 2005-12-01 Roger Sayle <roger@eyesopen.com>
22866 * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
22869 2005-11-23 Laurent Guerby <laurent@guerby.net>
22871 * mlib-prj.adb (Build_Library): Initialize Delete.
22873 2005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
22875 * socket.c: Add extern int h_errno for rtems since networking header
22876 files are not available at this point in a tool bootstrap. Newlib
22877 only has basic C library header files.
22879 2005-11-19 Richard Guenther <rguenther@suse.de>
22880 Roger Sayle <roger@eyesopen.com>
22883 * misc.c (internal_error_function): Don't use vsprintf to format
22884 the error message text, instead use pp_format_text and the new
22885 pretty printer APIs. This allows handling of %qs, %w, etc.
22887 2005-11-18 Laurent Guerby <laurent@guerby.net>
22890 * Makefile.in: Use s-auxdec-empty for RTEMS.
22892 2005-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22895 * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
22896 a temporary if taking the address of something that is neither
22897 reference, declaration, or constant, since the gimplifier
22898 can't handle that case.
22900 2005-11-17 Laurent Guerby <laurent@guerby.net>
22903 * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
22905 2005-11-16 Richard Guenther <rguenther@suse.de>
22907 * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
22909 2005-11-16 Joel Sherrill <joel.sherrill@oarcorp.com>
22912 * raise-gcc.c: Add missing stdarg.h include.
22914 2005-11-16 Richard Guenther <rguenther@suse.de>
22916 * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
22917 (ada/misc.o): Likewise.
22919 2005-11-14 Thomas Quinot <quinot@adacore.com>
22921 * g-soccon.ads: Minor reformatting. Update comments.
22923 * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
22924 gain visibility on the declaration of struct timeval.
22926 * g-soccon-freebsd.ads,
22927 g-soccon-darwin.ads,
22928 g-soccon-tru64.ads,
22932 g-soccon-solaris.ads,
22934 g-soccon-mingw.ads,
22935 g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
22937 * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
22938 g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
22939 g-soccon-linux-x86.ads: New files.
22941 * g-socthi-mingw.adb:
22942 (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
22944 * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
22945 (time_t, suseconds_t): New types constructed to match the tv_sec
22946 and tv_usec fields of C struct timeval.
22947 (Timeval): Construct structure in terms of the new types.
22948 (Host_Errno): New function (imported from socket.c), returns last hosts
22951 * g-socthi-vxworks.adb: Add error handling circuitry.
22953 * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
22954 components of struct timeval.
22955 (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
22956 (Check_Selector): In error conditions, clear internal socket sets to
22957 avoid a memory leak.
22958 (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
22959 Send_Timeout, Receive_Timeout.
22961 * g-socthi.ads (time_t, suseconds_t): New types constructed to match
22962 the tv_sec and tv_usec fields of C struct timeval.
22963 (Timeval): Construct structure in terms of the new types.
22964 (Host_Errno): New function (imported from socket.c), returns last hosts
22967 * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
22968 hosts database last error code.
22970 * gen-soccon.c: Complete value expansion should not be performed on
22971 TARGET, as it has the form of a math expression, and some components
22972 may be platform-defined macros.
22973 For VxWorks, generate the OK and ERROR values.
22974 New constants giving the sizes of the components of C struct timeval.
22976 2005-11-14 Robert Dewar <dewar@adacore.com>
22977 Ed Schonberg <schonberg@adacore.com>
22980 * types.ads: Include All_Checks in Suppress_Array
22982 * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
22983 not(a=b), since we no longer do this rewriting, and hence it is not
22985 (Elaboration_Checks_Suppressed): Add special casing to
22986 deal with different cases of static and dynamic elaboration checks (all
22987 checks does not count in the first case, but does in the second).
22988 (Expr_Known_Valid): Do not assume that the result of any arbitrary
22989 function call is valid, since this is not the case.
22990 (Ensure_Valid): Do not apply validity check to a real literal
22991 in a universal or fixed context
22993 * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
22994 elementary types using the operator in standard. It is cleaner not to
22995 modify the programmers intent, especially in the case of floating-point.
22996 (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
22997 it did not matter because we always rewrote a/=b to not(a=b).
22998 (Expand_Allocator_Expression): For an allocator expression whose nominal
22999 subtype is an unconstrained packed type, convert the expression to its
23000 actual constrained subtype.
23001 Implement warning for <= or >= where < or > not possible
23002 Fix to Vax_Float tests (too early in many routines, causing premature
23003 Vax_Float expansions.
23005 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
23006 to be used with packages and generic packages as well as with
23008 (Suppress): Set All_Checks, but not Elaboration_Check, for case
23009 of pragma Suppress (All_Checks)
23010 (Analyze_Pragma, case Warnings): Implement first argument allowed to be
23011 a string literal for precise control over warnings.
23012 Avoid raise of pragma in case of unrecognized pragma and just return
23015 * sem_prag.ads: Minor reformatting
23017 * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
23018 with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
23019 Switch. Do not handle any exception.
23020 Include -gnatwx as part of -gnatg (warn on redundant parens)
23021 Allow optional = after -gnatm
23022 (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
23023 longer sets Elaboration_Checks.
23024 Code to set warning mode moved to Sem_Warn
23025 so that it can be shared by pragma processing.
23027 * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
23030 * s-taprop-solaris.adb:
23031 Change some <= to =, to avoid new warning
23033 * a-exexda.adb, prj-proc.adb:
23034 Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
23035 Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
23037 2005-11-14 Robert Dewar <dewar@adacore.com>
23039 * exp_vfpt.adb: Handle /= case
23040 (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
23041 so that we do not get duplicate scaling for fixed point conversions.
23043 * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
23045 2005-11-14 Matthew Gingell <gingell@adacore.com>
23047 * system-lynxos-ppc.ads, system-lynxos-x86.ads:
23048 Increase default priority on Lynx from 15 to 17, and meet the Ada
23049 requirement that Default_Priority be ((Priority'First +
23050 Priority'Last) / 2) by increasing the range of Interrupt_Priority.
23052 2005-11-14 Vincent Celier <celier@adacore.com>
23054 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
23055 mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
23056 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
23057 mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
23058 mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
23059 mlib-tgt-lynxos.adb (DLL_Prefix): New function
23061 2005-11-14 Doug Rupp <rupp@adacore.com>
23063 * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
23066 2005-11-14 Arnaud Charlet <charlet@adacore.com>
23068 * s-traces-default.adb, s-trafor-default.ads,
23069 s-tratas-default.adb: Fix compilation errors.
23071 2005-11-14 Jose Ruiz <ruiz@adacore.com>
23073 * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
23074 raising the exception so the memory used is freed.
23076 2005-11-14 Arnaud Charlet <charlet@adacore.com>
23078 * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
23079 (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
23080 (convert_address): Update comments and list of platforms using this.
23082 * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
23085 2005-11-14 Pascal Obry <obry@adacore.com>
23086 Vincent Celier <celier@adacore.com>
23088 * gnatdll.adb (Parse_Command_Line): Remove redundant use of
23091 * memroot.adb: Remove redundant with/use clause on
23092 System.Storage_Elements.
23094 2005-11-14 Arnaud Charlet <charlet@adacore.com>
23096 * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
23097 (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
23098 related code to a-exexpr.adb
23099 (Save_Occurrence_And_Private): Move GCC EH related code to
23101 (Raise_Current_Excep): Add new variable Id with pragma
23102 volatile, to ensure that the variable lives on stack.
23104 * a-exexpr-gcc.adb, raise-gcc.c: New file.
23106 * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
23108 Move GCC EH related code to a-exexpr-gcc.adb
23110 * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
23112 Split the Linux version of g-soccon into separate variants for 32 and 64
23114 (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
23115 vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
23116 install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
23117 of host variable $(RANLIB_FLAGS).
23118 (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
23119 Code clean up: remove unused/obsolete targets.
23120 (EH_MECHANISM): New variable introduced to differenciate between the
23121 two EH mechanisms statically.
23122 (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
23123 (LIBGNAT_OBJS): Add raise-gcc.o
23124 (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
23125 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
23126 supports VxWorks 6 RTPs.
23127 (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
23128 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
23130 * raise.c: Move all GCC EH-related routines to raise-gcc.c
23132 2005-11-14 Jose Ruiz <ruiz@adacore.com>
23134 * s-tassta.adb (Create_Task): Move the code in charge of resetting the
23135 deferral level, when abort is not allowed, to a later stage (the
23137 (Task_Wrapper): If Abort is not allowed, reset the deferral level since
23138 it will not get changed by the generated code. It was previously done
23141 2005-11-14 Thomas Quinot <quinot@adacore.com>
23142 Olivier Hainque <hainque@adacore.com>
23143 Eric Botcazou <ebotcazou@adacore.com>
23146 Factor common code to build a storage type for an unconstrained object
23147 from a fat or thin pointer type and a constrained object type.
23148 (annotate_value): Handle BIT_AND_EXPR.
23149 (annotate_rep): Don't restrict the back annotation of inherited
23150 components to the type_annotate_only case.
23151 (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
23152 we are not defining the type.
23153 <E_Record_Type>: Likewise.
23154 (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
23155 to get advantage of the new maybe_stabilize_reference interface, to
23156 ensure that what we reference is indeed stabilized instead of relying
23157 on assumptions on what the stabilizer does.
23158 (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
23159 type imported through a limited_with clause, use its non-limited view.
23160 (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
23162 (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
23163 of #if sections + explicit comparisons of convention identifiers.
23164 (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
23165 before early-returning for certain types when code generation is
23167 (gnat_to_gnu_entity) <object>: Adjust comment attached to the
23168 nullification of gnu_expr we do for objects with address clause and
23169 that we are not defining.
23170 (elaborate_expression_1): Do not create constants when creating
23171 variables needed by the debug info: the dwarf2 writer considers that
23172 CONST_DECLs is used only to represent enumeration constants, and emits
23174 (gnat_to_gnu_entity) <object>: When turning a non-definition of an
23175 object with an address clause into an indirect reference, drop the
23176 initializing expression.
23178 (STACK_CHECK_BUILTIN): Delete.
23179 (STACK_CHECK_PROBE_INTERVAL): Likewise.
23180 (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
23181 (STACK_CHECK_MAX_VAR_SIZE): Likewise.
23182 (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
23183 corresponding to the renamed object as ignored for debugging purposes.
23185 * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
23186 related): For a prefix that is a dereference of a fat or thin pointer,
23187 if there is an actual subtype provided by the front-end, use that
23188 subtype to build an actual type with bounds template.
23189 (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
23190 is provided by the front-end, use that subtype to compute the size of
23191 the deallocated object.
23192 (gnat_to_gnu): When adding a statement into an elaboration procedure,
23193 check for a potential violation of a No_Elaboration_Code restriction.
23194 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
23195 with extra arguments to control whether to recurse through non-values
23196 and to let the caller know if the stabilization has succeeded.
23197 (gnat_stabilize_reference): Now a simple wrapper around
23198 maybe_stabilize, for common uses without restriction on lvalues and
23199 without need to check for the success indication.
23200 (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
23201 pass false instead of 0 as the FORCE argument which is a bool.
23202 (Identifier_to_gnu): Remove checks ensuring that an renamed object
23203 attached to a renaming pointer has been properly stabilized, as no such
23204 object is attached otherwise.
23205 (call_to_gnu): Invoke create_var_decl to create the temporary when the
23206 function uses the "target pointer" return mechanism.
23207 Reinstate conversion of the actual to the type of the formal
23208 parameter before any other specific treatment based on the passing
23209 mechanism. This turns out to be necessary in order for PLACEHOLDER
23210 substitution to work properly when the latter type is unconstrained.
23212 * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
23214 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
23215 with extra arguments to control whether to recurse through non-values
23216 and to let the caller know if the stabilization has succeeded.
23218 * utils2.c (gnat_build_constructor): Only sort the fields for possible
23219 static output of record constructor if all the components are constant.
23220 (gnat_build_constructor): For a record type, sort the list of field
23221 initializers in increasing bit position order.
23222 Factor common code to build a storage type for an unconstrained object
23223 from a fat or thin pointer type and a constrained object type.
23224 (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
23225 types variants, and process special cases of VIEW_CONVERT expressions
23226 as their NOP_EXPR counterpart to ensure we get to the
23227 CORRESPONDING_VARs associated with CONST_DECls.
23228 (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
23229 on the right-hand side.
23231 * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
23233 (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
23234 are converting back to its original type.
23235 (convert) <JM input>: Fallthrough regular conversion code instead of
23236 extracting the object if converting to a type variant.
23237 (create_var_decl): When a variable has an initializer requiring code
23238 generation and we are at the top level, check for a potential violation
23239 of a No_Elaboration_Code restriction.
23240 (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
23241 SIZE and SIZE_UNIT which we need for later back-annotations.
23242 * utils.c: (convert) <STRING_CST>: Remove obsolete code.
23243 <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
23244 is an unchecked union.
23245 (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
23246 (convert) <VIEW_CONVERT_EXPR>: When the types have the same
23247 main variant, just replace the VIEW_CONVERT_EXPR.
23248 <UNION_TYPE>: Revert 2005-03-02 change.
23250 * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
23252 * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
23254 2005-11-14 Matthew Heaney <heaney@adacore.com>
23256 * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads,
23257 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb,
23258 a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads,
23259 a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb,
23260 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
23261 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb:
23262 Compiles against the spec for ordered maps described in sections
23263 A.18.6 of the most recent (August 2005) AI-302 draft.
23265 2005-11-14 Olivier Hainque <hainque@adacore.com>
23267 * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
23268 to ensure bias adjustments take place when need be and to prevent
23269 occurrences of intermediate overflows.
23271 2005-11-14 Matthew Gingell <gingell@adacore.com>
23272 Olivier Hainque <hainque@adacore.com>
23274 * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
23277 * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
23278 tracebacks on ia64 HP-UX and provide explanatory comment.
23279 Enable backtraces on ia64 GNU/Linux.
23280 (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
23281 base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
23283 2005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
23284 Javier Miranda <miranda@adacore.com>
23286 * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
23287 exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
23288 exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
23289 einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
23291 * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
23292 properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
23295 * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
23296 subprogram that generates the external name associated with a
23297 secondary dispatch table.
23298 (Get_Secondary_DT_External_Name): New subprogram that generates the
23299 external name associated with a secondary dispatch table.
23301 2005-11-14 Emmanuel Briot <briot@adacore.com>
23303 * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
23304 line in the ALI file to include both an instantiation reference, and a
23307 2005-11-14 Vincent Celier <celier@adacore.com>
23309 * clean.adb (Check_Project): Look for Ada code in extending project,
23310 even if Ada is not specified as a language.
23311 Use new function DLL_Prefix for DLL_Name
23312 (Clean_Interface_Copy_Directory): New procedure
23313 (Clean_Library_Directory): New procedure
23314 (Clean_Directory): Remove procedure, no longer used
23315 (Clean_Project): Do not delete any file in an externally built project
23317 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
23318 directory of an extending project, even when there are no Ada source
23320 (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
23321 (Set_Ada_Paths.Add.Recursive_Add): Ditto
23323 * mlib-prj.adb (Check_Library): For all library projects, get the
23324 library file timestamp.
23325 (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
23326 (Build_Library): Use new function DLL_Prefix for the DLL_Name
23327 (Clean): Remove procedure, no longer used
23328 (Ultimate_Extension_Of): New function
23329 (Build_Library): When cleaning the library directory, only remove an
23330 existing library file and any ALI file of a source of the project.
23331 When cleaning the interface copy directory, remove any source that
23332 could be a source of the project.
23334 * prj.ads, prj.adb (Project_Empty): Add values of new components
23335 Library_TS and All_Imported_Projects.
23336 (Project_Empty): Add values for new components of Project_Data:
23337 Library_ALI_Dir and Display_Library_ALI_Dir
23339 * prj-attr.adb: New project level attribute name Library_ALI_Dir
23341 * prj-nmsc.adb (Check_Library_Attributes): Take into account new
23342 attribute Library_ALI_Dir.
23343 (Check_Library_Attributes): The library directory cannot be the same as
23344 any source directory of the project tree.
23345 (Check_Stand_Alone_Library): The interface copy directory cannot be
23346 the same as any source directory of the project tree.
23348 * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
23349 all temporary files.
23351 2005-11-14 Robert Dewar <dewar@adacore.com>
23352 Ed Schonberg <schonberg@adacore.com>
23354 * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
23355 (Check_Elab_Call): A call within a protected body is never an
23356 elaboration call, and does not require checking.
23357 (Same_Elaboration_Scope): Take into account protected types for both
23359 (Activate_Elaborate_All_Desirable): New procedure
23361 * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
23364 * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
23365 (Elab_Error_Msg): Use -da to include internal unit links, not -de.
23367 * lib-writ.ads, lib-writ.adb:
23368 Implement new AD/ED for Elaborate_All/Elaborate desirable
23369 Use new Elaborate_All_Desirable flag in N_With_Clause node
23371 * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
23372 N_Free_Statement nodes.
23373 Define new class N_Subprogram_Instantiation
23374 Add Elaborate_Desirable flag to N_With_Clause node
23375 Add N_Delay_Statement (covering two kinds of delay)
23377 * debug.adb: Introduce d.f flag for compiler
23378 Add -da switch for binder
23380 2005-11-14 Ed Schonberg <schonberg@adacore.com>
23381 Cyrille Comar <comar@adacore.com>
23383 * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
23384 for task component, in the case of a limited aggregate. The enclosed
23385 object declaration will create it earlier. Otherwise, in the case of a
23386 nested aggregate, the object may appear in the wrong scope.
23387 (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
23388 (Gen_Assign): If the component being assigned is an array type and the
23389 expression is itself an aggregate, wrap the assignment in a block to
23390 force finalization actions on the temporary created for each row of the
23392 (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
23393 structures are initialized after all discriminants are set so that
23394 they can be accessed even when their offset is dynamic.
23396 2005-11-14 Robert Dewar <dewar@adacore.com>
23397 Hristian Kirtchev <kirtchev@adacore.com>
23399 * sem_attr.adb: Implement Machine_Rounding attribute
23400 (Analyze_Access_Attribute): The access attribute may appear within an
23401 aggregate that has been expanded into a loop.
23402 (Check_Task_Prefix): Add semantic check for attribute 'Callable and
23403 'Terminated whenever the prefix is of a task interface class-wide type.
23404 (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
23405 the prefix is of a task interface class-wide type.
23407 * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
23410 * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
23411 Remove pragma Inline for [Unaligned_]Valid.
23412 Add comments that Valid routines do not work for Vax_Float
23414 * exp_attr.adb: Implement Machine_Rounding attribute
23416 * snames.h: Add entry for Machine_Rounding attribute
23418 2005-11-14 Javier Miranda <miranda@adacore.com>
23419 Robert Dewar <dewar@adacore.com>
23420 Hristian Kirtchev <kirtchev@adacore.com>
23422 * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
23423 and related): For a prefix that is an explicit dereference of an
23424 access to unconstrained packed array type, annotate the dereference
23425 with an actual subtype so GIGI can make a correct size computation.
23426 (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
23427 'Unrestricted_Access, if the designated type is an interface we
23428 add a type conversion to force the displacement of the pointer
23429 to the secondary dispatch table.
23430 Use Universal_Real instead of Long_Long_Float when we need a high
23431 precision float type for the generated code (prevents gratuitous
23432 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
23433 (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
23434 'Terminated for task interface class-wide objects. Generate a call to
23435 the predefined dispatching routine used to retrieve the _task_id from
23436 a task corresponding record.
23437 (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
23439 * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
23440 (Check_Dispatching_Operation): Protect the frontend againts
23441 previously detected errors.
23443 * Makefile.rtl: Add new instantiations of system.fat_gen
23445 * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads:
23446 Change name of instantiated package for better consistency
23447 with newly added system.fat_gen instantiations.
23449 * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
23450 s-fvagfl.ads: New files.
23452 2005-11-14 Cyrille Comar <comar@adacore.com>
23453 Thomas Quinot <quinot@adacore.com>
23455 * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
23456 assignment of a value of a tagged type that has been rewritten to a
23457 block statement, it is known by construction that no checks are
23458 necessary for the statements within the block: analyze it with checks
23460 (Expand_N_If_Statement): When killing a dead then-branch in an
23461 if-statement that has elsif_parts, recompute the Current_Value node
23462 for any entity whose value is known from the condition of the first
23464 (Expand_N_Return_Statement): When returning a mutable record, convert
23465 the return value into its actual subtype in order to help the backend
23466 to return the actual size instead of the maximum. This is another
23467 aftermath of not returning mutable records on the sec-stack anymore.
23469 * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
23470 handling of error msg for suspicious reverse range iteration.
23471 (Check_Possible_Current_Value_Condition): Move declaration from body to
23472 spec, to allow this subprogram to be called from exp_ch5.
23474 2005-11-14 Thomas Quinot <quinot@adacore.com>
23476 * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
23477 generate a set of nested array aggregates instead of a single flat
23478 aggregate for multi-dimensional arrays.
23480 2005-11-14 Pascal Obry <obry@adacore.com>
23482 * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
23483 by spawnve is a process handle, no need to convert. Add a parameter
23484 close to control wether the process handle must be closed.
23485 (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
23486 a process handle, not need to convert.
23487 (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
23489 * g-expect.adb: (Kill): Document the new close parameter.
23490 (Close): Do not release the process handle in the kill there as
23491 waitpid() is using it.
23492 (Send_Signal): Release the process handle.
23494 2005-11-14 Robert Dewar <dewar@adacore.com>
23496 * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
23497 need a high precision float type for the generated code (prevents
23498 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
23501 * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
23502 need a high precision float type for the generated code (prevents
23503 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
23505 (Expand_Width_Attribute): In configurable run-time, the attribute is not
23506 allowed on non-static enumeration subtypes. Force a load error to emit
23507 the correct diagnostic.
23509 2005-11-14 Thomas Quinot <quinot@adacore.com>
23510 Robert Dewar <dewar@adacore.com>
23511 Ed Schonberg <schonberg@adacore.com>
23513 * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
23514 subtype to compute the size of the designated object at run-time,
23515 create such a subtype and store it in the Actual_Designated_Subtype
23516 attribute of the N_Free_Statement.
23517 Generate itype for classwide designated object in both cases of
23518 user-specified storage pool: specific and class-wide, not only in the
23520 Raise CE when trying to set a not null access type object to null.
23521 (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
23522 an explicit loop, because freeze nodes make its position variable.
23524 * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
23527 2005-11-14 Javier Miranda <miranda@adacore.com>
23529 * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
23530 Build_Stream_Procedure): Add the null-excluding attribute to the first
23532 This has no semantic meaning under Ada95 mode but it is a
23533 requirement under Ada05 mode.
23535 * par-ch3.adb (P_Access_Definition): Addition of warning message if
23536 the null exclusion is used under Ada95 mode
23537 (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
23538 (P_Access_Definition): Remove assertion that forbids the use of
23539 the null-exclusion feature in Ada95.
23541 2005-11-14 Robert Dewar <dewar@adacore.com>
23543 * impunit.adb: Exclude container helper units not intended for use by
23546 2005-11-14 Ed Schonberg <schonberg@adacore.com>
23548 * freeze.adb (Freeze_Entity): For an access formal that is an access
23549 to subprogram, freeze the anonymous subprogram type at the same time,
23550 to prevent later freezing in the wrong scope, such as the enclosing
23552 (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
23553 subprogram whenever available.
23555 2005-11-14 Arnaud Charlet <charlet@adacore.com>
23558 * gnatvsn.ads (Library_Version): Bump to 4.1
23560 2005-11-14 Robert Dewar <dewar@adacore.com>
23562 * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
23563 Storage_Offset to avoid wrap around causing invalid results.
23565 2005-11-14 Pascal Obry <obry@adacore.com>
23567 * gnatbind.adb (Is_Cross_Compiler): New function returning True for
23569 (Scan_Bind_Arg): Fail with an error message if -M option is used
23570 on a native compiler.
23572 2005-11-14 Robert Dewar <dewar@adacore.com>
23573 Vincent Celier <celier@adacore.com>
23575 * gprep.adb: Implement -C switch to scan comments
23577 * scng.adb: Scan comment symbol separately if Replace_In_Comments set
23579 * scans.ads: Comment updates (including new use of Tok_Comment in
23582 * opt.ads: Add documentation for flags that are used by gprmake,
23583 currently and in the next version of gprmake.
23584 (Verbosity_Level): New variable
23585 Add Replace_In_Comments switch
23587 * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
23589 Add /REPLACE_IN_COMMENTS for gnatprep -C switch
23591 2005-11-14 Arnaud Charlet <charlet@adacore.com>
23593 * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
23594 message, friendlier.
23596 2005-11-14 Robert Dewar <dewar@adacore.com>
23598 * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
23600 2005-11-14 Doug Rupp <rupp@adacore.com>
23602 * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
23604 2005-11-14 Robert Dewar <dewar@adacore.com>
23606 * interfac.ads: Change declarations of IEEE float types so that we no
23607 longer need a separate version of this package for VMS.
23609 2005-11-14 Ed Schonberg <schonberg@adacore.com>
23611 * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
23612 internal entity created for the declaration of a child subprogram body
23613 with no spec as coming from source, to generate proper cross-reference
23616 2005-11-14 Vincent Celier <celier@adacore.com>
23618 * make.adb (Compile_Sources): Change verbose message to minimum
23619 verbosity level High for "is in an Ada library", "is a read-only
23620 library" and "is an internal library",
23621 (Create_Binder_Mapping_File): Path name of ALI file for library project
23622 must include the library directory, not the object directory.
23623 (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
23624 for new switches -vl, -vm and -vh.
23625 (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
23626 (Check): Use minimum verbosity Medium for some Verbose_Msg calls
23627 (Compile_Sources): Do not attempt to compile if an ALI file is missing
23628 in a project that is externally built.
23629 (Compute_All_Imported_Projects): New procedure
23630 (Gnatmake): Check if importing libraries should be regenerated because
23631 at least an imported library is more recent.
23632 (Initialize): For each project compute the list of the projects it
23633 imports directly or indirectly.
23634 (Add_Library_Search_Dir): New procedure, used in place of
23635 Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
23636 put in the search paths.
23637 (Add_Source_Search_Dir): New procedure, used in place of
23638 Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
23639 put in the search paths.
23640 (Mark_Directory): Resolve the absolute path the directory before marking
23643 * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
23644 call to new procedure Bad_Switch. Call Scan_Pos with new parameter
23645 Switch. Do not handle any exception.
23646 (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
23647 so that the switch is recognized as valid.
23648 (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
23650 2005-11-14 GNAT Script <nobody@adacore.com>
23652 * Make-lang.in: Makefile automatically updated
23654 2005-11-14 Pascal Obry <obry@adacore.com>
23656 * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
23658 (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
23659 In both cases the last argument was dropped.
23661 2005-11-14 Eric Botcazou <ebotcazou@adacore.com>
23663 * namet.h: (Column_Numbe): New type.
23664 (Get_Column_Number): Define to sinput__get_column_number.
23665 (Instantiation): Define to sinput__instantiation.
23666 (Get_Column_Number): Declare.
23667 (Instantiation): Likewise.
23669 2005-11-14 Robert Dewar <dewar@adacore.com>
23671 * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
23672 syntax, which could cause compiler hangs.
23674 2005-11-14 Vincent Celier <celier@adacore.com>
23676 * prj-ext.adb: Take into account new environment variable
23677 GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
23679 (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
23680 normalize its path name, making it absolute and resolving symbolic
23681 links, and replace the original if resolved path is different.
23683 2005-11-14 Vincent Celier <celier@adacore.com>
23685 * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
23686 into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
23688 2005-11-14 Emmanuel Briot <briot@adacore.com>
23690 * prj-pp.adb (Print): Do not output the with statement if the
23691 associated name is empty, which happens for virtual extending projects.
23692 (Print): Preserve the "extends all" attribute when printing the project.
23694 * prj-tree.ads (String_Value_Of): Add comment about returned value for
23695 a virtual extending project.
23697 2005-11-14 Ed Schonberg <schonberg@adacore.com>
23699 * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
23700 rhs of an assignment even if the type is unconstrained, when the
23701 context is non-expanding.
23702 In an inlined body, if the context type is private,
23703 resolve with its full view, which must be a composite type.
23705 2005-11-14 Robert Dewar <dewar@adacore.com>
23706 Ed Schonberg <schonberg@adacore.com>
23708 * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
23709 Do not give obsolescent warning on with of subprogram (since we
23711 (Analyze_With_Clause): Add test for obsolescent package
23712 (Install_Context_Clauses): If the unit is the body of a child unit, do
23713 not install twice the private declarations of the parents, to prevent
23714 circular lists of Use_Clauses in a parent.
23715 (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
23716 compiling body of child unit.
23717 Use new class N_Subprogram_Instantiation
23718 (Expand_With_Clause): If this is a private with_clause for a child unit,
23719 appearing in the context of a package declaration, then the implicit
23720 with_clauses generated for parent units are private as well.
23721 (License_Check): Do not generate message if with'ed unit is internal
23723 2005-11-14 Gary Dismukes <dismukes@adacore.com>
23724 Ed Schonberg <schonberg@adacore.com>
23725 Thomas Quinot <quinot@adacore.com>
23727 * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
23728 names are internal, because they will not have a corresponding partner
23729 in the actual package.
23730 (Analyze_Formal_Package): Move the setting of the formal package spec's
23731 Generic_Parent field so that it occurs prior to analyzing the package,
23732 to allow proper operation of Install_Parent_Private_Declarations.
23733 (Analyze_Package_Instantiation): Set the instantiated package entity's
23734 Package_Instantiation field.
23735 (Get_Package_Instantiation_Node): Move declaration to package spec.
23736 Retrieve the N_Package_Instantiation node when the Package_Instantiation
23738 (Check_Generic_Child_Unit): Within an inlined call, the only possible
23739 instantiation is Unchecked_Conversion, for which no parents are needed.
23740 (Inline_Instance_Body): Deinstall and record the use_clauses for all
23741 parent scopes of a scope being removed prior to inlining an instance
23743 (Analyze_Package_Instantiation): Do not perform front-end inlining when
23744 the current context is itself an instance within a non-instance child
23745 unit, to prevent scope stack errors.
23746 (Save_References): If the node is an aggregate that is an actual in a
23747 call, rewrite as a qualified expression to preserve some type
23748 information, to resolve possible ambiguities in the instance.
23749 (Instance_Parent_Unit): New global variable to record the ultimate
23750 parent unit associated with a generic child unit instance (associated
23751 with the existing Parent_Unit_Visible flag).
23752 (type Instance_Env): New component Instance_Parent_Unit for stacking
23753 parents recorded in the global Instance_Parent_Unit.
23754 (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
23756 (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
23757 it's not a top-level unit, and only do this if Instance_Parent_Unit is
23758 not already set. Replace test of Is_Child_Unit with test of parent's
23759 scope against package Standard. Add comments and a ??? comment.
23760 (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
23761 on a child instance parent to test that the parent equals
23762 Instance_Parent rather than simply checking that the unit is not a
23764 (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
23765 (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
23766 a formal interface are ancestors of the corresponding actual.
23767 (Validate_Formal_Interface_Type): Additional legality checks.
23768 (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
23769 interface types with ancestors.
23770 (Analyze_Formal_Package): If formal is a renaming, use renamed entity
23771 to diagnose attempts to use generic within its own declaration.
23773 2005-11-14 Ed Schonberg <schonberg@adacore.com>
23774 Javier Miranda <miranda@adacore.com>
23776 * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
23778 (Build_Private_Derived_Type): The entity of the created full view of the
23779 derived type does not come from source. If after installing the private
23780 declarations of the parent scope the parent is still private, use its
23781 full view to construct the full declaration of the derived type.
23782 (Build_Derived_Record_Type): Relax the condition that controls the
23783 execution of the check that verifies that the partial view and
23784 the full view agree in the set of implemented interfaces. In
23785 addition, this test now only takes into account the progenitors.
23786 (Derive_Interface_Subprograms): No need to derive subprograms
23787 of ancestors that are interfaces.
23788 (Derive_Subprograms): Remove formal No_Predefined_Prims and the
23790 Change name Is_Package to Is_Package_Or_Generic_Package
23791 (Complete_Subprograms_Derivation): Handle the case in which the full
23792 view is a transitive derivation of the ancestor of the partial view.
23793 (Process_Full_View): Rename local subprogram Find_Interface_In_
23794 Descendant to Find_Ancestor_Interface to leave the code more clear.
23795 Remove wrong code that avoids the generation of an error message
23796 when the immediate ancestor of the partial view is an interface.
23797 In addition some minor reorganization of the code has been done to
23798 leave it more clear.
23799 (Analyze_Type_Declaration): If type has previous incomplete tagged
23800 partial view, inherit properly its primitive operations.
23801 (Collect_Interfaces): Make public, for analysis of formal
23803 (Analyze_Interface_Declaration): New procedure for use for regular and
23804 formal interface declarations.
23805 (Build_Derived_Record_Type): Add support for private types to the code
23806 that checks if a tagged type implements abstract interfaces.
23807 (Check_Aliased_Component_Type): The test applies in the spec of an
23809 (Access_Type_Declaration): Clean up declaration of malformed type
23810 declared as an access to its own classwide type, to prevent cascaded
23812 (Collect_Interfaces): For private extensions and for derived task types
23813 and derived protected types, the parent may be an interface that must
23814 be included in the interface list.
23815 (Access_Definition): If the designated type is an interface that may
23816 contain tasks, create Master_Id for it before analyzing the expression
23817 of the declaration, which may be an allocator.
23818 (Record_Type_Declaration): Set properly the interface kind, for use
23819 in allocators, the creation of master id's for task interfaces, etc.
23821 2005-11-14 Javier Miranda <miranda@adacore.com>
23822 Ed Schonberg <schonberg@adacore.com>
23824 * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
23825 omitted in case of stream attribute subprograms.
23826 (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
23827 appear immediately after a subprogram body, when there is no previous
23828 subprogram declaration.
23829 Change name Is_Package to Is_Package_Or_Generic_Package
23830 (Process_Formals): A non null qualifier on a non null named access
23831 type is not an error, and is a warning only if Redundant_Constructs
23834 2005-11-14 Gary Dismukes <dismukes@adacore.com>
23835 Ed Schonberg <schonberg@adacore.com>
23837 * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
23838 nested within Analyze_Package_Specification to install the private
23839 declarations and use clauses within each of the parent units of a
23840 package instance of a generic child package.
23841 (Analyze_Package_Specification): When entering a private part of a
23842 package associated with a generic instance or formal package, the
23843 private declarations of the parent must be installed (by calling new
23844 procedure Install_Parent_Private_Declarations).
23845 Change name Is_Package to Is_Package_Or_Generic_Package
23846 (Preserve_Full_Attributes): For a synchronized type, the corresponding
23847 record is absent in a generic context, which does not indicate a
23850 2005-11-14 Ed Schonberg <schonberg@adacore.com>
23852 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
23853 not try to rewrite a renamed stream attribute, because the operations
23854 on the type may not have been generated.
23855 Handle properly a renaming_as_body generated for a stream operation
23856 whose default is abstract because the object type itself is abstract.
23857 (Find_Type): If the type is incomplete and appears as the prefix of a
23858 'Class reference, it is tagged, and its list of primitive operations
23859 must be initialized properly.
23860 (Chain_Use_Clauses): When chaining the use clauses that appear in the
23861 private declaration of a parent unit, prior to compiling the private
23862 part of a child unit, find on the scope stack the proper parent entity
23863 on which to link the use clause.
23864 (Note_Redundant_Use): Emit a warning when a redundant use clause is
23866 (Analyze_Object_Renaming): An attribute reference is not a legal object
23867 if it is not a function call.
23869 2005-11-14 Robert Dewar <dewar@adacore.com>
23870 Ed Schonberg <schonberg@adacore.com>
23872 * sem_eval.adb: Implement d.f flag
23873 (Subtype_Statically_Match): A generic actual type has unknown
23874 discriminants when the corresponding actual has a similar partial view.
23875 If the routine is called to validate the signature of an inherited
23876 operation in a child instance, the generic actual matches the full view,
23878 2005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
23879 Ed Schonberg <schonberg@adacore.com>
23880 Robert Dewar <dewar@adacore.com>
23881 Thomas Quinot <quinot@adacore.com>
23883 * sem_res.adb (Resolve_Call): Provide a better error message whenever
23884 a procedure call is used as a select statement trigger and is not an
23885 entry renaming or a primitive of a limited interface.
23886 (Valid_Conversion): If the operand has a single interpretation do not
23887 remove address operations.
23888 (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
23889 statement to inhibit warning.
23890 (Resolve_Unary_Op): Do not produce a warning when
23891 processing an expression of the form -(A mod B)
23892 Use Universal_Real instead of Long_Long_Float when we need a high
23893 precision float type for the generated code (prevents gratuitous
23894 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
23895 (Resolve_Concatenation_Arg): Improve error message when argument is an
23896 ambiguous call to a function that returns an array.
23897 (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
23898 there is an implicit operator in the given scope if we are within an
23899 instance: legality check has been performed on the generic.
23900 (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
23901 after resolving operand, to avoid false warnings on overloaded calls.
23903 2005-11-14 Ed Schonberg <schonberg@adacore.com>
23904 Javier Miranda <miranda@adacore.com>
23907 * sem_type.adb (Covers): In an inlined body, a composite type matches
23908 a private type whose full view is a composite type.
23909 (Interface_Present_In_Ancestor): Protect the frontend against
23910 previously detected errors to ensure that its compilation
23911 with assertions enabled gives the same output that its
23912 compilation without assertions.
23913 (Interface_Present_In_Ancestor): Add support for private types.
23914 Change name In_Actual to In_Generic_Actual (clean up)
23915 (Disambiguate): New predicate In_Actual, to recognize expressions that
23916 appear in the renaming declaration generated for generic actuals, and
23917 which must be resolved in the outer context.
23919 2005-11-14 Robert Dewar <dewar@adacore.com>
23920 Thomas Quinot <quinot@adacore.com>
23921 Hristian Kirtchev <kirtchev@adacore.com>
23922 Ed Schonberg <schonberg@adacore.com>
23924 * sem_util.ads, sem_util.adb: Change name Is_Package to
23925 Is_Package_Or_Generic_Package.
23926 (Check_Obsolescent): New procedure.
23927 (Set_Is_Public): Remove obsolete junk test.
23928 (Set_Public_Status): Do not set Is_Public on an object whose declaration
23929 occurs within a handled_sequence_of_statemets.
23930 (Is_Controlling_Limited_Procedure): Factor some of the logic, account
23931 for a parameterless procedure.
23932 (Enter_Name): Recognize renaming declarations created for private
23933 component of a protected type within protected operations, so that
23934 the source name of the component can be used in the debugger.
23936 2005-11-14 Ed Schonberg <schonberg@adacore.com>
23937 Robert Dewar <dewar@adacore.com>
23939 * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
23940 of a generic subprogram are not visible outside the body.
23941 (Set_Warning_Switch): New procedure (code to set warning mode moved
23942 here from Switch.C so that it can be shared by pragma processing.
23943 (Check_References): Special case warning for non-modified non-imported
23945 * par-prag.adb: Modify processing of pragma Warnings to accomodate new
23946 form with a string literal argument
23948 2005-11-14 Javier Miranda <miranda@adacore.com>
23950 * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
23952 (Write): Addition of "not null" to the anonymous access.
23953 (Read): Addition of "not null" to the anonymous access.
23954 (Write): Addition of "not null" to the anonymous access.
23956 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
23957 I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
23958 I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
23959 (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
23960 W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
23961 "not null" to the anonymous access.
23963 2005-11-14 Robert Dewar <dewar@adacore.com>
23965 * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
23968 2005-11-14 Vincent Celier <celier@adacore.com>
23970 * switch.adb (Bad_Switch): New procedure
23971 (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
23972 message when in error.
23974 * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
23975 Too_Many_Output_Files): Remove declarations, no longer used.
23976 (Scan_Nat): New parameter Switch
23978 (Bad_Switch): New procedure
23980 * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
23981 with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
23982 new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
23983 to Osint.Fail. Do not handle any exception.
23985 2005-11-14 Vincent Celier <celier@adacore.com>
23987 * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
23988 designates a non existent directory.
23990 2005-11-14 Robert Dewar <dewar@adacore.com>
23992 * xgnatugn.adb: Replace invalid membership test by 'Valid
23994 2005-11-14 Vincent Celier <celier@adacore.com>
23996 * makegpr.adb (Gprmake): Do not attempt to build the global archive if
23997 there is no object directory.
23999 2005-11-14 Robert Dewar <dewar@adacore.com>
24001 * usage.adb: Minor adjustment to output format, use nn instead of nnn
24002 (so that -gnateInnn does not run into next column)
24004 2005-11-14 Ed Falis <falis@adacore.com>
24006 * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
24009 2005-11-14 Cyrille Comar <comar@adacore.com>
24011 * s-chepoo.ads: Add comments on Dereference.
24012 Remove unnecessary inherited abstract primitives.
24015 2005-11-14 Robert Dewar <dewar@adacore.com>
24017 * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
24018 node parameter, not needed, since it is available as Declaration_Node.
24020 2005-11-14 Geert Bosch <bosch@adacore.com>
24022 * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
24023 grammatically correct.
24025 2005-11-14 Vincent Celier <celier@adacore.com>
24027 * s-fileio.ads: Correct spelling error in comment
24029 2005-11-14 Cyrille Comar <comar@adacore.com>
24030 Robert Dewar <dewar@adacore.com>
24031 Vincent Celier <celier@adacore.com>
24032 Ben Brosgol <brosgol@adacore.com>
24033 Jose Ruiz <ruiz@adacore.com>
24034 Pascal Obry <obry@adacore.com>
24037 Document that -fstack-check is needed for strict compliance with the
24038 Ada 95 Reference Manual.
24039 Correct reference to VAX systems to meet HP guidelines
24040 Add documentation for new gnatmake switches -vl, -vm and -vh
24041 Replace DEC Ada by HP Ada
24042 Replace DIGITAL by HP
24043 Remove empty section on tools in compatibility section
24044 Clarify the Windows convention semantics.
24045 Document the Win32 calling convention.
24046 The Stdcall, Win32 and DLL convention are synonyms.
24047 Add a note in -gnatR description about zero size record components
24048 Note on new >= and <= warnings for -gnatwc
24049 Document that equal sign after -gnatm is optional.
24050 Note that strip is working fine on DLL built with a Library
24051 Project. The restriction apply only to DLL built with gnatdll.
24052 Update section about the way to debug a DLL.
24053 Update information about the DLL convention.
24054 Document -C switch for gnatprep
24055 Document new attribute Library_ALI_Dir
24056 Update elaboration doc to include implicit Elaborate pragmas now
24057 generated for subprogram instantiations.
24058 Document limitation on executable names that include spaces for --GCC,
24059 --GNATBIND, and --GNATLINK switches.
24060 Document that -w causes -gnatws to be added at start of gcc switches
24062 * gnat_rm.texi: Document that -mieee is needed for generating infinite
24063 and NaN values in case of overflow on machines that are not fully
24064 compliant with the IEEE floating-point standard.
24065 Create a section describing the set of compiler options needed for
24066 strict compliance with the Ada 95 Reference Manual.
24067 Add documentation for pragma Obsolescent applied to a package
24068 Clarify potential issues of mixed language programs related to the
24069 I/O buffering enabling in the elaboration of the GNAT runtime.
24070 Add extra documentation for pragma Restrictions (No_Elaboration_Code)
24071 This documentation only patch adds extra documentsion for pragma
24072 Restrictions (No_Elaboration_Code), explaining why it is not possible
24073 to document this restriction in terms of allowed source constructs.
24074 Document string literal form of pragma Warnings
24075 Document new attribute Library_ALI_Dir
24076 Add documentation on stable attributes in project files that was missing
24078 * gnat-style.texi: Indicate that paragraphs within a single comment
24079 should be separated by empty comment lines
24081 * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
24084 * bindusg.adb: Minor cleanup, put -m before -M for consistency
24086 2005-11-14 Robert Dewar <dewar@adacore.com>
24088 * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
24089 a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
24090 a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
24091 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
24092 a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
24093 a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
24094 a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
24095 a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
24096 a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
24097 a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
24098 a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
24099 a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
24100 g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
24101 a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
24102 a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
24103 system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
24104 g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
24105 g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
24106 a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
24107 a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
24108 a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
24109 a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
24110 a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
24111 a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
24112 system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
24113 system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
24114 a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
24115 a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
24116 a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
24117 system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
24118 system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
24119 s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
24120 system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
24121 system-interix.ads, system-solaris-sparc.ads,
24122 system-solaris-sparcv9.ads, s-inmaop-vms.adb,
24123 s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
24124 system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
24125 s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
24126 a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
24127 a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
24128 a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
24129 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
24130 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
24131 a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
24132 a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
24133 a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
24134 a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
24135 a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
24136 a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
24137 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
24138 a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
24139 a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
24140 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
24141 a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
24142 a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
24143 a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
24144 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
24145 a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
24146 a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
24147 a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
24148 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
24149 a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
24150 a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
24151 a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
24152 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
24153 a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
24154 a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
24155 a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
24156 bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
24157 csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
24158 errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
24159 errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
24160 exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
24161 exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
24162 freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
24163 g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
24164 g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
24165 g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
24166 g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
24167 g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
24168 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
24169 g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
24170 g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
24171 gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
24172 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
24173 g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
24174 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
24175 g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
24176 g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
24177 g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
24178 layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
24179 mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
24180 mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
24181 nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
24182 osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
24183 par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
24184 par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
24185 par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
24186 prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
24187 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
24188 prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
24189 prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
24190 sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
24191 sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
24192 sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
24193 sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
24194 s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
24195 sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
24196 s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
24197 s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
24198 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
24199 s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
24200 s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
24201 s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
24202 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
24203 s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
24204 s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
24205 s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
24206 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
24207 s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
24208 s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
24209 s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
24210 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
24211 s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
24212 s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
24213 s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
24214 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
24215 s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
24216 s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
24217 s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
24218 s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
24219 s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
24220 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
24221 s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
24222 styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
24223 s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
24224 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
24225 s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
24226 s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
24227 s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
24228 s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
24229 s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
24230 s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
24231 s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
24232 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
24233 table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
24234 tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
24235 ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
24236 usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
24237 xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
24238 xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
24239 a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
24240 a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
24241 a-numaux-darwin.ads, a-numaux-darwin.adb,
24242 a-swuwha.ads, a-stunha.ads: Minor reformatting
24244 2005-11-14 Robert Dewar <dewar@adacore.com>
24247 * osint-m.adb: Add pragma Elaborate_All for Osint
24249 2005-11-10 Eric Botcazou <ebotcazou@adacore.com>
24252 * trans.c (call_to_gnu): Restore statement lost in translation.
24254 2005-11-08 Eric Botcazou <ebotcazou@adacore.com>
24256 * init.c: Use the Linux-specific section for the IA-64/Linux target.
24257 (__gnat_adjust_context_for_raise): Add conditional code so that the
24258 IA-64 is also supported.
24260 2005-11-03 James E Wilson <wilson@specifix.com>
24263 * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
24264 TREE_OVERFLOW check.
24266 2005-09-21 Olivier Hainque <hainque@adacore.com>
24269 * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
24270 as we create them to store a size in bits.
24272 2005-10-21 Eric Botcazou <ebotcazou@adacore.com>
24280 * utils2.c (build_return_expr): New helper function.
24281 * gigi.h (build_return_expr): Declare it.
24282 * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
24283 of manually building the RETURN_EXPR tree.
24284 (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
24285 (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
24286 build_binary_op for the "target pointer" case. Use build_return_expr
24287 instead of manually building the RETURN_EXPR tree.
24289 2005-09-16 Laurent Guerby <laurent@guerby.net>
24292 * s-tpinop.ads: Make this unit Preelaborate.
24294 2005-09-16 Andreas Jaeger <aj@suse.de>
24296 * socket.c: Add string.h for memcpy.
24298 2005-09-05 Arnaud Charlet <charlet@adacore.com>
24300 * dec-io.ads, dec-io.adb: Removed, no longer used.
24302 2005-09-01 Arnaud Charlet <charlet@adacore.com>
24304 * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
24306 * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
24307 s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
24308 s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
24309 s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
24310 dependent units are Preelaborate.
24311 (Initialize): Call Interrupt_Managemeent.Initialize and
24312 OS_Primitives.Initialize to ensure proper initialization of this unit.
24313 Remove use of System.Soft_Links
24314 Make this unit Preelaborate.
24316 * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
24317 s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
24318 s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
24319 s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
24320 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
24321 s-tratas.ads, s-tasinf.ads: Minor reformatting.
24322 Add pragma Preelaborate, since these packages are suitable for this
24326 * s-traent-vms.ads, s-intman-dummy.adb,
24327 s-taprop-dummy.adb: Make this unit Preelaborate.
24329 * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
24330 s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
24331 s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
24332 s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
24333 s-intman-solaris.adb, s-intman-irix-athread.adb,
24334 s-intman-irix.adb: Mark this unit Preelaborate.
24335 (Initialize): New procedure.
24338 * s-taspri-linux.ads: Removed.
24340 * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
24341 as done by other implementations (e.g. posix).
24343 * s-taprop.ads (Timed_Delay): Update spec since the caller now is
24344 responsible for deferring abort.
24345 Mark this unit Preelaborate.
24347 * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
24348 proper initialization of the tasking run-time.
24350 * s-tasdeb.ads: Mark this unit Preelaborate.
24351 (Known_Tasks): Add explicit default value to avoid elaboration code.
24353 * s-inmaop-vms.adb (Elaboration code): Add call to
24354 Interrupt_Management.Initialize since the elaboration code depends on
24355 proper initialization of this package.
24357 * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
24358 s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
24359 s-osprim-posix.adb: Make this unit Preelaborate.
24361 * a-calend.adb: Add call to OS_Primitives.Initialize
24363 * a-elchha.adb: Update use of Except.Id.Full_Name.
24364 Minor reformatting.
24365 Remove use of Ada.Exceptions.Traceback when possible, cleaner.
24367 * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
24368 Move with clauses outside Warnings Off now that dependent units are
24370 Use raise xxx with "..."; Ada 2005 form.
24372 * a-taside.ads, a-taside.adb:
24373 Remove some dependencies, to make it easier to make this unit truly
24375 Rewrite some code to be conformant with Preelaborate rules.
24377 * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
24378 marked Preelaborate in the future.
24380 * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
24381 these units Preelaborate.
24383 * s-exctab.adb: Update use of Except.Id.Full_Name.
24385 * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
24386 (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
24387 Set_Exc_Stack_Addr): Removed, no longer used.
24388 Remove reference to *Machine_State_Addr*, no longer needed.
24390 * s-stalib.ads: Mark this unit as Preelaborate[_05].
24391 (Exception_Data): Full_Name is now a System.Address so that this unit
24392 can be made Preelaborate.
24393 Clean up/simplify code thanks to Full_Name being a System.Address.
24394 Remove obsolete pragma Suppress (All_Checks), no longer needed.
24396 * s-taskin.ads, s-taskin.adb:
24397 Move with clauses outside Warnings Off now that dependent units are
24399 Make this unit Preelaborate.
24400 (Initialize): New proceduure, replace elaboration code and makes the
24401 set up of the tasking run-time cleaner.
24402 (Detect_Blocking): Now a function instead of a deferred boolean, to
24403 obey Preelaborate rules.
24405 * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
24406 soft links, no longer used.
24408 * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
24409 packages are suitable for this categorization.
24411 * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
24412 since we compile run-time sources in Ada 2005 mode.
24413 (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
24414 avoid having s-taprop*.adb depend on s-soflin and to avoid code
24416 Remove reference to *Machine_State_Addr*, no longer needed.
24418 2005-09-01 Arnaud Charlet <charlet@adacore.com>
24420 * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
24421 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
24422 Remove reference to System.Exceptions.
24424 * s-mastop-x86.adb: Removed, no longer used.
24426 * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
24428 * a-excach.adb: Minor reformatting.
24430 * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
24431 instead fix new warnings that were hidden by this change.
24432 (AAA, ZZZ): Removed, replaced by...
24433 (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
24434 are used instead of constants, to help make Ada.Exception truly
24436 (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
24437 Raise_Storage_Error): File is now a System.Address, to simplify code.
24438 (Elab code): Removed, no longer used.
24439 (Null_Occurrence): Remove Warnings Off and make this construct
24441 Remove code related to front-end zero cost exception handling, since
24442 it is no longer used.
24443 Remove -gnatL/-gnatZ switches.
24445 * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
24446 Update use of Except.Msg.
24448 * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
24449 freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
24450 to front-end zero cost exception handling, since it is no longer used.
24451 Remove -gnatL/-gnatZ switches.
24453 * lib-writ.ads: Minor reformatting
24456 * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
24458 * Make-lang.in: Remove references to s-except.ads
24460 * s-except.ads: Removed, no longer used.
24462 * s-mastop.ads, s-mastop.adb:
24463 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
24464 Remove reference to System.Exceptions.
24466 * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
24467 switch-b.adb: Remove code related to front-end zero cost exception
24468 handling, since it is no longer used.
24469 Remove -gnatL/-gnatZ switches.
24471 2005-09-01 Robert Dewar <dewar@adacore.com>
24472 Gary Dismukes <dismukes@adacore.com>
24473 Javier Miranda <miranda@adacore.com>
24475 * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
24476 type by valid test and generate warning.
24477 (Tagged_Membership): Generate call to the run-time
24478 subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
24479 Change formal name Subtype_Mark to Result_Definition in several calls to
24480 Make_Function_Specification.
24481 (Expand_Allocator_Expression): Add tests for suppression of the AI-344
24482 check for proper accessibility of the operand of a class-wide allocator.
24483 The check can be left out if checks are suppressed or if the expression
24484 has a specific tagged type whose level is known to be safe.
24486 * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
24487 generates the run-time check associated with null-excluding entities.
24488 (Expand_N_Return_Statement): Add tests to determine if the accessibility
24489 check on the level of the return expression of a class-wide function
24490 can be elided. The check usually isn't needed if the expression has a
24491 specific type (unless it's a conversion or a formal parameter). Also
24492 add a test for whether accessibility checks are suppressed. Augment
24493 the comments to describe the conditions for performing the check.
24495 2005-09-01 Hristian Kirtchev <kirtchev@adacore.com>
24496 Javier Miranda <miranda@adacore.com>
24497 Gary Dismukes <dismukes@adacore.com>
24498 Ed Schonberg <schonberg@adacore.com>
24500 * a-tags.adb (IW_Membership): Give support to
24501 "Iface_CW_Typ in T'Class". For this purpose the functionality of this
24502 subprogram has been extended to look for the tag in the ancestors tag
24504 Update the structure of the GNAT Dispatch Table to reflect the
24505 additional two tables used in dispatching selects.
24506 Introduce appropriate array types and record components in
24507 Type_Specific_Data to reflect the two tables.
24508 (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
24509 the TSD of a tag, indexed by position.
24510 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
24511 operation kind in the TSD of a tag, indexed by position.
24513 * a-tags.ads: Introduce an enumeration type to capture different
24514 primitive operation kinds. Define a constant reflecting the number of
24515 predefined primitive operations.
24516 (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
24517 of an entry wrapper.
24518 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
24519 callable entity of a primitive operation.
24521 * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
24522 primitive operations used in dispatching selects for limited
24523 interfaces, limited tagged, task and protected types what implement a
24525 (Freeze_Type): Generate the bodies of the primitive operations used in
24526 dispatching selects for limited tagged, task and protected types that
24527 implement a limited interface. Generate statements to populate the two
24528 auxiliary tables used for dispatching in select statements.
24529 (Freeze_Record_Type): Add call to initialize the dispatch table entries
24530 associated with predefined interface primitive operations.
24531 (Build_Dcheck_Function): Change Set_Subtype_Mark to
24532 Set_Result_Definition.
24533 (Build_Variant_Record_Equality): Change Subtype_Mark to
24535 (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
24536 (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
24537 (Build_Assignment): Simplify the code that adds the run-time-check.
24538 (Expand_N_Object_Declaration): Code cleanup.
24540 * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
24541 entries when there is a protected type that implements a limited
24544 * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
24545 common routines used in expansion of dispatching selects.
24546 (Add_Private_Declarations): Select the appropriate protection type when
24547 there is a protected type that implements a limited interface.
24548 (Build_Parameter_Block): Generate a wrapped parameter block.
24549 (Build_Protected_Subprogram_Body): Select the appropriate type for
24550 locking entries when there is a protected type that implements a
24552 (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
24553 classified as entry wrappers.
24554 (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
24555 asynchronous selects.
24556 (Expand_N_Conditional_Entry_Call): Add support for expansion of
24557 dispatching conditional selects.
24558 (Expand_N_Protected_Type_Declaration): Select the appropriate type for
24559 protection when there is a protected type that implements limited
24561 (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
24563 (Extract_Dispatching_Call): Extract the entity of the name of a
24564 dispatching call, the object parameter, actual parameters and
24565 corresponding formals.
24566 (Make_Initialize_Protection): Correct logic of protection initialization
24567 when there is a protected type that implements a limited interface.
24568 (Parameter_Block_Pack): Populate a wrapped parameter block with the
24569 values of actual parameters.
24570 (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
24571 block and assign them to the original actual parameters.
24573 * exp_ch9.ads (Subprogram_Protection_Mode): New type.
24574 (Build_Protected_Sub_Specification): Change the type and name of the
24575 last formal to account for the increased variety of protection modes.
24577 * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
24578 entities. Used to save the value of the Is_Hidden attribute when the
24579 limited-view is installed.
24580 (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
24581 the attribute of procedures classified as entry wrappers.
24582 (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
24583 entity of a primitive wrapper.
24584 (Write_Entity_Flags): Output the name and value of the
24585 Is_Primitive_Wrapper attribute.
24586 (Write_Field27_Name): Output the name and entity of the field Wrapped_
24588 (Underlying_Type): If we have an incomplete entity that comes from
24589 the limited view then we return the Underlying_Type of its non-limited
24590 view if it is already available.
24591 (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
24592 including operators.
24593 (Write_Field26_Name): Add entry for Overridden_Operation
24594 (Overridden_Operation): New attribute of functions and procedures.
24596 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
24597 predefined position in the dispatch table for the primitive operations
24598 used in dispatching selects.
24599 (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
24600 predefined primitive operations and replace it with
24601 Default_Prim_Op_Count.
24602 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
24603 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
24604 the names of the generated primitive operations used in dispatching
24606 (Init_Predefined_Interface_Primitives): No need to inherit primitives in
24607 case of abstract interface types. They will be inherit by the objects
24608 implementing the interface.
24609 (Make_DT): There is no need to inherit the dispatch table of the
24610 ancestor interface for the elaboration of abstract interface types.
24611 The dispatch table will be inherited by the object implementing the
24613 (Copy_Secondary_DTs): Add documentation.
24614 (Validate_Position): Improve this static check in case of
24615 aliased subprograms because aliased subprograms must have
24617 (Init_Predefined_Interface_Primitives): New subprogram that initializes
24618 the entries associated with predefined primitives of all the secondary
24620 (Build_Anonymous_Access_Type): Removed.
24621 (Expand_Interface_Actuals): With the previous cleanup there is no need
24622 to build an anonymous access type. This allows further cleanup in the
24623 code generated by the expander.
24624 (Expand_Interface_Conversion): If the actual is an access type then
24625 build an internal function to handle the displacement. If the actual
24626 is null this function returns null because no displacement is
24627 required; otherwise performs a type conversion that will be
24628 expanded in the code that returns the value of the displaced actual.
24629 (Expand_Interface_Actuals): Avoid the generation of unnecessary type
24630 conversions that have no effect in the generated code because no
24631 displacement is required. Code cleanup; use local variables to
24632 avoid repeated calls to the subprogram directly_designated_type().
24634 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
24635 Classify the primitive operations used in dispatching selects as
24637 (Implements_Limited_Interface): Determine whether some type either
24638 directly implements a limited interface or extends a type that
24639 implements a limited interface.
24640 (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
24641 (Expand_Subtype_From_Expr): Do not build actual subtype if the
24642 expression is limited.
24643 (Find_Interface_Tag): Add code to handle class-wide types and
24644 entities from the limited-view.
24646 * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
24647 Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
24648 POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
24649 POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
24652 * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
24653 of procedure name or prefix that appears as a trigger in a triggering
24656 * uintp.ads: Introduce constants Uint_11 and Uint_13.
24658 2005-09-01 Arnaud Charlet <charlet@adacore.com>
24660 * s-tataat.adb, a-tasatt.adb:
24661 Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
24663 * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
24664 these procedures to body, and renamed Abort_Defer, Abort_Undefer.
24665 (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
24668 2005-09-01 Arnaud Charlet <charlet@adacore.com>
24669 Jose Ruiz <ruiz@adacore.com>
24671 * s-taprop-vxworks.adb:
24672 Move with clauses outside Warnings Off now that dependent units are
24674 (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
24675 initialization of this unit.
24676 (Specific): Add new procedures Initialize and Delete so that this
24677 package can be used for VxWorks 5.x and 6.x
24678 (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
24679 differences between VxWorks 5.x and 6.x
24680 Minor reformatting.
24681 (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
24683 Use only Preelaborate-compatible constructs.
24685 * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
24686 Primitives.Operations.
24687 (Delete, Initialize): New procedures.
24689 * s-osinte-vxworks.adb: Body used to handle differences between
24690 VxWorks 5.x and 6.x
24691 (kill, Set_Time_Slice, VX_FP_TASK): New functions.
24693 * s-osinte-vxworks.ads: Minor reformatting.
24694 Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
24695 (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
24697 (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
24698 between Vxworks 5 and 6.
24699 (taskLock, taskUnlock): Removeed, no longer used.
24701 * adaint.c: The wait.h header is not located in the sys directory on
24702 VxWorks when using RTPs.
24703 (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
24705 (__gnat_dup): dup is available on Vxworks when using RTPs.
24706 (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
24708 * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
24710 * expect.c: The wait.h header is not located in the sys directory on
24711 VxWorks when using RTPs.
24713 2005-09-01 Thomas Quinot <quinot@adacore.com>
24715 * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
24717 * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
24719 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
24720 g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
24721 g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
24722 g-soccon-freebsd.ads: Add new constants:
24724 SO_RCVTIMEO/SO_SNDTIMEO
24728 Move all target-specific file inclusions and macro definitions to
24729 gsocket.h, in order to ensure that any C code in socket.c will see a
24730 set of constants that is consistent with the contents of g-soccon.ads.
24732 * gsocket.h: Code imported from gen-soccon.c:
24733 Move all target-specific file inclusions and macro definitions to
24734 gsocket.h, in order to ensure that any C code in socket.c will see a set
24735 of constants that is consistent with the contents of g-soccon.ads.
24736 This change also makes gen-soccon self-contained (removing dependencies
24737 upon GCC internal headers).
24739 * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
24741 (To_Inet_Addr): Now a procedure instead of a function, more efficient.
24743 * socket.c: Minor reformatting.
24745 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24746 Thomas Quinot <quinot@adacore.com>
24748 * fname-sf.adb, mlib-tgt.ads,
24749 back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
24750 g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
24751 osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
24752 prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
24753 prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
24754 prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
24755 sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
24756 makegpr.adb: Remove redundant use_clauses.
24758 2005-09-01 Arnaud Charlet <charlet@adacore.com>
24760 * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
24761 s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
24762 s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
24763 s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
24764 s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
24765 s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
24766 s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
24767 table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
24768 s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
24769 s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
24770 a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
24771 a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
24772 a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
24773 a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
24774 system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
24775 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
24776 s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
24777 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
24778 s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
24779 s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
24780 s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
24781 s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
24782 system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
24783 s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
24784 system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
24785 s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
24786 a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
24787 a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
24788 a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
24789 a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
24790 a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
24791 a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
24792 a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
24793 a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
24794 a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
24795 a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
24796 csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
24797 g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
24798 a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
24799 a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
24800 a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
24801 a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
24802 g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
24803 i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
24804 interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
24805 i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
24806 s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
24807 s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
24808 s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
24809 s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
24810 s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
24811 s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
24812 s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
24813 s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
24814 s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
24815 s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
24816 s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
24817 s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
24818 s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
24819 s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
24820 s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
24821 s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
24822 s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
24823 s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
24824 s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
24825 s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
24826 s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
24827 s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
24828 and always use the no parameter form for consistency.
24830 * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
24832 2005-09-01 Robert Dewar <dewar@adacore.com>
24834 * binde.adb: Minor reformatting
24835 (Find_Elab_Order): Output warning if -p used with static elab order
24837 2005-09-01 Robert Dewar <dewar@adacore.com>
24839 * checks.adb (Check_Needed): New procedure, deals with removing checks
24840 based on analysis of short-circuited forms. Also generates warnings for
24841 improper use of non-short-circuited forms.
24844 2005-09-01 Robert Dewar <dewar@adacore.com>
24846 * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
24849 2005-09-01 Robert Dewar <dewar@adacore.com>
24851 * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
24853 Implement new insertion char < (conditional warning)
24854 * errutil.adb, erroutc.adb: Implement new insertion char <
24855 (conditional warning).
24856 * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
24857 (Error_Msg_Warn): New variable for < insertion char.
24858 * prj-nmsc.adb: Implement new errout insertion char < (conditional
24860 (Check_For_Source): Change value of Source_Id only after the current
24861 source has been dealt with.
24863 2005-09-01 Robert Dewar <dewar@adacore.com>
24864 Doug Rupp <rupp@adacore.com>
24866 * exp_attr.adb: Handle vax fpt for 'Valid attribute
24867 * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
24868 * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
24869 (Valid_D, Valid_F, Valid_G): New functions
24871 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24872 Hristian Kirtchev <kirtchev@adacore.com>
24873 Javier Miranda <miranda@adacore.com>
24875 * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
24876 from object notation, the original node is unanalyzed and carries no
24877 semantic information, so that accessiblity checks must be performed on
24878 the type of the actual itself.
24879 (Expand_N_Subprogram_Declaration): Change last actual parameter for
24880 compatibility with Build_Protected_Sub_Specification.
24881 (Check_Overriding_Inherited_Interfaces): Add suport to handle
24882 overloaded primitives.
24883 (Register_Interface_DT_Entry): Use the new name of the formal
24884 the the calls to Expand_Interface_Thunk
24886 * exp_dbug.ads: Augment comments on encoding of protected types to
24887 include the generation of dispatching subprograms when the type
24888 implements at least one interface.
24890 * lib.ads: Extend information in Load_Stack to include whether a given
24891 load comes from a Limited_With_Clause.
24893 * lib-load.adb (From_Limited_With_Chain): New predicate to determine
24894 whether a potential circularity is harmless, because it includes units
24895 loaded through a limited_with clause. Extends previous treatment which
24896 did not handle properly arbitrary combinations of limited and
24897 non-limited clauses.
24899 2005-09-01 Nicolas Setton <setton@adacore.com>
24901 * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
24902 to be encoded as typ___XBLU_lowerbound__upperbound instead of
24903 typ___XB_lowerbound__upperbound.
24905 2005-09-01 Thomas Quinot <quinot@adacore.com>
24907 * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
24908 dummy access formal for RACW/RAS TypeCode TSS.
24909 (Build_TypeCode_Call): Do not generate dummy null access actual for
24910 calls to the TypeCode TSS.
24912 2005-09-01 Ed Schonberg <schonberg@adacore.com>
24914 * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
24915 fully qualified name, to distinguish instances with the same local name.
24917 * g-souinf.ads (Enclosing_Entity): Document that entity name is now
24920 2005-09-01 Robert Dewar <dewar@adacore.com>
24922 * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
24925 2005-09-01 Jerome Lambourg <lambourg@adacore.com>
24927 * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
24928 (Free): New deallocation procedure for filter elements
24929 (Close): Deallocate any existing filter for the concerned connection
24931 2005-09-01 Laurent Pautet <pautet@adacore.com>
24933 * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
24934 position set is provided, we compute one in order to reduce the maximum
24935 length of the keys. This computation first selects a character
24936 position between 1 and the minimum length of the keys in order to
24937 avoid reducing one of the keys to an empty string.
24938 (Initialize, Compute): When the ratio V to K is too low, the algorithm
24939 does not converge. The initialization procedure now comes with a
24940 maximum number of iterations such that when exceeded, an exception is
24941 raised in Compute. The user can initialize this ratio to another value
24943 Reformating and updated headers.
24945 2005-09-01 Javier Miranda <miranda@adacore.com>
24947 * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
24948 that given an entity T creates and returns an Itype that duplicates the
24949 contents of T. The returned Itype has the null-exclusion
24950 attribute set to True, and its Etype attribute references T
24951 to keep the association between the two entities.
24952 Update copyright notice
24954 * sem_aggr.adb (Check_Can_Never_Be_Null,
24955 Aggregate_Constraint_Checks, Resolve_Aggregate,
24956 Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
24958 * sem_ch5.adb (Analyze_Assignment): Code cleanup.
24960 2005-09-01 Gary Dismukes <dismukes@adacore.com>
24961 Robert Dewar <dewar@adacore.com>
24962 Hristian Kirtchev <kirtchev@adacore.com>
24964 * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
24967 * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
24969 Call Set_Result_Definition instead of Set_Subtype_Mark.
24970 (P_Subprogram_Specification): Add parsing of anonymous access result
24971 plus null exclusions. Call Set_Result_Definition instead of
24974 * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24975 (P_Access_Type_Definition): Add parsing for an anonymous access result
24976 subtype, plus parsing for null exclusions. Call Set_Result_Definition
24977 instead of Set_Subtype_Mark.
24979 * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24980 (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
24981 (Result_Definition): New function for N_Function_Specifications.
24982 (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
24983 N_Function_Specification.
24984 (Set_Null_Exclusion_Present): Allow this flag for
24985 N_Function_Specification.
24986 (Set_Result_Definition): New procedure for N_Function_Specifications.
24987 (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
24988 and N_Function_Specification.
24990 * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
24991 Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
24992 Add support for LIMITED NEW for Ada 2005 AI-419
24993 Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
24994 syntax for anonymous access results.
24995 Replace Subtype_Mark field by Result_Definition in
24996 N_Function_Specification and N_Access_Definition specs.
24997 Add Null_Exclusion_Present to spec of N_Function_Specification.
24998 (Result_Definition): New function for N_Function_Specification and
24999 N_Access_Function_Definition.
25000 (Set_Result_Definition): New procedure for N_Function_Specification and
25001 N_Access_Function_Definition.
25003 * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
25004 Result_Definition for cases of N_Access_Function_Definition and
25005 N_Function_Specification.
25006 Print "not null" if Null_Exclusion_Present on N_Function_Specification.
25008 2005-09-01 Vincent Celier <celier@adacore.com>
25010 * lib-writ.adb: Update Copyright notice
25011 (Write_With_Lines): On platforms where file names are case-insensitive,
25012 record the file names in lower case.
25013 (Write_ALI): For D lines, on platforms where file names are
25014 case-insensitive, record the file names in lower case.
25016 2005-09-01 Ed Schonberg <schonberg@adacore.com>
25017 Emmanuel Briot <briot@adacore.com>
25019 * lib-xref.adb (Output_Overridden_Op): Display information on
25020 overridden operation.
25022 * lib-xref.ads: Add documentation on overridden operations.
25024 * ali.ads (Xref_Entity_Record): Add support for storing the overriding
25027 * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
25028 overriding entity information.
25030 2005-09-01 Vincent Celier <celier@adacore.com>
25032 * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
25033 including those that are inherited.
25035 2005-09-01 Robert Dewar <dewar@adacore.com>
25037 * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
25039 * par-prag.adb: Implement new pragma Debug_Policy
25041 * sem_prag.adb Implement new pragma Debug_Policy
25042 (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
25043 Component_Size attribute specification. Give warning for ignored pragma
25046 * snames.h, snames.ads, snames.adb: Introduce entries in
25047 Preset_Names for Name_Disp_Asynchronous_Select,
25048 Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
25049 Name_Disp_Timed_Select.
25050 New pragma Debug_Policy
25052 * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
25054 Switch -gnata also sets Debug_Pragmas_Enabled
25056 * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
25057 handle an explicit -gnata when compiling predefined files.
25059 2005-09-01 Vincent Celier <celier@adacore.com>
25061 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
25062 directories of projects that have no Ada sources.
25064 2005-09-01 Robert Dewar <dewar@adacore.com>
25066 * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
25067 (makes a difference for wide characters)
25069 * widechar.adb, widechar.ads:
25070 Add Wide_Char_Byte_Count feature to count chars vs bytes
25072 2005-09-01 Thomas Quinot <quinot@adacore.com>
25073 Ed Schonberg <schonberg@adacore.com>
25074 Robert Dewar <dewar@adacore.com>
25076 * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
25077 'Address attribute reference with an overloaded prefix, use the
25078 location of the prefix (not the location of the attribute reference) as
25079 the error location.
25080 (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
25081 a function renaming thereof, is a valid prefix for 'Size (where it is
25082 intepreted as a function call).
25083 (Statically_Denotes_Entity): New predicate to determine whether the
25084 prefix of an array attribute can be considered static.
25087 (Eval_Attr): Fix failure to evaluate Component_Size for
25088 unconstrained arrays (resulted in wrong value in packed case, since
25089 back end cannot handle this case)
25091 2005-09-01 Robert Dewar <dewar@adacore.com>
25093 * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
25094 error msgs for most common cases.
25095 Use new errout insertion char < (conditional warning)
25097 2005-09-01 Javier Miranda <miranda@adacore.com>
25098 Ed Schonberg <schonberg@adacore.com>
25100 * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
25101 become local to the whole package.
25102 (Install_Limited_Withed_Unit): Instead of unchaining real entities if
25103 the package was already analyzed the new algorithm "replaces" the
25104 real entities by the shadow ones. This is required to ensure that
25105 the order of these entities in the homonym chains does not change;
25106 otherwise we can have undefined references at linking time because
25107 in case of conflicts the external name of the entities will have
25108 a suffix that depends on the order of the entities in the chain.
25109 (Remove_Limited_With_Clause): Complementary code that completes the
25110 new algorithm and replaces the shadow entities by the real ones.
25111 (Install_Limited_Withed_Unit): When unchaining entities before the
25112 installation of the shadow entities, only regular entities of the
25113 public part must be taken into account. This is required to
25114 keep this routine in synch with the work done by Remove_Limited_
25116 (Install_Limited_With_Clause): Introduce implicit limited_with_clause
25117 even if unit is analyzed, because the analysis of the unit is
25118 idempotent in any case, and the limited view of the unit may have to
25119 be installed for proper visibility.
25120 (Expand_Limited_With_Clause): Even if the unit in the implicit
25121 with_clause has been analyzed already, a limited view of the package
25122 must be built for the current context, if it does not exist yet.
25124 2005-09-01 Ed Schonberg <schonberg@adacore.com>
25125 Javier Miranda <miranda@adacore.com>
25126 Gary Dismukes <dismukes@adacore.com>
25128 * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
25129 defining entity for the instance body, make a new defining identifier
25130 rather than copying the entity of the spec, to prevent accidental
25131 sharing of the entity list.
25132 (Check_Private_View): When exchanging views of private types, build the
25133 list of exchanged views as a stack, to ensure that on exit the exchanges
25134 are undone in the proper order.
25135 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
25136 Restore the compilation environment in case of instantiation_error.
25137 (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
25138 for an anonymous access result.
25139 (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
25140 (Formal_Entity): Handle properly the case of a formal package that
25141 denotes a generic package renaming.
25143 2005-09-01 Thomas Quinot <quinot@adacore.com>
25145 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
25146 clause if the array aggregate is surrounded by parentheses.
25148 2005-09-01 Cyrille Comar <comar@adacore.com>
25149 Gary Dismukes <dismukes@adacore.com>
25150 Ed Schonberg <schonberg@adacore.com>
25151 Javier Miranda <miranda@adacore.com>
25153 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
25155 to check if a type is Constrained in cases related to code generation
25156 (rather than semantic checking) since otherwise we do not generate
25157 similar code for mutable private types depending if their
25158 discriminants are visible or not.
25159 (Check_Abstract_Overriding): Do not complain about failure to override
25160 the primitive operations used in dispatching selects since they will
25161 always be overriden at the freeze point of the type.
25162 (Access_Definition): Separate out handling for resetting the scope
25163 of an anonymous access function result type. Retrieve the scope
25164 of the associated function rather than using Current_Scope, which
25165 does not have a consistent value (depends on whether we're in the
25166 middle of analyzing formal parameters). Add ??? comment about
25167 finding a cleaner way to handle the special cases of scope setting.
25168 (Process_Incomplete_Dependents): A protected operation is never a
25169 dispatching operation (only its wrapper may be).
25170 (Build_Derived_Record_Type): In case of tagged private types that
25171 implement interfaces add derivation of predefined primitive
25173 (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
25174 by two parameters that are used in case of derivation from abstract
25175 interface types: No_Predefined_Prims is used to avoid the derivation
25176 of predefined primitives from the interface, and Predefined
25177 Prims_Only is used to complete the derivation predefined primitives
25178 in case of private tagged types implementing interfaces.
25179 Fix typo in comments
25180 (Find_Interface_In_Descendant): Protect the frontend against
25181 wrong code with large circularity chains.
25182 (Is_Private_Overriding): Add support for entities overriding interface
25183 subprograms. The test failed because Entities associated with overriden
25184 interface subprograms are always marked as hidden (and used to build
25185 the secondary dispatch table); in this case the overriden entity is
25186 available through the field abstract_interface_alias (cf. override_
25187 dispatching_operation)
25188 (Access_Definition): Set the scope of the type to Current_Scope for the
25189 case of a function with an anonymous access result type.
25190 (Access_Subprogram_Declaration): Handle creation of the type entity for
25191 an access-to-function type with an anonymous access result.
25192 (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
25193 in handling for N_Access_Function_Definition.
25194 (Analyze_Subtype_Declaration): Modify the text of error message.
25195 (Derived_Type_Declaration): Modify the text of error message.
25196 (Process_Subtype): Modify the text of error message plus cleanup
25197 of one redundant error message.
25198 (Analyze_Component_Declaration): Code cleanup.
25199 (Analyze_Object_Declaration): Code cleanup.
25200 (Analyze_Subtype_Declaration): Propagate the null-exclusion
25201 attribute in case of access types. Code cleanup.
25202 (Array_Type_Declaration): Code cleanup.
25203 (Process_Discriminants): Create the new null-excluding itype
25204 if required. Code cleanup.
25205 (Process_Subtype): Create the new null-excluding itype if
25206 required. Code cleanup.
25207 (Build_Derived_Record_Type): Code cleanup to avoid calling
25208 twice the subprogram derive_subprograms in case of private
25209 types that implement interfaces. In this particular case the
25210 subprogram Complete_Subprograms_Derivation already does the
25211 job associated with the second call.
25213 * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
25214 conversion to the full view when generating an operation for a
25215 discriminant whose type may currently be private.
25217 2005-09-01 Ed Schonberg <schonberg@adacore.com>
25218 Javier Miranda <miranda@adacore.com>
25220 * sem_ch4.adb (Transform_Object_Operation): In a context off the form
25221 V (Obj.F), the rewriting does not involve the indexed component, but
25222 only the selected component itself.
25223 Do not apply the transformation if the analyzed node is an actual of a
25224 call to another subprogram.
25225 (Complete_Object_Operation): Retain the entity of the
25226 dispatching operation in the selector of the rewritten node. The
25227 entity will be used in the expansion of dispatching selects.
25228 (Analyze_One_Call): Improve location of the error message associated
25230 (Analyze_Selected_Component): No need to resolve prefix when it is a
25231 function call, resolution is done when parent node is resolved, as
25233 (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
25234 when attempting to resolve a call transformed from its object notation.
25235 (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
25236 of the argument list for each interpretation of the operation.
25237 (Try_Object_Operation): The designated type of an access parameter may
25238 be an incomplete type obtained through a limited_with clause, in which
25239 case the primitive operations of the type are retrieved from its full
25241 (Analyze_Call): If this is an indirect call, and the return type of the
25242 access_to_subprogram is incomplete, use its full view if available.
25244 2005-09-01 Javier Miranda <miranda@adacore.com>
25245 Gary Dismukes <dismukes@adacore.com>
25247 * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
25248 access types the null-exclusion and access-to-constant attributes must
25250 (Analyze_Return_Statement): When the result type is an anonymous access
25251 type, apply a conversion of the return expression to the access type
25252 to ensure that appropriate accessibility checks are performed.
25253 (Analyze_Return_Type): For the case of an anonymous access result type,
25254 generate the Itype and set Is_Local_Anonymous_Access on the type.
25255 Add ??? placeholder for check to disallow returning a limited object
25256 in Ada 2005 unless it's an aggregate or a result of a function call.
25257 Change calls from Subtype_Mark to Result_Definition.
25258 (Analyze_Subprogram_Body): Change formal Subtype_Mark to
25259 Result_Definition in call to Make_Function_Specification.
25260 (Build_Body_To_Inline): Change Set_Subtype_Mark to
25261 Set_Result_Definition.
25262 (Make_Inequality_Operator): Change formal Subtype_Mark to
25263 Result_Definition in call to Make_Function_Specification.
25264 (Process_Formals): Create the new null-excluding itype if required.
25265 (New_Overloaded_Entity): For an entity overriding an interface primitive
25266 check if the entity also covers other abstract subprograms in the same
25267 scope. This is required to handle the general case, that is, overriding
25268 other interface primitives and overriding abstract subprograms inherited
25269 from some abstract ancestor type.
25270 (New_Overloaded_Entity): For an overriding entity that comes from
25271 source, note the operation that it overrides.
25272 (Check_Conformance, Type_Conformant): Addition of one new formal
25273 to skip controlling formals in the analysis. This is used to
25274 handle overloading of abstract interfaces.
25275 (Base_Types_Match): Add missing case for types imported from
25276 limited-with clauses
25277 (New_Overloaded_Entity): Add barrier to protect the use of
25278 the "alias" attribute.
25280 2005-09-01 Ed Schonberg <schonberg@adacore.com>
25282 * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
25283 verify that the procedure and the entry are mode conformant.
25284 (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
25285 as a different operator, which is often a cut-and-paste error.
25287 2005-09-01 Javier Miranda <miranda@adacore.com>
25288 Ed Schonberg <schonberg@adacore.com>
25290 * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
25291 used in controlling parameters exclude null because it is necessary to
25292 read the tag to dispatch, and null has no tag.
25293 (Override_Dispatching_Operation): If the previous operation is inherited
25294 from an interface, it becomes hidden and does not participate in later
25297 2005-09-01 Javier Miranda <miranda@adacore.com>
25298 Ed Schonberg <schonberg@adacore.com>
25299 Gary Dismukes <dismukes@adacore.com>
25301 * sem_res.adb (Resolve_Membership_Op): In case of the membership test
25302 "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
25303 the expander will generate the corresponding run-time check to evaluate
25305 (Resolve_Call): Check for legal type of procedure name or prefix that
25306 appears as a trigger in a triggering alternative.
25307 (Valid_Conversion): If expression is ambiguous and the context involves
25308 an extension of System, remove System.Address interpretations.
25309 (Resolve_Qualified_Expression): Reject the case of a specific-type
25310 qualification applied to a class-wide argument. Enhance comment
25311 to explain checking of Original_Node.
25312 (Resolve_Type_Conversion): The location of the error message was not
25313 general enough to handle the general case and hence it has been removed.
25314 In addition, this patch improves the text of the message.
25315 (Resolve_Type_Conversion): Add missing support for access to interface
25317 (Resolve_Type_Conversion): If the target is a class-wide interface type,
25318 do not expand if the expression is the actual in a call, because proper
25319 expansion will take place when the call itself is expanded.
25320 (Resolve_Allocator): If the context is an unchecked conversion, the
25321 allocator inherits its storage pool, if any, from the target type of
25324 2005-09-01 Ed Schonberg <schonberg@adacore.com>
25325 Javier Miranda <miranda@adacore.com>
25327 * sem_type.adb (Add_One_Interp): If a candidate operation is an
25328 inherited interface operation that has an implementation, use the
25329 implementation to avoid spurious ambiguities.
25330 (Interface_Present_In_Ancestor): In case of concurrent types we can't
25331 use the Corresponding_Record_Typ attribute to look for the interface
25332 because it is set by the expander (and hence it is not always
25333 available). For this reason we traverse the list of interfaces
25334 (available in the parent of the concurrent type).
25335 (Interface_Present_In_Ancestor): Handle entities from the limited view
25337 2005-09-01 Ed Schonberg <schonberg@adacore.com>
25339 * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
25340 from the list of required components.
25341 (Is_Controlling_Limited_Procedure): Determine whether an entity is a
25342 primitive procedure of a limited interface with a controlling first
25344 (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
25346 (Safe_To_Capture_Value): A value (such as non_null) is not safe to
25347 capture if it is generated in the second operand of a short-circuit
25349 Do not capture values for variables with address clauses.
25350 (Is_Object_Reference): Treat a function call as an object reference only
25351 if its type is not Standard_Void_Type.
25353 2005-09-01 Ed Schonberg <schonberg@adacore.com>
25355 * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
25356 to a variable that is statically known to be constant.
25358 2005-09-01 Geert Bosch <bosch@adacore.com>
25359 Robert Dewar <dewar@adacore.com>
25361 * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
25362 (VAXGF_Safe_First): Idem.
25364 2005-09-01 Robert Dewar <dewar@adacore.com>
25365 Arnaud Charlet <charlet@adacore.com>
25367 * g-dirope.ads: Minor reformatting
25368 Document that bounds of result of Base_Name match the input index
25370 Add documentation on environment variable syntax for Expand_Path
25372 * gnat_ugn.texi: Update documentation to include mention of -m switches
25373 Document new treatment of wide characters in max line length
25375 Remove -gnatL/-gnatZ switches, no longer used.
25376 Add note on pragmas Assertion_Policy and Debug_Policy in discussion
25379 * gnat_rm.texi: Add doc for two argument form of pragma
25380 Float_Representation.
25381 Add documentation for pragma No_Strict_Aliasing
25382 Add note that explicit component clause overrides pragma Pack.
25383 Add documentation of pragma Debug_Policy
25385 2005-09-01 Matthew Heaney <heaney@adacore.com>
25387 * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
25388 a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
25389 a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
25390 a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
25391 draft (Draft 13, August 2005) of Ada Amendment 1.
25393 2005-09-01 Arnaud Charlet <charlet@adacore.com>
25395 * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
25396 Note that the platform-specific version of g-soccon.ads for VMS is now
25397 named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
25398 really is a package spec).
25399 Replace s-taspri-linux.ads by s-taspri-posix.ads
25400 Remove references to s-mastop-x86.adb
25402 * system-vxworks-xscale.ads: Removed, no longer used.
25403 * s-vxwork-xscale.ads: Removed, no longer used.
25405 2005-09-01 Robert Dewar <dewar@adacore.com>
25407 * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
25408 g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
25409 g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
25410 exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
25411 g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
25412 g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
25413 g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
25414 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
25415 g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
25416 g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
25417 sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
25418 a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
25419 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
25420 a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
25421 a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
25422 a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
25423 g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
25424 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
25425 g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
25426 i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
25427 a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
25429 2005-08-29 Arnaud Charlet <charlet@adacore.com>
25433 (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
25435 2005-08-29 Arnaud Charlet <charlet@adacore.com>
25436 Doug Rupp <rupp@adacore.com>
25438 * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
25440 (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
25441 this code in the GNAT run-time.
25443 * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
25446 * init.c (__gnat_error_handler [many]): Mark "msg" as const
25447 (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
25449 (__gnat_inside_elab_final_code): Moved here from
25450 Standard_Library and only defined for the compiler.
25451 __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
25452 (__gnat_inum_to_ivec): Do not define this function on VxWorks when
25453 using RTPs because directly vectored Interrupt routines are not
25454 supported on this configuration.
25455 (getpid): Do not redefine this function on VxWorks when using RTPs
25456 because this primitive is well supported by the RTP libraries.
25457 (copy_msg): Correct the code that checks for buffer overflow.
25458 Discovered during code reading.
25460 2005-08-29 Olivier Hainque <hainque@adacore.com>
25462 * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
25463 a library level mutable variable with an initializer, tell
25464 build_allocator to ignore the initializer's size. It may not be large
25465 enough for all the values that might be assigned to the variable later
25468 2005-08-29 Arnaud Charlet <charlet@adacore.com>
25469 Eric Botcazou <ebotcazou@adacore.com>
25471 * trans.c: Protect < in error msg with quote
25472 Replace GCC_ZCX by Back_End_Exceptions.
25473 (addressable_p) <COMPONENT_REF>: Also return 1 if the field
25474 has been sufficiently aligned in the record.
25476 2005-08-15 James E. Wilson <wilson@specifix.com>
25478 * system-linux-alpha.ads: Change ia64 to alpha.
25480 2005-08-01 Kazu Hirata <kazu@codesourcery.com>
25482 * decl.c, utils.c: Fix comment typos.
25484 2005-07-29 Kazu Hirata <kazu@codesourcery.com>
25486 * decl.c, init.c, initialize.c: Fix comment typos.
25488 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
25490 Make CONSTRUCTOR use VEC to store initializers.
25491 * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
25493 * trans.c (extract_values): Likewise.
25494 * utils.c (convert, remove_conversions): Likewise.
25495 * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
25496 gnat_build_constructor): Likewise.
25498 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
25500 * decl.c (components_to_record): Use DECL_FCONTEXT instead of
25502 (compare_field_bitpos): Likewise.
25504 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
25506 * utils.c (create_var_decl): Only set DECL_COMMON on
25507 VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
25508 VAR_OR_FUNCTION_DECL_P.
25510 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
25512 * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
25515 2005-07-07 Pascal Obry <obry@adacore.com>
25517 * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
25518 returned type on Windows.
25520 * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
25523 * g-socket.adb (Inet_Addr): Check for empty Image and raises an
25524 exception in this case.
25525 Simplify the code as "Image (Image'Range)" = "Image".
25527 2005-07-07 Vincent Celier <celier@adacore.com>
25529 * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
25530 the destructor/constructor attributes for <lib>final/<lib>init.
25532 * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
25534 2005-07-07 Eric Botcazou <ebotcazou@adacore.com>
25536 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
25537 type if the parameter is not passed by copy but reference by default.
25539 2005-07-07 Javier Miranda <miranda@adacore.com>
25541 * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
25542 Reimplementation of the support for abstract interface types in order
25543 to leave the code more clear and easy to maintain.
25545 * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
25546 abstract interface types in order to leave the code clearer and easier
25549 * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
25550 is now implemented by the new subprogram Fill_Secondary_DT_Entry.
25551 (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
25552 appropriate entry of the secondary dispatch table.
25553 (Make_DT): Add code to inherit the secondary dispatch tables of
25556 * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
25557 implementing both functionalities by means of a common routine, each
25558 routine has its own code.
25560 2005-07-07 Javier Miranda <miranda@adacore.com>
25562 * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
25564 * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
25567 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
25570 * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
25571 use of tag incomplete types.
25573 * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
25574 give support to tagged incomplete types.
25576 * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
25577 expression is a discriminant reference and its type is private, as can
25578 happen within a stream operation for a mutable record, use the full
25579 view of the type to resolve the case alternatives.
25580 (Analyze_Assignment): Check wrong dereference of incomplete types.
25582 * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
25585 * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
25588 * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
25589 N_Incomplete_Type_Declaration nodes.
25591 * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
25592 Tag_Present to give support to tagged incomplete types:
25594 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
25597 2005-07-07 Olivier Hainque <hainque@adacore.com>
25600 * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
25601 definitions for the Unwind wrappers in the compiler case.
25603 2005-07-07 Ed Schonberg <schonberg@adacore.com>
25604 Javier Miranda <miranda@adacore.com>
25606 * par-load.adb (Load): If a child unit is loaded through a limited_with
25607 clause, each parent must be loaded as a limited unit as well.
25609 * sem_ch10.adb (Previous_Withed_Unit): Better name for
25610 Check_Withed_Unit. Return true if there is a previous with_clause for
25611 this unit, whether limited or not.
25612 (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
25614 (Is_Visible_Through_Renamings): New local subprogram of install_limited
25615 _withed_unit that checks if some package installed through normal with
25616 clauses has a renaming declaration of package whose limited-view is
25617 ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
25618 of the current Draft document for Ada 2005.
25619 (Analyze_Context): Complete the list of compilation units that
25620 are allowed to contain limited-with clauses. It also contains
25621 checks that were previously done by Install_Limited_Context_Clauses.
25622 This makes the code more clear and easy to maintain.
25623 (Expand_Limited_With_Clause) It is now a local subprogram of
25624 Install_Limited_Context_Clauses, and contains the code that adds
25625 the implicit limited-with clauses for parents of child units.
25626 This functionality was prevously done by Analyze_Context.
25628 * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
25631 * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
25632 been erroneously named in a limited-with clause of its own context.
25633 In this case the error has been previously notified by Analyze_Context.
25635 2005-07-07 Ed Schonberg <schonberg@adacore.com>
25637 * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
25638 generic package that contains local declarations with the same name.
25639 (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
25641 2005-07-07 Bernard Banner <banner@adacore.com>
25643 * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
25644 ia64 platform only on platforms that you the GCC unwind library
25645 rather than the system unwind library.
25647 2005-07-07 Thomas Quinot <quinot@adacore.com>
25649 * expect.c: Minor reformatting
25651 2005-07-07 Sergey Rybin <rybin@adacore.com>
25653 * vms_data.ads: Add VMS qualifiers for new gnatpp switch
25656 * gnat_ugn.texi: Add description for new gnatpp option
25659 2005-07-04 Thomas Quinot <quinot@adacore.com>
25661 * g-expect-vms.adb, g-expect.ads, g-expect.adb
25662 (Get_Command_Output): New subprogram to launch a process and get its
25663 standard output as a string.
25665 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
25666 Olivier Hainque <hainque@adacore.com>
25668 * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
25669 fetch a code-range descriptor associated with the machine state. On
25670 failure set the machine state's PC to 0; on success, pass the
25671 descriptor to exc_virtual_unwind.
25673 * init.c (Tru64 section): New function __gnat_set_code_loc.
25675 2005-07-04 Vincent Celier <celier@adacore.com>
25677 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25678 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
25679 mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
25680 Remove all auto-initialization code, as this is now done through the
25681 constructor mechanism.
25683 * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
25684 __gnat_sals_init_using_constructors): New functions.
25686 * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
25687 Linker_Constructor and Linker_Destructor when switch -a is used.
25689 * bindusg.adb: Add line for new switch -a
25691 * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
25692 (Gnatbind): When switch -a is used, check if it is allowed
25694 * switch-b.adb (Scan_Binder_Switches): Process new switch -a
25696 2005-07-04 Joel Brobecker <brobecker@adacore.com>
25698 * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
25699 This prevents us from hitting a limitation during the debug info
25700 generation when using stabs.
25701 (Prims_Ptr): Likewise.
25703 2005-07-04 Gary Dismukes <dismukes@adacore.com>
25704 Ed Schonberg <schonberg@adacore.com>
25705 Javier Miranda <miranda@adacore.com>
25707 * checks.adb (Null_Exclusion_Static_Checks): In the case of
25708 N_Object_Declaration, only perform the checks if the Object_Definition
25709 is not an Access_Definition.
25711 * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
25712 where the parent of an the access definition is an N_Object_Declaration
25713 when determining the Associated_Node_For_Itype and scope of an
25714 anonymous access-to-subprogram type.
25716 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
25717 Corresponding_Spec on the body created for a null procedure. Add ???
25718 comment. Remove New_Copy_Tree call on body argument to
25719 Set_Body_To_Inline.
25721 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
25722 discriminants, use the type of the actual as well, because the
25723 discriminants may be read by the called subprogram.
25725 * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
25726 access type we do not need to handle non-limited views.
25727 (Build_Derived_Record_Type): Additional check to check that in case of
25728 private types, interfaces are only allowed in private extensions.
25730 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
25732 * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
25733 <Pragma_Linker_Destructor>: Likewise.
25735 * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
25736 Pragma_Linker_Destructor.
25738 * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
25739 ATTR_LINK_DESTRUCTOR.
25740 (static_ctors, static_dtors): New variables.
25742 * misc.c (gnat_expand_body): Output current function as constructor
25743 and destructor if requested.
25745 * par-prag.adb: Add processing for pragma Linker_Constructor and
25748 * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
25749 extracted from Check_Interrupt_Or_Attach_Handler.
25750 (Check_Interrupt_Or_Attach_Handler): Invoke it.
25751 Implement pragma Linker_Constructor and Linker_Destructor with the
25752 help of Find_Unique_Parameterless_Procedure.
25753 Replace Name_Alias with Name_Target for pragma Linker_Alias.
25755 * snames.h, snames.ads, snames.adb:
25756 Add Name_Linker_Constructor and Name_Linker_Destructor.
25757 Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
25758 * snames.adb: Remove Name_Alias.
25760 * trans.c: Include cgraph.h.
25761 (build_global_cdtor): New function.
25762 (Compilation_Unit_to_gnu): Build global constructor and destructor if
25764 (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
25766 (addressable_p) <COMPONENT_REF>: Unconditionally test
25767 DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
25769 * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
25770 variable if it is external.
25772 (static_ctors, static_dtors): New global variables.
25773 (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
25774 <ATTR_LINK_DESTRUCTOR>: Likewise.
25775 (end_subprog_body): Chain function as constructor and destructor
25778 * exp_util.adb (Force_Evaluation): Unconditionally invoke
25779 Remove_Side_Effects with Variable_Ref set to true.
25780 (Remove_Side_Effects): Handle scalar types first. Use a renaming
25781 for non-scalar types even if Variable_Ref is true and for class-wide
25784 2005-07-04 Ed Schonberg <schonberg@adacore.com>
25786 * exp_attr.adb (Mod): Evaluate condition expression with checks off,
25787 to prevent spurious warnings.
25789 2005-07-04 Thomas Quinot <quinot@adacore.com>
25791 * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
25792 Itypes. Itypes are really unexpected there.
25793 (Build_TypeCode_Function): Generalise special processing for Itypes to
25794 handle the case of numeric implicit base types as well as enumerated
25797 2005-07-04 Ed Schonberg <schonberg@adacore.com>
25799 * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
25800 controlled, indicate the expected type of the dereference that is
25801 created for the call to Deep_Finalize, to prevent spurious errors when
25802 the designated type is private and completed with a derivation from
25803 another private type.
25805 2005-07-04 Vincent Celier <celier@adacore.com>
25807 * make.adb (Change_To_Object_Directory): When unable to change the
25808 current dir to the object directory, output the full path of the
25811 2005-07-04 Matthew Gingell <gingell@adacore.com>
25813 * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
25815 * indepsw-linux.adb: Replace by...
25817 * indepsw-gnu.adb: ...this new file
25819 2005-07-04 Vincent Celier <celier@adacore.com>
25821 * mlib-prj.adb (Auto_Initialize): New constant String
25822 (SALs_Use_Constructors): New Boolean function
25823 (Build_Library): Call gnatbind with Auto_Initialize switch when
25824 SALs_Use_Constructors returns True.
25826 * mlib-tgt.ads: Minor reformatting
25828 * mlib-utl.ads: Minor reformatting
25830 * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
25832 2005-07-04 Ed Schonberg <schonberg@adacore.com>
25834 * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
25835 single protected declarations can have an interface list.
25836 (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
25837 with seriously malformed entry declarations, and lead to compilation
25838 abandoned messages.
25840 2005-07-04 Javier Miranda <miranda@adacore.com>
25842 * par-load.adb: Load the context items in two rounds.
25844 2005-07-04 Robert Dewar <dewar@adacore.com>
25846 * scng.adb: Do not consider Mod used as an attribute to be a keyword
25848 2005-07-04 Ed Schonberg <schonberg@adacore.com>
25849 Javier Miranda <miranda@adacore.com>
25851 * sem_ch10.adb (Build_Limited_Views): A type declared with a private
25852 type extension needs a limited view.
25853 Remove previous restriction on private types available through the
25854 limited-view (only tagged private types were previously allowed).
25855 (Install_Withed_Unit): In the code that implements the
25856 legality rule given in AI-377, exclude a child unit with the name
25857 Standard, because it is a homonym of the Standard environment package.
25859 2005-07-04 Thomas Quinot <quinot@adacore.com>
25861 * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
25862 overloaded function call, carry interpretations from the original tree
25865 2005-07-04 Ed Schonberg <schonberg@adacore.com>
25867 * sem_ch6.adb (Conforming_Types): If the types are anonymous access
25868 types check whether some designated type is a limited view, and use
25869 the non-limited view if available.
25871 2005-07-04 Gary Dismukes <dismukes@adacore.com>
25873 * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
25874 constraint of full view of a private view T1 if present, when T2 is a
25875 discriminated full view.
25877 2005-07-04 Thomas Quinot <quinot@adacore.com>
25879 * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
25880 actual that is a view conversion of a bit packed array reference.
25882 2005-07-04 Ed Schonberg <schonberg@adacore.com>
25884 * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
25885 present before checking whether an interface type covers a synchronized
25888 2005-07-04 Ed Schonberg <schonberg@adacore.com>
25890 * sem_util.adb (Is_Object_Reference): An indexed or selected component
25891 whose prefix is an implicit dereference is an object reference. Removes
25892 spurious errors when compiling with -gnatc.
25894 2005-07-04 Robert Dewar <dewar@adacore.com>
25897 * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
25899 2005-07-04 Matthew Gingell <gingell@adacore.com>
25901 * tracebak.c: Enable tracebacks on ia64 platforms
25903 2005-07-04 Vincent Celier <celier@adacore.com>
25905 * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
25906 the GNAT BIND command, as gnatbind accepts multiples ALI files with
25907 the -L or -n switches.
25909 2005-07-04 Vincent Celier <celier@adacore.com>
25911 * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
25912 correctly computed and the main project data is not modified while
25914 (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
25915 (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
25916 c++linker as this does not work on some platforms.
25918 2005-07-04 Matthew Heaney <heaney@adacore.com>
25920 * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
25922 * a-coinve.adb: Perform constraint checks explicitly.
25924 2005-07-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25925 Thomas Quinot <quinot@adacore.com>
25927 * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
25928 new target gen-soccon.
25930 2005-07-04 Robert Dewar <dewar@adacore.com>
25932 * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
25934 2005-07-04 Thomas Quinot <quinot@adacore.com>
25936 * g-socket.ads (Check_Selector): Minor rewording of comment.
25938 2005-07-04 Vincent Celier <celier@adacore.com>
25940 * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
25942 2005-07-04 Thomas Quinot <quinot@adacore.com>
25944 * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
25946 2005-07-04 Sergey Rybin <rybin@adacore.com>
25948 * gnat_ugn.texi: Add description of --eol gnatpp option
25950 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
25951 Thomas Quinot <quinot@adacore.com>
25953 * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
25954 if the user wants all calls of a subprogram to be flagged,
25955 independently of whether they are made from within the same unit or
25957 Mention restriction for pragma Linker_Alias on some platforms.
25958 Document pragma Linker_Constructor and Linker_Destructor.
25959 Rewrite documentation of Weak_External, Linker_Section and
25960 Linker_Alias pragmas.
25962 2005-07-04 Arnaud Charlet <charlet@adacore.com>
25964 * s-stausa.ads, s-stausa.adb: New files.
25966 2005-06-30 Kelley Cook
25968 * all files: Update FSF address in copyright headers.
25969 * gen-soccon.co (main): Output new FSF address in generated files.
25971 2005-06-28 Paul Brook <paul@codesourcery.com>
25973 * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
25975 2005-06-14 Olivier Hainque <hainque@adacore.com>
25976 Eric Botcazou <ebotcazou@adacore.com>
25978 * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
25979 exc_unwind, now that we are generating proper .debug_frame output for
25982 * tracebak.c: Remove the mips-irix section, as we are now using the
25983 s-mastop based unwinder again.
25984 Under SPARC/Solaris, take into account the stack bias to compute the
25985 frame offset. The stack bias is 0 for the V8 ABI and 2047 for the V9
25988 2005-06-14 Doug Rupp <rupp@adacore.com>
25990 * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
25992 * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
25994 2005-06-14 Pascal Obry <obry@adacore.com>
25996 * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
25997 a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
25998 a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
26001 * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
26002 a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
26003 a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
26004 a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
26005 a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
26006 a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
26007 a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
26008 s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
26009 s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
26010 s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
26011 s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
26012 s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
26013 s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
26014 s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
26015 s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
26016 s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
26017 s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
26018 s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
26019 s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
26020 s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
26021 s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
26022 s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
26023 s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
26024 s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
26025 s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
26026 s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
26027 s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
26028 s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
26029 s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
26030 s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
26031 a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
26032 a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
26033 a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
26034 a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
26035 a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
26036 a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
26037 a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
26038 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
26039 a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
26040 a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
26041 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
26042 a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
26043 a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
26044 a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
26045 a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
26046 a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
26047 a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
26048 a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
26049 a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
26050 a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
26051 a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
26052 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
26053 a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
26054 a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
26055 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
26056 a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
26057 a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
26058 dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
26059 g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
26060 g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
26061 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
26062 g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
26063 g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
26064 gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
26065 g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
26066 i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
26067 s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
26068 s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
26069 s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
26070 s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
26071 s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
26072 s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
26073 s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
26074 s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
26075 s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
26076 s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
26077 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
26078 s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
26079 s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
26080 s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
26081 s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
26082 s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
26083 s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
26084 s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
26085 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
26086 s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
26087 s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
26088 s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
26089 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
26090 s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
26091 s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
26092 s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
26093 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
26094 s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
26095 s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
26096 s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
26097 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
26098 s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
26099 s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
26100 s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
26101 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
26102 s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
26103 s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
26104 s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
26105 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
26106 s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
26107 s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
26108 s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
26109 s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
26110 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
26111 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
26112 s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
26113 s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
26114 s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
26115 s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
26116 s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
26117 s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
26118 s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
26119 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
26120 s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
26121 s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
26122 s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
26123 s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
26124 a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
26125 a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
26126 a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
26127 a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
26128 a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
26129 a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
26130 a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
26131 a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
26132 a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
26133 "GNU Ada" to GNAT, use proper casing for RUN-TIME.
26135 2005-06-14 Jose Ruiz <ruiz@adacore.com>
26136 Arnaud Charlet <charlet@adacore.com>
26138 * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
26139 longer protected objects. They have been replaced by lower-level
26140 suspension objects made up by a mutex and a condition variable (or
26141 their equivalent given a particular OS) plus some internal data to
26142 reflect the state of the suspension object.
26143 (Initialize, Finalize): Add this initialization procedure for
26144 Suspension_Object, which is a controlled type.
26145 (Finalize): Add the finalization procedure for Suspension_Object,
26146 which is a controlled type.
26148 * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
26149 Ada.Synchronous_Task_Control because there is no longer a need for a
26150 VxWorks specific version of this package. Target dependencies
26151 has been moved to System.Task_Primitives.Operations.
26153 * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
26155 (InitializeCriticalSection, EnterCriticalSection,
26156 LeaveCriticalSection, DeleteCriticalSection): Replace the type
26157 pCriticalSection by an anonymous access type so that we avoid problems
26158 of accessibility to local objects.
26160 * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
26161 s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
26162 s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
26163 s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
26164 s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
26165 set the environment task mask here.
26166 (Current_State): Add this function that returns the state of the
26168 (Set_False): Add this procedure that sets the state of the suspension
26170 (Set_True): Add this procedure that sets the state of the suspension
26171 object to True, releasing the task that was suspended, if any.
26172 (Suspend_Until_True): Add this procedure that blocks the calling task
26173 until the state of the object is True. Program_Error is raised if
26174 another task is already waiting on that suspension object.
26175 (Initialize): Add this procedure for initializing the suspension
26176 object. It initializes the mutex and the condition variable which are
26177 used for synchronization and queuing, and it sets the internal state
26179 (Finalize): Add this procedure for finalizing the suspension object,
26180 destroying the mutex and the condition variable.
26182 * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
26183 s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
26184 s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
26185 s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
26186 which provides a low-level abstraction (using operating system
26187 primitives) for Ada.Synchronous_Task_Control.
26188 This object is made up by a mutex (for ensuring mutual exclusion), a
26189 condition variable (for queuing threads until the condition is
26190 signaled), a Boolean (State) indicating whether the object is open,
26191 and a Boolean (Waiting) reflecting whether there is a task already
26192 suspended on this object.
26194 * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
26195 s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
26196 s-intman-vms.ads, s-intman-mingw.adb,
26197 (Initialize_Interrupts): Removed, no longer used.
26199 * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
26200 (Setup_Interrupt_Mask): New procedure.
26202 * s-intman-vxworks.ads, s-intman-vxworks.adb: Update comments.
26204 * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
26206 * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
26207 this is no longer done in the body of s-taprop
26208 (Server_Task): Explicitely test for Pending_Action in case
26209 System.Parameters.No_Abort is True.
26211 * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
26212 is no longer done in the body of s-taprop
26214 2005-06-14 Robert Dewar <dewar@adacore.com>
26216 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
26217 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
26218 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
26219 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
26220 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
26221 system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
26222 system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
26223 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
26224 system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
26225 system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
26226 system-linux-hppa.ads, system-vms_64.ads,
26227 system-vxworks-alpha.ads: Minor comment update for
26228 AI-362 (unit is Pure).
26230 * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
26231 Add pragma Pure_05 for AI-362
26232 Make remaining conversion functions obsolescent in Ada 95
26234 * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
26235 Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
26236 Add entries for a-wichun and a-zchuni
26237 Add a-widcha a-zchara for AI-395
26238 Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
26240 * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
26241 Add entries for a-wichun.o and a-zchuni.o
26242 Entries for a-widcha.o and a-zchara.o
26243 Add entry for a-chacon.o
26245 * a-ztenau.adb: Add with of Ada.Characters.Conversions
26247 * a-chacon.ads, a-chacon.adb: New files.
26249 * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
26250 categorization violations.
26252 * a-strmap.ads: Add pragma Pure_05 for AI-362
26253 * a-strmap.ads: Add note on implicit categorization for AI-362
26255 * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
26257 * par-prag.adb: Dummy entry for pragma Persistent_BSS
26258 Set Ada_Version_Explicit, for implementation of AI-362
26259 Add processing for pragma Pure_05 and Preelaborate_05
26260 Add entry for Assertion_Policy pragma
26262 * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
26263 when needed for proper processing of categorization stuff
26266 For several cases, make errors in preealborate units warnings,
26267 instead of errors, if GNAT_Mode is set. For AI-362.
26269 * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
26270 preelaborate unit is now warning if in GNAT mode
26272 * s-stoele.ads: Document AI-362 for pragma preelaborate
26274 2005-06-14 Doug Rupp <rupp@adacore.com>
26276 * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
26277 s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
26278 Default_Exception_Msg_Max_Length: new parameter.
26280 * a-except.ads: (Exception_Msg_Max_Length): Set to
26281 System.Parameters.Default_Exception_Msg_Max_Length
26282 Add pragma Preelaborate_05 for AI-362
26283 Add warnings off to allow categorization violations for AI-362
26285 2005-06-14 Vincent Celier <celier@adacore.com>
26287 * gnatsym.adb: Adapt to modification of package Symbols: procedure
26288 Process is now in package Processing.
26290 * symbols.ads, symbols.adb:
26291 (Processing): New package, containing procedure Process
26293 * symbols-vms-alpha.adb:
26294 Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
26296 * symbols-vms.adb, symbols-processing-vms-alpha.adb,
26297 symbols-processing-vms-ia64.adb: New files.
26299 2005-06-14 Pascal Obry <obry@adacore.com>
26301 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
26302 implementation. This new version generates the proper DllMain routine
26303 to initialize the SAL. The DllMain is generated in Ada and compiled
26304 before being added as option to the library build command.
26306 2005-06-14 Doug Rupp <rupp@adacore.com>
26307 Pascal Obry <obry@adacore.com>
26309 * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
26310 call to decc$translate_vms.
26311 (__gnat_locate_regular_file): Check if the path_val contains quotes. We
26312 need to remove those quotes before catenating the filename.
26313 (__gnat_locate_exec_on_path): improvements to the Win32 section:
26314 * avoid allocating the memory twice for better efficiency;
26315 * allocate 32K buffer for environment expansion as suggested by MSDN;
26316 * prepend ".;" to the path so that current directory is searched too.
26318 2005-06-14 Robert Dewar <dewar@adacore.com>
26320 * a-except.adb (Exception_Identity): return Null_Id for null occurrence
26321 instead of raising CE (AI-241)
26322 Add warnings off to allow categorization violations for AI-362
26324 2005-06-14 Robert Dewar <dewar@adacore.com>
26326 * ali-util.adb, gnatbind.adb: Remove references to
26327 Force_RM_Elaboration_Order.
26329 * switch-b.adb: Remove recognition of -f switch
26331 2005-06-14 Pascal Obry <obry@adacore.com>
26333 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
26334 implementation which is slightly more efficient.
26336 2005-06-14 Gary Dismukes <dismukes@adacore.com>
26337 Javier Miranda <miranda@adacore.com>
26338 Ed Schonberg <schonberg@adacore.com>
26339 Hristian Kirtchev <kirtchev@adacore.com>
26341 * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
26342 allocator's designated type is a class-wide type, and compiling for
26343 Ada 2005, emit a run-time check that the accessibility level of the
26344 type given in the allocator's expression is not deeper than the level
26345 of the allocator's access type.
26347 (Tagged_Membership): Modified to gives support to abstract interface
26350 * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
26352 (Descendant_Tag): New predefined function
26353 (Is_Descendant_At_Same_Level): New predefined function
26354 (Get_Access_Level): New private function
26355 (Set_Access_Level): New private procedure
26356 (IW_Membership): New function. Given the tag of an object and the tag
26357 associated with an interface, evaluate if the object implements the
26359 (Register_Interface_Tag): New procedure used to initialize the table of
26360 interfaces used by the IW_Membership function.
26361 (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
26362 of the dispatch table.
26363 (Inherit_TSD): Modified to copy the table of ancestor tags plus the
26364 table of interfaces of the parent.
26365 (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
26366 (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
26367 (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
26368 and raise Tag_Error if the passed tag equalis No_Tag, to conform with
26369 Ada 2005 semantics for the new predefined function.
26371 * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
26372 call to Descendant_Tag rather than Internal_Tag.
26373 (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
26374 the accessibility level of the attribute's Item parameter is not deeper
26375 than the level of the attribute's prefix type. Tag_Error is raised if
26376 the check fails. The check is only emitted for Ada_05.
26377 (Find_Stream_Subprogram): If a TSS exists on the type itself for the
26378 requested stream attribute, use it.
26379 (Expand_N_Attribute_Reference): If the designated type is an interface
26380 then rewrite the referenced object as a conversion to force the
26381 displacement of the pointer to the secondary dispatch table.
26382 (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
26383 is a dereference of an object with a constrained partial view.
26385 * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
26386 type is a class-wide type, emit a run-time check that the accessibility
26387 level of the returned object is not deeper than the level of the
26388 function's master (only when compiling for Ada 2005).
26390 * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
26391 Action_Nb_Arg): Add entries for new Get_Access_Level and
26392 Set_Access_Level routines in these tables.
26393 (Make_DT): Generate a call to set the accessibility level of the
26394 tagged type in its TSD.
26395 (Make_DT): Code cleanup. The functionality of generating all the
26396 secondary dispatch tables has been moved to freeze_record_type.
26397 (Make_Abstract_Interface_DT): Minor code cleanup.
26398 (Set_All_DT_Position): Code cleanup. As part of the code cleanup
26399 this subprogram implements a new algorithm that provides the
26400 same functionality and it is more clear in case of primitives
26401 associated with abstract interfaces.
26402 (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
26403 clean up, the functionality of this subprogram is now provided
26404 by Set_All_DT_Position.
26405 (Write_DT): New subprogram: a debugging procedure designed to be called
26406 within gdb to display the dispatch tables associated with a tagged
26408 (Collect_All_Interfaces): New subprogram that collects the whole list
26409 of interfaces that are directly or indirectly implemented by a tagged
26411 (Default_Prim_Op_Position): New subprogram that returns the fixed
26412 position in the dispatch table of the default primitive operations.
26413 (Expand_Interface_Actuals): New subprogram to generate code that
26414 displaces all the actuals corresponding to class-wide interfaces to
26415 reference the interface tag of the actual object.
26416 (Expand_Interface_Conversion): New subprogram. Reference the base of
26417 the object to give access to the interface tag associated with the
26418 secondary dispatch table.
26419 (Expand_Interface_Thunk): New subprogram that generates the code of the
26420 thunk. This is required for compatibility with the C+ ABI.
26421 (Make_Abstract_Interface_DT): New subprogram that generate the
26422 declarations for the secondary dispatch tables associated with an
26423 abstract interface.
26424 (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
26425 attribute for each primitive operation covering interface subprograms
26426 (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
26427 These subprograms were upgraded to give support to abstract interfaces
26429 * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
26430 RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
26431 RE_Set_Access_Level.
26432 (RE_Unit_Table): Add entries for new Ada.Tags operations.
26433 Add support to call the followig new run-time subprograms:
26434 IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
26436 * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
26437 match its full declaration when both have an access definition with
26438 statically matching designated subtypes.
26439 (Analyze_Component_Declaration): Delete commented out code that was
26440 incorrectly setting the scope of an anonymous access component's type.
26441 (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
26442 an access discriminant when the containing type is nonlimited.
26443 (Make_Incomplete_Type_Declaration): Create an incomplete type
26444 declaration for a record type that includes self-referential access
26446 (Check_Anonymous_Access_Types): Before full analysis of a record type
26447 declaration, create anonymous access types for each self-referential
26449 (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
26450 an access component in this context is a Local_Anonymous_Access, for
26451 proper accessibility checks.
26452 (Access_Definition): Set properly the scope of the anonymous access type
26453 created for a stand-alone access object.
26454 (Find_Type_Of_Object): An object declaration may be given with an access
26456 (Complete_Subprograms_Derivation): New subprogram used to complete
26457 type derivation of private tagged types implementing interfaces.
26458 In this case some interface primitives may have been overriden
26459 with the partial-view and, instead of re-calculating them, they
26460 are included in the list of primitive operations of the full-view.
26461 (Build_Derived_Record_Type): Modified to give support to private
26462 types implemening interfaces.
26463 (Access_Definition): Reject ALL on anonymous access types.
26464 (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
26465 type derivation to occur at a deeper accessibility level than the
26467 For the case of derivation within a generic body however, disallow the
26468 derivation if the derived type has an ancestor that is a formal type
26469 declared in the formal part of an enclosing generic.
26470 (Analyze_Object_Declaration): For protected objects, remove the check
26471 that they cannot contain interrupt handlers if not declared at library
26473 (Add_Interface_Tag_Components): New subprogram to add the tag components
26474 corresponding to all the abstract interface types implemented by a
26475 record type or a derived record type.
26476 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
26477 Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
26478 Process_Full_View, Record_Type_Declaration): Modified to give
26479 support to abstract interface types
26480 (Collect_Interfaces): New subprogram that collects the list of
26481 interfaces that are not already implemented by the ancestors
26482 (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
26483 when partial view has no discriminants and full view has defaults.
26484 (Constrain_Access): Reject a constraint on a general access type
26485 if the discriminants of the designated type have defaults.
26486 (Access_Subprogram_Declaration): Associate the Itype node with the inner
26487 full-type declaration or subprogram spec. This is required to handle
26488 nested anonymous declarations.
26489 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
26490 Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
26491 Process_Full_View, Record_Type_Declaration): Modified to give
26492 support to abstract interface types
26493 (Derive_Subprograms): Addition of a new formal to indicate if
26494 we are in the case of an abstact-interface derivation
26495 (Find_Type_Of_Subtype_Indic): Moved from the body of the package
26496 to the specification because it is requied to analyze all the
26497 identifiers found in a list of interfaces
26499 * debug.adb: Complete documentation of flag "-gnatdZ"
26501 * exp_ch3.adb: Implement config version of persistent_bss pragma
26502 (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
26503 testing for TSS presence to properly enforce visibility rules.
26504 (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
26505 Make_Abstract_Interfaces_DT to generate the secondary tables
26506 associated with abstract interfaces.
26507 (Build_Init_Procedure): Modified to initialize all the tags
26509 (Component_Needs_Simple_Initialization): Similar to other tags,
26510 interface tags do not need initialization.
26511 (Freeze_Record_Type): Modified to give support to abstract interface
26513 (Expand_N_Object_Declaration): Do not generate an initialization for
26514 a scalar temporary marked as internal.
26516 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
26517 in-out parameter that is a component in an initialization procedure,
26518 whose constraint might depend on discriminants, and that may be
26519 misaligned because of packing or representation clauses.
26520 (Is_Legal_Copy): New predicate to determine whether a possibly
26521 misaligned in-out actual can actually be passed by copy/return. This
26522 is an error in case the type is by_reference, and a warning if this is
26523 the consequence of a DEC import pragma on the subprogram.
26524 (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
26526 (Expand_Inlined_Call): Mark temporary generated for the return value as
26527 internal, so that no useless scalar normalization is generated for it.
26528 (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
26529 null procedure can always be inlined.
26530 (Expand_N_Subprogram_Declaration): If this is the declaration of a null
26531 procedure, generate an explicit empty body for it.
26533 * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
26534 Given a type implementing an interface, returns the corresponding
26535 access_disp_table value.
26536 (Find_Interface_Tag): New subprogram. Given a type implementing an
26537 interface, returns the record component containing the tag of the
26539 (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
26540 previous ones that return the corresponding tag and access_disp_table
26542 (Is_Predefined_Dispatching_Operation): Determines if a subprogram
26543 is a predefined primitive operation.
26544 (Expand_Subtype_From_Expr): If the expression is a selected component
26545 within an initialization procedure, compute its actual subtype, because
26546 the component may depend on the discriminants of the enclosing record.
26548 * i-cpp.ads, i-cpp.adb:
26549 This package has been left available for compatibility with previous
26550 versions of the frontend. As part of the new layout this is now a
26551 dummy package that uses declarations available at a-tags.ads
26553 * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
26554 "constant access" and "aliased [constant] access" when not compiling
26556 Suppress Ada 2005 keyword warning if -gnatwY used
26557 (P_Identifier_Declarations): Add support for object declarations with
26558 access definitions.
26559 (Private_Extension_Declaration): Complete the documentation
26560 (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
26561 attribute in case of private extension declaration
26562 (P_Type_Declaration): Mark as "abstract" the type declarations
26563 corresponding with protected, synchronized and task interfaces
26564 (P_Declarative_Items): "not" and "overriding" are overriding indicators
26565 for a subprogram or instance declaration.
26567 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
26568 instantiation that is a dispatching operation has controlling access
26569 parameters that are null excluding.
26570 Save and restore Ada_Version_Explicit, for implementation of AI-362
26571 (Validate_Derived_Type_Instance): Add check for abstract interface
26573 (Analyze_Formal_Package): Establish Instantiation source for the copy of
26574 the generic that is created to represent the formal package.
26575 (Analyze_Package_Instantiation): Instantiate body immediately if the
26576 package is a predefined unit that contains inlined subprograms, and
26577 we are compiling for a Configurable_Run_Time.
26578 (Instantiate_Formal_Subprogram): Indicate that null default subprogram
26579 If the program has a null default, generate an empty body for it.
26581 * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
26582 error message condition, null procedures are correctly detected now.
26583 (New_Overloaded_Entity): Bypass trivial overriding indicator check
26584 for subprograms in the context of protected types. Instead, the
26585 indicator is examined in Sem_Ch9 while analysing the subprogram
26587 (Check_Overriding_Indicator): Check consistency of overriding indicator
26588 on subprogram stubs as well.
26589 (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
26591 (Analize_Subprogram_Specification): When analyzing a subprogram in which
26592 the type of the first formal is a concurrent type, replace this type
26593 by the corresponding record type.
26594 (Analyze_Subprogram_Body): Undo the previous work.
26595 (Analyze_Procedure_Call): If the call has the form Object.Op, the
26596 analysis of the prefix ends up analyzing the call itself, after which
26598 (Has_Interface_Formals): New subprogram subsidiary to analyze
26599 subprogram_specification that returns true if some non
26600 class-wide interface subprogram is found
26601 (New_Overloaded_Entity): Modified to give support to abstract
26603 (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
26604 access to subprograms must be recursive.
26605 (Is_Unchecked_Conversion): Improve the test that recognizes
26606 instantiations of Unchecked_Conversion, and allows them in bodies that
26607 are to be inlined by the front-end. When the body comes from an
26608 instantiation, a reference to Unchecked_Conversion will be an
26609 Expanded_Name, even though the body has not been analyzed yet.
26610 Replace Is_Overriding and Not_Overriding in subprogram_indication with
26611 Must_Override and Must_Not_Override, to better express intent of AI.
26612 (Analyze_Subprogram_Body): If an overriding indicator is given, check
26613 that it is consistent with the overrinding status of the subprogram
26615 (Analyze_Subprogram_Declaration): Indicate that a null procedure is
26617 If the subprogram is a null procedure, indicate that it does not need
26620 * sem_disp.adb (Check_Controlling_Type): Give support to entities
26621 available through limited-with clauses.
26622 (Check_Dispatching_Operation): A stub acts like a body, and therefore is
26623 allowed as the last primitive of a tagged type if it has no previous
26625 (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
26626 to give support to abstract interface types
26628 * sem_res.adb (Valid_Conversion): Perform an accessibility level check
26629 in the case where the target type is an anonymous access type of an
26630 object or component (that is, when Is_Local_Anonymous_Access is true).
26631 Prevent the special checks for conversions of access discriminants in
26632 the case where the discriminant belongs to a nonlimited type, since
26633 such discriminants have their accessibility level defined in the same
26634 way as a normal component of an anonymous access type.
26635 (Resolve_Allocator): When an allocator's designated type is a class-wide
26636 type, check that the accessibility level of type given in the
26637 allocator's expression or subtype indication is not statically deeper
26638 than the level of the allocator's access type.
26639 (Check_Discriminant_Use): Diagnose discriminant given by an expanded
26640 name in a discriminant constraint of a record component.
26641 (Resolve_Explicit_Dereference): Do not check whether the type is
26642 incomplete when the dereference is a use of an access discriminant in
26643 an initialization procedure.
26644 (Resolve_Type_Conversion): Handle conversions to abstract interface
26646 (Valid_Tagged_Conversion): The conversion of a tagged type to an
26647 abstract interface type is always valid.
26648 (Valid_Conversion): Modified to give support to abstract interface types
26649 (Resolve_Actuals): Enable full error reporting on view conversions
26650 between unrelated by_reference array types.
26651 The rule for view conversions of arrays with aliased components is
26652 weakened in Ada 2005.
26653 Call to obsolescent subprogram is now considered to be a violation of
26654 pragma Restrictions (No_Obsolescent_Features).
26655 (Check_Direct_Boolean_Operator): If the boolean operation has been
26656 constant-folded, there is nothing to check.
26657 (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
26658 check on possible violation of restriction No_Direct_Boolean_Operators
26659 until after expansion of operands, to prevent spurious errors when
26660 operation is constant-folded.
26662 * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
26663 Has_Compatible_Type): Modified to give support to abstract interface
26665 (Interface_Present_In_Ancestor): New function to theck if some ancestor
26666 of a given type implements a given interface
26668 * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
26669 prefix is a parameterless function that returns an access_to_procedure.
26670 (Transform_Object_Operation): Handle properly function calls of the
26671 form Obj.Op (X), which prior to analysis appear as indexed components.
26672 (Analyze_One_Call): Complete the error notification to help new Ada
26674 (Analyze_Allocator): For an allocator without an initial value, where
26675 the designated type has a constrained partial view, a discriminant
26676 constraint is illegal.
26678 2005-06-14 Robert Dewar <dewar@adacore.com>
26680 * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
26681 do with treatment of Set_Col when positioned at end of line character.
26683 2005-06-14 Robert Dewar <dewar@adacore.com>
26685 * atree.adb: (Elist*): Protect against uninitialized field
26687 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26689 * checks.adb (Install_Null_Excluding_Check): Do not generate checks
26690 for an attribute reference that returns an access type.
26691 (Apply_Discriminant_Check): No need for check if (designated) type has
26692 constrained partial view.
26694 (Apply_Float_Conversion_Check): Generate a short-circuit expression for
26695 both bound checks, rather than a conjunction.
26696 (Insert_Valid_Check): If the expression is an actual that is an indexed
26697 component of a bit-packed array, force expansion of the packed element
26698 reference, because it is specifically inhibited elsewhere.
26700 2005-06-14 Vincent Celier <celier@adacore.com>
26702 * clean.adb (Clean_Project): Correctly delete executable specified as
26703 absolute path names.
26705 * make.adb (Gnatmake): Allow relative executable path names with
26706 directory information even when project files are used.
26707 (Change_To_Object_Directory): Fail gracefully when unable to change
26708 current working directory to object directory of a project.
26709 (Gnatmake): Remove exception handler that could no longer be exercized
26710 (Compile_Sources.Compile): Use deep copies of arguments, as some of them
26711 may be deallocated by Normalize_Arguments.
26712 (Collect_Arguments): Eliminate empty arguments
26714 * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
26715 and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
26716 (Check_Project): Return False when Project is No_Project. Return True
26717 when All_Projects is True.
26718 (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
26719 All_Projects to True.
26722 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26723 Javier Miranda <miranda@adacore.com>
26724 Thomas Quinot <quinot@adacore.com>
26725 Robert Dewar <dewar@adacore.com>
26726 Hristian Kirtchev <kirtchev@adacore.com>
26727 Gary Dismukes <dismukes@adacore.com>
26729 * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
26730 anonymous access types, to indicate that the accessibility level of
26731 the type is determined by that of the enclosing declaration.
26732 (Has_Persistent_BSS): New flag
26733 (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
26734 of this attribute with functions.
26735 (Is_Primitive_Wrapper): Remove the barrier.
26736 (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
26737 Has_Specified_Stream_Read, Has_Specified_Stream_Write):
26739 (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
26740 Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
26742 (Is_Pure_Unit_Access_Type): New flag
26743 (Abstract_Interfaces): Complete the assertion to cover all usages.
26744 (Set_Is_Interface): Complete the assertion to cover all usages.
26745 (Is_Primitive_Wrapper): New attribute.
26746 (Is_Obsolescent): Now applies to all entities (though it is only set
26747 for subprograms currently)
26748 New flag: Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
26749 which solves various problems concerning access subtypes.
26750 (Has_Persistent_BSS): New flag
26751 (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
26752 Remove these subprograms because this attribute is currently
26755 Has_Specified_Stream_Input (Flag190)
26756 Has_Specified_Stream_Output (Flag191)
26757 Has_Specified_Stream_Read (Flag192)
26758 Has_Specified_Stream_Write (Flag193)
26759 Present in all type and subtype entities. Set for a given view if the
26760 corresponding stream-oriented attribute has been defined by an
26761 attribute definition clause. When such a clause occurs, a TSS is set
26762 on the underlying full view; the flags are used to track visibility of
26763 the attribute definition clause for partial or incomplete views.
26764 (Is_Pure_Unit_Access_Type): New flag
26765 Clarify use of Is_Internal.
26766 (Is_Primitive_Wrapper): New attribute present in primitive subprograms
26767 internally generated to wrap the invocation of tasks and protected
26768 types that implement interfaces.
26769 (Implementation_Base_Type): Documentation correction
26770 (Is_Obsolescent): Now applies to all entities (though it is only set
26771 for subprograms currently)
26772 New flag: Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
26773 which solves various problems concerning access subtypes.
26775 * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
26776 for examined parameters. Identify unequal parameter list lengths as
26777 non-conformant parameters.
26778 (Overriding_Possible): Do not check for "All" qualifier in declaration
26779 of controlling access parameter, following prescription of AI-404.
26780 (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
26781 that build the procedure body that wraps an entry invocation
26782 (Build_Corresponding_Record, Build_Protected_Sub_Specification,
26783 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
26784 Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
26785 give support to abstract interface types
26787 * freeze.adb (Freeze_Entity): Issue error message if
26788 Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
26789 type has no storage pool (Ada 2005) AI-366.
26790 Also modified to give support to abstract interface types
26791 (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
26792 Inline_Always pragma.
26794 * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
26795 now begin an entry declaration.
26796 (P_Entry_Or_Subprogram_With_Indicator): New procedure in
26797 P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
26798 a subprogram declaration preceded by an overriding indicator.
26799 (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
26800 declarations or subprogram declarations preceded by reserved words
26801 "not" or "overriding".
26802 (P_Entry_Declaration): Update comment. Parse and check overriding
26803 indicator, set semantic flags of entry declarations.
26804 (P_Task): New error message in case of private applied
26805 to a task type declaration.
26806 (P_Protected): New error message in case of private applied
26807 to a task type declaration.
26809 * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
26810 in which the full view of a type implementing an interface is a
26812 (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
26813 Declare_Inherited_Private_Subprograms): If an explicit operation
26814 overrides an operation that is inherited in the private part, mark the
26815 explicit one as overriding, to enable overriding indicator checks.
26816 (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
26817 full view to partial view, to simplify handling in back-end.
26819 * sprint.adb: Print interface lists where needed: derived types,
26820 protected types, task types.
26821 output "is null" for null procedures. Part of implementation of
26823 * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
26824 relaxation of rules for access types in pure, shared passive partitions.
26826 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
26827 first read discriminants into temporary objects, performing checks on
26828 the read values, then possibly performing discriminant checks on the
26829 actual (if it is constrained), and only finally reading the components
26830 into a constrained temporary object.
26831 (Build_Elementary_Input_Call): Adjust the specific circuitry for the
26832 case of reading discriminants of a mutable record type to recognize
26833 the new form of the code generated by
26834 Build_Mutable_Record_Read_Procedure.
26836 * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
26837 of a simple call to Make_TSS_Name.
26838 (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
26839 buffer, in order for Is_TSS to work correctly on local TSS names.
26841 * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
26842 Is_Local_Anonymous_Access to check legaliy of attributes in the
26843 context of access components and stand-alone access objects.
26844 (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
26845 treated as available for a limited private type if there is an
26846 attribute_definition_clause that applies to its full view, but not in
26847 other cases where the attribute is available for the full view
26848 (specifically, the sole fact that the full view is non-limited does not
26849 make the attribute available for the partial view).
26850 (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
26851 non-overloaded intrinsic subprogram.
26852 (Check_Stream_Attribute): Reject an attribute reference for an
26853 unavailable stream attribute even if the prefix is not a limited type
26854 (case of a 'Input attribute reference for an abstract, non-classwide
26856 (Stream_Attribute_Available): New function to determine whether a stream
26857 attribute is available at a place.
26858 (Check_Attribute): Use Stream_Attribute_Available instead of just
26859 testing for TSS presence on the implementation base type.
26860 (Analyze_Attribute): Modified to give support to task interfaces.
26861 (Analyze_Access_Attribute): Add error check for use of an Access (or
26862 Unrestricted_Access) attribute with a subprogram marked as
26864 (Analyze_Attribute, case Attribute_Address): Add error check for use of
26865 an Address attribute with a subprogram marked as Inline_Always.
26866 Update Eval_Attribute to handle new value of Width from AI-395
26868 * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
26869 (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
26870 Factor common code across the stream-oriented attribute circcuits into
26871 a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
26872 processing is functionally identical to the previous duplicated one,
26873 except that an expression that denotes an abstract subprogram will now
26874 be rejected, as mandated by AI-195 item 5.
26876 * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
26877 Is_Local_Anonymous_Access to apply accessibility checks to access
26878 components and stand-alone access objects.
26879 (Has_Discriminant_Dependent_Constraint): Moved to spec for use
26881 (Is_Potentially_Persistent_Type): New function
26882 (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
26883 a heap-object whose type has a constrained partial view, the object is
26884 unconstrained and the component may depend on a discriminant, making its
26887 * sinfo.ads, sinfo.adb
26888 (Must_Not_Override): Flag applicable to N_Entry_Declaration.
26889 (Must_Override): Flag applicable to N_Entry_Declaration.
26890 Indicate that interface_list can appear in single task and single
26891 protected declarations.
26892 Replace Is_Overriding and Not_Overriding with Must_Override and
26893 Must_Not_Override, to better express intent of AI.
26894 Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
26895 of an overriding indicator in a subprogram or instance.
26896 Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
26897 Add the overriding indicator [[not] overriding] construct to the
26898 following grammar productions:
26900 GENERIC_INSTANTIATION
26901 SUBPROGRAM_SPECIFICATION
26903 * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
26904 can start with an overriding indicator.
26906 * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
26907 flags accordingly on subrogram specifications or instances.
26910 (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
26911 overriding_indicator, if present, is consistent with status of spec.
26912 Improve error message for null-excluding checks on controlling access
26914 (Check_In_Previous_With_Clause): Protect the frontend against
26915 previously reported critical errors in the context clauses.
26916 Save and restore Ada_Version_Explicit, for implementation of AI-362
26917 (Analyze_Subprogram_Renaming): If the new entity is a dispatching
26918 operation verify that controlling formals of the renamed entity that
26919 are access parameters are explicitly non-null.
26920 (Find_Expanded_Name): Improve error message when prefix is an illegal
26921 reference to a private child unit.
26923 * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
26924 s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
26925 Rewrite to correspond to new wide character names in AI-395
26927 * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
26928 default procedures.
26930 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26931 Robert Dewar <dewar@adacore.com>
26933 * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
26934 code, not on the bodies of predefined operations, to cut down on
26937 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26939 * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
26940 be expanded in place. The size computation does not require a
26941 subtraction, which would raise an exception on a compiler built with
26942 assertions when the upper bound is Integer'first.
26943 (Flatten): For an array of composite components, take into account the
26944 size of the components to determine whether it is safe to expand the
26945 array into a purely positional representation.
26947 2005-06-14 Thomas Quinot <quinot@adacore.com>
26949 * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
26950 denoting a formal parameter into account.
26952 2005-06-14 Ed Schonberg <schonberg@adacore.com>
26954 * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
26955 the entry_call alternative of a conditional entry call, wrap the
26956 conditional entry call itself.
26958 2005-06-14 Nicolas Setton <setton@adacore.com>
26959 Ed Schonberg <schonberg@adacore.com>
26961 * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
26962 the "simple_choice" member in a variant record, in accordance with the
26963 description in the package spec: the information output for a constant
26964 should be "S number", not "SS number".
26965 (Get_Encoded_Name): Return at once if not generating code. Avoids name
26966 overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
26968 2005-06-14 Thomas Quinot <quinot@adacore.com>
26970 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
26971 RACW without any primitives, do not generate the if statement for
26972 dispatching by name in the PolyORB/DSA case, as it would be malformed
26973 (it would have an Elsif_Parts list that is not No_List, but with a
26976 2005-06-14 Robert Dewar <dewar@adacore.com>
26978 * exp_intr.adb, par-ch5.adb: Minor fix to error message text
26980 2005-06-14 Jose Ruiz <ruiz@adacore.com>
26982 * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
26983 can determine whether pragma Suppress_Exception_Locations is in effect.
26985 * utils2.c (build_call_raise): Do not pass the file name to the
26986 exception handler if pragma Suppress_Exception_Locations is in effect.
26987 (build_allocator): Add and process arg IGNORE_INIT_TYPE.
26989 2005-06-14 Emmanuel Briot <briot@adacore.com>
26991 * g-debpoo.adb (Deallocate, Dereference): Improve output.
26993 2005-06-14 Nicolas Roche <roche@adacore.com>
26995 * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
26997 (Next_Level): Fix minor bug in handling of ../dir case
26998 (Read): Add dir separator to Directory name so that "" is understood as
27001 2005-06-14 Pascal Obry <obry@adacore.com>
27003 * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
27004 releasing the items.
27006 2005-06-14 Vincent Celier <celier@adacore.com>
27007 Cyrille Comar <comar@adacore.com>
27009 * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
27010 with output file descriptor and with output file name.
27011 (Dup, Dup2): Now global procedures as they are used by two subprograms
27012 (Copy): Allocate the 200K buffer on the heap rather than on the stack.
27014 2005-06-14 Thomas Quinot <quinot@adacore.com>
27017 * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
27019 (Create_Selector): Bind listening socket used to create the signalling
27020 socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
27021 Set listen backlog to 1 to ensure that we detect socket theft by a
27022 failure of our own connect(2) call.
27023 (Check_Selector): Improve documentation of the selector mechanism.
27024 (Broadcast_Inet_Addr): New constant.
27026 2005-06-14 Gary Dismukes <dismukes@adacore.com>
27028 * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
27029 type which turns out to be an incomplete and incorrect fix.
27030 (Layout_Array_Type): Use Underlying_Type when checking whether the scope
27031 of the type is declared in a record (for determination of insertion
27033 (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
27034 a private type and ensure that the primary entity is used for the type
27035 of the newly created function's V formal by taking the Etype of the
27038 2005-06-14 Javier Miranda <miranda@adacore.com>
27039 Jose Ruiz <ruiz@adacore.com>
27040 Robert Dewar <dewar@adacore.com>
27041 Ed Schonberg <schonberg@adacore.com>
27043 * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
27044 that indicates if we are parsing a compilation unit found in a
27045 limited-with clause.
27046 It is use to avoid the circularity check.
27048 * par.ads, par.adb (Par): Addition of a new parameter to indicate if
27049 we are parsing a compilation unit found in a limited-with clause. This
27050 is use to avoid the circularity check.
27052 * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
27053 unit as a consequence of parsing a limited-with clause. This is used
27054 to avoid the circularity check.
27056 * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
27057 (Analyze_Context): Limited-with clauses are now allowed
27058 in more compilation units.
27059 (Analyze_Subunit_Context, Check_Parent): Protect the frontend
27060 againts previously reported critical errors in context clauses
27061 (Install_Limited_Withed_Unit): Code cleanup plus static detection
27062 of two further errors: renamed subprograms and renamed packages
27063 are not allowed in limited with clauses.
27064 (Install_Siblings): Do not install private_with_clauses on the package
27065 declaration for a non-private child unit.
27066 (Re_Install_Parents): When a parent of the subunit is reinstalled,
27067 reset visibility of child units properly.
27068 (Install_Withed_Unit): When a child unit appears in a with_clause of its
27069 parent, it is immediately visible.
27071 2005-06-14 Ed Schonberg <schonberg@adacore.com>
27072 Emmanuel Briot <briot@adacore.com>
27074 * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
27075 declared within an inlined body as referenced, to prevent spurious
27077 (Output_One_Ref): If an entity renames an array component, indicate in
27078 the ALI file that this aliases (renames) the array. Capture as well
27079 function renamings that rename predefined operations.
27080 Add information about generic parent for package and subprogram
27082 (Get_Type_Reference): For a subtype that is the renaming of an actual in
27083 an instantiation, use the first_subtype to ensure that we don't generate
27084 cross-reference information for internal types.
27085 For objects and parameters of a generic private type, retain the '*'
27086 indicator to distinguish such an entity from its type.
27088 * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
27089 to store information about instantiated entities.
27091 * ali.adb (Scan_ALI): Add support for parsing the reference to the
27094 * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
27095 (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
27098 2005-06-10 Doug Rupp <rupp@adacore.com>
27099 Arnaud Charlet <charlet@adacore.com>
27100 Olivier Hainque <hainque@adacore.com>
27101 Jose Ruiz <ruiz@adacore.com>
27103 * Make-lang.in: Add initialize.o when needed.
27104 Remove obsolete references to RT_FLAGS.
27105 Add missing dependencies for sdefault.o
27107 * initialize.c: New file.
27109 * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
27110 [VMS] cond_signal_table: Fix problem in declaration.
27111 [VMS] __gnat_error_handler: rewrite.
27112 Move all __gnat_initialize() routines to initialize.c
27113 Specialize the former "hpux" section to "hppa hpux", as this is what the
27114 section really is here for and we now have other hpux ports that need
27115 different contents.
27116 (__gnat_adjust_context_for_raise) i386-linux: First version of this
27117 function for this target. Adjust PC by one in the machine context. This
27118 adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
27119 it is more reliable to do that in the signal handler itself.
27120 (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
27121 flags, so that the handler is passed the context structure to adjust
27122 prior to the raise.
27123 (__gnat_error_handler) i386-linux: Adjust the signature to match what a
27124 SA_SIGINFO sigaction should look like. Call
27125 __gnat_adjust_context_for_raise before actually raising. Cleanup unused
27126 Machine_State_Operations stuff.
27127 Add conditional code so that the x86_64 is also supported.
27129 2005-06-14 Pascal Obry <obry@adacore.com>
27131 * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
27134 2005-06-14 Robert Dewar <dewar@adacore.com>
27136 * opt.ads, opt.adb: New flags for persistent_bss mode
27137 Add Ada_Version_Explicit, for implementation of AI-362
27138 Add Assertions_Enabled_Config and associated handling
27139 Needed since setting can be changed with Assertion_Policy pragma
27140 Add new flag Warn_On_Ada_2005_Compatibility
27142 * switch-c.adb: Recognize -gnatwy/Y
27143 Set Ada_Version_Explicit, for implementation of AI-362
27144 The -gnatg switch now includes -gnatyu
27146 * usage.adb: Add -gnatwy/Y
27147 Remove wrong asterisk on -gnatwX line
27148 Add line for -gnatyu switch
27150 2005-06-14 Vincent Celier <celier@adacore.com>
27152 * osint.adb (Add_Default_Search_Dirs): Put source and object
27153 directories of project files before directories coming from
27154 ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
27156 2005-06-14 Robert Dewar <dewar@adacore.com>
27159 * par-ch2.adb (Scan_Pragma_Argument): New procedure
27160 (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
27162 2005-06-14 Vincent Celier <celier@adacore.com>
27164 * prep.adb (Preprocess): Ignore error when scanning the first token of
27167 2005-06-14 Vincent Celier <celier@adacore.com>
27169 * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
27170 (Check_Stand_Alone_Library): If the specified reference symbol file does
27171 not exist, only issue a warning when the symbol policy is not
27172 Controlled. And, when symbol policy is Compliant, set the symbol
27173 policy to Autonomous.
27175 2005-06-14 Vincent Celier <celier@adacore.com>
27177 * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
27178 when the project file in a with clause is not the last one, that is the
27179 project file name is followed by a comma.
27180 * prj-pp.adb: (First_With_In_List): New Boolean global variable
27181 (Print): Issue list of project files separated by commas in with clauses
27182 according to the values returned by Is_Not_Last_In_List.
27183 * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
27184 (Set_Is_Not_Last_In_List): New procedure
27186 2005-06-14 Eric Botcazou <ebotcazou@adacore.com>
27188 * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
27190 2005-06-14 Robert Dewar <dewar@adacore.com>
27192 * scng.adb: Add call to new Check_EOF routine
27193 (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
27194 Add some comments regarding wide character handling
27196 * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
27198 * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
27200 * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
27201 characters are now considered graphic characters and hence yield false
27204 * nmake.adt: Modify header so that xnmake does not generate output
27205 files with multiple blank lines.
27207 * treeprs.adt: Remove a blank line so that output from xtreeprs does
27208 not have an extra blank line
27210 2005-06-14 Gary Dismukes <dismukes@adacore.com>
27212 * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
27213 expression when the component type is an anonymous access type to
27214 ensure that appropriate accessibility checks are done.
27216 * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
27217 expression of an assignment when the target object is of an anonymous
27218 access type. This ensures that required accessibility checks are done.
27219 (One_Bound): Move the check for type Universal_Integer to
27221 (Process_Bounds): Check whether the type of the preanalyzed range is
27222 Universal_Integer, and in that case set Typ to Integer_Type prior
27223 to setting the type of the original range and the calls to One_Bound.
27225 2005-06-14 Ed Schonberg <schonberg@adacore.com>
27227 * sem_case.adb (Expand_Others_Choice): Improve warning.
27229 2005-06-14 Ed Schonberg <schonberg@adacore.com>
27231 * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
27232 constraint of full view if present, when other type is discriminated.
27233 (Eval_Relational_Op): Recognize tests of pointer values against Null,
27234 when the pointer is known to be non-null, and emit appropriate warning.
27236 2005-06-14 Robert Dewar <dewar@adacore.com>
27237 Ed Schonberg <schonberg@adacore.com>
27240 * sem_prag.adb: Implement pragma Persistent_BSS
27241 Remove obsolete pragma Persistent_Data, Persistent_Object
27242 Set Ada_Version_Explicit, for implementation of AI-362
27243 Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
27244 Add processing for pragma Pure_05 and Preelaborate_05
27245 Add processing for Assertion_Policy pragma
27246 Add pragma identifiers for Assert
27247 (Analyze_Pragma, case Assert): Check number of arguments
27248 (Process_Inline): Additional guard against an illegal program, where the
27249 argument of the pragma is undefined, and warnings on redundant
27250 constructs are enabled.
27251 (Analyze_Pragma, case Obsolescent): Allow an optional second argument
27252 Ada_05 to this pragma, specifying that the pragma is only active in
27254 (Check_Arg_Order): New procedure
27255 Add appropriate calls to this procedure throughout
27256 Also throughout, check entity name before doing any other checks
27258 * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
27259 Remove obsolete pragma Persistent_Data, Persistent_Object
27260 Add entries for pragma Pure_05 and Preelaborate_05
27261 Add entries for Assertion_Policy pragma and associated names
27262 Add some names for pragma argument processing
27264 * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
27266 2005-06-14 Ed Schonberg <schonberg@adacore.com>
27268 * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
27269 appears within a negation (either from source or as a rewriting of
27270 inequality) adjust text of warning accordingly.
27272 2005-06-14 Thomas Quinot <quinot@adacore.com>
27274 * s-strxdr.adb: Follow AI95-00132
27276 2005-06-14 Arnaud Charlet <charlet@adacore.com>
27278 * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
27280 2005-06-14 Arnaud Charlet <charlet@adacore.com>
27281 Jose Ruiz <ruiz@adacore.com>
27283 * s-tposen.adb, s-tpobop.adb
27284 (Exceptional_Complete_Rendezvous): Save the occurrence and not only
27286 (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
27287 there is no violation of the Max_Entry_Queue_Length restriction (if it
27288 has been set); Program_Error is raised otherwise.
27289 (Requeue_Call): Before requeuing the task on the target entry queue we
27290 check that there is no violation of the Max_Entry_Queue_Length
27291 restriction (if it has been set); Program_Error is raised otherwise.
27293 2005-06-14 Robert Dewar <dewar@adacore.com>
27295 * styleg.adb: Fix several remaining problems in -gnatyu switch
27296 Blank line count not reset at start
27297 Scanning outside source buffer in some cases
27298 Confusing message for blanks at end of file
27299 Non-empty blank lines not recognized
27301 * nmake.adt: Modify header so that xnmake does not generate output
27302 files with multiple blank lines.
27304 * treeprs.adt: Remove a blank line so that output from xtreeprs does
27305 not have an extra blank line
27307 2005-06-14 Sergey Rybin <rybin@adacore.com>
27309 * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
27311 2005-06-14 Doug Rupp <rupp@adacore.com>
27312 Vincent Celier <celier@adacore.com>
27314 * vms_conv.ads, vms_conv.adb: Remove "Library" command.
27317 * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
27318 Remove "Library" command.
27319 Change keyword for style check -gnatyd from NOCRLF to
27321 Remove useless second style check keyword NONE
27322 Remove help documentation for inexistent style check keyword
27324 Add help documentation for style check keywords DOS_LINE_ENDINGS,
27325 UNNECESSARY_BLANK_LINES and XTRA_PARENS
27326 Add UNNECESSARY_BLANK_LINES for -gnatyu
27327 Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
27329 * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
27331 2005-06-14 Vincent Celier <celier@adacore.com>
27333 * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
27334 gprmake was invoked with -d.
27335 (Compile_Sources): If -d was used, output the "completed ..." message
27336 for each compilation.
27337 (Scan_Arg): Recognize new switch -d
27338 When -c and at least one main is specified, set
27339 Unique_Compile to True to guarantee that no other sources will be
27342 2005-06-14 Matthew Heaney <heaney@adacore.com>
27344 * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
27345 * a-swuwha.ads, a-swuwha.adb: New files
27347 * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
27348 * a-szuzha.ads, a-szuzha.adb: New files.
27350 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
27351 a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
27352 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
27353 a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
27354 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
27355 a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
27356 a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
27357 a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
27358 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
27359 a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
27362 2005-06-10 Eric Botcazou <ebotcazou@adacore.com>
27363 Olivier Hainque <hainque@adacore.com>
27364 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27365 Pascal Obry <obry@adacore.com>
27367 * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
27369 * trans.c (call_to_gnu): Issue a warning for users of Starlet when
27370 making a temporary around a procedure call because of non-addressable
27372 (process_freeze_entity): If entity is a private type, capture size
27373 information that may have been computed for the full view.
27374 (tree_transform, case N_Allocator): If have initializing expression,
27375 check type for Has_Constrained_Partial_View and pass that to
27377 (tree_transform, case N_Return_Statement): Pass extra arg to
27380 * decl.c (annotate_value): Remove early return if -gnatR is not
27382 (gnat_to_gnu_field): Don't make a packable type for a component clause
27383 if the position is byte aligned, the field is aliased, and the clause
27384 size isn't a multiple of the packable alignment. It serves no useful
27385 purpose packing-wise and would be rejected later on.
27386 (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
27389 (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
27390 context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
27392 (create_concat_name): Idem.
27394 2005-06-10 Robert Dewar <dewar@adacore.com>
27395 Eric Botcazou <ebotcazou@adacore.com>
27396 Ben Brosgol <brosgol@adacore.com>
27397 Cyrille Comar <comar@adacore.com>
27398 Sergey Rybin <rybin@adacore.com>
27399 Pascal Obry <obry@adacore.com>
27401 * gnat_rm.texi: Add documentation for pragma Persistent_BSS
27402 Document second argument (Ada_05) of pragma Obsolescent
27403 Add note that call to subprogram marked with pragma Obsolescent
27404 is now considered to be a violation of program Restrictions
27405 (No_Obsolescent_Features).
27406 (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
27407 that only machine-dependent attributes are supported.
27410 Commented out menu lines and empty section for gnatclean examples
27412 Fix some over long lines
27413 Clarify and enhance documentation of ADA_PROJECT_PATH.
27414 Rework section 2.11.2(3) about linking with a non-GNU compiler.
27415 Mention new switch -fcallgraph-info.
27416 Mention new switch -fstack-usage.
27417 For gnatpp, replace '-notab' with '-N' and add this option to Index
27418 Corrected VMS example.
27419 VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
27421 Add documentation for -gnatyu switch (unnecessary blank lines)
27422 Document new switch -U for GNAT PRETTY and GNAT METRIC
27423 Add note about Stdcall being handled as C convention on non Windows OS.
27424 Remove some junk typo in description of gnatbind -S switch
27425 Remove reference to Extensions_Allowed pragma
27426 Document the new order of the directories to be searched (source and
27427 object directories of project files before directories in ADA_*_PATH
27428 environment variables.
27430 * g-trasym.ads: Document that IRIX is supported
27432 2005-06-10 Arnaud Charlet <charlet@adacore.com>
27434 * Makefile.in: Add initialize.o when needed.
27435 Adapt to new VMS package body Symbols and subunits
27436 No specialized version of a-sytaco is needed for VxWorks.
27438 * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
27439 * a-zchara.ads, a-widcha.ads: New files.
27441 * system-hpux-ia64.ads: New file.
27443 * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
27444 is imported from the VxWorks kernel.
27446 2005-06-14 Robert Dewar <dewar@adacore.com>
27448 * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
27449 fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
27450 a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
27451 s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
27452 a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
27453 g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
27454 i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
27455 namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
27456 sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
27457 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
27458 s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
27459 xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
27461 2005-06-14 Thomas Quinot <quinot@adacore.com>
27463 * xeinfo.adb: Fix typo in comment
27465 2005-06-14 Javier Miranda <miranda@adacore.com>
27467 * repinfo.ads: Fix typo in comment
27469 2005-06-14 Gary Dismukes <dismukes@adacore.com>
27471 * s-finimp.adb (Parent_Tag): Delete this imported function (function
27472 Parent_Tag is now in the visible part of Ada.Tags).
27473 (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
27474 using imported function.
27476 2005-06-14 Bernard Banner <banner@adacore.com>
27478 * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
27479 also apply for handling support for VxSim 653.
27481 2005-06-14 Eric Botcazou <ebotcazou@adacore.com>
27483 * xsnames.adb: Add automatic generation of snames.h.
27485 2005-06-14 Thomas Quinot <quinot@adacore.com>
27487 * gen-soccon.c: Add IP_MULTICAST_IF constant
27488 Minor reformatting and adjustments to prevent warnings.
27490 2005-06-14 Pascal Obry <obry@adacore.com>
27492 * seh_init.c: Do not include <sys/stat.h>. This is not needed.
27494 2005-06-03 Andrew Pinski <pinskia@physics.uc.edu>
27496 * trans.c (gnat_gimplify_expr): Call
27497 recompute_tree_invarant_for_addr_expr when we change
27498 the operand of the ADDR_EXPR.
27500 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
27502 * misc.c: Don't include errors.h.
27504 2005-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
27506 * raise.c (db): Add ATTRIBUTE_PRINTF_2.
27508 2005-05-29 Kazu Hirata <kazu@cs.umass.edu>
27510 * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
27512 * gnat_rm.texi, gnat_ugn.texi: Fix typos.
27514 2005-05-16 Nathanael Nerode <neroden@gcc.gnu.org>
27517 * Makefile.in: Make TGT_LIB behave correctly.
27519 2005-04-23 DJ Delorie <dj@redhat.com>
27521 * misc.c: Adjust warning() callers.
27523 2005-04-16 Laurent Guerby <laurent@guerby.net>
27526 * a-nudira.adb (Value): Check for valid string.
27527 * a-nuflra.adb (Value): Likewise.
27529 2005-04-11 Richard Sandiford <rsandifo@redhat.com>
27531 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
27533 2005-04-10 Kazu Hirata <kazu@cs.umass.edu>
27535 * adaint.c, init.c, tracebak.c: Fix comment typos.
27536 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
27538 2005-04-07 Laurent Guerby <laurent@guerby.net>
27539 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27541 * Makefile.in: Add make ifeq define for hppa linux tasking support.
27542 * system-hpux.ads: Define Signed_Zeros to be True.
27543 * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
27545 2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
27547 * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
27548 raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
27551 2005-03-30 Tom Tromey <tromey@redhat.com>
27553 * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
27555 2005-03-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
27557 * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
27559 2005-03-29 Robert Dewar <dewar@adacore.com>
27561 * sem_res.adb (Resolve_Real_Literal): Generate warning if static
27562 fixed-point expression has value that is not a multiple of the Small
27565 * opt.ads (Warn_On_Bad_Fixed_Value): New flag
27567 * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
27570 * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
27572 2005-03-29 Vincent Celier <celier@adacore.com>
27574 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
27575 (Build_Dynamic_Library.Version_String): Return the empty string when
27576 Lib_Version is empty or when the symbol policy is not Autonomous.
27578 * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
27579 a symbol is not in the reference symbol file, increase the Major ID
27580 and set the Minor ID to 0.
27581 Use gsmatch=lequal instead of gsmatch=equal
27583 2005-03-29 Doug Rupp <rupp@adacore.com>
27585 * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
27586 name and translate.
27588 2005-03-29 Javier Miranda <miranda@adacore.com>
27590 * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
27591 (Inherit_DT): The first formal has been redefined as a Tag.
27592 This allows us the removal of the subprogram Get_TSD.
27593 (TSD): Replace the call to Get_TSD by the actual code.
27595 * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
27596 (Make_DT): Upgrade the call to Inherit_TSD according to the
27597 new interface: the first formal is now a Tag.
27599 * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
27600 redefined as a Tag.
27601 This change allows us to remove the subprogram Get_TSD.
27602 (CPP_Get_TSD): Subprogram removed.
27603 (TSD): Replace the call to CPP_Get_TSD by the actual code.
27605 * rtsfind.ads: Remove support to call the run-time
27608 2005-03-29 Robert Dewar <dewar@adacore.com>
27610 * errutil.adb, errout.adb:
27611 Minor comment updates on Line_Terminator references
27613 * par-ch10.adb: Add ??? comment about line terminator
27615 * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
27616 (check dos line terminator).
27617 (Check_Line_Max_Length): New procedure, split off from the existing
27618 Check_Line_Terminator routine. Separating this out allows -gnatyf to
27619 be properly recognized.
27621 * styleg.adb: Add ??? comment for line terminator reference
27623 * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
27624 (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
27626 * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
27627 (check dos line terminator).
27628 (Check_Line_Max_Length): New procedure, split off from the existing
27629 Check_Line_Terminator routine. Separating this out allows -gnatyf to
27630 be properly recognized.
27632 * stylesw.ads, stylesw.adb:
27633 Add handling for new -gnatyd switch (check dos line terminator)
27635 * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
27636 Recognize -gnatwb/-gnatwB switches
27637 Include Warn_On_Bad_Fixed_Value for -gnatg
27640 Add line for new -gnatyd switch (check dos line terminator)
27642 * usage.adb: Add lines for -gnatwb/-gnatwB
27644 * vms_data.ads: Add entry for NOCRLF (-gnatyd)
27646 * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
27648 * gnat_ugn.texi: Fix overlong lines
27649 Document new -gnatyd switch
27650 Document new -gnatwb/-gnatwB switches
27652 2005-03-29 Ed Schonberg <schonberg@adacore.com>
27654 * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
27655 order to retrieve the component list of the type, before examining
27656 individual components.
27658 * sem_type.adb (Covers): Types are compatible if one is the base type
27659 of the other, even though their base types might differ when private
27660 views are involved.
27662 2005-03-29 Thomas Quinot <quinot@adacore.com>
27664 * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
27665 To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
27666 of using Set_Renaming_TSS. This ensures that the TSS bodies are not
27667 analyzed if expansion is disabled (which could otherwise cause spurious
27668 error messages if expansion has been disabled due to previous
27669 (unrelated) errors).
27671 * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
27672 is disabled, the entity denoted by the argument is the access type
27673 itself, not an underlying record type, so there is no need to go back
27674 to the Corresponding_Remote_Type.
27676 2005-03-29 Gary Dismukes <dismukes@adacore.com>
27677 Robert Dewar <dewar@adacore.com>
27679 * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
27680 expand a call to an instance of
27681 Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
27682 Constructor actual of the instance. A class-wide membership
27683 check is also generated, to ensure that the tag passed to the instance
27684 denotes a type in the class.
27685 (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
27686 of Name_Generic_Dispatching_Constructor.
27688 * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
27689 05 unit for AI-260-02).
27691 * a-tgdico.ads: New file.
27693 * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
27694 predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
27696 * snames.ads, snames.adb (Preset_Names): Add entry for
27697 Generic_Dispatching_Constructor.
27700 * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
27701 character type cases.
27702 (Analyze_Subprogram_Renaming): Add special handling for
27703 the case of renaming of stream attributes when the renaming denotes a
27704 generic formal subprogram association for an abstract formal subprogram.
27705 Check that the attribute is a primitive stream attribute (and not
27706 a class-wide stream attribute) and then rewrite the attribute name
27707 as the name of the appropriate compiler-generated stream primitive.
27709 2005-03-29 Robert Dewar <dewar@adacore.com>
27711 * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
27713 (Is_Possibly_Unaligned_Object): Correct typo that
27714 resulted in inaccurate result for unaligned scalars within records.
27716 2005-03-29 Ed Schonberg <schonberg@adacore.com>
27718 * freeze.adb (Freeze_Record_Type): If the type of the component is an
27719 itype whose parent is controlled and not yet frozen, do not create a
27720 freeze node for the itype if expansion is disabled.
27722 2005-03-29 Vincent Celier <celier@adacore.com>
27724 * make.adb (Gnatmake): Don't fail if the main project file is declared
27725 as having no Ada sources. Do not display message "no sources to
27726 compile" in quiet output.
27728 2005-03-29 Doug Rupp <rupp@adacore.com>
27730 * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
27733 2005-03-29 Robert Dewar <dewar@adacore.com>
27735 * par-ch12.adb (P_Generic): Give better msg for illegal private generic
27738 2005-03-29 Robert Dewar <dewar@adacore.com>
27740 * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
27741 missing TYPE Improve the error message generated when compiling a
27742 limited interface in Ada83 or Ada95 mode.
27744 2005-03-29 Robert Dewar <dewar@adacore.com>
27746 * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
27747 rather than proceed ahead using a junk attribute name.
27749 2005-03-29 Vincent Celier <celier@adacore.com>
27751 * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
27753 * prj-part.adb (Parse_Single_Project): Set the location of a project
27754 on its defining identifier, rather than on the reserved word "project".
27756 * prj-proc.adb (Expression): Adapt to the fact that default of external
27757 references may be string expressions, not always literal strings.
27758 (Recursive_Process): Set Display_Name equal to Name
27759 when Location is No_Location, that is when there is no actual file.
27760 Get the Display_Name of the project from the source, when it is not a
27762 (Process): Use the Display_Name in error messages
27764 * prj-strt.adb (External_Reference): Allow default to be string
27765 expressions, not only literal strings.
27767 2005-03-29 Vincent Celier <celier@adacore.com>
27769 * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
27770 file and the reference symbol file to be the same file.
27772 2005-03-29 Thomas Quinot <quinot@adacore.com>
27774 * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
27775 forbid conversion of a local access-to-subprogram type to a remote one.
27777 * sem_util.adb (Wrong_Type): For a record type that is the expanded
27778 equivalent type for a remote access-to-subprogram type, go back to the
27779 original RAS entity when displaying an error message, so the casing is
27780 the original source casing.
27782 2005-03-29 Robert Dewar <dewar@adacore.com>
27784 * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
27787 2005-03-29 Ed Schonberg <schonberg@adacore.com>
27789 * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
27790 subtype if code is being pre-analyzed, to prevent un-expanded
27791 references to protected formals, among others.
27792 (Analyze_Explicit_Dereference): If the overloaded prefix includes some
27793 interpretation that can be a call, include the result of the call as a
27794 possible interpretation of the dereference.
27796 * sem_ch5.adb (Process_Bounds): Determine type of range by
27797 pre-analyzing a copy of the original range, and then analyze the range
27798 with the expected type.
27800 * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
27801 with an overloaded prefix where not all interpretations yield an
27802 access to subprogram, do not rewrite node as a call.
27803 (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
27804 the node as a call once the context identifies the interpretation of
27805 the prefix whose call yields the context type.
27806 (Valid_Conversion): For the case of a conversion between
27807 local access-to-subprogram types, check subtype conformance using
27808 Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
27809 detailed error message.
27811 2005-03-29 Ed Schonberg <schonberg@adacore.com>
27813 * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
27814 indicator, indicate that the formal can never be null.
27815 (Process_Formals): If a formal has a non_null indicator, insert the
27816 resulting subtype immediately before the enclosing subprogram decl,
27817 and not at the beginning of the corresponding declarative part, to
27818 prevent access before elaboration (Ada2005).
27820 2005-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27823 * utils.c (finish_record_type): Use variable_size when setting sizes.
27825 2005-03-29 Robert Dewar <dewar@adacore.com>
27827 * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
27828 guarantee Unix style line terminators for the output files, even when
27829 running on windows.
27831 2005-03-29 Robert Dewar <dewar@adacore.com>
27833 * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
27834 buffer if an exception is raised.
27836 2005-03-29 Ed Falis <falis@adacore.com>
27838 * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
27841 2005-03-29 Robert Dewar <dewar@adacore.com>
27843 * sem_util.ads: Minor reformatting
27844 * gnat_rm.texi: Minor editing.
27846 2005-03-29 Eric Botcazou <ebotcazou@adacore.com>
27848 * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
27849 * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
27851 2005-03-24 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
27853 * adaint.c (__gnat_portable_spawn): Adjust cast.
27855 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
27857 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
27859 2005-03-17 Pascal Obry <obry@adacore.com>
27861 * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
27864 * expect.c (__gnat_waitpid): Moved here from adaint.c.
27865 Reimplement under Win32 using Win32 API.
27867 (__gnat_kill) [Win32]: Properly close the process handle before leaving
27870 2005-03-17 Eric Botcazou <ebotcazou@adacore.com>
27872 * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
27873 (DECL_RENAMED_OBJECT): New accessor macro.
27874 (SET_DECL_RENAMED_OBJECT): New setter macro.
27876 * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
27877 object in all cases. Attach the renamed object to the VAR_DECL.
27878 (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
27879 field is not prescribed.
27881 * misc.c (gnat_handle_option): Handle -gnatO separately.
27882 (gnat_print_decl) <VAR_DECL>: New case.
27883 Print the DECL_RENAMED_OBJECT node.
27885 * lang.opt: Declare separate -gnatO option.
27887 * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
27888 pointer, replace it with the renamed object.
27889 <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
27890 pointer type if the source is not a fat pointer type whose underlying
27891 array has the same non-zero alias set as that of the destination array.
27893 2005-03-17 Javier Miranda <miranda@adacore.com>
27895 * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
27896 (Get_Inheritance_Depth): Removed.
27897 (Set_Inheritance_Depth): Removed.
27899 * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
27900 subprogram Get_Expanded_Name because it is not referenced by the
27903 * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
27904 (CPP_Get_Inheritance_Depth): Removed.
27905 (CPP_Set_Inheritance_Depth): Removed.
27907 * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
27909 2005-03-17 Robert Dewar <dewar@adacore.com>
27911 * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
27912 3, since we now expect GCC 3 to do all the work.
27914 2005-03-17 Javier Miranda <miranda@adacore.com>
27916 * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
27917 of one barrier to avoid wrong usage of this attribute.
27919 * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
27920 First_Private_Entity.
27922 * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
27923 the subprogram against wrong usage.
27924 Adapt the code to traverse the entities in the
27925 scope of a record_type because in addition to its usage regarding
27926 packages, this subprogram is also called by Expand_N_Freeze_Entity
27927 to install the visible declarations of the enclosing scope of a
27928 record_type_with_private to establish the proper visibility before
27929 freezing the entity and related subprograms.
27931 2005-03-17 Ed Schonberg <schonberg@adacore.com>
27933 * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
27936 2005-03-17 Thomas Quinot <quinot@adacore.com>
27938 * exp_ch3.adb (Check_Attr): New subprogram.
27939 (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
27940 into a new Check_Attr subprogram, in order to provide a more
27941 explanatory error message (including the name of the missing attribute).
27942 (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
27943 subprogram determines whether a default implementation exists for a
27944 given stream attribute.
27945 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
27946 Determine whether to generate a default implementation for each stream
27947 attribute separately, as this depends on the specific attribute.
27949 * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
27950 limited extension where a stream attribute is missing for a limited
27951 component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
27952 generate a bogus reference to the missing attribute to prevent
27953 cascaded errors. Instead, generate a null statement.
27955 * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
27956 available for a limited type if it has been specified for an ancestor
27959 2005-03-17 Ed Schonberg <schonberg@adacore.com>
27961 * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
27962 entity is an operator.
27964 2005-03-17 Thomas Quinot <quinot@adacore.com>
27966 * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27967 spec, to make this predicate available to other units.
27969 * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
27972 * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
27973 when no distribution runtime library is available.
27975 * sem_res.adb, sem_dist.adb: Disable expansion of remote
27976 access-to-subprogram types when no distribution runtime library is
27978 (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
27979 predicate available to other units.
27981 * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27982 spec, to make this predicate available to other units.
27984 2005-03-17 Vincent Celier <celier@adacore.com>
27986 * make.adb (Insert_Project_Sources): Make sure the Q is always
27989 * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
27990 the default for the tree, not the global default naming.
27992 * prj-proc.adb (Recursive_Process): No need to put the default naming
27993 in the project data, it's already there.
27995 2005-03-17 Doug Rupp <rupp@adacore.com>
27997 * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
27999 * 5xcrtl.ads: Renamed to...
28000 * s-crtl-vms64.ads: ...this new file
28002 2005-03-17 Robert Dewar <dewar@adacore.com>
28005 * namet.adb (Copy_One_Character): Set proper wide character encoding
28006 for upper half character if we have upper half encoding.
28008 2005-03-17 Robert Dewar <dewar@adacore.com>
28010 * par.adb (Par): Improved msg for attempt to recompile predefined unit
28012 2005-03-17 Thomas Quinot <quinot@adacore.com>
28014 * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
28015 tagged limited type, the TSS is a newly built renaming declaration:
28016 insert it using Set_TSS, not Copy_TSS.
28018 2005-03-17 Javier Miranda <miranda@adacore.com>
28020 * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
28021 Try_Object_Operation): Analyze the object that is accessible
28022 through the prefix of the subprogram call before we apply
28023 the transformation of the object-operation notation.
28025 2005-03-17 Jose Ruiz <ruiz@adacore.com>
28027 * s-taprob.adb (Initialize_Protection): Initialize the protected
28028 object's owner to Null_Task.
28029 (Lock): If pragma Detect_Blocking is in effect and the caller of this
28030 procedure is already the protected object's owner then Program_Error
28031 is raised. In addition the protected object's owner is updated.
28032 (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
28033 of this procedure is already the protected object's owner then
28034 Program_Error is raised.
28035 In addition the protected object's owner is updated.
28036 (Unlock): Remove the ownership of the protected object.
28038 * s-taprob.ads (Protection): Add the field Owner, used to store the
28039 protected object's owner.
28040 This component is needed for detecting one type of potentially blocking
28041 operations (external calls on a protected subprogram with the same
28042 target object as that of the protected action). Document the rest of
28045 * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
28046 Initialize the protected object's owner to Null_Task.
28047 (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
28048 caller of this procedure is already the protected object's owner then
28049 Program_Error is raised.
28050 Do not raise Program_Error when this procedure is called from a
28052 (Unlock_Entries): Remove the ownership of the protected object.
28053 (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
28054 of this procedure is already the protected object's owner then
28055 Program_Error is raised.
28056 Do not raise Program_Error when this procedure is called from
28057 a protected action.
28059 * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
28060 used to store the protected object's owner.
28062 * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
28063 effect and this procedure (a potentially blocking operation) is called
28064 from whithin a protected action, Program_Error is raised.
28065 (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
28066 and this procedure (a potentially blocking operation) is called from
28067 whithin a protected action, Program_Error is raised.
28069 2005-03-17 Vincent Celier <celier@adacore.com>
28070 Nicolas Setton <setton@adacore.com>
28072 * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
28073 switch, not supported by the linker on Darwin. Add '_' before
28074 <library>init, as this character is added unconditionally by the
28076 (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
28077 correct one ".dylib". This fixes detection of the archive files when
28078 building library projects.
28080 2005-03-17 Vincent Celier <celier@adacore.com>
28082 * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
28083 -gnat83, -gnat95 and -gnat05.
28085 2005-03-17 Vasiliy Fofanov <fofanov@adacore.com>
28087 * gnat_ugn.texi: Document gnatmem restriction
28089 2005-03-17 Thomas Quinot <quinot@adacore.com>
28091 * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
28094 2005-03-17 Robert Dewar <dewar@adacore.com>
28096 * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
28097 a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
28098 s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
28100 * casing.adb: Comment improvements
28102 2005-03-17 Pascal Obry <obry@adacore.com>
28104 * g-expect.adb: Minor reformatting.
28106 2005-03-15 Zack Weinberg <zack@codesourcery.com>
28108 * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
28109 (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
28112 2005-03-15 Vincent Celier <celier@adacore.com>
28114 * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
28115 Add new parameter In_Tree to specify the project tree: needed
28116 by the project manager. Adapt to changes in project manager
28117 using new parameter In_Tree.
28119 2005-03-15 Jakub Jelinek <jakub@redhat.com>
28121 * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
28122 ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
28123 ada/bldtools to avoid make -jN failures.
28125 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
28127 * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
28128 to NULL_TREE on entry.
28130 2005-03-15 Robert Dewar <dewar@adacore.com>
28132 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
28133 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
28134 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
28135 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
28136 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
28137 system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
28138 system-interix.ads, system-solaris-sparc.ads,
28139 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
28140 system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
28141 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
28142 system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
28143 system-linux-s390.ads, system-linux-s390x.ads: Add line defining
28144 Compiler_System_Version to be False.
28146 * opt.ads: Add new flag Opt.Address_Is_Private
28148 * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
28149 Add new parameter Compiler_System_Version to avoid checking for
28150 completeness of parameters when compiler is compiling itself.
28151 Allows old versions of GNAT to be compiled with new compiler.
28153 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
28155 * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
28156 (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
28158 (Stack_Base_Available): New flag.
28159 (Get_Page_Size): New overloaded functions imported from C.
28160 (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
28161 PROT_ON, PROT_OFF): New constants.
28162 (mprotect): New function imported from C.
28163 (pthread_teb_t): New record type.
28165 * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
28166 (Create_Task): Account for the Yellow Zone and the guard page.
28168 2005-03-15 Vincent Celier <celier@adacore.com>
28170 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
28171 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
28172 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
28173 mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
28174 Library_File_Name_For): Add new parameter In_Tree
28175 to specify the project tree: needed by the project manager.
28176 Adapt to changes in project manager using new parameter In_Tree.
28177 Remove local imports, use functions in System.CRTL.
28179 * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
28180 to use the project manager.
28182 * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
28183 In_Tree to designate the project tree. Adapt to changes in the project
28184 manager, using In_Tree.
28186 * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
28187 Copy_Interface_Sources): Add new parameter In_Tree to specify the
28188 project tree: needed by the project manager.
28189 (Build_Library): Check that Arg'Length >= 6 before checking if it
28190 contains "--RTS=...".
28192 * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
28193 Library_File_Name_For): Add new parameter In_Tree to specify the
28194 project tree: needed by the project manager.
28196 * prj.ads, prj.adb: Major modifications to allow several project trees
28197 in memory at the same time.
28198 Change tables to dynamic tables and hash tables to dynamic hash
28199 tables. Move tables and hash tables from Prj.Com (in the visible part)
28200 and Prj.Env (in the private part). Move some constants from the visible
28201 part to the private part. Make other constants deferred.
28202 (Project_Empty): Make it a variable, not a function
28203 (Empty_Project): Add parameter Tree. Returns the data with the default
28204 naming data of the project tree Tree.
28205 (Initialize): After updating Std_Naming_Data, copy its value to the
28206 component Naming of Project Empty.
28207 (Register_Default_Naming_Scheme): Use and update the default naming
28208 component of the project tree, instead of the global variable
28210 (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
28211 Tree is not defaulted, return the default naming data of the Tree.
28212 (Initial_Buffer_Size): Constant moved from private part
28213 (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
28214 variables initialized in procedure Initialize.
28215 (Add_To_Buffer): Add two in out parameters to replace global variables
28216 Buffer and Buffer_Last.
28217 (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
28219 Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
28221 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
28222 for the project tree.
28223 (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
28224 constant at the beginning of the package spec, so that they cane be used
28225 in subprograms before their full declarations.
28226 (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
28227 (Empty_Project): Add parameter of type Project_Node_Ref
28228 (Private_Project_Tree_Data): Add component Default_Naming of type
28230 (Buffer, Buffer_Last): remove global variables
28231 (Add_To_Buffer): Add two in out parameters to replace global variables
28232 Buffer and Buffer_Last.
28233 (Current_Packages_To_Check): Remove global variable
28234 (Empty_Name): Move to private part
28235 (No-Symbols): Make it a constant
28236 (Private_Project_Tree_Data): New type for the private part of the
28238 (Project_Tree_Data): New type for the data of a project tree
28239 (Project_Tree_Ref): New type to designate a project tree
28240 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
28241 for the project tree.
28243 * prj-attr.ads: Add with Table; needed, as package Prj no longer
28244 imports package Table.
28246 * prj-com.adb: Remove empty, no longer needed body
28248 * prj-com.ads: Move most of the content of this package to package Prj.
28250 * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
28251 designate the project node tree and Packages_To_Check to replace
28252 global variable Current_Packages_To_Check.
28253 Add new parameters In_Tree and Packages_To_Check to local subprograms,
28254 when needed. Adapt to changes in project manager with project node tree
28257 * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
28258 project tree to most subprograms. Move tables and hash tables to
28259 private part of package Prj.
28260 Adapt to changes in project manager using project tree In_Tree.
28262 * prj-makr.adb (Tree): New constant to designate the project node tree
28263 Adapt to change in project manager using project node tree Tree
28265 * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
28266 display the Library_Src_Dir and the Library_Dir.
28267 Add new parameter In_Tree to designate the project node tree to most
28268 subprograms. Adapt to changes in the project manager, using project tree
28270 (Check_Naming_Scheme): Do not alter the casing on platforms where
28271 the casing of file names is not significant.
28272 (Check): Add new parameter In_Tree to designate the
28274 * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
28275 designate the project tree.
28276 Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
28278 * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
28279 to replace those that were in the private part of package Prj.
28280 Add new parameter In__Tree to designate the project node tree to most
28281 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
28282 (Post_Parse_Context_Clause): When specifying the project node of a with
28283 clause, indicate that it is a limited with only if there is "limited"
28284 in the with clause, not necessarily when In_Limited is True.
28285 (Parse): Add new parameter In_Tree to designate the project node tree
28287 * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
28288 designate the project node tree. Adapt to change in Prj.Tree with
28289 project node tree In_Tree.
28291 * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
28292 tree In_Tree in the call to function Empty_Process to give its initial
28293 value to the project data Processed_Data.
28294 Add new parameters In_Tree to designate the project tree and
28295 From_Project_Node_Tree to designate the project node tree to several
28296 subprograms. Adapt to change in project manager with project tree
28297 In_Tree and project node tree From_Project_Node_Tree.
28299 * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
28300 to replace those that were in the private part of package Prj.
28301 Add new parameter In_Tree to designate the project node tree to most
28302 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
28304 * prj-tree.ads, prj-tree.adb: Add new parameter of type
28305 Project_Node_Tree_Ref to most subprograms.
28306 Use this new parameter to store project nodes in the designated project
28308 (Project_Node_Tree_Ref): New type to designate a project node tree
28309 (Tree_Private_Part): Change table to dynamic table and hash tables to
28310 dynamic hash tables.
28312 * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
28313 the project tree to most subprograms. Adapt to changes in project
28314 manager using project tree In_Tree.
28316 * makegpr.adb (Project_Tree): New constant needed to use project
28319 2005-03-15 Olivier Hainque <hainque@adacore.com>
28321 * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
28322 for sigactions with SA_SIGINFO set. Call
28323 __gnat_adjust_context_for_raise before raising, to perform the
28324 potentially required adjustments to the machine context for the GCC
28327 * raise.h (__gnat_adjust_context_for_raise): New prototype.
28329 * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
28330 Adjust PC by one in the provided machine context.
28331 (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
28332 so that the handler is passed the context structure to adjust prior to
28334 (__gnat_error_handler) HPUX: Adjust the signature to match what an
28335 SA_SIGINFO sigaction should look like. Call
28336 __gnat_adjust_context_for_raise before actually raising.
28337 (__gnat_adjust_context_for_raise): Default noop to help PC
28338 adjustments before raise from signal handlers.
28339 (__gnat_error_handler): Indirectly call a predicate function to
28340 determine if a condition should be resignaled or not.
28341 (__gnat_set_resignal_predicate): User interface to modify the predicate.
28342 (__gnat_default_resignal_p): Default GNAT predicate.
28344 2005-03-15 Doug Rupp <rupp@adacore.com>
28346 * adaint.c: Prefix #include of VMS system header files with vms/
28347 [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
28348 Do not define a dummy function "convert_addresses" under Darwin,
28351 * tb-alvms.c, expect.c: Prefix #include of VMS system header files
28354 2005-03-15 Nicolas Setton <setton@adacore.com>
28356 * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
28359 2005-03-15 Robert Dewar <dewar@adacore.com>
28361 * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
28364 * a-retide.ads: Minor comment changes
28366 2005-03-15 Robert Dewar <dewar@adacore.com>
28368 * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
28369 a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
28370 Realloc_For_Chunk to private part of package.
28371 New subprograms for AI-301
28373 * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
28374 Get_Line procedure.
28375 Avoid unnecessary use of Get/Set_Wide_String
28377 2005-03-15 Robert Dewar <dewar@adacore.com>
28380 * a-stunau.ads, a-stunau.adb:
28381 Change interface to allow efficient (and correct) implementation
28382 The previous changes to allow extra space in unbounded strings had
28383 left this interface a bit broken.
28385 * a-suteio.adb: Avoid unnecessary use of Get/Set_String
28387 * g-spipat.ads, g-spipat.adb: New interface for Get_String
28388 Minor reformatting (function specs)
28390 * g-spitbo.adb: New interface for Get_String
28392 * g-spitbo.ads: Minor reformatting
28394 * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
28396 * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
28398 2005-03-15 Javier Miranda <miranda@adacore.com>
28399 Robert Dewar <dewar@adacore.com>
28400 Thomas Quinot <quinot@adacore.com>
28401 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28403 * atree.ads, atree.adb: Add support for Elist24 field
28405 * atree.h: Fix wrong definition of Field27
28406 Add support for Elist16 field
28407 Add support for Elist24 field
28409 * einfo.ads, einfo.adb (Abstract_Interfaces,
28410 Set_Abstract_Interfaces): New subprograms.
28411 (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
28413 (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
28414 entities rather than a single node.
28415 (Is_Interface, Set_Is_Interface): New subprogram
28416 (First_Tag_Component): New syntesized attribute
28417 (Next_Tag_Component): New synthesized attribute
28418 (Write_Entity_Flags): Upgraded to write Is_Interface
28419 (Write_Field24_Name): Upgraded to write Abstract_Interfaces
28420 (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
28421 (Task_Body_Procedure): New subprogram to read this attribute.
28422 (Set_Task_Body_Procedure): New subprogram to set this attribute.
28423 (Has_Controlled_Component): Now applies to all entities.
28424 This is only a documentation change, since it always worked to apply
28425 this to other than composite types (yielding false), but now this is
28427 Update documentation on Must_Be_Byte_Aligned for new spec
28429 * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
28430 exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
28431 uses of the Access_Disp_Table attribute to reference the first dispatch
28432 table associated with a tagged type. As
28433 part of the implementation of abstract interface types,
28434 Access_Disp_Table has been redefined to contain a list of dispatch
28435 tables (rather than a single dispatch table).
28436 Similarly, upgrade all the references to Tag_Component by the
28437 new attribute First_Tag_Component.
28438 (Find_Inherited_TSS): Moved to exp_tss.
28439 Clean up test in Expand_N_Object_Declaration for cases
28440 where we need to do a separate assignment of the initial value.
28441 (Expand_N_Object_Declaration): If the expression in the
28442 declaration of a tagged type is an aggregate, no need to generate an
28443 additional tag assignment.
28444 (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
28446 Bit packed array ops are only called if operands are known to be
28448 (Component_Equality): When returning an N_Raise_Program_Error statement,
28449 ensure that its Etype is set to Empty to avoid confusing GIGI (which
28450 expects that only expressions have a bona fide type).
28451 (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
28452 determine the amount of data to be copied.
28454 * par.adb (P_Interface_Type_Definition): New subprogram that parses the
28455 new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
28456 INTERFACE_TYPE_DEFINITION ::=
28457 [limited | task | protected | synchronized] interface
28458 [AND interface_list]
28460 * par-ch3.adb (P_Type_Declaration): Modified to give support to
28462 (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
28464 (P_Interface_Type_Definition): New subprogram that parses the new
28465 syntax rule of Ada 2005 interfaces
28466 (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
28467 messages by the correct RENAMES (quotes removed).
28469 * sem_prag.adb: Upgrade all the references to Tag_Component by the new
28470 attribute First_Tag_Component.
28472 * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
28473 (Interface_List, Set_Interface_List): New subprograms.
28474 (Interface_Present, Set_Interface_Present): New subprograms.
28475 (Limited_Present, Set_Limited_Present): Available also in derived
28476 type definition nodes.
28477 (Protected_Present, Set_Protected_Present): Available also in
28478 record type definition and
28479 derived type definition nodes.
28480 (Synchronized_Present, Set_Synchronized_Present): New subprograms.
28481 (Task_Present, Set_Task_Present): New subprogram.
28482 (Task_Body_Procedure): Removed.
28483 (Set_Task_Body_Procedure): Removed.
28484 These subprogram have been removed because the attribute
28485 Task_Body_Procedure has been moved to the corresponding task type
28486 or task subtype entity to leave a field free to store the list
28487 of interfaces implemented by a task (for AI-345)
28488 Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
28489 (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
28490 expression flag Do_Range_Check
28491 (Exception_Junk): Change to Flag7 to accomodate above change
28492 (Box_Present, Default_Name, Specification, Set_Box_Present,
28493 Set_Default_Name, Set_Specification): Expand the expression
28494 "X in N_Formal_Subprogram_Declaration" into the corresponding
28495 two comparisons. Required to use the csinfo tool.
28497 * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
28498 "with string" given.
28500 * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
28503 * par-ch11.adb (P_Raise_Statement): Recognize with string expression
28506 * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
28507 attribute Task_Body_Procedure rather than the old semantic field that
28508 was available in the task_type_declaration node.
28510 * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
28511 interface type definitions.
28512 (P_Formal_Derived_Type_Definition): Modified to handle the list of
28515 * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
28516 task type declaration.
28517 (P_Protected): Modified to handle the list of interfaces in a
28518 protected type declaration.
28520 2005-03-15 Doug Rupp <rupp@adacore.com>
28521 Vincent Celier <celier@adacore.com>
28523 * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
28524 (Gen_Output_File_C): Likewise.
28525 (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
28527 2005-03-15 Thomas Quinot <quinot@adacore.com>
28529 * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
28530 is an N_Raise_Constraint_Error node, create a new copy of it without
28531 going through a call to Duplicate_Subexpr.
28533 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
28534 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28535 Nicolas Setton <setton@adacore.com>
28536 Ed Schonberg <schonberg@adacore.com>
28542 * decl.c (gnat_to_gnu_field): Reject aliased components with a
28543 representation clause that prescribes a size not equal to the rounded
28544 size of their types.
28545 (gnat_to_gnu_entity, case E_Component): Always look at
28546 Original_Record_Component if Present and not the entity.
28547 (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
28548 of tagged extension types by not making field for components that are
28550 (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
28551 (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
28552 expression to the type of the object when the object is constant.
28553 Reverse defer_debug_incomplete_list before traversing it, so that trees
28554 are processed in the order at which they were added to the list. This
28555 order is important when using the stabs debug format.
28556 If we are deferring the output of debug information, also defer this
28557 output for a function return type.
28558 When adding fields to a record, prevent emitting debug information
28559 for incomplete records, emit the information only when the record is
28561 (components_to_record): New parameter defer_debug.
28562 (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
28563 (gnat_to_gnu_field_decl): New function.
28564 (substitution_list, annotate_rep): Call it.
28565 (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
28566 (gnat_to_gnu_entity, case E_Record_Type): Likewise.
28567 No longer update discriminants to not be a COMPONENT_REF.
28568 (copy_alias_set): Strip padding from input type; also handle
28569 unconstrained arrays properly.
28571 * gigi.h (write_record_type_debug_info): New function.
28572 Convert to use ANSI-style prototypes. Remove unused
28573 declarations for emit_stack_check, elab_all_gnat and
28574 set_second_error_entity.
28575 (gnat_to_gnu_field_decl): New decl.
28577 * utils.c (write_record_type_debug_info): New function.
28578 (finish_record_type): Delegate generation of debug information to
28579 write_record_type_debug_info.
28580 (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
28581 (update_pointer_to): Fix pasto.
28582 (convert) <UNION_TYPE>: Accept slight type variations when
28583 converting to an unchecked union type.
28585 * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
28586 replace the N_Freeze_Entity with a null statement.
28588 * freeze.adb (Freeze_Expression): If the freeze nodes are generated
28589 within a constrained subcomponent of an enclosing record, place the
28590 freeze nodes in the scope stack entry for the enclosing record.
28591 (Undelay_Type): New Subprogram.
28592 (Set_Small_Size): Pass T, the type to modify; all callers changed.
28593 (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
28594 within records; allow them to have freeze nodes if their base types
28597 * exp_util.adb (Remove_Side_Effects): Properly test for
28598 Expansion_Delayed and handle case when it's inside an
28599 N_Qualified_Expression.
28601 * sem_ch3.adb (Derived_Type_Declaration): New predicate
28602 Comes_From_Generic, to recognize accurately that the parent type in a
28603 derived type declaration can be traced back to a formal type, because
28604 it is one or is derived from one, or because its completion is derived
28606 (Constrain_Component_Type): If component comes from source and has no
28607 explicit constraint, no need to constrain in in a subtype of the
28609 (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
28610 Minor change to propagate Is_Ada_2005 flag
28612 * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
28613 Expansion_Delayed is False.
28614 (assoc_to_constructor): Ignore fields that have a
28615 Corresponding_Discriminant.
28616 (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
28617 function returns "by target", dereference the target pointer using the
28618 type of the actual return value.
28619 <all>: Be prepared for a null gnu_result.
28620 (processed_inline_subprograms): Check flag_really_no_inline
28621 instead of flag_no_inline.
28622 (set_second_error_entity): Remove unused function.
28623 (gnat_to_gnu, case N_Selected_Component): Call
28624 gnat_to_gnu_field_decl.
28625 (assoc_to_constructor): Likewise.
28627 2005-03-15 Robert Dewar <dewar@adacore.com>
28628 Ed Schonberg <schonberg@adacore.com>
28629 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28631 * exp_pakd.adb (Create_Packed_Array_Type): Do not set
28632 Must_Be_Byte_Aligned for cases where we do not need to use a
28633 System.Pack_nn unit.
28635 * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
28637 Needed now that we do some processing for IN parameters as well. This
28638 may well fix some unrelated errors.
28639 (Expand_Call): Handle case of unaligned objects (in particular those
28640 that come from packed arrays).
28641 (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
28642 renamed entity is an inherited operation, re-expand the call using the
28643 original operation, which is the one to call.
28644 Detect attempt to inline parameterless recursive subprogram.
28645 (Represented_As_Scalar): Fix to work properly with private types
28646 (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
28647 accurate estimate. Yields True in far fewer cases than before,
28648 improving the quality of code that depends on this test.
28650 * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
28651 over both visible and private declarations to remove them from tree,
28652 and mark subprograms declared in package as eliminated, to prevent
28653 spurious use in subsequent compilation of generic units in the context.
28655 * exp_util.ads: Minor cleanup in variable names
28657 * sem_eval.ads, sem_eval.adb: Minor reformatting
28658 (Compile_Time_Known_Bounds): New function
28660 2005-03-15 Ed Schonberg <schonberg@adacore.com>
28662 * exp_ch7.adb (Convert_View): Use base types of underlying types when
28663 determining whether an unchecked conversion is needed for the argument
28664 of an initialization call.
28666 2005-03-15 Ed Schonberg <schonberg@adacore.com>
28668 * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
28669 that appears in the instantiation rather than the internal subtype
28670 generated in the wrapper package, to avoid anomalies in gigi when the
28671 target is derived from a private type whose full view is an access type.
28673 2005-03-15 Robert Dewar <dewar@adacore.com>
28675 * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
28677 Add documentation to replace the use of this flag
28678 Fix kludge for Maximum_Alignment on x86 so that it does not apply to
28681 2005-03-15 Thomas Quinot <quinot@adacore.com>
28683 * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
28684 here from exp_attr so it can be shared between exp_attr and exp_dist.
28685 (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
28686 all TSS names, not a subset thereof, and the previous name introduced
28687 an unnecessarily confusion that a distinction might exist between
28688 "OK" TSS names and some "not OK" TSS names.
28690 2005-03-15 Doug Rupp <rupp@adacore.com>
28692 * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
28695 2005-03-15 Pascal Obry <obry@adacore.com>
28696 Eric Botcazou <ebotcazou@adacore.com>
28700 * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
28701 when IN_RTS. This is to work around a bootstrap path problem.
28703 * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
28704 table and pass it to __gnat_install_SEH_handler().
28705 (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
28707 * lang.opt: Fix specification of -fRTS=.
28709 2005-03-15 Doug Rupp <rupp@adacore.com>
28710 Bernard Banner <banner@adacore.com>
28711 Vincent Celier <celier@adacore.com>
28712 Arnaud Charlet <charlet@adacore.com>
28715 This change works fine when gnatlib is built from the gcc directory,
28716 but does not work when using the libada Makefile, since GCC_FOR_TARGET
28717 is not passed to ada/Makefile.in, so more work is needed by a
28718 Makefile/configure expert.
28720 * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
28721 set GMEM_LIB on ia64 linux to add optional support for gnatmem.
28722 Setup gnatlink switch -M for x86_64 linux, as it is already setup
28724 (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
28725 Run ranlib on libgccprefix.a
28726 Define PREFIX_OBJS for Darwin, to build libgccprefix.
28727 (ADA_INCLUDE_SRCS): Split Ada packages.
28729 2005-03-15 Robert Dewar <dewar@adacore.com>
28731 * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
28733 * impunit.adb: Add GNAT.UTF_32
28735 * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
28737 * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
28738 now uses GNAT.UTF_32).
28740 * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
28741 capabilities for categorizing characters using Unicode categories
28743 2005-03-15 Ed Schonberg <schonberg@adacore.com>
28745 * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
28746 instantiation that has been rewritten as a package body, retrieve spec
28747 to generate proper name for implicit_with_clause.
28748 (Install_Parents): Recognize a parent that is an instantiation but has
28749 been rewritten as a package declaration during analysis.
28751 2005-03-15 Javier Miranda <miranda@adacore.com>
28752 Ed Schonberg <schonberg@adacore.com>
28754 * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
28755 parameter reported some error we immediately return. This improves the
28756 behaviour of the frontend in case of errors.
28757 (Install_Parent, Remove_Parent): Introduce new flag
28758 Parent_Unit_Visible, to preserve the proper visibility of the ultimate
28759 ancestor of a generic child unit, when the child is being instantiated.
28760 (Inline_Instance_Body): If we are compiling the private
28761 part or the body of a child unit, restore the proper visibility of the
28762 parents after compiling the instance body.
28764 2005-03-15 Ed Schonberg <schonberg@adacore.com>
28765 Javier Miranda <miranda@adacore.com>
28768 * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
28769 of a private type, in which case it is underlying_type that denotes
28770 the proper task. Also modified to use the new entity attribute
28771 that is directly available in the task type and task subtype entities
28772 (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
28773 arrays when other dimensions than the first are constrained by
28774 discriminants of an enclosing record.
28775 (Insert_Explicit_Dereference): If the prefix is an indexed component or
28776 a combination of indexed and selected components, find ultimate entity
28777 and generate the appropriate reference for it, to suppress spurious
28779 (Note_Possible_Modification): If an entity name has no entity, return.
28780 (Is_Variable): A function call never denotes a variable.
28781 (Requires_Transient_Scope): For record types, recurse only on
28782 components, not on internal subtypes that may have been generated for
28783 constrained components.
28785 2005-03-15 Ed Schonberg <schonberg@adacore.com>
28787 * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
28788 Eliminated as candidates for resolution. Both efficient, and avoids
28789 anomalies with operators declared in deleted code.
28790 (Process_Implicit_Dereference_Prefix): Use this procedure whenever
28791 expansion is disabled (as when compiling a generic) to prevent spurious
28792 warnings on prefixes of selected components.
28794 2005-03-15 Ed Schonberg <schonberg@adacore.com>
28796 * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
28797 attached to a list before checking whether it appears in the private
28798 declarations of the current package.
28799 (Make_Inequality_Operator): Insert declaration in proper declarative
28800 list rather than just setting the Parent field, so that
28801 Is_Private_Declaration can handle it properly.
28803 2005-03-15 Ed Schonberg <schonberg@adacore.com>
28805 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
28806 a renaming a body, check that the renamed subprogram in not intrinsic.
28807 (Find_Direct_Name): If several use_visible entities hide
28808 each other, and the context is a predefined file compiled through
28809 rtsfind, keep only the entity that comes from a predefined file.
28811 2005-03-15 Geert Bosch <bosch@adacore.com>
28813 * s-fatgen.adb (Valid): Extend special exceptions to account for long
28814 long float padding to also cover AMD64 and IA64.
28816 2005-03-15 Gary Dismukes <dismukes@adacore.com>
28818 * s-imgwch.adb: Add with and use of Interfaces.
28819 (Img_Wide_Character): Change type of Val to Unsigned_16.
28820 (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
28822 2005-03-15 Matthew Gingell <gingell@adacore.com>
28824 * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
28826 2005-03-15 Robert Dewar <dewar@adacore.com>
28828 * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
28830 * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
28832 * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
28834 2005-03-15 Robert Dewar <dewar@adacore.com>
28836 * s-bitops.adb, s-bitops.ads,
28837 s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
28838 s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
28839 tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
28840 s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
28841 s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
28842 s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
28843 s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
28844 s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
28847 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
28849 * utils2.c (build_binary_op): Fix typo.
28851 2005-03-15 Doug Rupp <rupp@adacore.com>
28853 * s-crtl.ads (popen,pclose): New imports.
28855 2005-03-15 Cyrille Comar <comar@adacore.com>
28857 * comperr.adb (Compiler_Abort): remove references to obsolete
28858 procedures in the bug boxes for various GNAT builds.
28860 2005-03-15 Vincent Celier <celier@adacore.com>
28862 * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
28864 2005-03-15 Geert Bosch <bosch@adacore.com>
28865 Arnaud Charlet <charlet@adacore.com>
28866 Robert Dewar <dewar@adacore.com>
28867 Cyrille Comar <comar@adacore.com>
28868 Sergey Rybin <rybin@adacore.com>
28870 * gnat_ugn.texi: Remove extended inline assembly example, as it was far
28871 too specific and long-winded to be appropriate for the GNAT User's
28873 Warn about use of GCC switches not documented in the GNAT User's Guide,
28874 as these may cause generated code to not conform to Ada semantics.
28875 Remove mention of -gdwarf-2 for sparc64, since this is now the default.
28876 Add documentation for -gnat95 and -gnat05 switches
28877 Remove paragraph documenting obsolete way to refer to third party
28879 Add a few references to Ada_05 that were missing.
28880 Update documentation on -gnatZ/-gnatL.
28881 Document limitation when using -m64 under Solaris.
28882 Change the "Name Casing" subsection of the pretty-printer section
28883 according to the changes in the dictionary processing.
28885 * gnat_rm.texi: Document the Ada_05 pragma.
28886 Section on record representation clauses describes the new more
28887 relaxed rules about placement of large packed bit array components.
28888 Add documentation of GNAT.UTF_32
28890 2005-03-12 Daniel Berlin <dberlin@dberlin.org>
28892 * misc.c (gnat_post_options): Turn off structural
28895 2005-03-08 Laurent Guerby <laurent@guerby.net>
28897 * system-linux-sparc.ads: Fix typo in previous commit.
28899 2005-03-07 James A. Morrison <phython@gcc.gnu.org>
28900 Laurent Guerby <laurent@guerby.net>
28903 * system-linux-sparc.ads: New.
28904 * Makefile.in: Add sparc linux entry.
28906 2005-02-27 Danny Smith <dannysmith@users.sourceforge.net>
28908 * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
28909 parameters as unused.
28911 2005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
28912 Partial merge from libada-gnattools-branch:
28914 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
28915 * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
28916 into code in gnattools/Makefile.in. Remove direct dependencies on
28917 stamp-tools by tools clauses.
28918 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
28919 * config-lang.in: Add gnattools to $lang_dirs.
28921 2005-02-13 Andrew Pinski <pinskia@physics.uc.edu>
28924 * utils.c (gnat_type_for_mode): Return null instead of ICE because
28925 we asked for an unknown mode.
28927 2005-02-12 Richard Henderson <rth@redhat.com>
28929 * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
28930 validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
28932 2005-02-10 Andreas Jaeger <aj@suse.de>
28934 * init.c (__gnat_initialize): Mark parameter as unused.
28936 2005-02-09 Doug Rupp <rupp@adacore.com>
28938 * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
28939 * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
28941 2005-02-09 Doug Rupp <rupp@adacore.com>
28943 * gnatchop.adb (dup, dup2),
28944 g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
28946 * gnatlbr.adb (mkdir),
28947 mlib-tgt-vms-ia64.adb (popen, plose): Import with decc$ prefix.
28949 * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
28951 2005-02-09 Doug Rupp <rupp@adacore.com>
28953 * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
28955 2005-02-09 Robert Dewar <dewar@adacore.com>
28956 Thomas Quinot <quinot@adacore.com>
28957 Javier Miranda <miranda@adacore.com>
28958 Pascal Obry <obry@adacore.com>
28959 Ed Schonberg <schonberg@adacore.com>
28960 Doug Rupp <rupp@adacore.com>
28961 Gary Dismukes <dismukes@adacore.com>
28962 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28964 * g-zstspl.ads: New file.
28966 * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
28968 * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
28970 Add definition of Wide_Wide_Space for AI-285
28972 * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
28973 interface (to support Ada 95 and Ada 2005 units).
28974 Add Unbounded_IO files
28975 Add entries for Wide_Wide packages for AI-285
28976 Add list of containers packages to Ada 2005 unit list
28978 * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
28979 support new Unbounded_IO package cleanly.
28981 * g-utf_32.ads, g-utf_32.adb: New files.
28983 * Makefile.rtl: Add entry for g-utf_32
28984 Add new files for Unbounded_IO
28985 Adjust make file for new AI-285 wide wide packages
28986 Add AI-302 containers to the run time.
28988 * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
28989 a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
28990 subprograms for AI-301.
28992 * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
28994 * a-stunau.ads: Minor comment correction
28996 * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
28998 Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
28999 (Check_RPC): Update to match changes in expanded code.
29000 Clean up unused entity.
29002 * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
29003 was not taken into account.
29004 This includes proper initialization with Normalize_Scalars.
29005 (Get_Simple_Init_Val): Major rewrite for initialize scalars and
29006 normalize scalars cases (particularly the latter) to do a better job
29007 of finding invalid representations.
29009 * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
29011 * s-strops.ads, s-strops.adb: Remove string normalize routines, never
29014 * exp_dist.adb: Add support for wide wide character type
29015 (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
29016 private part, generate stub bodies at the end of the private part,
29017 not the visible part.
29018 (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
29020 (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
29021 generic wrapper to execute final processing after completing the
29022 expansion of the RPC receiver for an RACW.
29024 * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
29025 packages and attributes.
29026 (Preset_Names): Addition of the new reserved words of Ada 2005,
29027 that is interface, overriding and synchronized.
29028 (Get_Pragma_Id): Give support to the use of the new reserved word
29029 "interface" as a pragma name.
29030 (Is_Pragma_Name): Give support to the use of the new reserved word
29031 "interface" as a pragma name.
29032 (Preset_Names): Add stream_size string for the Stream_Size Ada2005
29033 attribute implementation.
29035 * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
29036 checks to entities that are output parameters of Asm operations.
29037 Handle the Stream_Size attribute.
29038 Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
29040 * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
29042 * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
29043 for second parameter being 0.0.
29044 Add support for wide wide character type.
29045 (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
29047 * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
29048 s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
29049 s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
29050 s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
29051 for wide wide character cases.
29053 * cstand.adb: Create entities for Wide_Wide_Character and
29056 * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
29057 accordance with AI-258.
29058 Add new declarations for 16/32 bit C character types (Part of AI285)
29060 * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
29061 (Obsolescent_Warning): New field
29062 (Rep_Clause): New local subprogram used to share code. Returns the rep
29063 clause for which the name is given in parameter.
29064 (Has_Stream_Size_Clause): New routine.
29065 (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
29066 (Address_Clause): Implementation is now using Rep_Clause.
29067 (Alignment_Clause): Idem.
29068 (Size_Clause): Idem.
29070 * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
29071 entity in non-Ada 2005 mode and generate warning.
29073 * par-prag.adb: Add handling of one argument form for pragma Ada_05.
29074 (Prag): Code cleanup. Remove old gnat pragma "overriding"
29076 * sem_prag.adb: Add handling of one argument form for pragma Ada_05
29077 (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
29078 on the named unit if the pragma is not in the current compilation unit,
29079 so that elaboration calls in the current unit can set up an elaboration
29080 dependency on the named unit, as needed.
29081 (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
29082 subprogram as well as for subprograms declared within a package.
29083 (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
29086 * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
29087 to z) to avoid some instances of duplication for Wide_Wide packages.
29089 * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
29092 * scn.adb: Char_Literal_Value field is now a Uint
29094 * scng.adb: Significant rewrite to handle new Ada 2005 features
29095 allowing wide and wide wide characters in program text, e.g. for
29096 identifiers, as described in AI-285.
29097 (Set_Reserved): New procedure, makes setting up keywords cleaner.
29098 (Initialize_Scanner): Register the new reserved words of Ada 2005.
29099 (Scan): Give support to the new reserved words.
29101 * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
29102 warning notifying that interface, overriding, and synchronized are
29103 new reserved words.
29104 (P_Pragma): Allow the use of the new reserved word "interface" as
29107 * gnatls.adb, gnatbind.adb,
29108 ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
29109 identifiers named "interface" to "SAL_Interface".
29111 * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
29112 (Structured Exception handling).
29113 (Gen_Main_C): Idem.
29116 (Gen_Main_Ada): Set the default exit code if specified.
29117 (Gen_Main_C): Likewise.
29119 (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
29120 Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
29122 * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
29125 * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
29126 has a collision with the new Ada 2005 "interface" reserved word.
29128 * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
29129 generate a warning notifying that interface, overriding, and
29130 synchronized are new reserved words.
29132 * scans.ads (Token_Type): Addition of the tokens corresponding to the
29133 new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
29134 and Tok_Synchronized.
29136 * sem_res.adb (Resolve_Actuals): Change error messages to refer to
29137 "dispatching" rather than "primitive" operations, since dispatching
29138 calls are now allowed to abstract formal subprograms (which are not
29140 Char_Literal_Value field is now a Uint
29141 (Resolve_Slice): If the prefix is an access to an unconstrained array,
29142 compute the actual subtype of the designated object to impose the proper
29144 (Resolve_Selected_Component): Do not insert an access check if the
29145 prefix is an access type: such a node is expanded into an explicit
29146 dereference, on which the access check is performed anyway. Removes
29147 expensive duplicate checks.
29148 (Resolve_Call): Use new flag Is_Obsolescent and field
29149 Obsolescent_Warning so that pragma Obsolescent works on library
29151 Add support for wide wide character type
29152 (Resolve_Allocator): Replace the error message on wrong null-exclusion
29153 value by a warning message.
29154 (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
29155 as fixed-point, and one of the operands is non-static and universal, it
29156 can only be an illegal exponentiation operation, in which case there is
29157 no real value to retrieve.
29159 * exp_strm.adb: Add support for wide wide character type
29160 (Build_Elementary_Input_Call): Compute the size of the stream element by
29161 querying the rep chain to find the Stream_Attribute attribute value.
29162 (Build_Elementary_Write_Call): Ditto.
29164 * sem_aggr.adb: Char_Literal_Value field is now a Uint
29165 Add support for wide wide character type
29166 Replace the error messages on wrong null-exclusion value by warnings
29167 as described in Ada 2005.
29168 (Resolve_Extension_Aggregate): Document the fact that the error
29169 message on class-wide expressions in extensions aggregates.
29171 * sem_case.adb: Add support for wide wide character type
29173 * sem_ch13.adb: Add support for wide wide character type
29174 (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
29176 * sem_ch3.adb: Add support for wide wide character type
29177 (Process_Subtype): If constraint is illegal for the type, set Ekind of
29178 now-useless Itype, to prevent cascaded errors on a compiler built
29181 * sem_ch8.adb: Add with and use of Sem_Disp.
29182 (Analyze_Subprogram_Renaming): Replace unclean uses of
29183 Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
29184 of Corresponding_Spec to Empty).
29185 (Attribute_Renaming): Replace use of Corresponding_Spec with
29186 Corresponding_ Formal_Spec and simplify condition.
29187 (Use_One_Package): Check that scope of homonym of identifier is defined,
29188 before checking whether it is a wrapper package.
29189 Add support for wide wide character type
29191 * sem_eval.adb: Add support for wide wide character type.
29192 (Eval_Arithmetic_Op): Check for compile time known signed integer
29193 overflow in the non-static case.
29194 (Subtypes_Statically_Match): A formal scalar type and its base type do
29195 not statically match.
29197 * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
29198 "not in" for test of N_Formal_Subprogram_Declaration (which is now a
29200 (Unit_Declaration_Node): Ditto.
29201 (Is_Variable_Prefix): For the case of an indexed component whose prefix
29202 has a packed array type, the prefix has been rewritten into a type
29203 conversion. Determine variable-ness from the converted expression.
29204 Handle wide wide character cases.
29206 * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
29208 * stringt.ads, stringt.adb: Handle full UTF-32 range.
29209 Remove ["0A"] from comment, since it can look like a line terminator.
29210 Currently we don't permit this, but this is under discussion by the
29211 ARG, and it is easy enough to use a different example.
29213 * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
29214 handling UTF-32 encoding for wide wide character.
29215 Implement new brackets coding ["hhhhhhhh"]
29216 Add UTF-8 encodings for full UTF-32 range
29218 * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
29220 * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
29221 bit range Add full UTF-32 support.
29222 (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
29223 notify that constraint error will be raised at run-time
29224 because a null value is assigned to a null-excluding object.
29225 Remove some obsolete declarations and make Char_Code
29228 * a-except.adb (Rcheck_30): New subprogram. Addition of the message
29229 corresponding to CE_Null_Not_Allowed, and adjust the output of all the
29230 Rcheck subprograms.
29232 * checks.adb (Check_Null_Not_Allowed): Replace the error message on
29233 wrong null-exclusion value by a warning message.
29234 (Enable_Range_Check): Do range check if the prefix is an
29235 explicit dereference whose designated object is an unconstrained array.
29236 Current algorithm for removing duplicate checks is over-eager in this
29239 * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
29240 null-exclusion value by a warning message
29242 * atree.h, atree.ads, atree.adb: Remove Char_Code field support
29243 completely. Add support for Uint2 field
29245 sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
29246 exp_prag.adb: Char_Literal_Value field is now a Uint.
29248 * exp_util.adb (Insert_Actions): Replace
29249 N_Formal_Subprogram_Declaration by
29250 N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
29251 Char_Literal_Value field is now a Uint.
29253 * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
29254 defined for subprogram renaming declarations. When set, the field
29255 indicates the defining entity of a corresponding formal subprogram
29256 when the renaming corresponds to a formal subprogram association in an
29258 (Set_Corresponding_Formal_Spec): New procedure to return
29259 Corresponding_Formal_Spec field.
29260 Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
29261 (which is now a subtype).
29262 Char_Literal_Value field is now a Uint
29264 * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
29265 pointer to the base of the dispatch table.
29266 Minor changes to comments.
29267 (Controlling_Type): New function for determining the tagged type
29268 associated with a tagged primitive subprogram.
29269 (Expand_Dispatching_Call): Add support for a controlling actual that is
29270 directly a value of type Ada.Tag rather than a tagged object.
29272 * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
29273 describing the new layout.
29274 (Dispatch_Table): The expander computes the actual array size, allocates
29275 the Dispatch_Table record accordingly, and generates code that displaces
29276 the base of the record after the Typeinfo_Ptr component. The access to
29277 these components is done by means of local functions.
29278 (Offset_To_Top): New function.
29279 (Typeinfo_Ptr): New function.
29280 (Get_TSD): Modified to access the new position of the TSD.
29281 (Set_TSD): Modified to save the TSD in its new position.
29283 * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
29284 case of formal abstract subprograms. Add check and message for -gnat05.
29287 * sem_ch12.adb: Add with and use for Sem_Disp.
29288 (Analyze_Associations): Minor change from "=" to "in" for use of
29289 N_Formal_Subtype_Declaration (which is now a subtype).
29290 (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
29291 N_Formal_Subtype_Declaration (which is now a subtype).
29292 (Analyze_Formal_Subprogram): Add handling for
29293 N_Formal_Abstract_Subprogram, marking the formal as abstract and
29294 dispatching, setting the controlling status of the formal parameters
29295 and result, and issuing an error if there is no controlling type for
29296 the formal subprogram.
29297 (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
29298 which is an unclean use of that field, we set the new field
29299 Corresponding_Formal_Spec to make the formal subprogram available to
29300 processing in Analyze_Subprogram_Declaration.
29301 (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
29302 Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
29303 Constrained, so that it is is does not statically match its anonymous
29306 * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
29307 abstract formal subprograms in error check for functions returning
29308 abstract types. Set scope of new designator for
29309 a parameterless subprogram, so that it is available when checking the
29310 body for nested subprograms, before full analysis of said body.
29311 (Analyze_Subprogram_Body): Warn on inlining bodies with nested
29312 subprogram only if inner one comes from source.
29313 (Analyze_Function_Call): If the call is given in object notation, the
29314 analysis of the name rewrites the node and analyzes it with the proper
29315 argument list. After analyzing the name, if the call has been rewritten
29316 and the result type is set, no further analysis is needed.
29317 (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
29318 mark in function specification, in a context where the formals are
29319 visible and hide outer homographs.
29321 * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
29322 as the tagged type for the cases of abstract formal subprograms and
29323 renamings of those. Clean up spec comments.
29324 (Check_Dispatching_Context): Add error message to indicate "abstract
29325 procedure", covering the case of a call to a formal abstract procedure
29326 that has statically tagged operands.
29327 (Check_Dispatching_Call): Check for the case of an actual given by
29328 a tag-indeterminate function call whose type is an ancestor of the
29329 containing call's associated tagged type. This situation can occur
29330 for inherited primitives with function defaults. In this case we
29331 use the tagged type's tag directly as the controlling argument for
29333 (Expand_Call): Name change on call to Expand_Dispatch_Call.
29335 * sprint.adb (Sprint_Node_Actual): Split
29336 N_Formal_Subprogram_Declaration into two alternatives for the new
29337 cases N_Formal_Abstract_Subprogram_Declaration and
29338 N_Formal_Concrete_Subprogram_Declaration.
29339 Char_Literal_Value field is now a Uint.
29341 * trans.c: Get rid of junk Uint2 reference.
29342 Char_Literal_Value field is now a Uint.
29343 (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
29344 (gigi): Correct third arg to gimplify_body.
29346 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
29347 (TYPE_LANG_FLAG_0): Check for record or union.
29349 * treepr.adb: Char_Literal_Value field is now a Uint
29351 * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
29354 * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
29355 Add full UTF-32 support
29356 Char_Code is now 32 bits
29358 * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
29359 wide character UTF_32 line terminators.
29360 Initialize Main_Source_File to avoid error when no main
29363 * errout.adb (Finalize): Do not check Num_SRef_Pragmas
29364 (Main_Source_File) when no main source has been loaded, to avoid
29367 2005-02-09 Robert Dewar <dewar@adacore.com>
29369 * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
29370 Fix name of Set routine
29372 * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
29375 * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
29376 a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
29379 * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
29380 forms of Get_Line subprograms for AI-301.
29382 * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
29383 a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
29384 a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
29385 a-stwima.ads: Minor reformatting.
29387 2005-02-09 Doug Rupp <rupp@adacore.com>
29388 Thomas Quinot <quinot@adacore.com>
29390 * adaint.c, adaint.h
29391 [VMS] (to_ptr32): New function.
29392 (MAYBE_TO_PTR32): New macro.
29393 (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
29395 [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
29396 [VMS] (#define fork()): Remove since unneccessary.
29397 (__gnat_set_close_on_exec): New routine to support
29398 GNAT.OS_Lib.Set_Close_On_Exec.
29400 * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
29401 the parent side as close-on-exec so that they are not inherited by the
29404 * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
29405 set or clear the FD_CLOEXEC flag on a file descriptor.
29407 2005-02-09 Eric Botcazou <ebotcazou@adacore.com>
29408 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29412 (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
29413 on the field if Pragma Component_Alignment (Storage_Unit).
29414 (gnat_to_gnu_entity, case object): Do not treat a renaming that has
29415 side-effects as if it were a constant; also make SAVE_EXPR to protect
29417 (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
29419 (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
29420 (components_to_record): Test it.
29421 Fix improper usage of REFERENCE_CLASS_P.
29423 * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
29426 * utils2.c: Minor reformatting.
29428 * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
29429 handle other cases like RECORD_TYPE.
29431 * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
29433 2005-02-09 Ed Schonberg <schonberg@adacore.com>
29435 * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
29436 component of an array of arrays in an assignment context, and the
29437 aggregate has component associations that require sliding on
29438 assignment, force reanalysis of the aggregate to generate a temporary
29439 before the assignment.
29440 (Must_Slide): Make global to the package, for use in Gen_Assign.
29442 2005-02-09 Ed Schonberg <schonberg@adacore.com>
29444 * exp_ch4.adb (Expand_Composite_Equality): If a component is an
29445 unchecked union with no inferable discriminants, return a
29446 Raise_Program_Error node, rather than inserting it at the point the
29448 (Expand_Record_Equality, Component_Equality): Handle properly the case
29449 where some subcomponent is an unchecked union whose generated equality
29450 code raises program error.
29452 2005-02-09 Doug Rupp <rupp@adacore.com>
29454 * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
29455 [VMS] (#define exit hack): Remove.
29457 2005-02-09 Pascal Obry <obry@adacore.com>
29458 Arnaud Charlet <charlet@adacore.com>
29460 * init.c (__gnat_initialize): Add a new parameter eh which contains the
29461 address of the exception registration. The Win32 version of this
29462 routine calls __gnat_install_SEH_handler() to initialize the SEH
29463 (Structured Exception Handling) handler.
29464 (__gnat_error_handler) [Win32]: Removed. Not needed as we use
29465 SEH (Structured Exception Handling) now.
29466 (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
29467 (__gnat_initialize for ppc-vxworks): Adjust comments and the
29468 preprocessor condition protecting the call to the extra eh setup
29469 subprogram, which is only available for the ppc target.
29470 (__gnat_clear_exception_count): replaced reference to
29471 variable taskIdCurrent by call to taskIdSelf(), cleaner.
29473 * seh_init.c: New file.
29475 * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
29476 (GNATBIND_OBJS): Idem.
29478 * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
29479 routine takes a new parameter (a pointer to the exception registration
29480 for the SEH (Structured Exception Handling) support.
29482 * raise.h: (__gnat_install_SEH_handler): New prototype.
29483 Update copyright notice.
29485 * s-tassta.adb (Task_Wrapper): Declare the exception registration
29486 record and initialize it by calling __gnat_install_SEH_handler.
29488 2005-02-09 Vincent Celier <celier@adacore.com>
29490 * make.adb (Gnatmake): Do not fail when the main project has no object
29493 2005-02-09 Doug Rupp <rupp@adacore.com>
29495 * Makefile.in [VMS] (LN,LN_S): Define as cp -p
29496 Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
29497 [VMS]: Add translations for g-enblsp.adb.
29499 * s-asthan-vms.adb: Removed.
29500 * s-asthan-vms-alpha.adb: Added.
29502 2005-02-09 Pascal Obry <obry@adacore.com>
29504 * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
29505 (LIBGNAT_OBJS): Add seh_init.o.
29507 2005-02-09 Arnaud Charlet <charlet@adacore.com>
29510 * Makefile.in: Link all gnat tools with -static-libgcc, since
29511 -shared-libgcc is now used by default on some systems (e.g. linux with
29513 Remove references to Makefile.prolog/generic, no longer used.
29515 2005-02-09 Vincent Celier <celier@adacore.com>
29517 * prj-makr.adb (Process_Directory): Put file name in canonical case
29518 before matching against the patterns.
29519 If gnatname has been invoked as <prefix>-gnatname
29520 then invoke the compiler as <prefix>-gcc, not just "gcc".
29522 2005-02-09 Ed Schonberg <schonberg@adacore.com>
29524 * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
29525 with expansion disabled. The actual subtype is needed among other
29526 places when the selected component appears in the context of a loop
29527 bound, and denotes a packed array.
29528 (Operator_Check): Always use the first subtype in the
29529 error message, to avoid the appearance of internal base types.
29530 (Transform_Object_Operation): Copy each actual in full
29531 to the parameter associations of the constructed call, rather than
29532 using the shallow copy mechanism of New_Copy_List. This ensures that
29533 the chaining of named associations is done properly.
29534 (Complete_Object_Operation): Rewrite node, rather than
29535 replacing it, so that we can trace back to the original selected
29538 * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
29539 and calls that use object notation, if the called function is not
29540 declared in a withed unit, place the elaboration constraint on the
29541 unit in the context that makes the function accessible.
29542 (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
29543 imposes an elaboration constraint between two packages.
29545 2005-02-09 Ed Schonberg <schonberg@adacore.com>
29547 * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
29548 views of a private type after handling its private dependents, to
29549 maintain proper stack discipline between entry and exit from the
29552 2005-02-09 Cyrille Comar <comar@adacore.com>
29554 * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
29555 Minor reformatting.
29557 2005-02-09 Arnaud Charlet <charlet@adacore.com>
29559 * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
29560 fields for foreign threads.
29562 2005-02-09 Doug Rupp <rupp@adacore.com>
29564 * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
29565 recursion warnings when compiled with -gnatdm.
29567 2005-02-09 Robert Dewar <dewar@adacore.com>
29569 * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
29570 Slight fix to documentation of -gnaty with no parameters
29572 * xr_tabls.ads: Add ??? comment for missing overall comment
29574 * xsinfo.adb: Make default file name be sinfo.h, since this is what
29575 we now use by default.
29577 * xsnames.adb: Adjust end of file test to look for five space followed
29578 by '#' instead of six spaces. The format of xsnames.adb was modified
29579 in the last update.
29581 * a-numeri.ads: Add reference to AI-388 for greek letter pi
29584 * clean.adb: Minor reformatting.
29586 * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
29587 gnatname.adb: Minor reformatting
29588 Add 2005 to copyright output when utility is run
29590 * csets.adb: Eliminate obsolete comment
29592 * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
29595 * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
29597 2005-02-09 Sergey Rybin <rybin@adacore.com>
29599 * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
29600 the difference between compact and incompact layout and add the record
29601 representation clause to the example illustrating different layouts.
29602 Add the description of '-A5' gnatpp option ("align 'AT' keywords in
29603 component clauses").
29605 2005-02-09 Florian Villoing <villoing@adacore.com>
29607 * gnat_ugn.texi: Fix typos.
29608 Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
29610 Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
29611 in the generated documentation.
29613 2005-02-09 Arnaud Charlet <charlet@adacore.com>
29615 * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
29617 Update linker wrapper when linking with non GNU C++.
29619 2005-02-09 Pascal Obry <obry@adacore.com>
29622 Document the procedure to debug the DllMain routine on Windows.
29623 Add note about -funwind-tables and mixed Ada and C/C++ programming in
29625 Document new BIND qualifer /RETURN_CODES=VMS.
29627 2005-02-09 Ben Brosgol <brosgol@adacore.com>
29629 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
29630 Edited gnatmetric chapter
29632 2005-02-09 Robert Dewar <dewar@adacore.com>
29635 Changes to document new wide wide character support
29637 Update documentation on Normalize_Scalars and Initialize_Scalars
29639 2005-02-09 Pascal Obry <obry@adacore.com>
29641 * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
29643 2005-02-09 Jose Ruiz <ruiz@adacore.com>
29645 * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
29646 from the VxWorks kernel) that is needed for getting the active
29647 priority of the different tasks.
29649 * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
29650 Use a pragma Elaborate_Body in the spec file instead.
29651 Noticed by code reading.
29653 2005-02-09 Thomas Quinot <quinot@adacore.com>
29655 * exp_util.ads: Minor correction in comment.
29657 2005-02-09 Arnaud Charlet <charlet@adacore.com>
29659 * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
29660 since this procedure is now too complex to be worth inlining.
29662 2005-02-09 Richard Henderson <rth@redhat.com>
29664 * utils.c (gnat_define_builtin): Remove.
29665 (gnat_install_builtins): Use build_common_builtin_nodes.
29667 2005-02-09 Arnaud Charlet <charlet@adacore.com>
29669 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
29670 a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
29671 a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
29672 a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
29673 a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
29674 a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
29675 a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
29676 a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
29677 a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
29678 a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
29679 a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
29680 a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
29681 a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
29682 a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
29683 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
29684 a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
29685 a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
29686 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
29687 a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
29688 a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
29689 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
29690 a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
29691 a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
29692 a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
29693 a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
29694 a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
29695 a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
29696 a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
29697 a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
29698 a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
29699 a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
29700 a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
29701 a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
29702 a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
29705 2005-01-27 Laurent Guerby <laurent@guerby.net>
29707 * Makefile.in: Fix a-intnam.ads from previous commit,
29708 add 2005 to copyright.
29709 * a-intman-rtems.ads: Renamed to...
29710 * a-intnam-rtems.ads:
29712 2005-01-27 Laurent Guerby <laurent@guerby.net>
29714 * Makefile.in: Rename GNAT RTEMS specific files.
29715 * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
29716 5rosinte.ads, 5rparame.adb: Replaced by files below.
29717 * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
29718 s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
29720 2005-01-27 Joel Sherrill <joel.sherrill@oarcorp.com>
29721 Laurent Guerby <laurent@guerby.net>
29724 * 5rosinte.ads: Add No_Key constant.
29725 * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
29726 * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
29728 2005-01-26 Laurent Guerby <laurent@guerby.net>
29731 * i-cobol.adb (Valid_Numeric): Handle zero length case.
29733 2005-01-20 Richard Henderson <rth@redhat.com>
29735 * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
29736 a-intnam-linux.ads and system-linux-alpha.ads.
29737 * a-intnam-linux-alpha.ads: Remove file.
29738 * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
29739 * system-linux-alpha.ads: New file.
29741 2005-01-18 Jakub Jelinek <jakub@redhat.com>
29744 * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
29745 set to the new string.
29747 2005-01-18 Toon Moene <toon@moene.indiv.nluug.nl>
29749 * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
29752 2005-01-18 Richard Henderson <rth@redhat.com>
29754 * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
29755 THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
29757 * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
29759 2005-01-14 Andrew Pinski <pinskia@physics.uc.edu>
29761 * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
29762 (GCC_ZCX_Support): Likewise.
29764 2005-01-11 Bastian Blank <waldi@debian.org>
29766 * system-linux-s390.ads: Define Preallocated_Stacks.
29767 * system-linux-s390x.ads: Likewise.
29769 2005-01-04 Arnaud Charlet <charlet@adacore.com>
29771 * gnat_ugn.texi: Fix texi errors with null variables.
29773 2005-01-03 Thomas Quinot <quinot@adacore.com>
29775 * gen-soccon.c: New utility program to generate g-soccon.ads
29778 * socket.c, gsocket.h: Split inclusion of system header files into a
29779 gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
29781 * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
29782 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
29783 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
29784 g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
29785 should not be edited by hand anymore, but should be regenerated using
29788 2005-01-03 Robert Dewar <dewar@adacore.com>
29789 Ed Schonberg <schonberg@adacore.com>
29790 Vincent Celier <celier@adacore.com>
29792 * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
29793 on/off, since this is an obsolescent feature, for which we now generate
29796 * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
29797 warning mode is set and obsolescent usage of this attribute occurs.
29798 (Resolve_Access, case 'Access): Note that GNAT uses the context type to
29799 disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
29800 predates, and partly motivates, the adoption of the AI.
29801 Implement new Ada 2005 attribute Mod
29803 * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
29806 * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
29808 * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
29809 pragma restrictions.
29810 New entry for Ada 2005 attribute Mod.
29813 Add recognition of new pragma Restrictions No_Dependence
29814 Recognize restriction No_Obsolescent_Features at parse time
29816 * bcheck.adb: Add circuitry for checking for consistency of
29817 No_Dependence restrictions.
29819 * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
29822 * restrict.ads, restrict.adb: Add subprograms to deal with
29823 No_Dependence restrictions.
29825 * rtsfind.adb: Check that implicit with's do not violate No_Dependence
29828 * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
29829 sem_attr.adb: Add check for new restriction No_Obsolescent_Features
29831 * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
29832 dummy parameter to scng instantiation.
29833 Needed for new restriction No_Obsolescent_Features
29835 * scn.adb: (Obsolescent_Check): New procedure
29836 Needed for new restriction No_Obsolescent_Features
29838 * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
29839 specified by AI-285, needed for implementation of AI-388 (adding greek
29840 pi to Ada.Numerics).
29841 Add new generic formal to scng, needed for new restriction
29842 No_Obsolescent_Features.
29844 * s-rident.ads: Add new restriction No_Obsolescent_Features.
29846 * ali.ads, ali.adb: Adjustments for reading new No_Dependence
29847 restrictions lines.
29848 (Scan_ALI): When finding an unexpected character on an R line, raise
29849 exception Bad_R_Line, instead of calling Fatal_Error, so that, when
29850 Ignore_Errors is True, default restrictions are set and scanning of the
29851 ALI file continues with the next line. Also, when Bad_R_Line is raised
29852 and Ignore_Errors is True, skip to the end of le line.
29854 * sem_ch10.adb: Check that explicit with's do not violate
29855 No_Dependence restrictions.
29856 (Install_Withed_Unit): Add code to implement AI-377 and diagnose
29857 illegal context clauses containing child units of instance.
29859 * sem_prag.adb: Processing and checking for new No_Dependence
29861 (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
29862 analyze and check the External argument.
29864 * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
29866 2005-01-03 Robert Dewar <dewar@adacore.com>
29868 * atree.adb: Add a fifth component to entities
29869 This allows us to add 32 flags and four new fields
29871 * atree.ads: Add a fifth component to entities
29872 This allows us to add 32 flags and four new fields
29874 * einfo.ads, einfo.adb: Document new fields and new flags now available
29875 Add routines for printing new fields
29877 * treepr.adb: Call routines to print out additional fields if present
29879 2005-01-03 Arnaud Charlet <charlet@adacore.com>
29881 * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
29882 gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
29884 * Makefile.in: Add support to build shared Ada libraries on solaris x86
29885 Remove gpr2make, replaced by gprmake.
29886 Remove references to gnatmem and libaddr2line.
29887 Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
29888 (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
29889 Add support for specialized version of Ada.Numerics.Aux for Darwin: use
29890 a-numaux-darwin.ads and a-numaux-darwin.adb
29891 Enable mlib-tgt-lynxos.adb on lynxos.
29893 * Make-lang.in: Remove rules for gpr2make.
29894 When generating sdefault.adb, do not call Relocate_Path
29895 on S3 for function Target_Name, as it is not a path.
29896 Remove references to gnatmem and libaddr2line.
29898 * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
29901 2005-01-03 Samuel Tardieu <tardieu@adacore.com>
29903 * checks.adb (Apply_Alignment_Check): Generate a warning if an object
29904 address is incompatible with its base type alignment constraints when
29905 this can be decided statically.
29907 2005-01-03 Olivier Hainque <hainque@adacore.com>
29909 * decl.c (compatible_signatures_p): New function. The intended purpose
29910 is to check if two function signatures for a call-site and a callee are
29911 compatible enough for the call to be valid. The underlying purpose is
29912 to check if a call to a mapped builtin is using the right interface.
29913 The current code actually does not check antyhing - this a placeholder
29914 for future refinements.
29915 (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
29916 builtin calls for convention Intrinsic.
29918 * gigi.h (builtin_decl_for): Declare (new function).
29920 * utils.c (gnat_install_builtins): Install the target specific builtins.
29921 (builtin_decl_for): New function, provide a dummy body for now.
29923 2005-01-03 Geert Bosch <bosch@adacore.com>
29925 * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
29926 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
29927 (Pred): Implement in terms of Succ.
29929 * trans.c (convert_with_check): Reimplement conversion of float to
29932 2005-01-03 Ed Schonberg <schonberg@adacore.com>
29933 Vincent Celier <celier@adacore.com>
29935 * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
29936 bounds can be negative, and must be declared Int, not Nat.
29938 * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
29939 array is checked after using the index in the array.
29941 * makegpr.adb (Add_Switches): Check if there is a package for the
29942 processor. If there is no package, do not look for switches.
29944 2005-01-03 Ed Schonberg <schonberg@adacore.com>
29946 * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
29947 generation of predefined stream operations (specs and bodies) should
29948 proceed. Under various restrictions these subprograms must not be
29951 2005-01-03 Thomas Quinot <quinot@adacore.com>
29954 Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
29955 amount of PCS-specific code in RACW stubs generation.
29956 (Copy_Specification): Set Etype on copied formal parameter entities, as
29957 this information is needed for PolyORB stubs generation.
29958 (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
29959 variable Dynamic_Async.
29960 (Build_Subprogram_Receiving_Stubs): Make PCS-specific
29961 (Build_RPC_Receiver_Specification): Make generic again, as recent
29962 changes have allowed RPC receivers to have the same profile for both
29963 variants of the PCS.
29964 Reorganise RPC receiver generation to reduce differences between the
29965 structure of GARLIC and PolyORB RPC receivers.
29966 (Add_Receiving_Stubs_To_Declarations): Make this subprogram
29968 Simplify elaboration code for RCI packages.
29970 * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
29971 generation to reduce differences between the structure of GARLIC and
29972 PolyORB RPC receivers.
29974 * s-stratt.adb: Fix typo in comment.
29976 2005-01-03 Thomas Quinot <quinot@adacore.com>
29978 * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
29979 copied from Make_Init_Call).
29981 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
29982 reads and assignments on a temporary variable declared with appropriate
29985 2005-01-03 Robert Dewar <dewar@adacore.com>
29987 * i-c.adb (To_C): Raise CE if string is null and Append_Null
29989 2005-01-03 Robert Dewar <dewar@adacore.com>
29991 * i-cstrin.adb (Update): Do not append a null in form called with a
29992 String. This avoids unintended behavior.
29994 2005-01-03 Arnaud Charlet <charlet@adacore.com>
29997 * init.c: Fix warnings on Free BSD section.
29999 2005-01-03 Arnaud Charlet <charlet@adacore.com>
30002 * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
30005 2005-01-03 Vincent Celier <celier@adacore.com>
30007 * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
30008 libraries when Unique_Compile is True (-u switch).
30011 2005-01-03 Robert Dewar <dewar@adacore.com>
30013 * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
30014 upper case letter or underscore after W, as allowed by spec.
30016 2005-01-03 Arnaud Charlet <charlet@adacore.com>
30018 * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
30019 darwin port by using proper type definitions from header files.
30020 Use SIGTERM instead of SIGABRT for SIGADAABORT.
30022 2005-01-03 Robert Dewar <dewar@adacore.com>
30024 * par.adb: Enhance error message handling for configuration file
30027 2005-01-03 Robert Dewar <dewar@adacore.com>
30029 * s-arit64.adb (Double_Divide): Put back changes that got accidentally
30030 removed during the previous update (test properly for case of dividing
30031 largest negative number by -1, which generates overflow).
30033 2005-01-03 Ed Schonberg <schonberg@adacore.com>
30034 Sergey Rybin <rybin@adacore.com>
30036 * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
30037 to use as the defining identifier for a formal package.
30038 (Remove_Parent): If the instance takes place within (an instance of)
30039 a sibling, preserve private declarations of common parent.
30041 2005-01-03 Ed Schonberg <schonberg@adacore.com>
30043 * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
30044 to determine whether one of the operands is a fixed-point type for
30045 which a user-defined multiplication or division operation might be
30048 * sem_res.adb (Valid_Conversion): The legality rules for conversions
30049 of access types are symmetric in Ada 2005: either designated type can
30052 2005-01-03 Vincent Celier <celier@adacore.com>
30054 * s-fileio.adb (Temp_File_Record): Change length of string component
30055 Name from L_tmpnam + 1 to max_path_len + 1.
30057 2005-01-03 Arnaud Charlet <charlet@adacore.com>
30059 * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
30060 Self_Id.Deferral_Level = 0.
30061 (Do_Pending_Action): Move this function to the spec.
30063 * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
30064 Do_Pending_Action explicitely when needed, in case we're using
30065 No_Abort restrictions.
30067 * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
30068 deferral level since it will not get changed by the generated code.
30069 Keeping a default value of 1 would prevent some operations (e.g.
30070 select or delay) to proceed successfully.
30072 2005-01-03 Ben Brosgol <brosgol@adacore.com>
30073 Robert Dewar <dewar@adacore.com>
30074 Cyrille Comar <comar@adacore.com>
30076 * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
30077 porting guide chapter (vms version).
30078 Revised doc title (removed "for native platforms") and subtitle.
30079 Add discussion on warning flag for obsolescent features. First we
30080 note that it applies to obsolete GNAT features, which was previously
30081 omitted. Second we contrast the behavior with that of the new
30082 Ada 2005 AI-368 restriction No_Obsolescent_Features.
30083 Preliminary rewriting of GNAT & libraries chapter in order to take
30084 into account default project locations & new project manager
30087 2005-01-03 Robert Dewar <dewar@adacore.com>
30089 * cstand.adb (Create_Operators): Clean up format and documentation of
30090 unary and binary operator result tables. No change in code, just
30091 reformatting and addition of comments.
30093 * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
30094 sem_ch2.adb: Minor reformatting
30096 * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
30097 sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
30098 comments for Tree_Read and Tree_Write.
30100 2005-01-03 Pascal Obry <obry@adacore.com>
30102 * exp_attr.ads: Minor reformatting.
30104 2005-01-03 Romain Berrendonner <berrendo@adacore.com>
30106 * comperr.adb (Compiler_Abort): Add specialized message for GAP
30109 2005-01-03 Ed Schonberg <schonberg@adacore.com>
30111 * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
30112 whether the ancestor type is private, as may be the case with nested
30115 2004-12-30 Sohail Somani <sohail@sohailsomani.com>
30118 * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
30120 2004-12-23 Eric Botcazou <ebotcazou@libertysurf.fr>
30122 * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
30123 * utils2.c (build_unary_op): Likewise.
30125 2004-12-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30127 * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
30129 2004-12-19 Richard Henderson <rth@redhat.com>
30131 * trans.c (gigi): Update gimplify_body call.
30133 2004-12-09 Nathan Sidwell <nathan@codesourcery.com>
30135 * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
30137 2004-12-07 Ed Falis <falis@adacore.com>
30139 * s-intman-vxworks.adb (Notify_Exception): removed useless check for
30140 current task being suspended.
30142 * init.c (__gnat_clear_exception): added to reset VxWorks exception
30144 (__gnat_map_signal): removed test for current task being suspended.
30146 2004-12-07 Gary Dismukes <dismukes@adacore.com>
30148 * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
30149 from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
30150 targets (such as AAMP).
30152 2004-12-07 Ed Schonberg <schonberg@adacore.com>
30154 * atree.adb (Visit_Itype): Create a new name for the generated itype,
30155 because the back-end may otherwise treat it as a redefinition of the
30158 2004-12-07 Eric Botcazou <ebotcazou@adacore.com>
30160 * back_end.adb (Scan_Back_End_Switches): Accept --param.
30162 * lang-specs.h: Accept --param.
30164 2004-12-07 Vincent Celier <celier@adacore.com>
30166 * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
30167 package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
30168 Current_Body_Suffix => Ada_Body_Suffix).
30169 Take into account Externally_Built attribute.
30171 * clean.adb (In_Extension_Chain): Always return False when one of the
30172 parameter is No_Project.
30173 (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
30174 Ada_Language_Index).
30175 (Gnatclean): Adapt to change in package Prj.Pars (no parameter
30176 Process_Languages for procedure Parse).
30178 * gnatcmd.adb (Carg_Switches): New table.
30179 (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
30180 Adapt to name changes in package Prj (Current_Spec_Suffix =>
30181 Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
30183 * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
30184 Header_Num and function Hash are now declared in package Prj,
30187 * prj.adb (Suffix_Of): New function.
30188 (Set (Suffix)): New procedure.
30189 (Hash): One function moved from Prj.Com
30190 (Is_Present, Language_Processing_Data_Of): New functions
30191 (Set): Two new procedures
30192 (Add_Language_Name, Display_Language_Name): New procedures
30194 * prj.ads: (Suffix_Of): New function
30195 (Set (Suffix)): New procedure
30196 Add several types and tables for multi-language support.
30197 (Header_Num): Type moved from Prj.Com
30198 (Hash): Two functions moved from Prj.Com
30199 (Is_Present, Language_Processing_Data_Of): New functions
30200 (Set): Two new procedures
30201 (Add_Language_Name, Display_Language_Name): New procedures
30202 (Naming): Component name changes:
30203 Current_Spec_Suffix => Ada_Spec_Suffix,
30204 Current_Body_Suffix => Ada_Body_Suffix. Add new components:
30205 Impl_Suffixes, Supp_Suffixes.
30206 (Project_Data): New components: Externally_Built, Supp_Languages,
30207 First_Language_Processing, Supp_Language_Processing, Default_Linker,
30208 Default_Linker_Path.
30210 * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
30211 new package Language_Processing with its attributes (Compiler_Driver,
30212 Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
30213 Binder_Driver, Default_Linker).
30215 * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
30216 (Header_Num): Type moved to package Prj
30218 * prj-env.adb: Adapt to name changes in package Prj
30219 (Current_Spec_Suffix => Ada_Spec_Suffix,
30220 Current_Body_Suffix => Ada_Body_Suffix).
30222 * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
30223 default to the project path, except the "-" is one of the directories
30224 in env var ADA_PROJECT_PATH.
30225 (Current_Project_Path): Global variable, replacing Project_Path
30226 that was in the body of Prj.Part.
30227 (Project_Path): New function
30228 (Set_Project_Path): New procedure
30229 Initialize Current_Project_Path during elaboration of the package
30230 Remove dependency on Prj.Com, no longer needed
30232 * prj-ext.ads (Project_Path): New function
30233 (Set_Project_Path): New procedure
30235 * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
30236 suffix is defined for language <lang>.
30237 (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
30238 accessing directly the components of Naming.
30239 (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
30240 Reorganise of this package.
30241 Break procedure Check in several procedures.
30243 * prj-nmsc.ads: Replace all procedures (Ada_Check,
30244 Other_Languages_Check and Language_Independent_Check) with a single
30247 * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
30248 Process_Languages, no longer needed.
30250 * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
30251 Current_Project_Path.
30252 Remove elaboration code, moved to the body of Prj.Ext
30253 Use new function Prj.Ext.Project_Path instead of old variable
30255 (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
30256 When comparing with project paths on the stack, first put the resolved
30257 path in canonical case.
30258 (Parse_Single_Project): Set the path name of the project file in the
30259 tree to the normalized path.
30261 * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
30262 parameter Process_Languages, no longer needed.
30263 (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
30264 Other_Languages_Check.
30266 * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
30267 to store the resolved canonical path of the project file.
30268 Remove dependency to Prj.Com, no longer needed
30270 * prj-util.adb: Adapt to name changes in package Prj
30271 (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
30274 * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
30275 Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
30276 Externally_Built, Include_Option, Language_Processing.
30278 * makegpr.adb: Numerous changes due to changes in packages
30281 * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
30282 default to the project path, except whe "-" is one of the directories
30283 in env var ADA_PROJECT_PATH.
30284 (Gnatls): In verbose mode, add the new section "Project Search Path:"
30286 2004-12-07 Robert Dewar <dewar@adacore.com>
30288 * debug.adb: Document that -gnatdA automatically sets -gnatR3m
30290 * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
30293 * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
30294 flag. No longer needed now that we handle this in gnat1drv.adb.
30296 * repinfo.ads: Minor reformatting
30298 2004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30299 Olivier Hainque <hainque@adacore.com>
30300 Eric Botcazou <ebotcazou@adacore.com>
30302 * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
30303 TYPE_SIZE_UNIT of result type if SIZE is not specified.
30304 (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
30305 of a bitfield, which we know is useless and causes trouble because of
30306 alignment implications.
30308 * utils.c (create_var_decl): Set DECL_COMMON again on targets without
30310 (process_attributes): Clear DECL_COMMON again when a section attribute
30312 (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
30313 SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
30314 (create_field_decl): Special case ADDRESSABLE negative to mean
30315 "no bitfield creation", to be used by make_aligning_type. Don't
30316 restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
30317 fields claimed addressable still have to be bitfields. Use
30318 value_factor_p instead of a raw binop construction to check for the
30319 position's alignment.
30321 2004-12-07 Geert Bosch <bosch@adacore.com>
30323 * eval_fat.adb: Revert previous change.
30325 2004-12-07 Thomas Quinot <quinot@adacore.com>
30326 Ed Schonberg <schonberg@adacore.com>
30328 * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
30329 with an implicit dereference as its prefix, use
30330 Insert_Explicit_Dereference instead of merely rewriting the prefix into
30331 an explicit dereference. This ensures that a reference to the original
30332 prefix is generated, if appropriate.
30334 * sem_util.adb (Insert_Explicit_Dereference): When an implicit
30335 dereference is rewritten to an explicit one, generate a reference to
30336 the entity denoted by its prefix using the original prefix node, so
30337 the dereference can be properly recorded as a read of the denoted
30338 access value, if appropriate.
30340 * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
30341 emitting 'assigned but never read' warning on a variable on the basis
30342 that it has an access type.
30343 (Check_References): Emit unreferenced warning when the scope is a
30346 2004-12-07 Robert Dewar <dewar@adacore.com>
30347 Ed Schonberg <schonberg@adacore.com>
30349 * exp_ch6.adb (Expand_Call): Add comment on handling of back end
30352 * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
30353 leaving call unchanged.
30354 This deals with the case where the pragma Import specified
30355 an external name, to be handled by the back end.
30357 * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
30358 subprogram which is Imported with convention Intrinsic if an
30359 External_Name argument is specified.
30360 (Process_Import_Or_Interface): Properly diagnose link name argument.
30361 (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
30362 with Sem_Ch6.Cannot_Inline.
30363 (Process_Inline): Provide separate warning for inapplicable inline
30365 (Cannot_Inline): Reject subprograms that have an at_end handler, so that
30366 treatment is uniform on different targets.
30368 2004-12-07 Ed Schonberg <schonberg@adacore.com>
30370 * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
30371 construct is rewritten, preserve end label to permit source navigation.
30373 2004-12-07 Thomas Quinot <quinot@adacore.com>
30375 * exp_dist.adb (Specific_Build_General_Calling_Stubs,
30376 Specific_Build_Stub_Target): New subprograms.
30377 (Build_Subprogram_Calling_Stubs): Make this procedure independent from
30378 the PCS implementation used, using the above PCS-customized subprograms.
30379 Minor reformatting.
30380 (PolyORB_Support.Helpers): New subunit containing supporting subprograms
30381 for generation of DSA code targeted to the PolyORB PCS.
30382 (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
30383 implementation of the partition communication subsystem in ancillary
30385 (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
30386 PolyORB_Support.Build_Stub_Type): New subrograms containing the
30387 PCS-specific part of Add_Stub_Type.
30388 (Insert_Partition_Check): Use runtime library function to perform
30391 * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
30392 (RE_Same_Partition): New entity, from s-parint.
30394 * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
30396 2004-12-07 Gary Dismukes <dismukes@adacore.com>
30398 * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
30399 Output the copyright message on a separate line from the version
30402 2004-12-07 Joel Brobecker <brobecker@adacore.com>
30404 * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
30405 compile-time warning.
30407 2004-12-07 Robert Dewar <dewar@adacore.com>
30409 * g-regpat.adb: (Match): Change a misuse of or to or else
30411 2004-12-07 Ed Schonberg <schonberg@adacore.com>
30414 (Generate_Reference): Handle properly a reference to an entry formal,
30415 when an accept statement has a pragma Unreferenced for it.
30417 * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
30418 and the Has_Pragma_Unreferenced flag for each formal before analyzing
30419 the body, to ensure that warnings are properly emitted for each accept
30420 statement of a given task entry.
30422 2004-12-07 Vasiliy Fofanov <fofanov@adacore.com>
30424 * Makefile.in: Add support for foreign threads on VMS.
30426 2004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30428 * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
30430 (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
30432 * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
30434 * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
30436 (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
30438 2004-12-07 Robert Dewar <dewar@adacore.com>
30440 * nlists.adb (Prepend_Debug): Remove parameters and nest within
30442 (Remove_Next_Debug): Same fix
30444 * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
30445 maintain back pointers now, though we did not used to, and comments
30447 (Prepend): Remove pragma Inline.
30448 (Remove_Next): Same cleanup
30450 2004-12-07 Thomas Quinot <quinot@adacore.com>
30452 * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
30453 used to record an implicit dereference as a read operation on its
30454 prefix when operating under -gnatc. Necessary to avoid spurious
30455 'variable assigned but never read' warnings in that mode.
30456 (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
30457 is a non-overloaded implicit dereference, call the above subprogram to
30458 ensure proper recording of references.
30460 2004-12-07 Gary Dismukes <dismukes@adacore.com>
30462 * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
30463 to be resolved later as part of Analyze_Iteration_Scheme's call to
30466 2004-12-07 Ed Schonberg <schonberg@adacore.com>
30468 * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
30469 prefix is not a scalar type, place error message on prefix, not on
30472 2004-12-07 Bernard Banner <banner@adacore.com>
30474 * vxaddr2line.adb: Add support for x86 vxworks
30476 2004-12-07 Thomas Quinot <quinot@adacore.com>
30478 * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
30479 documentation of the behaviour of these functions when passed an IP
30480 address that has no record in the system hosts database and no reverse
30483 * cstand.adb, a-tags.ads: Fix typos in comment.
30485 2004-12-07 Robert Dewar <dewar@adacore.com>
30487 * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
30488 exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
30489 sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
30490 s-poosiz.ads: Minor reformatting
30492 * make.adb: Minor reformatting
30493 Add some ??? comments asking for more comments
30495 * s-poosiz.adb: Minor reformatting
30496 Add comments on alignment requirement
30498 * sinfo.ads: Remove obsolete comment and fix typo.
30500 2004-12-07 Vincent Celier <celier@adacore.com>
30501 Sergey Rybin <rybin@adacore.com>
30503 * gnat_ugn.texi: Update the section "The GNAT Driver and Project
30504 Files" with the new tool and package names.
30505 Reformatting to suppress most of the warnings for line too long
30506 Document the new section "Project Search Path:" in the output of
30508 Add gnatmetric section
30510 2004-12-07 Vincent Celier <celier@adacore.com>
30512 * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
30513 -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
30514 and -eit to -ept. Added qualifier
30515 /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
30517 2004-11-27 Andreas Schwab <schwab@suse.de>
30519 * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
30521 2004-11-25 Arnaud Charlet <charlet@adacore.com>
30523 * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
30524 internal implementation unit GNAT.Sockets.Thin,
30525 as their usage for sockets is non-portable (using the read and write
30526 functions from the system runtime library is fine on UNIX but won't
30527 work under Windows).
30529 * mingw32.h: Update copyright notice.
30531 2004-11-25 Arnaud Charlet <charlet@adacore.com>
30533 * ada-tree.h: Minor reformatting of previous change to avoid lines
30534 longer than 79 characters.
30536 2004-11-25 Olivier Hainque <hainque@adacore.com>
30538 * tb-gcc.c: GCC infrastructure based implementation of
30541 2004-11-24 Steven Bosscher <stevenb@suse.de>
30543 * misc.c (gnat_post_options): Don't clear
30544 flag_inline_functions.
30546 2004-11-22 Andrew Pinski <pinskia@physics.uc.edu>
30549 * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
30552 2004-11-21 Andreas Jaeger <aj@suse.de>
30554 * stylesw.adb: Change Style_Check_Subprogram_Order to
30555 Style_Check_Order_Subprograms.
30557 2004-11-18 Arnaud Charlet <charlet@adacore.com>
30559 * adaint.h, adaint.c
30560 (__gnat_portable_spawn): Fix cast of spawnvp third parameter
30562 Add also a cast to kill another warning.
30563 (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
30564 parameter with the priority class of the parent process instead of
30565 always using the NORMAL_PRIORITY_CLASS.
30566 (__gnat_dup): New function.
30567 (__gnat_dup2): New function.
30568 (__gnat_is_symbolic_link): Enable the effective body of this
30569 function when __APPLE__ is defined.
30571 * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
30574 2004-11-18 Olivier Hainque <hainque@adacore.com>
30576 * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
30577 address of which may be used to represent "others" and "all others"
30578 choices in exception tables, instead of the current harcoded
30579 (void *)0 and (void *)1.
30580 (Setup_Exception): Do nothing in the GNAT SJLJ case.
30582 * gigi.h (others_decl, all_others_decl): New decls representing the
30583 new Others_Value and All_Others_Value objects.
30584 (struct attrib): Rename "arg" component as "args", since GCC expects a
30585 list of arguments in there.
30587 * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
30588 corresponding objects exported by a-exexpr, instead of hardcoded dummy
30591 * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
30592 others_decl and all_others_decl instead of hardcoded dummy addresses
30593 to represent "others" and "all others" choices, which is cleaner and
30594 more flexible with respect to the possible eh pointer encoding policies.
30596 * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
30597 (process_attributes): Account for the naming change of the "args"
30598 attribute list entry component.
30600 * decl.c (build_attr_list): Rename into prepend_attributes to allow
30601 cumulating attributes for different entities into a single list.
30602 (gnat_to_gnu_entity): Use prepend_attributes to build the list of
30603 attributes for the current entity and propagate first subtype
30604 attributes to other subtypes.
30605 <E_Procedure>: Attribute arguments are attr->args and not
30606 attr->arg any more.
30607 (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
30608 argument provided, as this is what GCC expects. Use NULL_TREE instead
30611 2004-11-18 Robert Dewar <dewar@adacore.com>
30613 * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
30614 Minor reformatting througout (including new function specs)
30615 Add ??? comments asking for clarification.
30617 2004-11-18 Thomas Quinot <quinot@adacore.com>
30619 * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
30620 incomplete duplicate implementation of this subprogram from butil.
30622 2004-11-18 Thomas Quinot <quinot@adacore.com>
30624 * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
30625 procedures factors the common processing for building an RPC receiver
30626 for an RCI package or an RACW type.
30627 Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
30628 Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
30629 (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
30631 (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
30633 (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
30635 (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
30636 distribution subprogram identifiers that are either subprogram numbers
30638 (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
30639 string distribution identifiers assigned to a given subprogram.
30640 (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
30641 (Add_RAS_Dereference_TSS): Add comments.
30642 (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
30643 is not referenced yet because it will be used by the PolyORB DSA
30645 (Insert_Partition_Check): Remove fossile code.
30646 (First_RCI_Subprogram_Id): Document this constant.
30647 (Add_RAS_Access_TSS): Correct the setting of the Etype of the
30649 (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
30650 replaced with calls to Get_Library_Unit_Name_String. Previously there
30651 were several instances of the same code in different locations in the
30652 compiler; this checkin completes the replacement of all of these
30653 instances with calls to a common subprogram.
30654 Minor reformatting.
30656 * sem_dist.adb: Remove comment noting that RPC receiver generation
30657 should be disabled for RACWs that implement RASs.
30658 (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
30660 * sem_util.ads, sem_util.adb (Has_Stream): New function
30661 (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
30662 qualified name of a library unit into the name buffer.
30663 (Note_Possible_Modification): Generate a reference only
30664 if the context comes from source.
30666 * snames.ads (PCS_Names): New subtype corresponding to names of
30667 supported implementations of the Partition Communication Subsystem
30668 (PCS) (i.e. the runtime library support modules for the distributed
30671 2004-11-18 Robert Dewar <dewar@adacore.com>
30672 Ed Schonberg <schonberg@adacore.com>
30674 * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
30675 (Has_Rep_Pragma): New function
30676 (Has_Attribute_Definition_Clause): New function
30677 (Record_Rep_Pragma): Moved here from sem_ch13.adb
30678 (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
30680 * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
30682 * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
30683 (Expand_Pragma_Psect_Object): New procedure
30684 These procedures contain the revised and cleaned up processing for
30685 these two pragmas. This processing was formerly in Sem_Prag, but
30686 is more appropriately moved here. The cleanup involves making sure
30687 that the pragmas are properly attached to the tree, and that no
30688 nodes are improperly shared.
30690 * sem_prag.adb: Move expansion of Common_Object and Psect_Object
30691 pragmas to Exp_Prag, which is more appropriate.
30692 Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
30693 check for duplicates Remove use of Is_Psected flag, no longer needed.
30694 Use new Make_String_Literal function with string.
30696 * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
30697 that are functions return universal values, that have to be converted
30698 to the context type.
30699 Use new Make_String_Literal function with string.
30700 (Get_Stream_Convert_Pragma): New function, replaces the use of
30701 Get_Rep_Pragma, which had to be kludged to work in this case.
30703 * freeze.adb: Use new Has_Rep_Pragma function
30705 * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
30706 function with string.
30707 Use new Has_Rep_Pragma function.
30709 * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
30712 2004-11-18 Robert Dewar <dewar@adacore.com>
30714 * errout.ads, errout.adb: (First_Sloc): New function
30716 * par-ch5.adb (P_Condition): Check for redundant parens is now a style
30717 check (-gnatyx) instead of being included as a redundant construct
30720 * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
30721 Style_Check_Order_Subprograms.
30723 * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
30724 stylesw.adb: Add Style_Check_Xtra_Parens
30726 * usage.adb: Add line for -gnatyx (check extra parens)
30728 * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
30730 2004-11-18 Ed Schonberg <schonberg@adacore.com>
30731 Robert Dewar <dewar@adacore.com>
30733 * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
30734 discriminant of a constrained subtype, analyze the copy of the
30735 corresponding constraint, because in some cases it may be only
30736 partially analyzed.
30737 Removes long-lived ??? comments.
30739 * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
30740 handled controlled or secondary-stack expressions within the
30741 iteration_scheme of a loop.
30743 * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
30744 bounds that may contain functions calls, to prevent memory leaks when
30745 the bound contains a call to a function that uses the secondary stack.
30746 (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
30747 generate temporaries for loop bounds that might contain function calls
30748 that require secondary stack and/or finalization actions.
30750 * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
30751 selected component and the selector is overloadable (not just a
30752 function) treat as function call, Analyze_Call will disambiguate if
30754 (Analyze_Selected_Component): Do not generate an actual subtype for the
30755 selected component if expansion is disabled. The actual subtype is only
30756 needed for constraint checks.
30757 (Analyze_Allocator): If restriction No_Streams is set, then do
30758 not permit objects to be declared of a stream type, or of a
30759 composite type containing a stream.
30761 * restrict.ads: Remove the a-stream entry from Unit_Array, since
30762 No_Streams no longer prohibits with'ing this package.
30764 * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
30765 discriminants, but the parent base has unknown discriminants, there is
30766 no discriminant constraint to inherit. Such a discrepancy can arise
30767 when the actual for a formal type with unknown discriminants is a
30768 similar private type whose full view has discriminants.
30769 (Analyze_Object_Declaration): If restriction No_Streams is set, then
30770 do not permit objects to be declared of a stream type, or of a
30771 composite type containing a stream.
30773 2004-11-18 Ed Schonberg <schonberg@adacore.com>
30775 * exp_dbug.ads: Update documentation to reflect simpler encoding for
30776 protected operations.
30778 * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
30779 generated name, it complicates decoding in gdb and hinders debugging
30780 of protected operations.
30781 (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
30782 flag for the protected entry barrier function.
30783 (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
30784 flag for the protected entry function.
30786 2004-11-18 Nicolas Setton <setton@adacore.com>
30788 * expect.c: Define __unix__ when __APPLE__ is defined.
30790 * Makefile.in: Inform the value of the variable GMEM_LIB in the
30791 Darwin-specific section.
30793 * lang-specs.h: Change the placement of the %1 marker.
30794 Works around the fact that gcc adds -fPIC by default under Darwin.
30796 2004-11-18 Ed Schonberg <schonberg@adacore.com>
30798 * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
30799 type of the object with the packed array type, set the Analyzed flag
30800 on the object if it is an entity or simple indexed component, to avoid
30801 spurious type errors.
30803 2004-11-18 Gary Dismukes <dismukes@adacore.com>
30805 * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
30806 gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
30807 separate line from the version message.
30809 2004-11-18 Ed Falis <falis@adacore.com>
30811 * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
30813 (init_float): Eliminate initialization of floating point status for
30814 AE653. The instructions have no effect for vThreads.
30816 2004-11-18 Vincent Celier <celier@adacore.com>
30818 * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
30819 gnatbind is invoked with -shared.
30821 2004-11-18 Jose Ruiz <ruiz@adacore.com>
30823 * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
30824 for Detect_Blocking which is redundant with the check done within the
30825 procedure Protected_Single_Entry_Call.
30826 (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
30827 Detect_Blocking which is redundant with the check done within the
30828 procedure Protected_Single_Entry_Call.
30830 2004-11-18 Vincent Celier <celier@adacore.com>
30832 * makegpr.adb (Compile): Put the compiling switches (in package
30833 Compiler and on the command line) immediately after "-c", instead of
30834 at the end of the command line invocation of the compiler, when
30835 compiling a non-Ada file.
30836 (Build_Global_Archive): When there is no need to rebuild the archive,
30837 set Global_Archive_Exists, so that the archive is passed to the linker
30840 2004-11-18 Robert Dewar <dewar@adacore.com>
30841 Sergey Rybin <rybin@adacore.com>
30844 Remove extra paren check from list of checks for redundant constructs
30845 Add documentation of new -gnatyx style check (check extra parens)
30846 Remove paragraph about gnatelim debug options.
30848 * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
30849 objects rather than forbidding dependencies on the package Ada.Streams.
30851 * sinfo.ads: Add ??? note that we should document pragmas passed to
30854 * g-expect.ads: Fix a few typos in the comments.
30856 2004-11-09 Joseph S. Myers <joseph@codesourcery.com>
30858 * misc.c (gnat_handle_option): Use %< and %> for quoting in
30861 2004-11-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
30863 * a-numaux-x86.adb (Tan): Fix fdivp syntax.
30865 2004-11-07 Andreas Schwab <schwab@suse.de>
30867 * Makefile.in (install-gnatlib): Remove spurious hyphen.
30869 2004-11-02 Andrew Pinski <pinskia@physics.uc.edu>
30872 * Makefile.in (darwin): Set soext to .dylib.
30874 2004-10-26 Vincent Celier <celier@gnat.com>
30875 Thomas Quinot <quinot@act-europe.fr>
30877 * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
30878 (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
30879 there is no use of GNAT.Sockets.Constants.
30880 Remove remaining pragma Import for C_Write
30881 Remove C_Read and C_Write from internal implementation unit
30882 GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
30883 the read and write functions from the system runtime library is fine
30884 on UNIX but won't work under Windows).
30886 * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
30887 (Check_Selector): Use C_Recv instead of C_Read.
30888 Selectors are the GNAT.Sockets abstraction to perform a select()
30889 call on a set of descriptors. To allow abortion of an ongoing
30890 select operation, some data is written to a dedicated socket that
30891 is always monitored.
30892 Under Windows, the write and read library functions cannot operate
30893 on sockets, so we need to use send and recv instead, which is portable
30894 across all supported platforms.
30896 * g-socthi.ads: Remove C_Read and C_Write from internal implementation
30897 unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
30898 (using the read and write functions from the system runtime library is
30899 fine on UNIX but won't work under Windows).
30901 2004-10-26 Nicolas Setton <setton@act-europe.fr>
30903 * mlib-tgt-darwin.adb: New file.
30905 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30906 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
30907 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
30908 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
30911 * Makefile.in: Add support for building shared libraries under Darwin.
30912 (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
30913 the low level EH init subprogram to be called from __gnat_initialize.
30915 * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
30916 indicates which options to pass to the archive indexer.
30918 * mlib-utl.adb: Add support for calling ranlib with additional
30919 options. This is needed for instance under Mac OS X.
30920 (Ranlib_Options): New global variable, used to store the potential
30921 options to pass to ranlib.
30922 (Ar): Use Ranlib_Options when spawning ranlib.
30923 (Initialize): Set the value of ranlib option.
30925 2004-10-26 Olivier Hainque <hainque@act-europe.fr>
30927 * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
30928 instead of 8K, to reflect the real potential needs for stack-checking
30931 2004-10-26 Pascal Obry <obry@gnat.com>
30933 * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
30935 * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
30936 Windows only the initial thread stack size can be set so it is good to
30937 start we a low stack size.
30938 The OS will adjust the size as needed.
30940 2004-10-26 Olivier Hainque <hainque@act-europe.fr>
30941 Nicolas Setton <setton@act-europe.fr>
30943 * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
30944 "__unix__" instead of "unix".
30945 The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
30946 sections were just mistakenly ignored. The former is
30947 implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
30948 Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
30949 of hpux. This prevents an unwanted definition of the symbol
30950 convert_addresses in adaint.o.
30952 2004-10-26 Gary Dismukes <dismukes@gnat.com>
30954 * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
30955 compatibility with type Unwind_Word on 16-bit targets such as AAMP.
30957 2004-10-26 Cyrille Comar <comar@act-europe.fr>
30959 * a-filico.ads, a-filico.adb: fix incorrect header.
30961 2004-10-26 Javier Miranda <miranda@gnat.com>
30963 * a-ststio.ads: Fix typo in identifier
30965 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
30967 * sem_ch4.adb: Minor reformatting.
30969 2004-10-26 Ed Schonberg <schonberg@gnat.com>
30971 * checks.adb (Expr_Known_Valid): If floating-point validity checks are
30972 enabled, check the result of unary and binary operations when the
30973 expression is the right-hand side of an assignment.
30975 2004-10-26 Vincent Celier <celier@gnat.com>
30977 * clean.adb (Delete): Do not output warnings when in quiet output and
30978 not in verbose mode.
30979 (Force_Deletions): New Boolean flag, defaulted to False
30980 (Delete): Only delete a file if it is writable, and when
30981 Force_Deletions is True.
30982 (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
30983 (Usage): Line for new switch -f
30984 (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
30987 2004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
30989 * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
30990 JM type only if its size matches that of the wrapper. When a size is
30991 prescribed and the field is not aliased, remove the wrapper of a JM
30992 type only if the size is not greater than that of the packed array.
30993 (gnat_to_gnu_entity): Change the extension of packed array wrappers
30996 2004-10-26 Geert Bosch <bosch@gnat.com>
30998 * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
30999 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
31000 (Pred): Implement in terms of Succ.
31002 2004-10-26 Ed Schonberg <schonberg@gnat.com>
31004 * exp_aggr.adb (Safe_Component): An aggregate component that is an
31005 unchecked conversion is safe for in-place use if the expression of the
31006 conversion is safe.
31007 (Expand_Array_Aggregate): An aggregate that initializes an allocator may
31008 be expandable in place even if the aggregate does not come from source.
31009 (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
31010 designated object of an allocator in place, rather than building it
31011 first on the stack. The previous scheme forces a full copy of the array,
31012 and may be altogether unsusable if the size of the array is too large
31013 for stack allocation.
31015 2004-10-26 Robert Dewar <dewar@gnat.com>
31017 * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
31018 compares if the component is atomic.
31020 * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
31021 array assignment if the component type is atomic.
31023 2004-10-26 Ed Schonberg <schonberg@gnat.com>
31024 Eric Botcazou <ebotcazou@act-europe.fr>
31026 * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
31027 is aliased and is a by_reference type, do not pass by copy.
31028 (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
31029 detect whether the call is in the right side of an assignment or
31030 the expression of an object declaration. Recurse on component
31031 association within aggregates.
31032 Call it in the condition that determines whether the temporary is
31033 necessary for correct stack-checking.
31035 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
31037 * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
31038 RACW_Type, used in the PolyORB version.
31039 Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
31040 version and the GARLIC version.
31042 * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
31043 Rename RCI_Info to RCI_Locator for better consistency between the
31044 GARLIC and PolyORB versions of the distributed systems annex.
31045 (DSA_Implementation_Name): This enumeration lists the possible
31046 implementations of the Partition Communication Subsystem for the
31047 Distributed Systems Annex (DSA). The three available implementations
31048 are the dummy stub implementation (No_DSA), and two versions based on
31049 two different distribution runtime libraries: GARLIC and PolyORB. Both
31050 the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
31052 Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
31055 * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
31056 between the GARLIC and PolyORB versions of the distributed systems
31058 Remove RE_Unbounded_Reclaim_Pool since it is unused.
31060 2004-10-26 Gary Dismukes <dismukes@gnat.com>
31062 * gnat1drv.adb: Suppress calling the back end when
31063 Frontend_Layout_On_Target is true.
31065 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
31067 * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
31068 Set_Read_Only): New subprograms.
31069 These new routines allow the user to set or unset the Owner execute
31070 and Owner write permission flags on a file.
31072 * makegpr.adb, mlib.adb, mlib-prj.adb: Use
31073 GNAT.OS_Lib.Set_Executable instead of rolling our own.
31075 2004-10-26 Matthew Gingell <gingell@gnat.com>
31077 * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
31079 2004-10-26 Pascal Obry <obry@gnat.com>
31081 * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
31082 memory before the faulting page we properly test the process read
31083 access for this address using appropriate Win32 routine.
31084 (HPUX sections): guard with "__hpux__" instead of "hpux".
31086 2004-10-26 Robert Dewar <dewar@gnat.com>
31088 * lib-xref.adb (Generate_Reference): Don't complain about reference to
31089 entry parameter if pragma Unreferenced set, since we do not properly
31090 handle the case of multiple parameters.
31092 2004-10-26 Vincent Celier <celier@gnat.com>
31094 * prj-env.adb: (Contains_ALI_Files): New Boolean function
31095 (Ada_Objects_Path.Add): For a library project, add to the object path
31096 the library directory only if there is no object directory or if the
31097 library directory contains ALI files.
31098 (Set_Ada_Paths.Add.Recursive_Add): Ditto
31100 2004-10-26 Vincent Celier <celier@gnat.com>
31102 * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
31103 extension of library projects.
31105 * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
31106 path defaults to ".:<prefix>/lib/gnat".
31107 (Parse): For an extending all project, allow direct import of a project
31108 that is virtually extended.
31110 * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
31111 the specified name is directly imported, return its ID. Otherwise, if
31112 an extension of this project is imported, return the ID of the
31115 2004-10-26 Robert Dewar <dewar@gnat.com>
31117 * s-arit64.adb: (Le3): New function, used by Scaled_Divide
31118 (Sub3): New procedure, used by Scaled_Divide
31119 (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
31120 correct more than one instance of failure to propagate carries
31122 (Double_Divide): Handle overflow case of largest negative number
31123 divided by minus one.
31125 * s-arit64.ads (Double_Divide): Document that overflow can occur in
31126 the case of a quotient value out of range.
31129 2004-10-26 Robert Dewar <dewar@gnat.com>
31131 * s-bitops.adb (Bit_Eq): Remove redundant check.
31133 * s-bitops.ads: Minor comment updates
31134 Change some occurrences of Address to System.Address
31136 * s-carsi8.ads: Fix minor cut-and-paste error in comments
31138 2004-10-26 Ed Schonberg <schonberg@gnat.com>
31140 * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
31141 accessibility check to prefix that is a protected operation.
31143 2004-10-26 Ed Schonberg <schonberg@gnat.com>
31145 * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
31146 empty, post message on stub.
31148 2004-10-26 Ed Schonberg <schonberg@gnat.com>
31149 Javier Miranda <miranda@gnat.com>
31151 * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
31152 current instance appears within a unit that is directly in the context
31154 Used to determine whether the body of the instance should be analyzed
31155 immediately after its spec, to make its subprogram bodies available
31156 for front-end inlining.
31157 (Analyze_Formal_Array_Type): Cleanup condition that checks that range
31158 constraint is not allowed on the component type (AARM 12.5.3(3))
31160 2004-10-26 Cyrille Comar <comar@act-europe.fr>
31162 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
31163 'Storage_Pool): enhance, document & limit detection of non-sharable
31166 * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
31168 * s-pooglo.ads: Add more documentation now that this pool is properly
31171 2004-10-26 Ed Schonberg <schonberg@gnat.com>
31173 * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
31174 or protected type with discriminants, do not constrain the
31175 corresponding record type if the subtype declaration has no
31176 discriminant constraints. This can be the case in source code, or in
31177 the subtype declaration created to rename an actual type within an
31180 2004-10-26 Ed Schonberg <schonberg@gnat.com>
31182 * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
31183 different kind of stub (possibly wrong name for file), do not check
31185 (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
31186 includes call to some function that returns an unconstrained type, do
31189 2004-10-26 Ed Schonberg <schonberg@gnat.com>
31191 * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
31192 appear in the code for the main unit. Dependencies among units in the
31193 context of the main unit are established when those other units are
31194 compiled. Otherwise spurious elaboration constraints can generate
31195 incorrect elaboration circularities.
31197 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
31198 Ed Schonberg <schonberg@gnat.com>
31200 * sem_util.adb (Is_Aliased_View): Defend against the case where this
31201 subprogram is called with a parameter that is not an object name. This
31202 situation arises for some cases of illegal code, which is diagnosed
31203 later, and in this case it is wrong to call Is_Aliased, as that might
31204 cause a compiler crash.
31205 (Explain_Limited_Type): Refine previous fix to include
31206 inherited components of derived types, to provide complete information.
31208 * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
31209 is the prival for a protected object.
31210 It is necessary to mark this entity as a variable, in addition to
31211 flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
31212 modified to avoid checking the Aliased flag on entities that are not
31213 objects. (Checking that flag for non-objects is erroneous and could
31214 lead to a compiler crash).
31216 2004-10-26 Robert Dewar <dewar@gnat.com>
31218 * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
31219 X_Frac = 0.5, then we know that the number X must be positive.
31220 (Succ): Remove the same redundant test, and also fix the primary test
31221 to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
31223 (Decompose): Add fuller comments to spec
31225 2004-10-26 Pascal Obry <obry@gnat.com>
31227 * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
31228 validity (process must have read access). Set to 0 in all other cases.
31229 (STOP_FRAME): Now check for ptr validity to avoid a segmentation
31230 violation on Win32.
31231 (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
31232 segmentation violation.
31234 2004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
31236 * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
31237 whose type is a constructed subtype of an aliased object with an
31238 unconstrained nominal subtype, convert the actual to the constructed
31239 subtype before taking its address.
31241 2004-10-26 Vincent Celier <celier@gnat.com>
31243 * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
31244 (Is_Path_Name_Case_Sensitive): New function
31246 * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
31247 (Base_Name, Simple_Name, Current_Directory, Compose,
31248 Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
31251 2004-10-26 Cyrille Comar <comar@act-europe.fr>
31252 Vasiliy Fofanov <fofanov@act-europe.fr>
31253 Vincent Celier <celier@gnat.com>
31255 * gnat_ugn.texi: Generalize "finding memory problems" section into a
31256 "memory management issues" section and document some of the useful
31257 memory pools provided as part of the GNAT library.
31258 Remove "virtual" from declaration of A::method2 in
31259 the simple example of Ada/C++ mixed system.
31260 Library Projects may be virtually extended: their virtual extensions
31261 are not Library Projects.
31262 Added section on extending project hierarchies.
31264 2004-10-19 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
31266 * adaint.c (__gnat_get_libraries_from_registry): Cast value
31268 (__gnat_portable_spawn): Remove const.
31270 * mingw32.h (MAXPATHLEN): Check for previous definition.
31272 2004-10-17 Matthias Klose <doko@debian.org>
31274 * gnatvsn.ads: Set gnat library version to 4.0.
31276 2004-10-05 Vincent Celier <celier@gnat.com>
31278 * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
31280 2004-10-04 Laurent Guerby <laurent@guerby.net>
31283 * Makefile.in: Define and use RANLIB_FLAGS.
31285 2004-10-04 Pascal Obry <obry@gnat.com>
31287 * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
31288 other x86 platforms).
31290 2004-10-04 Olivier Hainque <hainque@act-europe.fr>
31292 * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
31293 in general and triggers stack alignment adjustment for thread entry
31294 points on targets where this is necessary.
31296 2004-10-04 Bernard Banner <banner@gnat.com>
31299 * Makefile.in: Add section for powerpc linux
31300 Add variant i-vxwork-x86.ads
31302 * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
31304 2004-10-04 Olivier Hainque <hainque@act-europe.fr>
31306 * init.c (__gnat_initialize): Call an Ada subprogram to perform the
31307 table registration calls when need be. Ensures no reference to the crt
31308 ctors symbol are issued in the SJLJ case, which avoids possible
31309 undefined symbol errors in the case of modules to be statically linked
31312 2004-10-04 Javier Miranda <miranda@gnat.com>
31314 * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
31315 in-line the code corresponding to subprogram Analyze_Actuals. In
31316 addition, analyze the actuals only in case of subprogram call.
31318 2004-10-04 Ed Falis <falis@gnat.com>
31320 * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
31322 2004-10-04 Sergey Rybin <rybin@act-europe.fr>
31324 * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
31325 in the documentation.
31327 2004-10-04 Robert Dewar <dewar@gnat.com>
31329 * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
31331 (Analyze_Block_Statement): Add circuitry to detect following dead code
31332 (Check_Unreachable_Code): Handle case of block exit
31334 2004-10-04 Robert Dewar <dewar@gnat.com>
31336 * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
31337 (XMatchD): Avoid warning for Logic_Error call
31339 2004-10-04 Robert Dewar <dewar@gnat.com>
31341 * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
31342 consider expressions buried within a procedure actual to be an actual.
31343 This caused some blowups with uses of packed slices within a procedure
31346 2004-10-04 Robert Dewar <dewar@gnat.com>
31348 * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
31349 longer need to be initialized to zero.
31350 (Get_Simple_Init_Val): Modular packed arrays no longer need to be
31351 initialized to zero.
31353 * checks.adb (Expr_Known_Valid): Packed arrays are now always
31354 considered valid, even if the representation is modular. That's correct
31355 now that we no longer initialize packed modular arrays to zero.
31357 * exp_dbug.ads: Clarify documentation on handling of PAD and JM
31358 suffixes. These are now documented as the only cases in which the
31359 debugger ignores outer records.
31360 Previously, the spec allowed arbitrary suffixes for this purpose.
31361 Change name of LJM to JM for packed array pad records
31362 Create separate section on packed array handling, and add a whole new
31363 set of comments to this section describing the situation with packed
31364 modular types and justification requirements depending on endianness.
31366 2004-10-04 Robert Dewar <dewar@gnat.com>
31368 * a-except.adb: Add a comment for last change
31370 * einfo.ads: Minor spelling correction in comment
31372 * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
31374 * sem_ch11.adb: Fix a case of using | instead of \ for continuation
31377 * sem_util.ads: Minor comment update
31379 2004-10-04 Ed Schonberg <schonberg@gnat.com>
31381 * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
31382 Inline_Always when in Configurable_Run_Time mode.
31384 * sem_prag.adb (Process_Convention): If entity is an inherited
31385 subprogram, apply convention to parent subprogram if in same scope.
31386 (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
31387 when in Configurable_Run_Time mode.
31389 2004-10-04 Ed Schonberg <schonberg@gnat.com>
31391 * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
31392 class_wide type after component list has been inherited.
31394 2004-10-04 Ed Schonberg <schonberg@gnat.com>
31396 * sem_ch12.adb (Check_Generic_Actuals): New predicate
31397 Denotes_Previous_Actual, to handle properly the case of a private
31398 actual that is also the component type of a subsequent array actual.
31399 The visibility status of the first actual is not affected when the
31400 second is installed.
31401 (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
31402 make fully recursive the treatment of formals of packages declared
31404 (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
31405 the above on exit from an instantiation.
31406 (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
31407 current instantiation which is now complete.
31408 (Analyze_Package_Instantiation): No instantiated body is needed if the
31409 main unit is generic. Efficient, and avoid anomalies when a instance
31410 appears in a package accessed through rtsfind.
31412 2004-10-04 Ed Schonberg <schonberg@gnat.com>
31414 * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
31415 do not generate a declaration for a temporary if the call is part of a
31416 library-level instantiation.
31418 2004-10-04 Ed Schonberg <schonberg@gnat.com>
31420 * sem_util.adb (Explain_Limited_Type): Ignore internal components when
31421 searching for a limited component to flag.
31423 * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
31424 expansion of Input, to account for the fact that the implicit call
31425 generated by the attribute reference must freeze the user-defined
31426 stream subprogram. This is only relevant to 'Input, because it can
31427 appear in an object declaration, prior to the body of the subprogram.
31429 * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
31430 expansion can proceed and further errors uncovered.
31431 (Minor clean up): Fix cases of using | instead of \ for continuation
31434 2004-10-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31436 * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
31438 * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
31439 (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
31440 Use gcc_assert and gcc_unreachable.
31442 * decl.c (gnat_to_gnu_entity, case object): Check and process a
31443 specified alignment before validating size.
31444 (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
31445 stripped-down declaration for the type of the inner field when making
31448 * utils.c (finish_record_type): Do not compute the size in units
31449 incrementally. Instead compute it once for the rep clause case.
31450 Use gcc_assert and gcc_unreachable.
31452 2004-10-04 Vincent Celier <celier@gnat.com>
31454 * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
31456 (Is_Valid_Path_Name): Take '/' as a directory separator.
31458 2004-10-04 Vincent Celier <celier@gnat.com>
31460 * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
31461 (Extended_Project) only if Extended_Project is defined, to avoid
31463 (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
31465 (Parse_Single_Project): Ditto.
31467 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
31468 Add_To_Project_Path for virtual projects.
31470 2004-10-04 Vincent Celier <celier@gnat.com>
31472 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
31473 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
31474 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
31475 mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
31476 parameter Options_2.
31478 * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
31479 Build_Dynamic_Library with an empty Options_2.
31481 * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
31484 * makegpr.adb (Get_Imported_Directories.add): Remove trailing
31485 directory separator, if any.
31486 (Gprmake): Do not allow mains on the command line for library projects.
31487 Do not attempt to link when the project is a library project.
31488 (Library_Opts): New table to store Library_Options.
31489 (Build_Library): If Library_Options is specified, pass these options
31490 when building a shared library.
31492 2004-10-04 Jose Ruiz <ruiz@act-europe.fr>
31494 * s-tposen.adb (Service_Entry): The object must be always unlocked at
31495 the end of this procedure now that the unlock operation was inserted
31498 2004-10-04 Jose Ruiz <ruiz@act-europe.fr>
31500 * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
31501 corresponding to the Preallocated_Stacks flags in System.
31502 (Get_Target_Parameters): Including the processing for
31503 Preallocated_Stacks.
31505 * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
31506 system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
31507 system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
31508 system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
31509 system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
31510 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
31511 system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
31512 system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
31513 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
31514 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
31515 system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
31516 used to signal whether the compiler creates the required stacks and
31517 descriptors for the different tasks (when True) or it is done by the
31518 underlying operating system at run time (when False).
31519 It is initially set to False in all targets.
31521 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
31522 if it is supported by the target.
31523 (Make_Task_Create_Call): Pass the stack address if it has been
31524 previously created. Otherwise pass a Null_Address.
31526 * snames.adb: Add _stack.
31528 * snames.ads: Add Name_uStack. Required to allow the expander to
31529 statically allocated task stacks.
31531 * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
31532 Stack_Address argument.
31533 Check that its value is equal to Null_Address because this target does
31534 not support the static stack allocation.
31536 2004-10-04 Thomas Quinot <quinot@act-europe.fr>
31538 * usage.adb: Change "pragma inline" to "pragma Inline" in information
31541 2004-10-04 Thomas Quinot <quinot@act-europe.fr>
31543 * exp_dist.adb: Split declaration of asynchronous flag out of
31544 Add_RACW_Read_Attribute.
31545 Minor reformatting for better alignment with PolyORB version.
31546 Store the entity for the asynchronous flag of an RACW, rather than the
31547 expression, in the asynchronous flags table. This will allow this flag
31548 to be used in other subprograms beside Add_RACW_Read_Attribute.
31550 2004-10-04 Thomas Quinot <quinot@act-europe.fr>
31552 * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
31553 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
31554 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
31555 g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
31556 g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads: Add new
31557 sockets constant MSG_NOSIGNAL (Linux-specific).
31558 Add new sockets constant MSG_Forced_Flags, list of flags to be set on
31559 all Send operations.
31560 For Linux, set MSG_NOSIGNAL on all send operations to prevent them
31561 from trigerring SIGPIPE.
31562 Rename components to avoid clash with Ada 2005 possible reserved
31564 (Check_Selector): When the select system call returns with an error
31565 condition, propagate Socket_Error to the caller.
31567 2004-10-01 Jan Hubicka <jh@suse.cz>
31569 * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
31571 2004-09-23 Robert Dewar <dewar@gnat.com>
31574 * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
31575 instead do this at freeze time (we won't do it if there is an address
31577 Change "pragma inline" to "pragma Inline" in information and error
31579 Minor reformatting.
31581 * freeze.adb (Check_Address_Clause): Remove previous change, not the
31582 right way of doing things after all.
31583 (Freeze_Entity): For object, set Is_Public for imported entities
31584 unless there is an address clause present.
31586 2004-09-21 Olivier Hainque <hainque@act-europe.fr>
31588 * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
31589 dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
31590 ensures proper handling of types with rep clauses, which might have
31591 their TYPE_SIZE set already.
31593 2004-09-21 Robert Dewar <dewar@gnat.com>
31595 * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
31596 packed array types in both little- and big-endian cases. This change
31597 ensures that we no longer count on the unused bits being initialized
31598 for such types (and in particular ensures that equality testing will
31599 only read the relevant bits).
31600 Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
31601 These changes mean that we no longer need to initialize small packed
31603 (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
31604 optimization to an LJM field as to its parent field.
31606 * ada-tree.h, trans.c, utils.c, utils2.c:
31607 Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
31609 2004-09-20 Jan Hubicka <jh@suse.cz>
31611 * utils.c (gnat_finalize): Remove.
31612 (end_subprog_body): Directly call cgraph_finalize_function;
31613 do not lower the nested functions.
31615 2004-09-20 Robert Dewar <dewar@gnat.com>
31618 * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
31619 if an address clause is present, since that means that the Import
31622 2004-09-20 Arnaud Charlet <charlet@act-europe.fr>
31624 * 5tsystem.ads: Removed, no longer used.
31626 2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
31627 Zack Weinberg <zack@codesourcery.com>
31629 * ada-tree.def: Use tree_code_class enumeration constants
31630 instead of code letters.
31631 * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
31632 Update for new tree-class enumeration constants.
31634 2004-09-17 Vincent Celier <celier@gnat.com>
31636 * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
31637 capabilities of the general project manager.
31639 2004-09-09 Vincent Celier <celier@gnat.com>
31641 * a-direct.ads: Add pragma Ada_05
31642 (Directory_Entry_Type): Give default value to component Kind to avoid
31643 not initialized warnings.
31645 * a-direct.adb (Current_Directory): Remove directory separator at the
31647 (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
31648 an existing directory.
31649 (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
31650 (Size (String)): Function C_Size returns Long_Integer, not File_Size.
31651 Convert the result to File_Size.
31653 * prj.ads: (Project_Error): New exception
31655 * prj-attr.adb: Except in procedure Initialize, Fail comes from
31656 Prj.Com, not from Osint.
31657 (Attrs, Package_Attributes): Tables moved to private part of spec
31658 (Add_Attribute, Add_Unknown_Package): Moved to new child package
31660 (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
31661 Prj.Project_Error after call to Fail.
31662 (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
31663 Fail. Check that package name is not already in use.
31665 * prj-attr.ads: Comment updates to indicate that all subprograms may be
31666 used by tools, not only by the project manager, and to indicate that
31667 exception Prj.Prj_Error may be raised in case of problem.
31668 (Add_Unknown_Package, Add_Attribute): Moved to new child package
31670 (Attrs, Package_Attributes): Table instantiations moved from the body to
31671 the private part to be accessible from Prj.Attr.PM body.
31673 * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
31674 from new package Prj.Attr.PM.
31675 (Parse_Attribute_Declaration): Call Add_Attribute from new package
31678 * Makefile.in: Add prj-attr-pm.o to gnatmake object list
31680 * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
31681 instead of Elaboration_Checks).
31683 * a-calend.adb: Minor reformatting
31685 2004-09-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31687 * gigi.h (maybe_pad_type): New declaration.
31688 (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
31690 * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
31692 * cuintp.c: Convert to use buildN.
31694 * decl.c (maybe_pad_type): No longer static.
31695 (gnat_to_gnu_entity, case E_Function): Handle case of returning by
31697 Convert to use buildN.
31699 * trans.c (call_to_gnu): Add arg GNU_TARGET; support
31700 TYPE_RETURNS_BY_TARGET_PTR_P. All callers changed.
31701 (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
31703 (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
31704 (gnat_gimplify_expr, case ADDR_EXPR): New case.
31705 Convert to use buildN.
31707 * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
31708 TREE_READONLY for const.
31709 Convert to use buildN.
31711 * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
31712 (create_var_decl): Refine when TREE_STATIC is set.
31713 Convert to use buildN.
31715 2004-09-09 Gary Dismukes <dismukes@gnat.com>
31717 * gnat_ugn.texi: Delete text relating to checking of ali and object
31720 * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
31723 2004-09-09 Jose Ruiz <ruiz@act-europe.fr>
31725 * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
31726 pragmas recognized by GNAT.
31728 * gnat_rm.texi: Document pragma Detect_Blocking.
31730 * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
31731 raise Program_Error if called from a protected operation.
31733 * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
31734 the protected action nesting level.
31735 (Lock_Read_Only): When pragma Detect_Blocking is active increase the
31736 protected action nesting level.
31737 (Unlock): When pragma Detect_Blocking is active decrease the protected
31738 action nesting level.
31740 * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
31741 Protected_Action_Nesting.
31743 * s-taskin.ads: Adding the field Protected_Action_Nesting to the
31744 Common_ATCB record. It contains the dynamic level of protected action
31745 nesting for each task. It is needed for checking whether potentially
31746 blocking operations are called from protected operations.
31747 (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
31748 Detect_Blocking is active or not in the partition.
31750 * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
31751 raise Program_Error if called from a protected operation.
31752 (Task_Entry_Call): When pragma Detect_Blocking is active, raise
31753 Program_Error if called from a protected operation.
31754 (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
31755 Program_Error if called from a protected operation.
31757 * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
31758 raise Program_Error if called from a protected operation.
31760 * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
31761 raise Program_Error if called from a protected operation, and increase
31762 the protected action nesting level.
31763 (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
31764 Program_Error if called from a protected operation, and increase the
31765 protected action nesting level.
31766 (Unlock_Entries): When pragma Detect_Blocking is active decrease the
31767 protected action nesting level.
31769 * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
31770 raise Program_Error if called from a protected operation, and increase
31771 the protected action nesting level.
31772 (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
31773 Program_Error if called from a protected operation, and increase the
31774 protected action nesting level.
31775 (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
31776 raise Program_Error if called from a protected operation.
31777 (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
31778 active, raise Program_Error if called from a protected operation.
31779 (Unlock_Entry): When pragma Detect_Blocking is active decrease the
31780 protected action nesting level.
31782 * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
31783 insertion of the statement raising Program_Error. The run time
31784 contains the required machinery for handling that.
31786 * sem_util.ads: Change comment associated to procedure
31787 Check_Potentially_Blocking_Operation.
31788 This procedure does not insert a call for raising the exception because
31789 that is currently done by the run time.
31791 * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
31793 * init.c: Add the global variable __gl_detect_blocking that indicates
31794 whether pragma Detect_Blocking is active (1) or not (0). Needed for
31795 making the pragma available at run time.
31796 (__gnat_set_globals): Pass and update the detect_blocking parameter.
31798 * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
31799 pragma Detect_Blocking is active.
31801 * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
31803 * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
31804 DB is found in the ali file. Any unit compiled with pragma
31805 Detect_Blocking active forces its effect in the whole partition.
31807 * a-retide.adb (Delay_Until): Raise Program_Error if pragma
31808 Detect_Blocking is active and delay is called from a protected
31811 * bindgen.adb (Gen_Adainit_Ada): When generating the call to
31812 __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
31813 Detect_Blocking is active (0 otherwise).
31814 (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
31815 as Detect_Blocking parameter if pragma Detect_Blocking is active (0
31818 2004-09-09 Thomas Quinot <quinot@act-europe.fr>
31820 * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
31821 GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
31824 * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
31825 (Register_Receiving_Stub): Add Subp_Info formal parameter.
31826 Update API in placeholder implemetation of s-parint to reflect changes
31827 in distribution runtime library.
31829 * sem_ch3.adb (Expand_Derived_Record): Rename to
31830 Expand_Record_Extension.
31832 * sem_disp.adb (Check_Controlling_Formals): Improve error message for
31833 primitive operations of potentially distributed object types that have
31834 non-controlling anonymous access formals.
31836 * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
31838 New implementation of expansion for remote access-to-subprogram types,
31839 based on the RACW infrastructure.
31840 This version of sem_dist is compatible with PolyORB/DSA as well as
31843 * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
31844 Asynchrronous that applies to a remote access-to-subprogram type, mark
31845 the underlying RACW type as asynchronous.
31847 * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
31848 __gnat_using_gnu_linker to 1.
31850 * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
31851 g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
31852 GNAT.Perfect_Hash_Generators, and remove the empty
31853 GNAT.Perfect_Hash package.
31855 * atree.adb: Minor reformatting
31857 * exp_ch3.adb (Expand_Derived_Record): Rename to
31858 Expand_Record_Extension.
31859 (Build_Record_Init_Proc.Build_Assignment): The default expression in
31860 a component declaration must remain attached at that point in the
31861 tree so New_Copy_Tree copies it if the enclosing record type is derived.
31862 It is therefore necessary to take a copy of the expression when building
31863 the corresponding assignment statement in the init proc.
31864 As a side effect, in the case of a derived record type, we now see the
31865 original expression, without any rewriting that could have occurred
31866 during expansion of the ancestor type's init proc, and we do not need
31867 to go back to Original_Node.
31869 * exp_ch3.ads (Expand_Derived_Record): Rename to
31870 Expand_Record_Extension.
31872 * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
31873 Returns the RACW type used to implement a remote access-to-subprogram
31875 (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
31876 New subprograms. Used to create a proxy tagged object for a remote
31877 subprogram. The proxy object is used as the designated object
31878 for RAS values on the same partition (unless All_Calls_Remote applies).
31879 (Build_Get_Unique_RP_Call): New subprogram. Build a call to
31880 System.Partition_Interface.Get_Unique_Remote_Pointer.
31881 (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
31882 Renamed from Add_RAS_*_Attribute.
31883 (Add_Receiving_Stubs_To_Declarations): Generate a table of local
31885 New implementation of expansion for remote access-to-subprogram types,
31886 based on the RACW infrastructure.
31888 * exp_dist.ads (Copy_Specification): Update comment to note that this
31889 function can copy the specification from either a subprogram
31890 specification or an access-to-subprogram type definition.
31892 2004-09-09 Ed Schonberg <schonberg@gnat.com>
31894 * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
31895 in an instance, between an explicit subprogram an one inherited from a
31896 type derived from an actual.
31898 * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
31899 add a polling call if the subprogram is to be inlined by the back-end,
31900 to avoid repeated calls with multiple inlinings.
31902 * checks.adb (Apply_Alignment_Check): If the expression in the address
31903 clause is a call whose name is not a static entity (e.g. a dispatching
31904 call), treat as dynamic.
31906 2004-09-09 Robert Dewar <dewar@gnat.com>
31908 * g-trasym.ads: Minor reformatting
31910 * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
31911 packed arrays, since unused bits are expected to be zero for a
31914 2004-09-09 Eric Botcazou <ebotcazou@act-europe.fr>
31916 * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
31919 2004-09-09 Pascal Obry <obry@gnat.com>
31921 * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
31922 enable map file generation. Add the right option to generate the map
31923 file if Map_File is set to True.
31925 * gnatdll.adb (Gen_Map_File): New variable.
31926 (Syntax): Add info about new -m (Map_File) option.
31927 (Parse_Command_Line): Add support for -m option.
31928 (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
31929 Minor reformatting.
31931 2004-09-09 Laurent Pautet <pautet@act-europe.fr>
31933 * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
31934 new gnatdist implementation.
31935 Define a subpackage isolating the output routines specific to this
31938 2004-09-09 Joel Brobecker <brobecker@gnat.com>
31940 * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
31942 * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
31944 2004-09-09 Cyrille Comar <comar@act-europe.fr>
31946 * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
31949 * opt.ads: Add Ada_Version_Runtime constant used to decide which
31950 version of the language is used to compile the run time.
31952 2004-09-09 Arnaud Charlet <charlet@act-europe.fr>
31954 * sem_util.adb (Requires_Transient_Scope): Re-enable handling
31955 of variable length temporaries for function return now that the
31956 back-end and gigi support it.
31958 2004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31960 * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
31962 * trans.c (struct stmt_group): Delete field GLOBAL.
31963 (gnat_init_stmt_group): Do not initialize it.
31964 (call_to_gnu): Use save_expr, not protect_multiple_eval.
31965 (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
31966 (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
31967 (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
31968 (start_stmt_group): Likewise.
31969 (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
31971 * utils2.c (ggc.h): Include.
31972 (build_call_raise): Call build_int_cst, not build_int_2.
31974 * utils.c (gnat_init_decl_processing): Fix arg to
31975 build_common_tree_nodes.
31976 (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
31977 (gnat_define_builtin): Set built_in_decls.
31978 (init_gigi_decls): Call build_int_cst, not build_int_2.
31980 * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
31981 (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
31982 (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
31983 (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
31984 SET_TYPE_MODULE): Use them.
31985 (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
31986 (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
31987 (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
31988 SET_TYPE_ADA_SIZE): Likewise.
31989 (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
31990 (DECL_CONST_CORRESPONDING_VAR,
31991 SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
31992 (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
31993 (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
31994 (TYPE_RM_SIZE_NUM): New macro.
31995 (TYPE_RM_SIZE): Modified to use above.
31997 * cuintp.c: (build_cst_from_int): New function.
31998 (UI_To_gnu): Use it.
32000 * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
32001 (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
32002 (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
32003 MIN_EXPR for the size, copy it into new.
32005 2004-09-01 Robert Dewar <dewar@gnat.com>
32007 * exp_ch6.adb (Expand_Call): Properly handle validity checks for
32008 packed indexed component where array is an IN OUT formal. This
32009 generated garbage code previously.
32011 * gnat_ugn.texi: Document -fverbose-asm
32013 * gnat-style.texi: Minor updates (note that boolean constants and
32014 variables are joined with AND/OR rather than short circuit forms).
32016 2004-09-01 Ed Schonberg <schonberg@gnat.com>
32018 * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
32019 it is an upward conversion of an untagged type with no representation
32022 2004-09-01 Thomas Quinot <quinot@act-europe.fr>
32024 * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
32025 System.Partition_Interface.
32027 * checks.adb (Apply_Access_Checks): Do not generate checks when
32028 expander is not active (but check for unset reference to prefix of
32031 * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
32032 pragma Debug as an if statement with a constant condition, for
32033 consistent treatment of entity references contained within the
32034 enclosed procedure call.
32036 2004-09-01 Vincent Celier <celier@gnat.com>
32038 * bindgen.adb: (Set_EA_Last): New procedure
32039 (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
32041 (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
32042 (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
32043 linked without errors.
32044 (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
32046 (Gen_Exception_Table_C): Correct same bugs
32048 * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
32050 * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
32051 on Windows, make sure that the drive letter is in upper case.
32053 * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
32054 Windows, when the drive letter is added and Case_Sensitive is True, the
32055 drive letter is forced to upper case.
32057 * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
32058 to Options_2 for the call to MLib.Utl.Gcc.
32060 * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
32061 directory separator when defining BASE_DIR.
32063 2004-09-01 Pascal Obry <obry@gnat.com>
32065 * gprcmd.adb (Extend): Do not output trailing directory separator. This
32066 is not needed and it confuses Windows GNU/make which does not report
32067 directory terminated by a slash as a directory.
32068 (gprcmd): Idem for "pwd" internal command.
32070 * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
32071 target names rewrite to fix regressions with recent version of
32072 GNU/make. Starting with GNU/make 3.80 the pipe character was not
32073 handled properly anymore.
32075 2004-09-01 Andreas Schwab <schwab@suse.de>
32077 * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
32078 * raise.c [!IN_RTS]: Undef abort.
32080 2004-08-27 Nathan Sidwell <nathan@codesourcery.com>
32082 * utils2.c (build_allocator): Use ssize_int.
32084 * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
32086 2004-08-27 Andreas Schwab <schwab@suse.de>
32088 * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
32090 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
32091 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32093 * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
32095 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
32097 * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
32098 * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
32099 * utils.c (init_gigi_decls): Likewise.
32100 * utils2.c (build_call_raise, build_allocator): Likewise.
32102 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
32104 * utils.c (gnat_init_decl_processing): Adjust
32105 build_common_tree_nodes call.
32107 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
32109 * utils2.c (build_allocator): Use build_int_cst for negative
32112 2004-08-18 Richard Henderson <rth@redhat.com>
32114 * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
32116 2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
32118 * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
32120 * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
32121 (gnat_to_gnu): Likewise.
32123 2004-08-16 Pascal Obry <obry@gnat.com>
32125 * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
32126 backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
32127 option and not mdll anymore. Update comment.
32129 2004-08-16 Pascal Obry <obry@gnat.com>
32131 * bld.adb (Put_Include_Project): Properly handle directory separators
32134 2004-08-16 Ed Schonberg <schonberg@gnat.com>
32136 * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
32137 decreasing the number of allocated junk nodes while searching for the
32138 appropriate subprogram.
32140 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
32142 * cuintp.c (UI_To_gnu): Use build_int_cst..
32143 * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
32144 * utils.c (init_gigi_decls): Likewise.
32145 * utils2.c (build_call_raise): Likewise.
32147 2004-08-13 Olivier Hainque <hainque@act-europe.fr>
32149 * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
32150 for a global aliased object with a variable size and an unconstrained
32151 nominal subtype, pretend there is no initializer if the one we have is
32152 incomplete, and avoid referencing an inexistant component in there. The
32153 part we have will be rebuilt anyway and the reference may confuse
32154 further operations.
32156 2004-08-13 Thomas Quinot <quinot@act-europe.fr>
32158 * einfo.ads: Minor reformatting
32160 * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
32161 restrictions in the ALI if we only want to warn about violations.
32163 2004-08-13 Vincent Celier <celier@gnat.com>
32165 * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
32166 when creating a new Unit_Record in table Units.
32168 * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
32169 that are violated, if any.
32171 * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
32172 add directory separator if path already ends with a directory separator.
32174 2004-08-13 Ed Schonberg <schonberg@gnat.com>
32176 * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
32177 unit, this is an attempt to inline a construct that is not available in
32178 the current restricted mode, so abort rather than trying to continue.
32180 * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
32181 discriminants that rename those of the parent, recover names of
32182 original discriminants for the constraint on the full view of the
32184 (Complete_Private_Subtype): Do not create a subtype declaration if the
32185 subtype is an itype.
32187 * gnat_rm.texi: Added section on implementation of discriminated
32188 records with default values for discriminants.
32190 2004-08-13 Ed Schonberg <schonberg@gnat.com>
32193 * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
32194 the second operand is overloaded.
32196 2004-08-10 Richard Henderson <rth@redhat.com>
32198 * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
32199 add __builtin_alloca.
32201 2004-08-10 Richard Henderson <rth@redhat.com>
32203 * config-lang.in (boot_language): Yes.
32205 2004-08-09 Thomas Quinot <quinot@act-europe.fr>
32207 * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
32208 from complaining on potential uninitialized reference.
32209 Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
32210 new specification and test explicitly for non-zero return value.
32212 * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
32213 returning C.int, to avoid using a derived boolean type.
32215 * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
32216 Duplicate_Subexpr_No_Checks in preference to direct use of
32217 Remove_Side_Effects and New_Copy_Tree.
32218 Clear Comes_From_Source on prefix of 'Size attribute reference.
32220 * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
32221 g-socthi-vxworks.adb: Change calls to
32222 GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
32223 and test explicitly for non-zero return value.
32225 * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
32226 (Is_Socket_In_Set): Declare imported function as returning C.int, to
32227 avoid using a derived boolean type.
32229 2004-08-09 Albert Lee <lee@gnat.com>
32231 * system-irix-n32.ads: Refine tasking priority constants for IRIX.
32233 2004-08-09 Pascal Obry <obry@gnat.com>
32235 * gnat_ugn.texi: Document new way to build DLLs on Windows using
32236 GCC's -shared option.
32238 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
32239 Options_2 parameter (options put after object files).
32241 2004-08-09 Olivier Hainque <hainque@act-europe.fr>
32243 * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
32244 ignore overflows on low and high bounds of an index to also account for
32245 differences in signedness between sizetype and gnu_index_subtype.
32246 These are as legitimate as the ones caused by a lower TYPE_PRECISION
32249 2004-08-09 Robert Dewar <dewar@gnat.com>
32251 * s-solita.ads, s-solita.adb: Minor reformatting
32253 * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
32254 Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
32255 obsolescent section
32256 Add note that No_Implicit_Conditionals does not suppress
32257 run time constraint checks.
32259 * vms_conv.ads: Minor reformatting
32261 * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
32262 and necessary for following change).
32263 (Mark): Return new format Mark_Id containing sec stack address
32264 (Release): Use sec stack address from Mark_Id avoiding Self call
32266 * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
32267 pointer (cleanup and necessary for following change).
32268 Define Mark_Id as record containing address of secondary stack, that way
32269 Release does not need to find the stack again, decreasing the number of
32270 calls to Self and improving efficiency.
32272 * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
32274 * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
32275 case variable into the individual case branches when possible.
32277 * sem_ch11.adb: Minor reformatting
32279 * prj.ads: Correct spelling of suffixs
32281 * prj-nmsc.adb: Minor reformatting
32282 Correct spelling suffixs throughout (also in identifiers)
32284 * freeze.adb: Minor spelling correction
32286 * exp_ch2.adb: Cleanups to handling of Current_Value
32287 (no functional effect).
32289 * bld.adb: Correct spelling of suffixs
32291 * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
32293 2004-08-09 Ed Schonberg <schonberg@gnat.com>
32296 * sem_ch7.adb (Install_Private_Declarations): In the body of the
32297 package or of a child, private entities are both immediately_visible
32300 2004-08-09 Ed Schonberg <schonberg@gnat.com>
32302 * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
32303 there are no range checks on the value of the literal.
32305 * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
32306 wrapped is the triggering alternative of an asynchronous select, action
32307 statements mustbe inserted before the select itself.
32309 * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
32310 case where the prefix is a protected function call.
32311 (Resolve_Attribute, case 'Access): The attribute reference on a
32312 subprogram is legal in a generic body if the subprogram is declared
32315 2004-08-09 Vincent Celier <celier@gnat.com>
32317 * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
32318 languages, otherwise building the library may fail with unresolved
32320 (Compile_Sources): Do not build libraries if -c switch is used
32322 * gnatlink.adb (Process_Args): New switches -M and -Mmap
32323 (Write_Usage): If map file creation is supported, output new switches
32325 (Gnatlink): When -M is specified, add the necessary switch(es) to the
32326 gcc call, when supported.
32328 * Makefile.in: Added indepsw.o to the object list for gnatlink
32329 Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
32331 * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
32332 indepsw.adb, indepsw.ads: New files.
32334 2004-08-09 Bernard Banner <banner@gnat.com>
32336 * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
32338 * Makefile.in: add section for vxworks x86
32340 2004-08-09 Hristian Kirtchev <kirtchev@gnat.com>
32342 * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
32343 per-object constrained components where the discriminant is of an
32345 (Build_Record_Init_Proc): Add condition to prevent the inheritance of
32346 the parent initialization procedure for derived Unchecked_Unions.
32347 Instead, derived Unchecked_Unions build their own initialization
32349 (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
32350 Check the body of the subprogram for details.
32351 (Freeze_Record_Type): Prevent the inheritance of discriminant checking
32352 functions for derived Unchecked_Union types by introducing a condition.
32353 Allow the creation of TSS equality functions for Unchecked_Unions.
32354 (Make_Eq_Case): Rename formal parameter Node to E in function signature.
32355 Add formal parameter Discr to function signature. Discr is used to
32356 control the generated case statement for Unchecked_Union types.
32357 (Make_Eq_If): Rename formal parameter Node to E in function signature.
32359 * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
32361 Check the body of the subprogram for details.
32362 (Expand_Composite_Equality): Augment composite type equality to include
32363 correct handling of Unchecked_Union components.
32364 (Expand_N_In): Add condition to detect illegal membership tests when the
32365 subtype mark is a constrained Unchecked_Union and the expression lacks
32366 inferable discriminants, and build a Raise_Program_Error node.
32367 (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
32368 to detect types that contain components of unconstrained Unchecked_Union
32369 subtype. Add condition to detect equality between types that have an
32370 unconstrained Unchecked_Union component, and build a Raise_Program_Error
32371 node. Add condition to detect equality between Unchecked_Union types
32372 that lack inferable discriminants, and build a Raise_Program_Error node.
32373 Otherwise build a TSS equality function call.
32374 (Expand_N_Type_Conversion): Add condition to detect illegal conversions
32375 from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
32376 with the operand lacking inferable discriminants, and build a Raise_
32377 Program_Error node.
32378 (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
32379 composite equality.
32380 (Has_Inferable_Discriminants): Implement new predicate for objects and
32381 expressions of Unchecked_Union type. Check the body of subprogram for
32383 (Has_Unconstrained_UU_Components): Add function
32384 Component_Is_Unconstrained_UU. It is used to detect whether a single
32385 component is of an unconstrained Unchecked_Union subtype. Add function
32386 Variant_Is_Unconstrained_UU. It is used to detect whether a single
32387 component inside a variant is of an unconstrained Unchecked_Union type.
32389 * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
32390 inferred discriminant values. Add condition to generate a case
32391 statement with an inferred discriminant as the switch.
32392 (Make_Component_List_Assign): Introduce a Boolean flag that determines
32393 the behaviour of the subprogram in the presence of an Unchecked_Union.
32394 Add condition to trigger the usage of the inferred discriminant value
32395 as the generated case statement switch.
32396 (Make_Field_Assign): Introduce a Boolean flag that determines the
32397 behaviour of the subprogram in the presence of an Unchecked_Union. Add
32398 condition to trigger the usage of the inferred discriminant value as
32399 the right-hand side of the generated assignment.
32401 * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
32402 parameter generation when dealing with Unchecked_Unions.
32404 * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
32405 checks for Unchecked_Unions.
32407 * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
32409 * exp_attr.adb (Expand_N_Attribute_Reference): Produce
32410 Raise_Program_Error nodes for the execution of Read and Write
32411 attributes of Unchecked_Union types and the execution of Input and
32412 Output attributes of Unchecked_Union types that lack default
32413 discriminant values.
32415 * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
32416 Unchecked_Union. Add procedure Check_Component. It is used to inspect
32417 per-object constrained components of Unchecked_Unions for being
32418 Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
32419 check individual components withing a variant.
32421 * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
32422 comparison of Unchecked_Unions.
32423 (Resolve_Equality_OP): Remove guard that prevents equality between
32426 * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
32427 of component subtypes for Unchecked_Union components.
32428 (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
32429 since it is the actual subtype.
32431 * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
32432 pass of Unchecked_Union subtypes as generic actuals to formal types
32433 that lack known_discriminant_parts or that are derived Unchecked_Union
32434 types, and do nothing. In any other case, produce an error message.
32436 * sem_ch3.adb (Analyze_Component_Declaration): Add function
32437 Contains_POC. It determines whether a constraint uses the discriminant
32438 of an enclosing record type.
32439 Add condition to detect per-object constrained component and set the
32441 (Derived_Type_Declaration): Remove guard that prevents derivation from
32442 Unchecked_Union types.
32443 (Process_Subtype): Remove quard that prevents the creation of Unchecked_
32446 * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
32447 references to Unchecked_Union discriminants.
32449 * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
32450 formal generation when dealing with Unchecked_Unions.
32451 (Set_Actual_Subtypes): Add condition to prevent generation of actual
32452 subtypes for Unchecked_Unions.
32454 * sem_ch7.adb (Analyze_Package_Specification): Add procedure
32455 Inspect_Unchecked_Union_Completion. It is used to detect incorrect
32456 completions of discriminated partial views by Unchecked_Unions and
32457 produce an error message.
32459 2004-08-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32461 * trans.c (struct stmt_group): New field, GLOBAL.
32462 (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
32463 (struct elab_info): New struct.
32464 (elab_info_list, gnu_elab_proc_stack): New variables.
32465 (Compilation_Unit_to_gnu): New procedure.
32466 (gigi): Call it and also handle elaboration procs we've saved.
32467 (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
32468 global field from parent.
32469 (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
32470 (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
32471 (start_stmt_group): Initialize global field from parent.
32472 (add_decl_expr): Set to global for current statement group.
32473 (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
32476 * utils.c (global_bindings_p): True when no current_function_decl; no
32477 longer check current_binding_level.
32479 2004-08-09 Ben Brosgol <brosgol@gnat.com>
32481 * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
32484 * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
32486 2004-08-06 Andreas Schwab <schwab@suse.de>
32488 * utils.c (gnat_define_builtin): Remove second parameter of
32490 (begin_subprog_body): Likewise.
32492 2004-07-26 Arnaud Charlet <charlet@act-europe.fr>
32494 * sem_util.adb (Requires_Transient_Scope): Temporarily disable
32495 optimization, not supported by the tree-ssa back-end.
32497 2004-07-26 Olivier Hainque <hainque@act-europe.fr>
32499 * s-mastop-irix.adb: Update comments.
32501 * a-except.adb (Exception_Information): Raise Constraint_Error if
32502 exception Id is Null_Id.
32503 This is required behavior, which is more reliably and clearly checked
32504 at the top level interface level.
32506 2004-07-26 Javier Miranda <miranda@gnat.com>
32508 * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
32509 call if a component has no default_expression and the box is used.
32511 * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
32512 default_expression and you use box, it behaves as if you had declared a
32513 stand-alone object.
32514 (Resolve_Record_Aggregate): If a component has no default_expression and
32515 you use box, it behaves as if you had declared a stand-alone object.
32517 * sem_ch10.adb (Install_Siblings): Do not make visible the private
32518 entities of private-with siblings.
32520 2004-07-26 Ed Schonberg <schonberg@gnat.com>
32522 * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
32523 for a component of an itype, set the parent pointer for analysis,
32524 there is no list in which to insert it.
32526 * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
32527 bona-fide renamings, not for inherited operations.
32529 * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
32530 actual for a formal that is an access parameter, create local
32531 finalization list even if the expression is not an aggregate.
32533 2004-07-26 Ed Schonberg <schonberg@gnat.com>
32536 * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
32537 Diagnose properly illegal subprogram renamings that are library units.
32539 2004-07-26 Ed Schonberg <schonberg@gnat.com>
32542 * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
32543 conversion rewritten as an unchecked conversion, check that original
32544 expression is a variable.
32546 * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
32547 unchecked_conversion, create new node rather than rewriting in place,
32548 to preserve original construct.
32550 2004-07-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32552 * gigi.h (gnat_expand_body): Deleted.
32554 * Make-lang.in: (trans.o): Depends on function.h.
32556 * misc.c: (gnat_expand_body): Moved to here.
32558 * trans.c (gnat_expand_body_1): Deleted.
32559 (gnat_expand_body): Moved from here.
32560 (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
32561 (add_stmt): Check for marked visited with global_bindings_p.
32562 (gnat_gimplify_expr, case COMPONENT_REF): New case.
32563 (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
32565 * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
32566 VIEW_CONVERT_EXPR if not operation type.
32568 * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
32571 * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
32572 changes: reformatting of negation operators, removing unneeded
32573 inequality comparison with zero, converting equality comparisons with
32574 zero to negations, changing int/0/1 to bool/false/true, replace calls
32575 to gigi_abort with abort, and various other similar changes.
32577 2004-07-26 Vincent Celier <celier@gnat.com>
32579 * gnatcmd.adb (GNATCmd): Add processing for new built-in command
32582 * make.adb (Gnatmake): Fail when a library is not present and there is
32583 no object directory.
32585 * mlib-prj.adb (Check_Library): No need to check if the library needs
32586 to be rebuilt if there is no object directory, hence no object files
32587 to build the library.
32589 * opt.ads (Setup_Projects): New Boolean flag.
32591 * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
32593 Create directory when Kind /= "" and in "gnat setup". Report error if
32594 directory cannot be created.
32595 (Ada_Check): Create library interface copy dir if it does not exist
32596 and we are in "gnat setup".
32597 (Find_Sources): No error if in "gnat setup" and no Ada sources were
32599 (Language_Independent_Check): Create object directory, exec directory
32600 and/or library directory if they do not exist and we are in
32603 * vms_conv.ads: (Command_Type): New command Setup.
32605 * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
32607 * vms_data.ads: Add qualifiers/switches for new built-in command
32610 2004-07-25 Richard Henderson <rth@redhat.com>
32612 * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
32613 DECL_IGNORED_P on RESULT_DECL.
32615 2004-07-20 Olivier Hainque <hainque@act-europe.fr>
32617 * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
32618 allocation and potentially overflowing update with
32619 Tailored_Exception_Information. Use the sec-stack free procedural
32620 interface to output Exception_Information instead.
32622 * a-except.adb (To_Stderr): New subprogram for character, and string
32623 version moved from a-exextr to be visible from other separate units.
32624 (Tailored_Exception_Information): Remove the procedural version,
32625 previously used by the default Last_Chance_Handler and not any more.
32626 Adjust various comments.
32628 * a-exexda.adb: Generalize the exception information procedural
32629 interface, to minimize the use of secondary stack and the need for
32630 local buffers when the info is to be output to stderr:
32631 (Address_Image): Removed.
32632 (Append_Info_Character): New subprogram, checking for overflows and
32633 outputing to stderr if buffer to fill is of length 0.
32634 (Append_Info_String): Output to stderr if buffer to fill is of length 0.
32635 (Append_Info_Address, Append_Info_Exception_Name,
32636 Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
32637 Append_Info_Basic_Exception_Traceback,
32638 Append_Info_Exception_Information): New subprograms.
32639 (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
32640 (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
32641 Exception_Info_Maxlength, Exception_Name_Length,
32642 Exception_Message_Length): New subprograms.
32643 (Exception_Information): Use Append_Info_Exception_Information.
32644 (Tailored_Exception_Information): Use
32645 Append_Info_Basic_Exception_Information.
32646 Export services for the default Last_Chance_Handler.
32648 * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
32649 other separate units.
32651 2004-07-20 Vincent Celier <celier@gnat.com>
32653 * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
32655 2004-07-20 Ed Schonberg <schonberg@gnat.com>
32657 * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
32658 emit itype references for the designated types of component types that
32659 are declared outside of the full record declaration, and that may
32660 denote a partial view of that record type.
32662 2004-07-20 Ed Schonberg <schonberg@gnat.com>
32665 * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
32666 which is the designated type in an access component declaration, to the
32667 list of incomplete dependents of the parent type, to avoid elaboration
32668 issues with out-of-scope subtypes.
32669 (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
32670 full view of the parent.
32672 2004-07-20 Ed Schonberg <schonberg@gnat.com>
32675 * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
32676 entities that are hidden, such as references to generic actuals
32677 outside an instance.
32679 2004-07-20 Javier Miranda <miranda@gnat.com>
32681 * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
32682 support to the new notation.
32683 (Analyze_Selected_Component): Add call to Try_Object_Operation.
32685 2004-07-20 Jose Ruiz <ruiz@act-europe.fr>
32687 * s-taprob.adb: Adding the elaboration code required for initializing
32688 the tasking soft links that are common to the full and the restricted
32691 * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
32692 restricted run time has been moved to the package
32693 System.Soft_Links.Tasking.
32695 * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
32696 restricted run time has been moved to the package
32697 System.Soft_Links.Tasking.
32699 * Makefile.rtl: Add entry for s-solita.o in run-time library list.
32701 * s-solita.ads, s-solita.adb: New files.
32703 2004-07-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32705 * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
32706 Case_Statement_to_gnu): Split off from gnat_to_gnu.
32707 (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
32708 Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
32709 Exception_Handler_to_gnu_zcx): Likewise.
32711 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
32713 * gigi.h (builtin_function): Declare.
32715 2004-07-15 Robert Dewar <dewar@gnat.com>
32717 * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
32720 * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
32721 access values as an example of a warning.
32723 * gnat_rm.texi: Document new attribute Has_Access_Values
32725 * gnat-style.texi: Document that box comments belong on nested
32728 * sem_util.ads (Has_Access_Values): Improved documentation
32730 * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
32732 * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
32733 (Process_Interface_Name): Call to this new procedure
32734 (Set_Extended_Import_Export_External_Name): Call to this new procedure
32736 * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
32738 * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
32740 * einfo.ads: Minor comment typo fixed
32742 2004-07-15 Jose Ruiz <ruiz@act-europe.fr>
32744 * snames.adb: Add _atcb.
32746 * snames.ads: Add Name_uATCB.
32748 * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
32749 (in the expanded code) when using the restricted run time.
32751 * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
32752 a in parameter in order to allow ATCBs to be preallocated (in the
32755 * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
32756 order to allow ATCBs to be preallocated. In case of error, the ATCB is
32757 deallocated in System.Tasking.Stages.
32759 * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
32760 order to allow ATCBs to be preallocated.
32762 * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
32763 here. It was previously done in Initialize_ATCB.
32765 * rtsfind.ads: Make the Ada_Task_Control_Block visible.
32767 * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
32768 Restricted run time.
32770 * exp_ch3.adb: When using the Restricted run time, pass the
32771 preallocated Ada_Task_Control_Block when creating a task.
32773 2004-07-15 Ed Schonberg <schonberg@gnat.com>
32775 * sem_util.adb (Normalize_Actuals): If there are no actuals on a
32776 function call that is itself an actual in an enclosing call, diagnose
32777 problem here rather than assuming that resolution will catch it.
32779 * sem_ch7.adb (Analyze_Package_Specification): If the specification is
32780 the local copy of a generic unit for a formal package, and the generic
32781 is a child unit, install private part of ancestors before compiling
32782 private part of spec.
32784 * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
32785 use scope entities rather than tree structures, to handle properly
32786 parent units that are instances rewritten as bodies for inlining
32789 * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
32790 Remove_Parents): Handle properly a parent unit that is an
32791 instantiation, when the unit has been rewritten as a body for inlining
32794 * par.adb (Goto_List): Global variable to collect goto statements in a
32795 given unit, for use in detecting natural loops.
32797 * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
32798 use in detecting natural loops.
32800 * par-labl.adb (Find_Natural_Loops): Recognize loops create by
32801 backwards goto's, and rewrite as a infinite loop, to improve locality
32804 * exp_util.adb (Force_Evaluation): Recognize a left-hand side
32805 subcomponent that includes an indexed reference, to prevent the
32806 generation of copies that would miscompile the desired assignment
32808 (Build_Task_Image_Decls): Add a numeric suffix to
32809 generated name for string variable, to avoid spurious conflicts with
32810 the name of the type of a single protected object.
32812 * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
32813 loop with an explicit exit statement, to avoid generating an
32814 out-of-range value with 'Succ leading to spurious constraint_errors
32815 when compiling with -gnatVo.
32817 2004-07-15 Thomas Quinot <quinot@act-europe.fr>
32819 * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
32820 might not be analyzed yet, even if its Etype is already set (case of an
32821 unchecked conversion built using Unchecked_Convert_To, for example).
32822 If the prefix has already been analyzed, this will be a nop anyway.
32824 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
32825 controller type, or an assignment of a record type with controlled
32826 components, copy only user data, and leave the finalization chain
32827 pointers untouched.
32829 2004-07-15 Vincent Celier <celier@gnat.com>
32831 * make.adb (Collect_Arguments): Improve error message when attempting
32832 to compile a source not part of any project, when -x is not used.
32834 * prj.ads: (Defined_Variable_Kind): New subtype
32836 * prj-attr.adb (Register_New_Package): Two new procedures to register
32837 a package with or without its attributes.
32838 (Register_New_Attribute): Mew procedure to register a new attribute in a
32840 New attribute oriented subprograms: Attribute_Node_Id_Of,
32841 Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
32842 Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
32844 New package oriented subprograms: Package_Node_Id_Of,
32845 Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
32847 * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
32849 (Package_Node_Id): Now a private, self initialized type
32850 (Register_New_Package): New procedure to register a package with its
32852 New attribute oriented subprograms: Attribute_Node_Id_Of,
32853 Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
32854 Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
32856 New package oriented subprograms: Package_Node_Id_Of,
32857 Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
32859 * prj-dect.adb (Parse_Attribute_Declaration,
32860 Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
32862 * prj-makr.adb (Make): Parse existing project file before creating
32863 other files. Fail if there was an error during parsing.
32865 * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
32866 new spec of Prj.Attr.
32868 * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
32869 to new spec of Prj.Attr.
32871 2004-07-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32873 * utils2.c: Fix typo in comment.
32875 2004-07-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32877 * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
32878 * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
32880 2004-07-14 Andreas Schwab <schwab@suse.de>
32882 * trans.c (gnat_init_stmt_group): Remove duplicate definition.
32884 2004-07-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32886 * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
32888 (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
32891 * misc.c (gnat_types_compatible_p): New function.
32892 (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
32893 (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
32895 * trans.c (gigi): Move processing of main N_Compilation_Unit here.
32896 (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
32897 (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
32898 (mark_visited): Don't mark dummy type.
32899 (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
32900 parameter, we must remove any LJM building from GNU_NAME.
32901 (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
32902 (pos_to_constructor): Use int_const_binop.
32903 (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
32906 * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
32907 (gnat_pushlevel): Set TREE_USE on BLOCK node.
32908 (gnat_install_builtins): Add __builtin_memset.
32910 2004-07-13 Olivier Hainque <hainque@act-europe.fr>
32912 * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
32913 for a renaming, stabilize the initialization expression if we are at a
32914 local level. At the local level, uses of the renaming may be performed
32915 by a direct dereference of the initializing expression, and we don't
32916 want possible variables there to be evaluated for every use.
32918 * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
32919 Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
32920 them on the way. Account for the fact that we may introduce side
32921 effects in the process.
32923 2004-07-13 Richard Henderson <rth@redhat.com>
32925 * misc.c (default_pass_by_ref): Use pass_by_reference.
32927 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
32929 * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
32930 LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
32932 2004-07-08 Richard Henderson <rth@redhat.com>
32934 * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
32937 2004-07-06 Vincent Celier <celier@gnat.com>
32939 * vms_conv.ads: Minor reformatting.
32940 Alphabetical order for enumerated values of type Command_Type, to have
32941 the command in alphabetical order for the usage.
32943 * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
32944 the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
32946 * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
32948 * makegpr.adb (Global_Archive_Exists): New global Boolean variable
32949 (Add_Archive_Path): Only add the global archive if there is one.
32950 (Build_Global_Archive): Set Global_Archive_Exists depending if there is
32951 or not any object file to put in the global archive, and don't build
32952 a global archive if there is none.
32953 (X_Switches): New table
32954 (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
32955 in the X_Switches table, if any.
32956 (Initialize): Make sure the X_Switches table is empty
32957 (Scan_Arg): Record -X switches in table X_Switches
32959 * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
32961 * make.adb: Minor comment fix
32963 * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
32964 invoked with directory information, add the directory in front of the
32967 * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
32968 invoked with directory information, add the directory in front of the
32971 * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
32972 when Keep_Temporary_Files is False.
32973 (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
32974 directory information, add the directory in front of the path.
32975 When not on VMS, handle new switch -dn before the command to set
32976 Keep_Temporary_Files to True.
32977 (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
32980 * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
32981 invoked with directory information, add the directory in front of the
32984 2004-07-06 Thomas Quinot <quinot@act-europe.fr>
32986 * snames.ads, snames.adb (Name_Stub): New name for the distributed
32989 * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
32990 New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
32992 * g-socket.adb (To_Timeval): Fix incorrect conversion of
32993 Selector_Duration to Timeval for the case of 0.0.
32995 * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
32996 documentation from Evolve_And_Then.
32998 2004-07-06 Jose Ruiz <ruiz@act-europe.fr>
33000 * s-taprop-tru64.adb, s-taprop-os2.adb,
33001 s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
33003 2004-07-06 Robert Dewar <dewar@gnat.com>
33005 * s-osinte-hpux.ads, s-osinte-freebsd.ads,
33006 s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
33007 s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
33008 s-interr-sigaction.adb, s-taprop-irix-athread.adb,
33009 s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
33010 s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
33011 s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
33012 s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
33013 a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
33014 a-tags.ads, bindgen.ads, checks.adb, checks.adb,
33015 csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
33016 exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
33017 g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
33018 i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
33019 sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
33020 sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
33021 sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
33022 s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
33023 s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
33024 s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
33025 vms_data.ads: Minor reformatting,
33026 Fix bad box comment format.
33028 * gnat_rm.texi: Fix minor grammatical error
33030 * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
33032 * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
33033 more cases of discriminated records to be recognized as not needing a
33035 (Has_Access_Values): New function.
33037 * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
33039 * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
33040 Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
33041 with LRM terminology).
33042 Change terminology in comments primitive type => elementary type.
33044 2004-07-06 Ed Schonberg <schonberg@gnat.com>
33047 * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
33048 parameters do not impose any requirements on the presence of a body.
33050 2004-07-06 Ed Schonberg <schonberg@gnat.com>
33053 * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
33054 compilation unit and is in an open scope at the point of instantiation,
33055 assume that a body may be present later.
33057 2004-07-06 Ed Schonberg <schonberg@gnat.com>
33059 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
33060 Improve error message when specified size is not supported.
33062 * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
33063 is never a primitive operation.
33065 2004-07-05 Andreas Schwab <schwab@suse.de>
33067 * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
33068 RECORD_OR_UNION_CHECK.
33069 (TYPE_CONTAINS_TEMPLATE_P): Likewise.
33071 2004-07-04 Kelley Cook <kcook@gcc.gnu.org>
33073 * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
33074 dependency on xgnatugn, instead build it via a submake.
33075 (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
33077 2004-07-04 Richard Henderson <rth@redhat.com>
33079 * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
33081 2004-07-01 Richard Henderson <rth@redhat.com>
33083 * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
33084 * utils.c (max_size): Likewise.
33086 2004-06-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33088 * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
33089 and rest_of_type_compilation; add arg to create_*_decl.
33090 (annotate_decl_with_node): Deleted.
33091 (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
33092 * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
33093 (get_current_block_context, gnat_pushdecl): New declarations.
33094 (gnat_init_stmt_group): Likewise.
33095 (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
33096 * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
33097 (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
33098 (gnat_init): Call gnat_init_stmt_group.
33099 * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
33100 (gnu_pending_elaboration_list): Deleted.
33101 (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
33102 (gigi): Rearrange initialization calls and move some to last above.
33103 (gnat_to_gnu): If statement and not in procedure, go into elab proc.
33104 Delete calls to add_decl_expr; add arg to create_*_decl.
33105 (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
33106 (gnat_to_gnu, case N_Subprogram_Body): Move some code to
33107 begin_subprog_body and call it.
33108 Don't push and pop ggc context.
33109 (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
33110 (add_stmt): Remove handling of DECL_EXPR from here.
33111 If not in function, mark visited.
33112 (add_decl_expr): Put global at top level.
33113 Check for cases of DECL_INITIAL we have to handle here.
33114 (process_type): Add extra arg to create_type_decl.
33115 (build_unit_elab): Rework to just gimplify.
33116 * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
33117 (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
33118 (get_pending_elaborations, pending_elaborations_p): Likewise.
33119 (push_pending_elaborations, pop_pending_elaborations): Likewise.
33120 (get_elaboration_location, insert_elaboration_list): Likewise.
33121 (gnat_binding_level): Renamed from ada_binding_level.
33122 (init_gnat_to_gnu): Don't clear pending_elaborations.
33123 (global_bindings_p): Treat as global if no current_binding_level.
33124 (set_current_block_context): New function.
33125 (gnat_pushdecl): Renamed from pushdecl; major rework.
33126 All callers changed.
33127 (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
33128 (finish_record_type): Call call pushdecl for stub decl.
33129 (function_nesting_depth): Deleted.
33130 (begin_subprog_body): Delete obsolete code.
33131 * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
33133 2004-06-28 Robert Dewar <dewar@gnat.com>
33135 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
33136 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
33137 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
33138 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
33139 a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
33141 * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
33142 deal with problem of inefficient slices on machines with strict
33143 alignment, when the slice is a component of a composite.
33145 * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
33146 machines, we need the check there as well.
33148 2004-06-28 Ed Schonberg <schonberg@gnat.com>
33150 * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
33151 determine safe copying direction for overlapping slice assignments
33152 when component is controlled.
33154 * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
33155 formal derived type in the actual for a formal package are visible in
33156 the enclosing instance.
33158 2004-06-28 Ed Schonberg <schonberg@gnat.com>
33161 * sem_util.adb (Trace_Components): Diagnose properly an illegal
33162 circularity involving a private type whose completion includes a
33163 self-referential component.
33164 (Enter_Name): Use Is_Inherited_Operation to distinguish a source
33165 renaming or an instantiation from an implicit derived operation.
33167 2004-06-28 Pascal Obry <obry@gnat.com>
33169 * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
33171 (Library_File_Name_For): Idem.
33173 2004-06-28 Matthew Gingell <gingell@gnat.com>
33175 * g-traceb.ads: Add explanatory note on the format of addresses
33176 expected by addr2line.
33178 2004-06-28 Jerome Guitton <guitton@act-europe.fr>
33180 * Makefile.in: Force debugging information on s-tasdeb.adb,
33181 a-except.adb and s-assert.adb needed by the debugger.
33183 2004-06-28 Vincent Celier <celier@gnat.com>
33185 * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
33189 * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
33191 * prj.adb: Minor reformatting
33192 (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
33194 * prj.ads: Comment updates
33196 (Project_Data): Change Flag1 to Need_To_Build_Lib.
33197 Remove Flag2: not used.
33199 * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
33202 * gnat_ugn.texi: Put a "null;" declaration in one project file example
33204 * gnat_rm.texi: Document Empty declarations "null;".
33206 * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
33207 front of the linker options.
33208 (Link_Foreign): Put the global archives and the libraries in front of
33209 the linker options.
33211 2004-06-28 Javier Miranda <miranda@gnat.com>
33213 * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
33214 (RTU_Loaded): Code cleanup
33215 (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
33216 withed predefined units.
33218 * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
33219 explicitly withed predefined units.
33220 Fix typo in comment
33222 * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
33223 explicitly withed predefined units.
33225 2004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33227 * ada-tree.def (DECL_STMT): Deleted.
33228 * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
33229 (DECL_STMT_VAR): Deleted.
33230 * decl.c: add_decl_stmt now add_decl_expr.
33231 * gigi.h: Likewise.
33232 * trans.c: Likewise.
33233 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
33234 (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
33235 (add_stmt): Only handle padded type here.
33236 (add_stmt_with_node): Allow gnat_node to not be present.
33237 (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
33238 (gnat_gimplify_stmt, case DECL_STMT): Deleted.
33239 (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
33240 make a SAVE_EXPR for the entire fat pointer.
33241 * utils.c (pushdecl): Walk a DECL_EXPR in global case.
33242 (create_index_type): Make a DECL_EXPR.
33243 (end_subprog_body): Don't call allocate_struct_function here but
33246 2004-06-25 Pascal Obry <obry@gnat.com>
33248 * makegpr.adb (Build_Library): Remove parameter Lib_Address and
33249 Relocatable from Build_Dynamic_Library call.
33251 * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
33252 Relocatable are now synonym.
33254 * Makefile.in: Use s-parame-mingw.adb on MingW platform.
33256 * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
33257 Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
33260 * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
33261 Lib_Address and Relocatable.
33262 (Default_DLL_Address): Removed.
33264 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
33265 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
33266 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
33267 (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
33268 (Default_DLL_Address): Removed.
33270 * mlib-tgt-mingw.adb: Ditto.
33271 (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
33273 * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
33274 the initial thread stack size.
33276 * a-strmap.ads: Move package L to private part as it is not used in
33277 the spec. Found while reading code.
33279 2004-06-25 Olivier Hainque <hainque@act-europe.fr>
33281 * tracebak.c: Introduce support for a GCC infrastructure based
33282 implementation of __gnat_backtrace.
33284 * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
33285 any more. Use accessors instead. This eases maintenance and relaxes
33286 some alignment constraints.
33287 (_GNAT_Exception structure): Remove the Ada specific fields
33288 (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
33290 (is_handled_by, __gnat_eh_personality): Replace component references to
33291 exception structure by use of the new accessors.
33293 * init.c (__gnat_initialize): Adjust comments to match the just
33294 reverted meaning of the -static link-time option.
33296 * adaint.c (convert_addresses): Arrange not to define a stub for
33297 mips-irix any more, as we now want to rely on a real version from a
33298 recent libaddr2line.
33300 * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
33301 the personality routine can use them and not have to rely on a C
33302 counterpart of the record anymore. This simplifies maintenance and
33303 relaxes the constraint of having Standard'Maximum_Alignment match
33305 Update comments, and add a section on the common header alignment issue.
33307 2004-06-25 Geert Bosch <bosch@gnat.com>
33309 * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
33310 polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
33312 2004-06-25 Robert Dewar <dewar@gnat.com>
33314 * gnat_rm.texi: Fix section on component clauses to indicate that the
33315 restriction on byte boundary placement still applies for bit packed
33317 Add comment on stack usage from Initialize_Scalars
33319 * gnat_ugn.texi: Add documentation for -gnatyLnnn
33321 * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
33322 limiting nesting level.
33324 * usage.adb: Add line for -gnatyLnnn switch
33326 * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
33327 sem_ch13.adb, exp_aggr.adb: Minor reformatting
33329 * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
33330 type as well as on the subtype. This corrects a problem in freeze in
33331 setting alignments of atomic types.
33333 * sem_eval.ads: Minor comment typo fixed
33335 * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
33336 level. Minor reformatting.
33338 * fname.adb (Is_Predefined_File_Name): Require a letter after the
33339 minus sign. This means that file names like a--b.adb will not be
33340 considered predefined.
33342 * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
33343 record Test new flag and give diagnostic for bad component clause.
33344 (Freeze_Entity): Set alignment of array from component alignment in
33345 cases where this is safe to do.
33347 * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
33350 * cstand.adb: (Create_Standard): Set alignment of String to 1
33352 * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
33354 * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
33355 code in the common constrained array cases.
33357 * a-storio.adb: Change implementation to avoid possible alignment
33358 problems on machines requiring strict alignment (data should be moved
33359 as type Buffer, not type Elmt).
33361 * checks.adb (Apply_Array_Size_Check): Improve these checks by
33362 killing the overflow checks which we really do not need (64-bits is
33365 2004-06-25 Vincent Celier <celier@gnat.com>
33367 * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
33368 (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
33369 inconditionally for the main project.
33370 (Recursive_Add_Archives.Add_Archive_Path): New procedure
33371 (Link_Executables.Check_Time_Stamps): New procedure
33372 (Link_Executables.Link_Foreign): New procedure
33373 Changes made to reduce nesting level of this package
33374 (Check): New procedure
33375 (Add_Switches): When not in quiet output, check that a switch is not
33376 the concatenation of several valid switches. If it is, issue a warning.
33377 (Build_Global_Archive): If the global archive is rebuilt, linking need
33379 (Compile_Sources): Rebuilding a library archive does not imply
33380 rebuilding the global archive.
33381 (Build_Global_Archive): New procedure
33382 (Build_Library): New name for Build_Archive, now only for library
33384 (Check_Archive_Builder): New procedure
33385 (Create_Global_Archive_Dependency_File): New procedure
33386 (Gprmake): Call Build_Global_Archive before linking
33387 * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
33389 (Scan_Arg): Display the Copyright notice when -v is used
33391 * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
33394 * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
33396 Add new GNAT LIST qualifier /FILES=
33397 Added qualifier /DIRECTORY= to GNAT METRIC
33398 Added qualifier /FILES= to GNAT METRIC
33399 Added qualifier /FILES to GNAT PRETTY
33401 * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
33402 to take into account both versions of the switch.
33404 * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
33405 always be the last switch to the gcc driver. Disable switch storing so
33406 that switches automatically added by the gcc driver are not put in the
33409 * prj.adb (Project_Empty): Take into account changes in components of
33412 * prj.ads (Languages_Processed): New enumaration value All_Languages.
33414 * prj.ads (Project_Data): Remove component Lib_Elaboration: never
33415 used. Split Boolean component Ada_Sources_Present in two Boolean
33416 components Ada_Sources_Present and Other_Sources_Present.
33419 * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
33420 instead of Sources_Present.
33421 (Set_Ada_Paths.Add.Recursive_Add): Ditto
33423 * prj-nmsc.adb: Minor reformatting
33424 (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
33425 (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
33426 Check_Ada_Naming_Scheme.
33427 Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
33430 * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
33432 Make sure that all cycles where there is at least one "limited with"
33434 (Parse_Single_Project): New Boolean parameter In_Limited
33436 * prj-proc.adb (Recursive_Check): When Process_Languages is
33437 All_Languages, call first Prj.Nmsc.Ada_Check, then
33438 Prj.Nmsc.Other_Languages_Check.
33440 * prj-proc.adb (Process): Use Ada_Sources_Present or
33441 Other_Sources_Present (instead of Sources_Present) depending on
33444 * lang-specs.h: Keep -g and -m switches in the same order, and as the
33447 * lib.adb (Switch_Storing_Enabled): New global Boolean flag
33448 (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
33450 (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
33453 * lib.ads (Disable_Switch_Storing): New procedure.
33455 * make.adb: Modifications to reduce nesting level of this package.
33456 (Check_Standard_Library): New procedure
33457 (Gnatmake.Check_Mains): New procedure
33458 (Gnatmake.Create_Binder_Mapping_File): New procedure
33459 (Compile_Sources.Compile): Add switch -gnatez as the last option
33460 (Display): Never display -gnatez
33462 * Makefile.generic:
33463 When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
33465 * gnatcmd.adb (Check_Project): New function
33466 (Process_Link): New procedure to reduce nesting depth
33467 (Check_Files): New procedure to reduce the nesting depth.
33468 For GNAT METRIC, include the inherited sources in extending projects.
33469 (GNATCmd): When GNAT LS is invoked with a project file and no files,
33470 add the list of files from the sources of the project file. If this list
33471 is too long, put it in a temp text files and use switch -files=
33472 (Delete_Temp_Config_Files): Delete the temp text file that contains
33473 a list of source for gnatpp or gnatmetric, if one has been created.
33474 (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
33475 in the project file is too large, create a temporary text file that
33476 list them and pass it to the tool with "-files=<temp text file>".
33477 (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
33479 * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
33480 generated file is in not in Ada.
33482 * gnatls.adb: Remove all parameters And_Save that are no longer used.
33483 (Scan_Ls_Arg): Add processing for -files=
33484 (Usage): Add line for -files=
33486 * g-os_lib.adb (On_Windows): New global constant Boolean flag
33487 (Normalize_Pathname): When on Windows and the path starts with a
33488 directory separator, make sure that the resulting path will start with
33491 * clean.adb (Clean_Archive): New procedure
33492 (Clean_Project): When there is non-Ada code, delete the global archive,
33493 the archive dependency files, the object files and their dependency
33494 files, if they exist.
33495 (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
33497 2004-06-25 Thomas Quinot <quinot@act-europe.fr>
33499 * sinfo.ads: Fix typo in comment.
33501 * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
33502 the TSS for remote access-to-subprogram types, since these TSS are
33503 always present once the type has been analyzed.
33504 (RAS_E_Dereference): Same.
33506 * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
33507 reference raises Bad_Attribute, mark the reference as analyzed so the
33508 node (and any children resulting from rewrites that could have occurred
33509 during the analysis that ultimately failed) is not analyzed again.
33511 * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
33513 * exp_dist.adb: Minor comment fix.
33515 * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
33516 type is an anonymous access type, no unchecked deallocation of the
33517 allocated object can occur. If the object is controlled, attach it with
33518 a count of 1. This allows attachment to the Global_Final_List, if
33519 no other relevant list is available.
33520 (Get_Allocator_Final_List): For an anonymous access type that is
33521 the type of a discriminant or record component, the corresponding
33522 finalisation list is the one of the scope of the type.
33524 2004-06-25 Ed Schonberg <schonberg@gnat.com>
33526 * sem_ch3.adb (Replace_Type): When computing the signature of an
33527 inherited subprogram, use the first subtype if the derived type
33528 declaration has no constraint.
33530 * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
33531 before applying previous optimization. Minor code cleanup.
33533 * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
33534 placed at the beginning of an unpacked record without explicit
33535 alignment, a slice of it will be aligned and does not need a copy when
33538 2004-06-25 Ed Schonberg <schonberg@gnat.com>
33542 * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
33543 reference is written with expressions mimicking parameters.
33545 2004-06-25 Hristian Kirtchev <kirtchev@gnat.com>
33548 * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
33549 STEP 2a. The constraints of a full type declaration of a derived record
33550 type are checked for conformance with those declared in the
33551 corresponding private extension declaration. The message
33552 "not conformant with previous declaration" is emitted if an error is
33555 2004-06-25 Vasiliy Fofanov <fofanov@act-europe.fr>
33557 * g-traceb.ads: Document the need for -E binder switch in the spec.
33559 * g-trasym.ads: Document the need for -E binder switch in the spec.
33561 2004-06-25 Jose Ruiz <ruiz@act-europe.fr>
33563 * sem_prag.adb: Add handling of pragma Detect_Blocking.
33565 * snames.h, snames.ads, snames.adb: Add entry for pragma
33568 * s-rident.ads: Change reference to pragma Detect_Blocking.
33570 * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
33573 * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
33574 to indicate whether pragma Detect_Blocking is active.
33576 * par-prag.adb: Add entry for pragma Detect_Blocking.
33578 * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
33579 of not handling WITH.
33580 Note that this replaces the previous update which was incorrect.
33582 2004-06-25 Javier Miranda <miranda@gnat.com>
33584 * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
33585 use-clauses to have a clean environment.
33587 * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
33588 the installation of the use-clauses to stablish a clean environment in
33589 case of compilation of a separate unit; otherwise the call to
33590 use_one_package is protected by the barrier Applicable_Use.
33592 * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
33593 the installation of the use-clauses to stablish a clean environment in
33594 case of compilation of a separate unit.
33595 (End_Use_Clauses): Minor comment cleanup.
33597 2004-06-25 Sergey Rybin <rybin@act-europe.fr>
33599 * gnat_ugn.texi: Add description of the gnatpp 'files' switch
33601 2004-06-23 Richard Henderson <rth@redhat.com>
33603 * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
33605 2004-06-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33607 * decl.c (elaborate_expression, elaborate_expression_1): Arguments
33608 now bool instead of int.
33609 (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
33610 * trans.c (gnu_switch_label_stack): New function.
33611 (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
33612 elaboration of renamed entity returns.
33613 (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
33614 (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
33615 (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
33616 (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
33617 DECL_SIZE_UNIT and simplify variable-sized case.
33618 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
33619 Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
33620 (gnat_stabilize_reference): Add arg to COMPONENT_REF.
33621 (build_unit_elab): Disable for now.
33622 * utils.c (mark_visited): New function.
33623 (pushdecl): Walk tree to call it for global decl.
33624 (update_pointer_to): Update all variants of pointer and ref types.
33625 Add arg to COMPONENT_REF.
33626 (convert): Likewise.
33627 Move check for converting between variants lower down.
33628 * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
33629 (build_allocator): Don't force type of MODIFY_EXPR.
33630 (gnat_mark_addressable, case VAR_DECL): Unconditionally call
33631 put_var_into_stack.
33633 2004-06-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33635 * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
33636 * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
33637 * decl.c (gnat_to_gnu_entity): Also set force_global for imported
33639 * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
33640 all callers changed.
33641 (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
33642 the way that EXIT_STMT finds the loop label.
33643 (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
33644 (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
33645 (add_stmt): Use annotate_with_locus insted of setting directly.
33646 (pos_to_construct): Set TREE_PURPOSE of each entry to index.
33647 (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
33648 * utils.c (gnat_install_builtins): Install __builtin_memcmp.
33649 (build_vms_descriptor): Add extra args to ARRAY_REF.
33650 (convert): Use VIEW_CONVERT_EXPR between aggregate types.
33651 * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
33653 (build_binary_op): Don't make explicit CONVERT_EXPR.
33654 Add extra rgs to ARRAY_REF.
33656 2004-06-14 Pascal Obry <obry@gnat.com>
33658 * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
33659 Windows. Fix minor typo.
33661 * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
33662 which is now supported on Windows. With this implementation using the
33663 Library Project feature is no different on Windows than on UNIX.
33665 2004-06-14 Vincent Celier <celier@gnat.com>
33667 * makegpr.adb (Compile_Sources): Nothing to do when there are no
33670 * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
33672 * prj-part.adb (Parse_Single_Project): When a duplicate project name is
33673 found, show the project name and the path of the previously parsed
33676 2004-06-14 Ed Schonberg <schonberg@gnat.com>
33678 * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
33679 array, avoid copying the actual before the call.
33681 2004-06-14 Thomas Quinot <quinot@act-europe.fr>
33683 * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
33684 Instead, allocate memory on worst-case alignment assumptions, and then
33685 return an aligned address within the allocated zone.
33687 2004-06-14 Robert Dewar <dewar@gnat.com>
33689 * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
33690 elab entities in predefined units in No_Run_Time_Mode.
33691 (Gen_Adainit_C): Same fix
33692 (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
33693 units in No_Run_Time_Mode
33694 (Gen_Elab_Calls_C): Same fix
33696 * symbols-vms-alpha.adb: Minor reformatting
33698 * g-debpoo.ads: Minor reformatting
33700 * lib.adb (In_Same_Extended_Unit): Version working on node id's
33702 * lib.ads (In_Same_Extended_Unit): Version working on node id's
33704 * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
33707 * make.adb: Minor reformatting
33709 * par-ch12.adb: Minor reformatting
33711 * par-prag.adb: Add dummy entry for pragma Profile_Warnings
33713 * prj-strt.adb: Minor reformatting
33715 * restrict.ads, restrict.adb: Redo handling of profile restrictions to
33718 * sem_attr.adb: Minor reformatting
33720 * sem_ch7.adb: Minor reformatting
33722 * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
33723 for type in the same unit as the object declaration.
33725 * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
33726 static string expressions and not just string literals.
33728 (Set_Warning): Reset restriction warning flag for restriction pragma
33729 Implement pragma Profile_Warnings
33730 Implement pragma Profile (Restricted)
33731 Give obolescent messages for old restrictions and pragmas
33733 * snames.h, snames.ads, snames.adb: Add new entry for pragma
33736 * s-rident.ads: Add declarations for restrictions required by profile
33737 Restricted and profile Ravenscar.
33739 * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
33741 * gnat_ugn.texi: Correct some missing entries in the list of GNAT
33742 configuration pragmas.
33744 2004-06-11 Vincent Celier <celier@gnat.com>
33746 * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
33747 gnatsym, when symbol policy is Restricted.
33749 * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
33750 gnatsym, when symbol policy is Restricted.
33752 * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
33753 read the symbol file.
33754 (Finalize): Fail in symbol policy Restricted if a symbol in the original
33755 symbol file is not in the object files. Do not create a new symbol file
33756 when symbol policy is Restricted.
33758 * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
33761 * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
33763 (Usage): Line for new switch -R
33765 * make.adb (Initialize): When the platform is not VMS, add the
33766 directory where gnatmake is invoked in the front of the path, if
33767 gnatmake is invoked with directory information. Change the Scan_Args
33768 while loop to a for loop.
33769 (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
33770 if Depth is equal or greater than the proposed depth, there is nothing
33772 (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
33775 * prj.ads: Add new symbol policy Restricted.
33777 * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
33778 with the new parameters Check_All_Labels and Case_Location.
33780 * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
33781 (Library_Symbol_File needs to be defined).
33783 * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
33784 and Case_Location If Check_All_Labels is True, check that all values of
33785 the string type are used, and output warning(s) if they are not.
33787 * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
33790 * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
33792 * gnat_ugn.texi: Update documentation about the library directory in
33795 * makegpr.adb (Display_Command): In verbose mode, also display the
33796 value of the CPATH env var, when the compiler is gcc.
33797 (Initialize): Change the Scan_Args while loop to a for loop
33798 (Compile_Individual_Sources): Change directory to object directory
33799 before compilations.
33801 * symbols.ads: New symbol policy Restricted.
33803 2004-06-11 Olivier Hainque <hainque@act-europe.fr>
33805 * a-except.adb (Raise_After_Setup family): Remove. The responsibility
33806 is now taken care of internally in the Exception_Propagation package
33807 and does not require clients assistance any more.
33809 * a-exexpr.adb (Is_Setup_And_Not_Propagated,
33810 Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
33811 functions. Helpers to maintain a predicate required in the handling of
33812 occurrence transfer between tasks.
33813 This is now handled internally and does not require clients assistance
33814 for the setup/propagate separation anymore.
33815 (Setup_Exception, Propagate_Exception): Simplify the Private_Data
33816 allocation strategy, handle the Setup_And_Not_Propagated predicate and
33819 * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
33820 raise_after_setup, now that everything is handled internally within the
33821 setup/propagation engine.
33823 2004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
33825 * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
33826 Add additional conditions for the case of an actual being a simple
33827 name or literal. Improve inlining by preventing the generation
33828 of temporaries with a short lifetime (one use).
33830 2004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
33833 * einfo.ads: Minor comment updates for Has_Completion and
33834 E_Constant list of flags.
33836 * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
33837 and constant redeclarations now set the Has_Completion flag of their
33838 defining identifiers.
33840 * sem_ch7.adb (Analyze_Package_Spec): Add procedure
33841 Inspect_Deferred_Constant_Completion.
33842 Used to detect private deferred constants that have not been completed
33843 either by a constant redeclaration or pragma Import. Emits error message
33844 "constant declaration requires initialization expression".
33846 * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
33847 completes a deferred constant.
33849 2004-06-11 Geert Bosch <bosch@gnat.com>
33851 * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
33853 * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
33854 calculating exponent for scaling denormal numbers.
33855 (Leading_Part): Properly raise Constraint_Error for zero or negative
33857 (Remainder): Properly raise Constraint_Error for zero divisor.
33859 2004-06-11 Thomas Quinot <quinot@act-europe.fr>
33861 * sem_util.adb: Minor reformatting.
33863 * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
33864 dereference when accessing the entry parameter record.
33865 (Check_Array_Type): Always check for possible implicit dereference.
33866 (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
33867 Abort if a pointer is still present (denoting that an implicit
33868 dereference was left in the tree by the front-end).
33870 * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
33871 dereference when accessing the entry parameter record.
33872 (Check_Array_Type): Always check for possible implicit dereference.
33873 (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
33874 Abort if a pointer is still present (denoting that an implicit
33875 dereference was left in the tree by the front-end).
33877 2004-06-11 Emmanuel Briot <briot@act-europe.fr>
33879 * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
33880 message, like the compiler itself does. Easier to parse the output.
33882 * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
33884 * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
33885 be base names, and not includes directories.
33887 2004-06-11 Arnaud Charlet <charlet@act-europe.fr>
33889 * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
33890 so that dependencies are properly taken into account by make.
33892 2004-06-11 Arnaud Charlet <charlet@act-europe.fr>
33895 * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
33896 exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
33898 2004-06-11 Jerome Guitton <guitton@act-europe.fr>
33900 * Makefile.in (install-gnatlib): install target-specific run-time files.
33902 * Make-lang.in: Remove obsolete targets.
33904 2004-06-11 Ed Schonberg <schonberg@gnat.com>
33906 * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
33907 specification, to catch misuses of program unit names.
33909 * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
33910 superfluous conversions in an instance.
33912 2004-06-11 Ed Schonberg <schonberg@gnat.com>
33915 * sem_ch12.adb (Save_References): If operator node has been folded to
33916 enumeration literal, associated_node must be discarded.
33918 2004-06-11 Jose Ruiz <ruiz@act-europe.fr>
33920 * s-stchop-vxworks.adb: Add required pragma Convention to
33921 Task_Descriptor because it is updated by a C function.
33923 2004-06-08 Arnaud Charlet <charlet@act-europe.fr>
33926 * Makefile.in: Remove target specific SO_OPT on IRIX
33928 2004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33930 * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
33931 (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
33932 (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
33933 (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
33934 (STMT_STMT, USE_STMT): New statement codes.
33935 (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
33936 * ada-tree.h: Reflect above changes.
33937 (struct tree_loop_id): Deleted.
33938 (union lang_tree_node, struct lang_decl, struct lang_type):
33939 Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
33940 and DECL_LANGUAGE_SPECIFIC to reflect these changes.
33941 (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
33942 (IS_ADA_STMT): New macro.
33943 * decl.c (annotate_decl_with_node): New function.
33944 (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
33945 (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
33946 Call add_stmt_with_node to do needed assignments.
33947 Add call to update setjmp buffer directly, not via EXPR_STMT.
33948 (maybe_variable): Argment GNAT_NODE deleted.
33949 * gigi.h (maybe_variable): Likewise.
33950 (make_transform, add_stmt_with_node, set_block_for_group): New.
33951 (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
33952 (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
33953 (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
33954 (set_lineno, set_lineno_from_sloc): Likewise.
33955 (record_code_position, insert_code_for): Likewise.
33956 (gnat_poplevel): Now returns void.
33957 (end_subprog_body): Now takes argument.
33958 * misc.c (cgraph.h, tree-inline.h): New includes.
33959 (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
33960 (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
33961 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
33962 (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
33963 (gnat_parse_file): Don't set immediate_size_expand.
33964 Call cgraph functions.
33965 (gnat_expand_expr): Remove most cases.
33966 (record_code_position, insert_code_for): Remove from here.
33967 * trans.c (toplev.h, tree-gimple.h): Now included.
33968 (discard_file_names): Deleted.
33969 (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
33970 (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
33971 (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
33972 (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
33973 (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
33974 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
33975 (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
33976 (set_block_for_group, add_stmt_list): Likewise.
33977 (start_stmt_group): Renamed from start_block_stmt.
33978 (end_stmt_group): Likewise, from end_block_stmt.
33979 (build_stmt_group): Likewise, from build_block_stmt, also add arg.
33980 (gigi): Don't set discard_file_names or call set_lineno.
33981 Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
33982 (tree_transform): Deleted, now renamed to be gnat_to_gnu.
33983 Numerous changes throughout to reflect new names and complete
33984 function-at-a-time implementation.
33985 (gnat_expand_stmt): Delete or comment out all cases.
33986 (process_inlined_subprograms): Use add_stmt.
33987 (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
33988 call set_lineno; also remove unneeded block handling.
33989 (process_type): Remove unneeded block handling.
33990 (build_unit_elab): Remove calls to deleted functions.
33991 * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
33992 (tree-dump.h): Likewise.
33993 (struct ada_binding_level): Add field jmpbuf_decl.
33994 (gnat_define_builtin, gnat_install_builtins): New.
33995 (gnat_gimplify_function, gnat_finalize): Likewise.
33996 (gnat_poplevel): No longer return BLOCK, set it instead.
33997 Remove code dealing with nested functions.
33998 (gnat_init_decl_processing): Also set size_type_node.
33999 Call gnat_install_builtins.
34000 (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
34001 (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
34002 Remove special-case for "main".
34003 (end_subprog_body): Add arg and rework for tree-ssa.
34004 (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
34005 Add case for BOOLEAN_TYPE.
34006 * utils2.c (rtl.h): Now include.
34007 (build_call_raise): Test Debug_Flag_NN directly.
34008 (build_call_alloc_dealloc): Don't use local stack allocation for now.
34009 (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
34010 (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
34012 2004-06-07 Robert Dewar <dewar@gnat.com>
34014 * a-direct.ads, einfo.ads: Minor comment updates
34016 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
34017 s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
34018 s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
34019 s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
34020 s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
34022 * s-interr-sigaction.adb: Remove unreferenced variable
34023 (Attached_Interrupts). Minor reformatting.
34024 Avoid use of variable I (replace by J).
34026 * par-ch10.adb: Fix text of one error message
34028 * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
34029 exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
34030 exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
34031 opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
34032 par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
34033 par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
34034 sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
34035 sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
34036 sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
34037 sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
34038 snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
34041 2004-06-07 Doug Rupp <rupp@gnat.com>
34043 * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
34045 * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
34047 * mlib-tgt-vms-ia64.adb: New file.
34049 * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
34050 Add mlib-tgt-vms-ia64.adb
34051 Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
34052 Move to alpha specific ifeq section.
34053 Add VMS specific versions of symbols.adb
34054 Renaming of 5q vms files.
34056 * 5qsystem.ads renamed to system-vms_64.ads.
34058 2004-06-07 Vincent Celier <celier@gnat.com>
34060 * a-calend.ads: Add a GNAT Note comment after function Time_Of to
34061 explain that when a time of day corresponding to the non existing hour
34062 on the day switching to DST is specified, Split may return a different
34065 * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
34068 * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
34069 (Normalize_Pathname): Only resolve VMS logical names when on VMS.
34071 * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
34073 If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
34074 the linking options.
34075 (Build_Library.Check_Libs): On VMS, if there is a dependency on
34076 g-trasym.ads, set Gtrasymobj_Needed to True.
34078 * prj-attr.adb: Add new package Metrics for gnatmetric
34080 * prj-nmsc.adb (Record_Other_Sources): Put source file names in
34081 canonical case to take into account files with upper case characters on
34083 (Ada_Check): Load the reference symbol file name in the name buffer to
34084 check it, not the symbol file name.
34086 * snames.ads, snames.adb: Add standard name Metrics (name of project
34087 file package for gnatmetric).
34089 * vms_conv.ads: Add Metric to Comment_Type
34091 * vms_conv.adb (Initialize): Add component dor Metric in Command_List
34093 * vms_data.ads: Add qualifiers for GNAT METRIC
34095 * makegpr.adb (Link_Executables): Take into account the switches
34096 specified in package Linker of the main project.
34098 2004-06-07 Thomas Quinot <quinot@act-europe.fr>
34100 * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
34101 the index of the last element is Units.Last, not Units.Table'Last
34102 (which is usually not a valid index within the actually allocated
34103 storage for the table).
34105 * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
34106 determines whether to generate a call to a checked storage pool
34107 Dereference action.
34108 Generate such a call only for a dereference that either comes from
34109 source, or is the result of rewriting a dereference that comes from
34112 2004-06-07 Romain Berrendonner <berrendo@act-europe.fr>
34114 * bindgen.adb (Gen_Output_File): Add support for GAP builds.
34116 2004-06-07 Eric Botcazou <ebotcazou@act-europe.fr>
34118 (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
34119 file level, elaborate the stride for inner dimensions in alignment
34122 * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
34125 2004-06-07 Javier Miranda <miranda@gnat.com>
34127 * exp_ch6.adb: Correct wrong modification in previous patch
34129 2004-06-07 Vasiliy Fofanov <fofanov@act-europe.fr>
34131 * g-trasym.ads: Corrected comment to properly reflect level of support
34134 2004-06-07 Hristian Kirtchev <kirtchev@gnat.com>
34136 * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
34137 includes case of a variable referenced on the left hand side of an
34138 assignment, therefore remove redundant code. Variables and prefixes of
34139 indexed or selected components are now marked as referenced on left
34140 hand side. Warnings are now properly emitted when variables or prefixes
34141 are assigned but not read.
34143 * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
34144 left hand side referenced variables. Private access types do not
34145 produce the warning "variable ... is assigned but never read".
34146 Add also additional checks to left hand side referenced variables.
34147 Aliased, renamed objects and access types do not produce the warning
34148 "variable ... is assigned but never read" since other entities may read
34149 the memory location.
34151 2004-06-07 Jerome Guitton <guitton@act-europe.fr>
34153 * Makefile.in: In the powerpc/vxworks-specific section, restore
34154 EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
34157 2004-06-07 Ed Schonberg <schonberg@gnat.com>
34159 * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
34160 predefined operators.
34161 Removes spurious type errors from g-trasym-vms.adb.
34163 * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
34164 distinct from the operator appearing in the source, call appropriate
34165 routine to insert conversions when needed, and complete resolution of
34167 (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
34168 interpretations for rewritten right operand.
34169 (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
34170 the other operand is overloaded and the context is a type conversion.
34172 2004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34174 * ada-tree.def (BLOCK_STMT): Now has two operands.
34177 * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
34179 * gigi.h: (gnat_poplevel): Now returns a tree.
34181 * trans.c (end_block_stmt): Add arg; all callers changed.
34182 (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
34183 (start_block_stmt): Clear BLOCK_STMT_BLOCK.
34184 (add_stmt): Set TREE_TYPE.
34185 (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
34186 (gnat_expand_stmt, case BREAK_STMT): New case.
34188 * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
34190 2004-06-07 Jose Ruiz <ruiz@act-europe.fr>
34192 * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
34193 procedure Set_Stack_Size that is not needed.
34195 2004-06-07 Sergey Rybin <rybin@act-europe.fr>
34197 * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
34198 used for gnatpp input file and for the files upon which it depends
34200 2004-06-07 Ben Brosgol <brosgol@gnat.com>
34202 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
34204 2004-06-07 Arnaud Charlet <charlet@act-europe.fr>
34206 * gnatvsn.ads: Bump version numbers appropriately.
34207 Add new build type.
34209 2004-06-07 Pascal Obry <obry@gnat.com>
34211 * gnat_ugn.texi: Improve comments about imported names and link names
34212 on Windows. Add a note about the requirement to use -k gnatdll's option
34213 when working with a DLL which has stripped stdcall symbols (no @nn
34216 2004-05-27 Vincent Celier <celier@gnat.com>
34218 * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
34219 COMMENTS_LAYOUT=UNTOUCHED
34221 * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
34222 symbols-vms-alpha.adb
34224 2004-05-27 Thomas Quinot <quinot@act-europe.fr>
34226 * sem.ads: Clarify documentation on checks suppression.
34228 * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
34230 2004-05-27 Ed Schonberg <schonberg@gnat.com>
34232 * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
34233 the case of multiple derivations.
34234 (Is_Object_Reference): For a selected component, verify that the prefix
34235 is itself an object and not a value.
34237 * sem_ch12.adb (Same_Instantiated_Constant): New name for
34238 Same_Instantiated_Entity.
34239 (Same_Instantiated_Variable): Subsidiary to
34240 Check_Formal_Package_Instance, to recognize actuals for in-out generic
34241 formals that are obtained from a previous formal package.
34242 (Instantiate_Subprogram_Body): Emit proper error when
34243 generating code and the proper body of a stub is missing.
34245 * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
34246 has a universal interpretation, do the disambiguation here.
34248 * exp_ch4.adb (Expand_N_Type_Conversion,
34249 Expand_N_Unchecked_Type_Conversion): Special handling when target type
34250 is Address, to avoid typing anomalies when Address is a visible integer
34253 * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
34254 to determine whether a subprogram should not be marked Pure, even when
34255 declared in a pure package.
34257 2004-05-27 Jose Ruiz <ruiz@act-europe.fr>
34259 * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
34261 * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
34262 Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
34263 Update the documentation about the Ravenscar profile, following the
34264 definition found in AI-249.
34266 * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
34267 setting the Profile (Ravenscar). This must be done in addition to
34268 setting the required restrictions.
34270 * rtsfind.ads: Add the set of operations defined in package
34273 * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
34276 2004-05-27 Eric Botcazou <ebotcazou@act-europe.fr>
34278 lang-specs.h: Always require -c or -S and always redirect to /dev/null
34279 if -gnatc or -gnats is passed.
34281 2004-05-27 Hristian Kirtchev <kirtchev@gnat.com>
34283 * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
34284 a significant reference. Warnings are now properly emitted when a
34285 discriminated type is not referenced.
34287 * lib-xref.adb (Generate_Reference): A deferred constant completion,
34288 record representation clause or record type discriminant does not
34289 produce a reference to its corresponding entity. Warnings are now
34290 properly emitted when deferred constants and record types are not
34293 2004-05-27 Geert Bosch <bosch@gnat.com>
34295 * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
34296 Fixes ACATS Annex G tests.
34298 2004-05-27 Robert Dewar <dewar@gnat.com>
34300 * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
34303 2004-05-27 Arnaud Charlet <charlet@act-europe.fr>
34305 * s-interr.adb (Server_Task): Take into account case of early return
34306 from sigwait under e.g. linux.
34308 2004-05-27 Sergey Rybin <rybin@act-europe.fr>
34310 * gnat_ugn.texi: Add description for the new gnatpp options:
34311 -rnb - replace the original source without creating its backup copy
34312 -c0 - do not format comments
34314 2004-05-24 Geert Bosch <bosch@gnat.com>
34316 * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
34317 with 192 bits of precision, sufficient to reduce a double-extended
34318 arguments X with a maximum relative error of T'Machine_Epsilon, for X
34319 in -2.0**32 .. 2.0**32.
34320 (Cos, Sin): Always reduce arguments of 1/4 Pi or larger, to prevent
34321 reduction by the processor, which only uses a 68-bit approximation of
34323 (Tan): Always reduce arguments and compute function either using
34324 the processor's fptan instruction, or by dividing sin and cos as needed.
34326 2004-05-24 Doug Rupp <rupp@gnat.com>
34328 * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
34329 gcc error on 32/64 bit VMS.
34331 2004-05-24 Olivier Hainque <hainque@act-europe.fr>
34333 * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
34334 since this is what we get for stack overflows although not documented
34336 Document the issues which may require adjustments to our signal
34339 2004-05-24 Ed Schonberg <schonberg@gnat.com>
34341 * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
34342 enclosing dynamic scope if the instantiation is within a generic unit.
34344 2004-05-24 Arnaud Charlet <charlet@act-europe.fr>
34346 * exp_dbug.ads: Fix typo.
34348 * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
34349 Rename it to its proper name: system-linux-ia64.ads
34350 (stamp-gnatlib1): Remove extra target specific run time files when
34351 setting up the rts directory.
34353 2004-05-24 Javier Miranda <miranda@gnat.com>
34355 * einfo.ads, einfo.adb (Limited_Views): Removed.
34356 (Limited_View): New attribute that replaces the previous one. It is
34357 now a bona fide package with the limited-view list through the
34358 first_entity and first_private attributes.
34360 * sem_ch10.adb (Install_Private_With_Clauses): Give support to
34361 limited-private-with clause.
34362 (Install_Limited_Withed_Unit): Install the private declarations of a
34363 limited-private-withed package. Update the installation of the shadow
34364 entities according to the new structure (see Build_Limited_Views)
34365 (Build_Limited_Views): Replace the previous implementation of the
34366 limited view by a package entity that references the first shadow
34367 entity plus the first shadow private entity (required for limited-
34368 private-with clause)
34369 (New_Internal_Shadow_Entity): Code cleanup.
34370 (Remove_Limited_With_Clause): Update the implementation to undo the
34371 new work carried out by Build_Limited_Views.
34372 (Build_Chain): Complete documentation.
34373 Replace Ada0Y by Ada 0Y in comments
34376 * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
34377 types the level of accessibility depends on the enclosing type
34380 * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
34381 entities. Complete documentation of previous change.
34383 2004-05-24 Robert Dewar <dewar@gnat.com>
34385 * namet.adb: Minor reformatting
34386 Avoid use of name I (replace by J)
34387 Minor code restructuring
34389 * sem_ch6.adb: Minor reformatting
34391 * lib-writ.adb: Do not set restriction as active if this is a
34392 Restriction_Warning case.
34394 * sem_prag.adb: Reset restriction warning flag if real pragma
34395 restriction encountered.
34397 * s-htable.adb: Minor reformatting
34398 Change rotate count to 3 in Hash (improves hash for small strings)
34400 * 5qsystem.ads: Add comments for type Address (no literals allowed).
34402 * gnat_ugn.texi: Add new section of documentation "Code Generation
34403 Control", which describes the use of -m switches.
34405 2004-05-24 Eric Botcazou <ebotcazou@act-europe.fr>
34407 trans.c (tree_transform) <N_Identifier>: Do the dereference directly
34408 through the DECL_INITIAL for renamed variables.
34410 2004-05-24 Arnaud Charlet <charlet@act-europe.fr>
34412 * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
34414 2004-05-19 Joel Brobecker <brobecker@gnat.com>
34416 * exp_dbug.ads: Correct comments concerning handling of overloading,
34417 since we no longer use $ anymore.
34419 2004-05-19 Sergey Rybin <rybin@act-europe.fr>
34421 * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
34422 ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
34423 with illegal subunits.
34425 2004-05-19 Ed Schonberg <schonberg@gnat.com>
34427 * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
34428 body with front-end inlining enabled, check whether an inline pragma
34429 appears immediately after the body and applies to it.
34431 * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
34432 enabled and the pragma appears after the body of the subprogram.
34434 2004-05-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34436 Part of function-at-a-time conversion
34438 * misc.c (adjust_decl_rtl): Deleted.
34439 (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
34442 * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
34443 (add_decl_stmt, add_stmt, block_has_vars): New functions.
34444 (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
34446 * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
34447 when making a decl.
34448 (gnat_to_gnu_entity): Likewise.
34449 Use add_stmt to update setjmp buffer.
34450 Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
34452 No longer call adjust_decl_rtl.
34453 (DECL_INIT_BY_ASSIGN_P): New macro.
34454 (DECL_STMT_VAR): Likewise.
34456 * trans.c (gigi): Call start_block_stmt to make the outermost
34458 (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
34459 Call start_block_stmt and end_block_stmt temporarily.
34460 Use gnat_expand_stmt instead of expand_expr_stmt.
34461 (add_decl_stmt): New function.
34462 (tree_transform): Call it.
34463 (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
34464 (end_block_stmt): Set type and NULL_STMT.
34465 (gnat_expand_stmt): Make recursize call instead of calling
34467 (gnat_expand_stmt, case DECL_STMT): New case.
34468 (set_lineno_from_sloc): Do nothing if global.
34469 (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
34470 (start_block_stmt, add_stmt, end_block_stmt): New functions.
34471 (build_block_stmt): Call them.
34472 (gnat_to_code): Don't expand NULL_STMT.
34473 (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
34475 (tree_transform): Likewise.
34476 (tree_transform, case N_Null_Statement): Return NULL_STMT.
34477 (gnat_expand_stmt, case NULL_STMT): New case.
34478 (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
34481 * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
34484 * utils.c (create_var_decl): Do not call expand_decl or
34486 Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
34487 Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
34489 (struct e_stack): Add chain_next to GTY.
34490 (struct binding_level): Deleted.
34491 (struct ada_binding_level): New struct.
34492 (free_block_chain): New.
34493 (global_binding_level, clear_binding_level): Deleted.
34494 (global_bindings_p): Rework to see if no chain.
34495 (kept_level_p, set_block): Deleted.
34496 (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
34497 new data structure and work directly on BLOCK node.
34498 (gnat_poplevel): Similarly.
34499 (get_decls): Look at BLOCK_VARS.
34500 (insert_block): Work directly on BLOCK node.
34501 (block_has_var): New function.
34502 (pushdecl): Rework for new binding structures.
34503 (gnat_init_decl_processing): Rename and rework calls to pushlevel and
34505 (build_subprog_body): Likewise.
34506 (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
34508 * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
34510 * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
34511 (DECL_STMT_VAR): Likewise.
34513 2004-05-17 Robert Dewar <dewar@gnat.com>
34515 * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
34518 * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
34519 of restriction synonyums by using
34520 Restrict.Process_Restriction_Synonyms.
34522 * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
34524 * s-restri.ads (Tasking_Allowed): Correct missing comment
34526 * s-rident.ads: Add entries for restriction synonyms
34528 * ali.adb: Fix some problems with badly formatted ALI files that can
34529 result in infinite loops.
34531 * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
34532 s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
34533 s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
34534 s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
34535 s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
34536 s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
34537 s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
34538 s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
34539 s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
34540 a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
34541 exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
34542 s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
34543 s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
34544 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
34545 s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
34546 s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
34547 s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
34548 s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
34549 s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
34550 s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
34551 to Task_Id (minor cleanup).
34553 2004-05-17 Vincent Celier <celier@gnat.com>
34555 * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
34556 directory separator.
34558 * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
34559 project being extended, if Languages is not declared in extending
34562 2004-05-17 Javier Miranda <miranda@gnat.com>
34564 * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
34565 limited view of a visible sibling.
34567 2004-05-14 Robert Dewar <dewar@gnat.com>
34569 * gnat_ugn.texi: Minor change to -gnatS documentation
34571 * sprint.adb: Remove some instances of Assert (False) and for this
34572 purpose replace them by output of a ??? string.
34574 * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
34577 * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
34578 flag processing. This was suppressing required dependencies in
34579 No_Run_Time mode and is not needed since the binder does not generate
34580 references for things in libgnat anyway.
34582 * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
34585 2004-05-14 Thomas Quinot <quinot@act-europe.fr>
34587 * gnat_ugn.texi: Document AIX-specific issue with initialization of
34590 * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
34591 action for the case of an actual parameter in an init proc call.
34593 2004-05-14 Ed Schonberg <schonberg@gnat.com>
34595 * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
34596 subtype, check visible entities in base type.
34598 * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
34599 actions if the object is a renaming.
34601 * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
34602 Check_Formal_Package_Instance, to determine more precisely when the
34603 formal and the actual denote the same entity.
34605 2004-05-14 Javier Miranda <miranda@gnat.com>
34607 * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
34609 * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
34610 corresponding to a private_with must be removed from visibility; it
34611 will be made visible later, just before we analyze the private part of
34613 (Check_Private_Child_Unit): Allow private_with clauses in public
34615 (Install_Siblings): Make visible the private entities of private-withed
34617 (Install_Withed_Unit): Do not install the private withed unit if we
34618 are compiling a package declaration and the Private_With_OK flag was
34619 not set by the caller. These declarations will be installed later,
34620 just before we analyze the private part of the package.
34622 * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
34623 during the evaluation of the expression that initializes the object,
34624 decorate it with the expected type to avoid cascade errors.
34627 * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
34628 subprogram we have to install the private_with clauses after its
34629 specification has been analyzed (as documented in AI-262.TXT).
34631 * sem_ch8.adb (Has_Private_With): New function. Determines if the
34632 current compilation unit has a private with on a given entity.
34633 (Find_Direct_Name): Detect the Beaujolais problem described in
34636 * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
34637 provides the functionality of the function Is_Ancestor that was
34638 previously available in sem_ch10. It has been renamed to avoid
34641 * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
34643 2004-05-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34645 * utils.c (build_vms_descriptor): Use SImode pointers.
34647 2004-05-14 Vasiliy Fofanov <fofanov@act-europe.fr>
34649 * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
34651 2004-05-14 GNAT Script <nobody@gnat.com>
34653 * Make-lang.in: Makefile automatically updated
34655 2004-05-14 Arnaud Charlet <charlet@act-europe.fr>
34657 Renaming of target specific files for clarity
34659 * Makefile.in: Rename GNAT target specific files.
34661 * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
34662 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
34663 3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
34664 3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
34665 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
34666 3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
34667 42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
34668 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
34669 4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
34670 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
34671 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
34672 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
34673 51osinte.adb, 51osinte.ads, 51system.ads,
34674 52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
34675 55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
34676 56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
34677 56tpopsp.adb, 57system.ads, 58system.ads,
34678 5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
34679 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
34680 5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
34681 5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
34682 5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
34683 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
34684 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
34685 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
34686 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
34687 5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
34688 5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
34689 5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
34690 5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
34691 5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
34692 5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
34693 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
34694 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
34695 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
34696 5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
34697 5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
34698 5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
34699 5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
34700 5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
34701 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
34702 5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
34703 5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
34704 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
34705 5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
34706 5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
34707 5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
34708 5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
34709 5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
34710 5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
34711 5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
34712 5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
34713 5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
34714 7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
34715 7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
34716 7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
34717 7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
34719 * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
34720 a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
34721 a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
34722 a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
34723 a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
34724 a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
34725 a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
34726 a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
34727 a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
34728 a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
34729 g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
34730 g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
34731 g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
34732 g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
34733 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
34734 g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
34735 g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
34736 g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
34737 interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
34738 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
34739 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
34740 mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
34741 s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
34742 s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
34743 s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
34744 s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
34745 s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
34746 s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
34747 s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
34748 s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
34749 s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
34750 s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
34751 s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
34752 s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
34753 s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
34754 s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
34755 s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
34756 s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
34757 s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
34758 s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
34759 s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
34760 s-osinte-vms.ads, s-osinte-vxworks.adb,
34761 s-osinte-vxworks.ads, s-osprim-mingw.adb,
34762 s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
34763 s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
34764 s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
34765 s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
34766 s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
34767 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
34768 s-stchop-vxworks.adb, s-taprop-dummy.adb,
34769 s-taprop-hpux-dce.adb, s-taprop-irix.adb,
34770 s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
34771 s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
34772 s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
34773 s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
34774 s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
34775 s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
34776 s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
34777 s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
34778 s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
34779 s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
34780 s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
34781 s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
34782 s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
34783 s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
34784 s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
34785 s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
34786 s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
34787 symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
34788 system-hpux.ads, system-interix.ads, system-irix-n32.ads,
34789 system-irix-o32.ads, system-linux-x86_64.ads,
34790 system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
34791 system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
34792 system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
34793 system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
34794 system-vxworks-alpha.ads, system-vxworks-m68k.ads,
34795 system-vxworks-mips.ads, system-vxworks-ppc.ads,
34796 system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
34799 2004-05-13 Zack Weinberg <zack@codesourcery.com>
34801 * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
34803 2004-05-13 Diego Novillo <dnovillo@redhat.com>
34805 Merge from tree-ssa-20020619-branch.
34807 * config-lang.in (boot_language, build_by_default): Set
34809 * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
34810 (max_size): Add static chain op for call_expr.
34812 2004-05-12 Richard Sandiford <rsandifo@redhat.com>
34815 * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
34817 2004-05-11 Roger Sayle <roger@eyesopen.com>
34819 * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
34822 2004-05-10 Doug Rupp <rupp@gnat.com>
34824 * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
34827 * s-auxdec.ads: Add Short_Address subtype (moved here from System).
34829 * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
34831 * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
34832 Fixes undefined symbols in IA64 gnatlib.
34834 * 5vinmaop.adb: Reference s-auxdec for Short_Address.
34836 * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
34837 Short_Address). This will be moved to system.auxdec.
34839 2004-05-10 Thomas Quinot <quinot@act-europe.fr>
34841 * sem_util.adb: Replace test for presence of a node that is always
34842 present with a call to Discard_Node.
34844 * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
34845 Analyze on the library unit node after generation of distribution stub
34846 constructs. The call was a no-op because Unit_Node has already been
34847 Analyzed, and the tree fragments for the distribution stubs are
34848 analyzed as they are inserted in Exp_Dist.
34849 Update comment regarding to distribution stubs to reflect that we
34850 do not generate stub in separate files anymore.
34852 * einfo.ads: Clarify the fact that a tagged private type has the
34853 E_Record_Type_With_Private Ekind.
34855 * erroutc.adb: Minor reformatting
34857 * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
34858 values if line length is increased using -gnatyM (noticed during code
34861 * eval_fat.adb: Minor reformatting
34862 Put spaces around exponentiation operator
34864 2004-05-10 Ed Schonberg <schonberg@gnat.com>
34867 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
34868 has been rewritten as an explicit dereference, retrieve type of
34869 original node to check for possibly unconstrained record type.
34871 2004-05-10 Ed Schonberg <schonberg@gnat.com>
34873 * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
34874 overriding, use the operation of the parent unconditionally.
34876 * sem_ch4.adb (Remove_Address_Interpretations): Remove address
34877 operation when either operand is a literal, to avoid further
34880 * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
34881 overridden by a previous explicit declaration, mark the previous entity
34884 * sem_disp.adb (Check_Dispatching_Operation): New predicate
34885 Is_Visibly_Controlled, to determine whether a declaration of a
34886 primitive control operation for a derived type overrides an inherited
34887 one. Add warning if the explicit declaration does not override.
34889 2004-05-10 Vincent Celier <celier@gnat.com>
34891 * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
34892 some cases when the sources are no longer present.
34894 * make.adb (Collect_Arguments): Fail if an external source, not part
34895 of any project need to be compiled, when switch -x has not been
34898 * makeusg.adb: Document new switch -x
34900 * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
34901 defaulted to False.
34903 * switch-m.adb (Scan_Make_Switches): New switch -x
34905 * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
34906 gnatmake switch -x.
34908 * gnat_ugn.texi: Document new gnatmake switch -x
34910 2004-05-10 Eric Botcazou <ebotcazou@act-europe.fr>
34912 * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
34914 * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
34915 (process_attributes): Likewise.
34917 2004-05-10 Joel Brobecker <brobecker@gnat.com>
34919 * s-inmaop.ads: Fix spelling mistake in one of the comments.
34921 2004-05-10 Robert Dewar <dewar@gnat.com>
34923 * gnat_ugn.texi: Document that for config pragma files, the maximum
34924 line length is always 32767.
34926 * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
34927 literals is now allowed.
34929 * gnat-style.texi: Remove statement about splitting long lines before
34930 an operator rather than after, since we do not follow this rule at all.
34931 Clarify rule (really lack of rule) for spaces around exponentiation
34933 * sem_elim.adb: Allow concatenation of string literals as well as a
34934 single string literal for pragma arguments.
34936 * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
34938 * a-textio.adb (Terminate_Line): Do not add line feed if nothing
34939 written for append case.
34941 * frontend.adb: Changes to avoid checking max line length in config
34944 * g-os_lib.ads: Minor reformatting
34946 * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
34947 wrong in any case. Instead use standard value. Noticed during code
34950 * opt.ads (Max_Line_Length): New field, used to implement removal of
34951 limitation on length of lines when scanning config pragma files.
34953 * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
34954 makeutl.ads, makeutl.adb: Minor reformatting
34956 * scn.adb: Do not check line length while scanning config pragma files
34957 Do not check line length while scanning out license information
34959 * scng.adb: Changes to avoid line length checks while parsing config
34962 2004-05-10 GNAT Script <nobody@gnat.com>
34964 * Make-lang.in: Makefile automatically updated
34966 2004-05-05 Arnaud Charlet <charlet@act-europe.fr>
34968 * osint.adb (Find_Program_Name): Fix handling of VMS version
34971 2004-05-05 Emmanuel Briot <briot@act-europe.fr>
34973 * g-os_lib.ads (Invalid_Time): New constant
34975 * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
34976 return OS_Time instead of time_t to match what is imported by Ada.
34977 Now return -1 if the file doesn't exist, instead of a random value
34979 2004-05-05 Robert Dewar <dewar@gnat.com>
34981 * usage.adb: Add line for -gnatR?s switch
34983 * sem_ch13.adb, exp_ch2.adb: Minor reformatting
34985 * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
34986 and for Match (Data_First, Data_last)
34988 * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
34989 written when we are dealing with multi-unit files.
34991 2004-05-05 Jerome Guitton <guitton@act-europe.fr>
34993 * Makefile.in: Remove unused targets and variables.
34995 2004-05-05 Vincent Celier <celier@gnat.com>
34997 * switch-m.adb: New gnatmake switch -eI
34999 * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
35000 of new gnatmake switch -eInnn.
35002 * makegpr.adb: Take into account new parameters Index and Src_Index in
35005 * clean.adb: Implement support for multi-unit sources, including new
35008 * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
35011 * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
35012 (Extract_From_Q): New out parameter Index
35013 (Mark, Is_Marked): Subprograms moved to Makeutl
35014 (Switches_Of): New parameter Source_Index
35015 (Add_Switch): New parameter Index
35016 (Check): New parameter Source_Index
35017 (Collect_Arguments): New parameter Source_Index
35018 (Collect_Arguments_And_Compile): New parameter Source_Index
35019 (Compile): New parameter Source_Index
35020 Put subprograms in alphabetical order
35021 Add support for multi-source sources, including in project files.
35023 * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
35024 (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
35027 * makeusg.adb: New gnatmake switch -eInnn
35029 * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
35032 * opt.ads (Main_Index): New variable, defaulted to 0.
35034 * osint.ads, osinte.adb (Add_File): New parameter Index
35035 (Current_Source_Index): New function
35037 * prj.adb: Take into account new components Index and Src_Index
35039 * prj.ads (String_Element): New component Index
35040 (Variable_Value): New component Index
35041 (Array_Element): New component Src_Index
35043 * prj-attr.adb: Indicate that optional index may be specified for
35044 attributes Main, Executable, Spec, Body and some of Switches.
35046 * prj-attr.ads (Attribute_Kind): New values for optional indexes
35047 (Attribute_Record): New component Optional_Index
35049 * prj-com.ads (File_Name_Data): New component Index
35051 * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
35053 * prj-env.adb (Put): Output optional index
35055 * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
35056 attributes Spec and Body.
35058 * prj-nmsc.adb: Process optional indexes
35060 * prj-pp.adb: Ouput "at" for optional indexes
35062 * prj-proc.adb: Take into account optional indexes
35064 * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
35065 Optional_Index. For string literal,
35066 process optional index when Optional_Index is True.
35067 (Parse_Expresion): New Boolean parameter Optional_Index
35069 * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
35070 (Set_Source_Index_Of): New procedure
35072 * prj-util.adb (Executable_Of, Value_Of): Take into account optional
35075 * prj-util.ads (Executable_Of): New parameter Index
35076 (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
35077 New parameter Src_Index, defaulted to 0.
35079 2004-05-05 Ed Schonberg <schonberg@gnat.com>
35082 * sem_ch3.adb (Access_Definition): If this is an access parameter
35083 whose designated type is imported through a limited_with clause, do
35084 not add the enclosing subprogram to the list of private dependents of
35087 2004-05-05 Ed Schonberg <schonberg@gnat.com>
35090 * sem_ch6.adb (Base_Types_Match): True if one type is imported through
35091 a limited_with clause, and the other is its non-limited view.
35093 2004-05-05 Thomas Quinot <quinot@act-europe.fr>
35095 * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
35097 * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
35098 exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
35099 Stand.Boolean_Literals to produce references to entities
35100 Standard_False and Standard_True from compile-time computed boolean
35103 * stand.ads (Boolean_Literals): New variable, provides the entity
35104 values for False and True, for use by the expander.
35106 2004-05-05 Doug Rupp <rupp@gnat.com>
35108 * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
35109 5vinmaop.adb: Unchecked convert Short_Address vice Address
35111 * adaint.c, raise.c: Caste CRTL function return value
35112 to avoid gcc error on 32/64 bit IVMS.
35114 * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
35117 * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
35119 * 5qsystem.ads (Address): Declare as Long_Integer
35120 (Short_Address): Declare as 32 bit subtype of Address
35121 Declare abstract address operations to avoid gratuitous ambiguities.
35123 2004-05-05 Jose Ruiz <ruiz@act-europe.fr>
35125 * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
35126 instead of the old Boolean_Entry_Barriers.
35127 Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
35129 2004-05-05 GNAT Script <nobody@gnat.com>
35131 * Make-lang.in: Makefile automatically updated
35133 2004-05-03 Arnaud Charlet <charlet@act-europe.fr>
35135 * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
35137 2004-05-03 Olivier Hainque <hainque@act-europe.fr>
35140 * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
35141 alone. Replacing object references by literals is inappropriate in a
35142 so low level context.
35144 2004-05-03 Arnaud Charlet <charlet@act-europe.fr>
35146 * a-exexpr.adb: Add comments
35148 2004-05-03 Joel Brobecker <brobecker@gnat.com>
35150 * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
35151 declare the Ancestor_Tags array in Type_Specific_Data with a small size
35152 without risking a bounds check error when accessing one of its
35154 (Type_Specific_Data): Define Ancestor_Tags as a small array.
35155 This prevents us from hitting a limitation during the debug info
35156 generation when using stabs.
35158 * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
35160 This prevents us from hitting a limitation during the debug info
35161 generation when using stabs.
35163 2004-05-03 Eric Botcazou <ebotcazou@act-europe.fr>
35165 lang-specs.h: Remove -gnatz* from specs.
35167 2004-05-03 Vincent Celier <celier@gnat.com>
35169 * gprmake.adb, makegpr.ads, makegpr.adb: New files.
35171 * Make-lang.in, Makefile.in: Add gprmake
35173 2004-05-03 Thomas Quinot <quinot@act-europe.fr>
35175 * sem_aggr.adb: Fix typo in comment.
35177 2004-05-03 Robert Dewar <dewar@gnat.com>
35179 * make.adb: Minor reformatting
35181 * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
35183 * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
35184 so that it works when address is not a private type.
35186 * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
35187 properly with rewritten unchecked conversions. This prevents
35188 order-of-elaboration issues that can otherwise arise.
35189 (Minimum_Size): Don't check size of access types under VMS
35191 * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
35192 interpretations of integer literals as type System.Address.
35194 * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
35195 (Is_Descendent_Of): New function
35197 2004-05-03 Jose Ruiz <ruiz@act-europe.fr>
35199 * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
35200 Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
35201 No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
35203 * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
35204 of the old Max_Entry_Queue_Depth.
35206 * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
35207 Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
35208 No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
35210 * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
35211 New entry for proper handling of Max_Entry_Queue_Depth.
35212 New entry for proper handling of No_Dynamic_Interrupts.
35214 * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
35215 supersedes the GNAT specific restriction Boolean_Entry_Barriers.
35216 Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
35217 the GNAT specific restriction Max_Entry_Queue_Depth.
35218 Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
35219 the GNAT specific restriction No_Dynamic_Interrupts.
35221 * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
35222 instead of the old Boolean_Entry_Barriers.
35223 Use the new restriction No_Dynamic_Attachment instead of the old
35224 No_Dynamic_Interrupts.
35226 * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
35227 supersedes the GNAT specific restriction Boolean_Entry_Barriers.
35229 * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
35230 of the old Max_Entry_Queue_Depth.
35232 2004-05-03 GNAT Script <nobody@gnat.com>
35234 * Make-lang.in: Makefile automatically updated
35236 2004-04-29 Ed Schonberg <schonberg@gnat.com>
35238 * checks.adb (Enable_Range_Check): If the prefix of an index component
35239 is an access to an unconstrained array, perform check unconditionally.
35241 2004-04-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35243 * decl.c (gnat_to_gnu_field): Also call make_packable_type if
35246 2004-04-29 Olivier Hainque <hainque@act-europe.fr>
35248 * init.c (__gnat_install_handler, __gnat_error_handler): Remove
35249 alternate stack setting. There was no support for the tasking cases
35250 and the changes eventually caused a number of side-effect failures in
35251 the non-tasking case too.
35253 2004-04-29 Eric Botcazou <ebotcazou@act-europe.fr>
35255 lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
35258 2004-04-29 Vincent Celier <celier@gnat.com>
35260 * make.adb (Gnatmake): Increase max size of argument array for
35261 gnatbind for the potential addition of -F.
35262 If there are Stand-Alone Library projects, invoke gnatbind with -F to
35263 be sure that elaboration flags will be checked.
35265 * switch-c.adb: Correct call to Scan_Pos for -gnateI
35267 2004-04-29 Thomas Quinot <quinot@act-europe.fr>
35269 * sem_warn.adb (Check_References): Move '<access-variable> may be
35270 null' warning out of under Warn_On_No_Value_Assigned.
35272 2004-04-29 Ed Falis <falis@gnat.com>
35274 * gnat_ugn.texi: Fixed texi error
35276 2004-04-29 Robert Dewar <dewar@gnat.com>
35278 * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
35279 abstract operations if they come from predefined files.
35281 * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
35284 * s-addope.adb: Correct obvious error in mod function
35286 2004-04-28 Andrew W. Reynolds <awreynolds@mac.com>
35288 * Makefile.in: Add target pairs for powerpc darwin*
35291 * a-intnam-darwin.ads, s-osinte-darwin.adb,
35292 s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
35294 2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
35296 * Makefile.in: Add target macro definitions for s390*-linux*.
35297 * system-linux-s390.ads: New file.
35298 * system-linux-s390x.ads: New file.
35300 2004-04-28 Joseph S. Myers <jsm@polyomino.org.uk>
35302 * gnat_ugn.texi: Correct argument to @setfilename.
35304 2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
35306 * a-exexpr.adb (Unwind_Word): New data type.
35307 (Unwind_Exception): Use it as type of Private1 and Private2.
35309 * raise.c (db_action_for): Fix debug printf.
35311 2004-04-27 Ed Schonberg <schonberg@gnat.com>
35313 * a-wtmoio.ads: Formal type must be a modular type, not a signed
35316 2004-04-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35318 * decl.c (gnat_to_gnu_entity, case object): Call
35319 __builtin_update_setjmp_buf.
35321 * gigi.h (update_setjmp_buf): Deleted.
35322 (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
35324 * misc.c: (update_setjmp_buf): Deleted.
35326 * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
35327 around block of RTL.
35329 * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
35331 2004-04-26 Thomas Quinot <quinot@act-europe.fr>
35333 * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
35334 subprogram for which no pragma All_Calls_Remote applies, store the
35335 address of the real subprogram in the underlying record type, so local
35336 dereferences do not go through the PCS.
35338 2004-04-26 Robert Dewar <dewar@gnat.com>
35340 * i-c.ads: Add some type qualifications to avoid ambiguities when
35341 compiling with s-auxdec.ads and a non-private address type.
35343 2004-04-26 Arnaud Charlet <charlet@act-europe.fr>
35345 * Makefile.rtl: Fix error in previous check-in:
35346 Add s-addope.o to non tasking object list (rather than tasking object
35349 2004-04-26 Javier Miranda <miranda@gnat.com>
35351 * sem_aggr.adb: Fix typo in comments
35352 (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
35353 Required to check the null-exclusion attribute.
35355 * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
35356 case of anonymous access types in record and array components. For a
35357 component definition the level is the same of the enclosing composite
35360 * sem_ch3.adb (Analyze_Component_Declaration): In case of components
35361 that are anonymous access types the level of accessibility depends on
35362 the enclosing type declaration. In order to have this information, set
35363 the scope of the anonymous access type to the enclosing record type
35365 (Array_Type_Declaration): In case of components that are anonymous
35366 access types the level of accessibility depends on the enclosing type
35367 declaration. In order to have this information, set the scope of the
35368 anonymous access type to the enclosing array type declaration.
35370 * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
35373 * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
35374 renaming of anonymous access-to-constant types allowed if and only if
35375 the renamed object is access-to-constant.
35377 * sem_util.adb (Type_Access_Level): In case of anonymous access types
35378 that are component_definition or discriminants of a nonlimited type,
35379 the level is the same as that of the enclosing component type.
35381 2004-04-26 Sergey Rybin <rybin@act-europe.fr>
35383 * sem_elim.adb: Some minor code reorganization from code reading. Fix
35384 misprint in the function name (File_Name_Match).
35386 2004-04-23 Laurent Guerby <laurent@guerby.net>
35388 * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
35391 2004-04-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
35393 * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
35395 2004-04-23 Emmanuel Briot <briot@act-europe.fr>
35397 * adaint.c (__gnat_try_lock): No longer requires that the parent
35398 directory be writable, the directory itself is enough.
35399 (gnat_is_absolute_path): Change profile, so that the call from
35400 GNAT.OS_Lib can be made more efficient.
35402 * adaint.h (gnat_is_absolute_path): Change profile, so that the call
35403 from GNAT.OS_Lib can be made more efficient.
35405 * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
35406 one copy of the file name. Found by code reading.
35408 2004-04-23 Vincent Celier <celier@gnat.com>
35410 * gnat_ugn.texi: Add documentation for gnatmake switch -eL
35411 Correct documentation on gnatmake switches transmitted to the compiler
35413 * ali.ads: Minor comment fix
35415 2004-04-23 Javier Miranda <miranda@gnat.com>
35417 * sem_ch6.adb: (Confirming Types): Code cleanup
35419 * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
35420 subprogram types: E_Anonymous_Access_Subprogram_Type and
35421 E_Anonymous_Access_Protected_Subprogram_Type.
35423 2004-04-23 Thomas Quinot <quinot@act-europe.fr>
35425 * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
35426 whether a pragma All_Calls_Remote applies to the subprogram on which
35428 No functional change is introduced by this revision; the new parameter
35429 will be used to allow calls to local RCI subprograms to be optimized
35430 to not use the PCS in the case where no pragma All_Calls_Remote applies,
35431 as is already done in the PolyORB implementation of the DSA.
35433 * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
35434 whether a pragma All_Calls_Remote applies to the subprogram on which
35436 No functional change is introduced by this revision; the new parameter
35437 will be used to allow calls to local RCI subprograms to be optimized
35438 to not use the PCS in the case where no pragma All_Calls_Remote applies,
35439 as is already done in the PolyORB implementation of the DSA.
35441 2004-04-23 Robert Dewar <dewar@gnat.com>
35443 * Makefile.rtl: Add entry for s-addope.o in run time library list
35444 * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
35445 * s-addope.ads, s-addope.adb: New files.
35447 * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
35448 s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
35449 s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
35450 System.Address to be non-private and signed.
35452 * sem_elim.adb: Minor reformatting (fairly extensive)
35453 Some minor code reorganization from code reading
35454 Add a couple of ??? comments
35456 2004-04-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35458 * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
35459 (tree_transform, case N_If_Statement): Remove non-determinism.
35461 * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
35463 2004-04-23 Sergey Rybin <rybin@act-europe.fr>
35465 * gnat_rm.texi: Small fixes in the changes made in the 'pragma
35466 Eliminate' section.
35468 * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
35469 no longer used as a parameter name for Eliminate pragma).
35471 2004-04-22 Laurent Guerby <laurent@guerby.net>
35473 PR optimization/14984
35474 PR optimization/14985
35475 * trans.c (gigi): Fix non determinism leading to bootstrap
35476 comparison failures.
35478 2004-04-21 Pascal Obry <obry@gnat.com>
35480 * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
35481 passed to spawnvp() to properly handle program pathname with spaces on
35484 2004-04-21 Emmanuel Briot <briot@act-europe.fr>
35486 * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
35487 (Allocate, Deallocate, Free_Physically): Make sure the tasks are
35488 unlocked in case of exceptions.
35490 2004-04-21 Joel Brobecker <brobecker@gnat.com>
35492 * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
35493 This function does not exist anymore.
35495 2004-04-21 Thomas Quinot <quinot@act-europe.fr>
35497 * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
35499 * link.c: Move variables to the __gnat name space.
35501 * Makefile.in: list link.o explicitly when needed.
35503 * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
35505 2004-04-21 Javier Miranda <miranda@gnat.com>
35507 * einfo.adb (Original_Access_Type): New subprogram
35508 (Set_Original_Access_Type): New subprogram
35509 (Write_Field21_Name): Write the name of the new field
35511 * einfo.ads (Original_Access_Type): New field present in access to
35513 Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
35514 E_Anonymous_Access_Protected_Subprogram_Type.
35516 * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
35519 * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
35520 to anonymous access to subprogram types.
35522 * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
35523 to subprogram types.
35525 * sem_ch3.adb (Access_Definition): Complete decoration of entities
35526 corresponding to anonymous access to subprogram types.
35527 (Analyze_Component_Declaration): Add new actual to the call to
35528 subprogram replace_anonymous_access_to_protected_subprogram.
35529 (Array_Type_Declaration): Add new actual to the call to subprogram
35530 replace_anonymous_access_to_protected_subprogram.
35531 (Process_Discriminants): Add new actual to the call to subprogram
35532 replace_anonymous_access_to_protected_subprogram.
35533 (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
35535 * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
35538 * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
35539 access to subprogram types.
35541 * sem_util.adb (Has_Declarations): Addition of package_specification
35544 2004-04-21 Ed Schonberg <schonberg@gnat.com>
35546 * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
35547 inlined flags to renamed entity only if in current unit.
35549 2004-04-21 Thomas Quinot <quinot@act-europe.fr>
35551 * s-parint.ads: Add DSA implementation marker.
35553 * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
35554 value of System.Partition_Interface.DSA_Implementation to determine
35555 what version of the distributed systems annex is available (no
35556 implementation, GLADE, or PolyORB).
35558 2004-04-21 Joel Brobecker <brobecker@gnat.com>
35560 * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
35562 2004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35564 * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
35565 with new type if alias sets differ.
35566 Fixes ACATS c41103b.
35568 2004-04-21 Vincent Celier <celier@gnat.com>
35570 * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
35571 Add array Lang_Args for the language specific compiling argument
35574 * gnat_ugn.texi: Explain in more details when a library is rebuilt.
35576 2004-04-21 Sergey Rybin <rybin@act-europe.fr>
35578 * gnat_rm.texi: Update the descripton of the Eliminate pragma
35579 according to the recent changes in the format of the parameters of the
35580 pragma (replacing Homonym_Number with Source_Location).
35582 2004-04-19 Arnaud Charlet <charlet@act-europe.fr>
35584 * 5isystem.ads: Removed, unused.
35586 * gnat_rm.texi: Redo 1.13 change.
35588 2004-04-19 Robert Dewar <dewar@gnat.com>
35590 * s-stoele.ads: Clean up definition of Storage_Offset (the new
35591 definition is cleaner, avoids the kludge of explicit Standard operator
35592 references, and also is consistent with a visible System.Address with
35593 no visible operations.
35595 * s-geveop.adb: Add declarations to avoid assumption of visible
35596 operations on type System.Address (since these might not be available
35597 if Address is a non-private type for which the operations
35598 are made abstract).
35600 * sem_eval.adb: Minor reformatting
35602 * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
35603 s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
35604 reformatting (new function spec format).
35606 * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
35607 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
35608 s-caun64.adb: Add declarations to avoid assumption of visible
35609 operations on type System.Address (since these might not be available
35610 if Address is a non-private type for which the operations are made
35613 * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
35615 * exp_intr.adb: Minor comment update
35617 * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
35619 * 5omastop.adb: Add declarations to avoid assumption of visible
35620 operations on type System.Address (since these might not be available
35621 if Address is a non-private type for which the operations
35622 are made abstract).
35624 2004-04-19 Vincent Celier <celier@gnat.com>
35626 * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
35628 * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
35631 * prj-proc.adb (Process): New Boolean parameter Process_Languages,
35633 Call Check with Process_Languages.
35634 (Check): New Boolean parameter Process_Languages. Call Recursive_Check
35635 with Process_Languages.
35636 (Recursive_Check): New Boolean parameter Process_Languages. Call
35637 Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
35640 * prj-proc.ads (Process): New Boolean parameter Process_Languages,
35642 * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
35643 parameter Ada_Main, defaulted to True.
35644 Check for Ada specific characteristics only when Ada_Main is True.
35646 * opt.ads: (Follow_Links): New Boolean flag for gnatmake
35648 * prj.adb: (Project_Empty): Add new Project_Data components.
35650 * prj.ads: New types and tables for non Ada languages.
35651 (Project_Data): New components Languages, Impl_Suffixes,
35652 First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
35653 Include_Path, Include_Data_Set.
35655 * prj-env.ads, prj-env.adb: Minor reformatting
35657 * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
35658 Put subprograms in alphabetical order
35660 * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
35661 defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
35664 * mlib-prj.adb: Back out modification in last version, as they are
35666 (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
35668 * make.adb: (Mains): Moved to package Makeutl
35669 (Linker_Opts): Moved to package Makeutl
35670 (Is_External_Assignment): Moved to package Makeutl
35671 (Test_If_Relative_Path): Moved to package Makeutl
35672 (Gnatmake): Move sorting of linker options to function
35673 Makeutl.Linker_Options_Switches.
35675 * makeutl.ads, makeutl.adb: New files.
35677 * Makefile.in: Add makeutl.o to the object files for gnatmake
35679 * makeusg.adb: Add line for new switch -eL.
35681 * gnatls.adb (Image): New function.
35682 (Output_Unit): If in verbose mode, output the list of restrictions
35683 specified by pragmas Restrictions.
35685 * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
35688 * a-calend.adb (Split): Shift the date by multiple of 56 years, if
35689 needed, to put it in the range 1970 (included) - 2026 (excluded).
35690 (Time_Of): Do not shift Unix_Min_Year (1970).
35691 Shift the date by multiple of 56 years, if needed, to put it in the
35692 range 1970 (included) - 2026 (excluded).
35694 * adaint.h, adaint.c (__gnat_set_executable): New function.
35696 2004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35698 * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
35699 and pop GC context.
35700 (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
35701 (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
35702 (tree_transform, case N_Procedure_Call_Statement): Build a tree.
35703 (tree_transform, case N_Code_Statement): Likewise.
35704 (gnat_expand_stmt, case LABEL_STMT): Don't look at
35705 LABEL_STMT_FIRST_IN_EH.
35706 (gnat_expand_stmt, case ASM_STMT): New case.
35708 * utils2.c (build_unary_op): Properly set TREE_READONLY of
35709 UNCONSTRAINED_ARRAY_REF.
35711 * utils.c (poplevel): Temporarily push/pop GC context around inline
35712 function expansion.
35714 * decl.c (maybe_variable): Properly set TREE_READONLY of
35715 UNCONSTRAINED_ARRAY_REF.
35716 (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
35718 * ada-tree.def: (ASM_STMT): New.
35720 * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
35721 (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
35722 ASM_STMT_INPUT): New.
35723 (ASM_STMT_CLOBBER): Likewise.
35725 2004-04-19 Thomas Quinot <quinot@act-europe.fr>
35727 * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
35728 general rcheck mechanism to raise Program_Error for E.4(18), instead
35729 of a custom raiser in System.Partition_Interface.
35730 Part of general cleanup work before PolyORB integration.
35732 * snames.ads, snames.adb: Add new runtime library entities and names
35735 * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
35737 (Build_Subprogram_Id): New subprogram provided by exp_dist
35738 Code reorganisation in preparation for PolyORB integration.
35740 * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
35742 (Build_Subprogram_Id): New subprogram provided by exp_dist
35744 * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
35745 actual parameter types for call to dereference of an
35746 access-to-subprogram type.
35748 * rtsfind.ads: Add new runtime library entities and names for PolyORB
35751 * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
35752 instead, which has the same behaviour here since we never pass it a
35755 * link.c (run_path_option, Solaris case): Use -Wl, as for other
35758 * Makefile.in: adjust object file lists for gnatlink and gnatmake
35759 to account for new dependency upon Interfaces.C.Strings + link.o
35760 For x86 FreeBSD, use 86numaux.
35762 * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
35763 from Mlib.Tgt to Mlib.
35765 * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
35766 target-independent.
35768 * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
35769 target-specific versions of this subprogram, now implemented as a
35770 target-independent function in Mlib.
35772 * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
35773 5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
35774 (Linker_Library_Path_Option): Remove target-specific versions of this
35775 subprogram, now implemented as a target-independent function in Mlib.
35777 * atree.adb: (Allocate_Initialize_Node): New subprogram.
35778 Factors out node table slots allocation.
35779 (Fix_Parents): New subprogram.
35780 Encapsulate the pattern of fixing up parent pointers for syntactic
35781 children of a rewritten node.
35782 (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
35783 (Rewrite): Use New_Copy when creating saved copy of original node.
35784 (Replace): Use Copy_Node to copy nodes.
35786 2004-04-19 Javier Miranda <miranda@gnat.com>
35788 * sprint.adb (Sprint_Node_Actual): Give support to the new
35789 Access_To_Subprogram node available in Access_Definition nodes. In
35790 addition, give support to the AI-231 node fields: null-exclusion,
35791 all-present, constant-present.
35793 * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
35795 * sinfo.ads, sinfo.adb:
35796 New field Access_To_Subprogram_Definition in Access_Definition nodes
35798 * sem_ch6.adb (Process_Formals): Move here the code that creates and
35799 decorates internal subtype declaration corresponding to the
35800 null-excluding formal. This code was previously in Set_Actual_Subtypes.
35801 In addition, carry out some code cleanup on this code. In case of
35802 access to protected subprogram call
35803 Replace_Anonymous_Access_To_Protected_Subprogram.
35804 (Set_Actual_Subtypes): Code cleanup.
35806 * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
35807 Find_Type in case of anonymous access renamings. Add warning in case of
35808 null-excluding attribute used in anonymous access renaming.
35810 * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
35813 * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
35815 (Access_Definition): In case of anonymous access to subprograms call
35816 the corresponding semantic routine to decorate the node.
35817 (Access_Subprogram_Declaration): Addition of some comments indicating
35818 some code that probably should be added here. Detected by comparison
35819 with the access_definition subprogram.
35820 (Analyze_Component_Declaration): In case of access to protected
35821 subprogram call Replace_Anonymous_Access_To_Protected.
35822 (Array_Type_Declaration): In case of access to protected subprogram call
35823 Replace_Anonymous_Access_To_Protected_Subprogram.
35824 (Process_Discriminants): In case of access to protected subprogram call
35825 Replace_Anonymous_Access_To_Protected_Subprogram.
35827 * par.adb (P_Access_Definition): New formal that indicates if the
35828 null-exclusion part was present.
35829 (P_Access_Type_Definition): New formal that indicates if the caller has
35830 already parsed the null-excluding part.
35832 * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
35833 (P_Identifier_Declarations): Code cleanup and give support to renamings
35834 of anonymous access to subprogram types.
35835 (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
35836 (P_Array_Type_Definition): Give support to AI-254.
35837 (P_Component_Items): Give support to AI-254.
35838 (P_Access_Definition): New formal that indicates if the header was
35839 already parsed by the caller.
35840 (P_Access_Type_Definition): New formal that indicates if the caller has
35841 already parsed the null-excluding part.
35843 * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
35844 call to P_Access_Definition.
35846 2004-04-19 Geert Bosch <bosch@gnat.com>
35848 * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
35849 the delicate semantics of floating-point to integer conversion.
35850 (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
35852 * eval_fat.adb (Machine_Mantissa): Moved to spec.
35853 (Machine_Radix): New function.
35855 * eval_fat.ads (Machine_Mantissa): Moved from body for use in
35857 (Machine_Radix): New function also for use in conversion checks.
35859 2004-04-19 Ed Schonberg <schonberg@gnat.com>
35861 * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
35863 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
35864 to decorate the access-to-protected subprogram and the equivalent type.
35866 * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
35867 to anonymous access to subprogram types.
35869 * exp_ch4.adb (Expand_N_In): Preserve Static flag before
35870 constant-folding, for legality checks in contexts that require an RM
35873 * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
35874 temporary but stack checking is not enabled, increment serial number
35875 to so that symbol generation is consistent with and without stack
35878 * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
35879 independent on whether stack checking is enabled, caller must check
35880 the corresponding flag.
35882 * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
35884 (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
35885 parent if it has discriminants.
35886 (Build_Derived_Private_Type): Constructed full view does
35887 not come from source.
35888 (Process_Discriminants): Default discriminants on a tagged type are
35889 legal if this is the internal completion of a private untagged
35892 * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
35893 no constraint checks, because it corresponds to an existing object.
35895 * sem_prag.adb (Process_Convention): Pragma applies
35896 only to subprograms in the same declarative part, i.e. the same unit,
35897 not the same scope.
35899 * sem_res.adb (Valid_Conversion): In an instance or inlined body,
35900 ignore type mismatch on a numeric conversion if expression comes from
35903 2004-04-19 Sergey Rybin <rybin@act-europe.fr>
35905 * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
35906 Homonym_Number parameter, add processing for Source_Location parameter
35908 (Check_Eliminated): Remove the check for homonym numbers, add the check
35909 for source location traces.
35911 * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
35912 with Arg_Source_Location corresponding to the changes in the format of
35915 * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
35916 Eliminate pragma corresponding to the changes in the format of the
35917 pragma: Homonym_Number is replaced with Source_Location, two ways of
35918 distinguishing homonyms are mutially-exclusive.
35920 2004-04-19 Joel Brobecker <brobecker@gnat.com>
35922 * get_targ.ads (Get_No_Dollar_In_Label): Remove.
35924 * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
35925 No_Dollar_In_Label, no longer necessary, as it is always True.
35926 (Strip_Suffixes): Likewise.
35928 2004-04-19 Gary Dismukes <dismukes@gnat.com>
35930 * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
35931 modulus for compatibility with size clause on targets with 16-bit
35934 * layout.adb (Discrimify): In the case of private types, set Vtyp to
35935 full type to fix type mismatches on calls to size functions for
35936 discriminant-dependent array components.
35938 2004-04-19 Jerome Guitton <guitton@act-europe.fr>
35940 * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
35943 2004-04-19 Pascal Obry <obry@gnat.com>
35945 * mdll-utl.adb (Locate): New version is idempotent.
35947 2004-04-17 Laurent Guerby <laurent@guerby.net>
35949 PR ada/14988 (partial)
35950 * impunit.adb: Fix typo.
35952 2004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
35954 * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
35955 and install-rts-cert targets. Remove all gnatlib and gnattools
35956 targets and all other rts-* targets (moved to libada). Remove (now)
35957 unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
35958 TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
35960 2004-04-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
35962 * trans.c (tree_transform): Shortcut returning error_mark_node for
35963 statements in annotate_only_mode.
35964 (tree_transform, case N_Label, case N_Return_Statement,
35965 N_Goto_Statement): Make statement tree instead of generating code.
35966 (tree_transform, case N_Assignment_Statement): No longer check
35967 type_annotate_only.
35968 (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
35970 (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
35972 (gnat_to_gnu): Collect any RTL generated and deal with it.
35973 (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
35974 (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
35975 (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
35977 * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
35979 * ada-tree.def (EXPR_STMT): Fix typo in name.
35980 (BLOCK_STMT, IF_STMT): New nodes.
35982 * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
35983 LABEL_STMT_FIRST_IN_EH): New macros.
35984 (RETURN_STMT_EXPR): Likewise.
35986 * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
35987 IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
35989 2004-04-08 Thomas Quinot <quinot@act-europe.fr>
35991 * atree.ads: Correct documentation on extended nodes.
35993 * link.c: Set run_path_option for FreeBSD.
35995 2004-04-08 Vincent Celier <celier@gnat.com>
35997 * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
35998 one of the ALI file, do not link with DEC lib.
36000 * par.adb Remove the last two characters ("%s" or "%b") when checking
36001 if a language defined unit may be recompiled.
36003 2004-04-08 Ed Schonberg <schonberg@gnat.com>
36005 * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
36006 removal of abstract operation leaves no possible interpretation for
36009 * sem_eval.adb (Eval_Qualified_Expression): Use
36010 Set_Raises_Constraint_Error on node when needed, so that it does not
36011 get optimized away by subsequent optimizations.
36013 * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
36014 operands even when they are not wrapped in a type conversion.
36016 2004-04-08 Olivier Hainque <hainque@act-europe.fr>
36018 * sem_prag.adb (Set_Exported): Warn about making static as result of
36019 export only when the export is coming from source. This may be not
36020 be true e.g. on VMS where we expand export pragmas for exception codes
36021 together with imported or exported exceptions, and we don't want the
36022 user to be warned about something he didn't write.
36024 2004-04-08 Thomas Quinot <quinot@act-europe.fr>
36026 * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
36027 duplication between normal entities and those declared as renamings.
36028 No functional change.
36030 * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
36031 inline functions returning an unconstrained result.
36033 2004-04-08 Eric Botcazou <ebotcazou@act-europe.fr>
36035 * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
36036 conform to what other front-ends do.
36038 2004-04-08 Doug Rupp <rupp@gnat.com>
36040 * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
36043 2004-04-06 Pascal Obry <obry@gnat.com>
36045 * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
36047 * osint.adb (Program_Name): Do not look past a directory separator.
36049 2004-04-06 Thomas Quinot <quinot@act-europe.fr>
36051 * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
36053 * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
36054 requirement for preserving a copy of the original assignment node.
36056 * sinfo.ads: Update comment (Original_Tree -> Original_Node).
36058 2004-04-06 Olivier Hainque <hainque@act-europe.fr>
36060 (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
36063 2004-04-06 Ed Schonberg <schonberg@gnat.com>
36065 * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
36066 operator calls in functional notation, and apply
36067 Universal_Interpretation to operands, not to their type.
36069 2004-04-06 Robert Dewar <dewar@gnat.com>
36071 * 5wdirval.adb: Minor reformatting
36073 2004-04-06 Ed Falis <falis@gnat.com>
36075 * gnat_rm.texi: Improve a reference to the GCC manual
36077 2004-04-05 Vincent Celier <celier@gnat.com>
36079 * adaint.h, adaint.c: Add function __gnat_named_file_length
36081 * impunit.adb: Add Ada.Directories to the list
36083 * Makefile.in: Add VMS and Windows versions of
36084 Ada.Directories.Validity package body.
36086 * Makefile.rtl: Add a-direct and a-dirval
36088 * mlib-tgt.ads: Minor comment update.
36090 * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
36091 a-direct.ads, a-direct.adb: New files.
36093 2004-04-05 Vincent Celier <celier@gnat.com>
36096 * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
36097 just to the compiler.
36099 2004-04-05 Robert Dewar <dewar@gnat.com>
36101 * a-except.adb (Exception_Name_Simple): Make sure lower bound of
36102 returned string is 1.
36104 * ali-util.adb: Use proper specific form for Warnings (Off, entity)
36106 * eval_fat.ads: Minor reformatting
36108 * g-curexc.ads: Document that lower bound of returned string values
36111 * gnatlink.adb: Add ??? comment for previous change
36112 (need to document why this is VMS specific)
36114 * s-stoele.ads: Minor reformatting
36116 * tbuild.ads: Minor reformatting throughout (new function specs)
36118 * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
36121 * scng.adb: Minor reformatting
36123 2004-04-05 Geert Bosch <bosch@gnat.com>
36125 * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
36126 (Leading_Part): Still perform truncation to machine number if the
36127 specified radix_digits is greater or equal to machine_mantissa.
36129 2004-04-05 Javier Miranda <miranda@gnat.com>
36131 * par-ch3.adb: Complete documentation of previous change
36132 Correct wrong syntax documentation of the OBJECT_DECLARATION rule
36133 (aliased must appear before constant).
36135 * par-ch4.adb: Complete documentation of previous change.
36137 * par-ch6.adb: Complete documentation of previous change.
36139 * sinfo.ads: Fix typo in commment.
36141 2004-04-05 Ed Schonberg <schonberg@gnat.com>
36143 * sem_ch3.adb (Inherit_Components): If derived type is private and has
36144 stored discriminants, use its discriminants to constrain parent type,
36145 as is done for non-private derived record types.
36147 * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
36148 Ada 2005 AI-310: an abstract non-dispatching operation is not a
36149 candidate interpretation in an overloaded call.
36151 * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
36152 expression is Null and target type is not an access type (e.g. a
36153 non-private address type).
36155 2004-04-05 Thomas Quinot <quinot@act-europe.fr>
36157 * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
36158 statement whose right-hand side is an inlined call, save a copy of the
36159 original assignment subtree to preserve enough consistency for
36160 Analyze_Assignment to proceed.
36162 * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
36163 complete assignment subtree which is now unnecessary, as the expansion
36164 of inlined call has been improved to preserve a consistent assignment
36165 tree. Note_Possible_Modification must be called only
36166 after checks have been applied, or else unnecessary checks will
36169 * sem_util.adb (Note_Possible_Modification): Reorganise the handling
36170 of explicit dereferences that do not Come_From_Source:
36171 - be selective on cases where we must go back to the dereferenced
36172 pointer (an assignment to an implicit dereference must not be
36173 recorded as modifying the pointer);
36174 - do not rely on Original_Node being present (Analyze_Assignment
36175 calls Note_Possible_Modification on a copied tree).
36177 * sem_warn.adb (Check_References): When an unset reference to a pointer
36178 that is never assigned is encountered, prefer '<pointer> may be null'
36179 warning over '<pointer> is never assigned a value'.
36181 2004-04-05 Ramon Fernandez <fernandez@gnat.com>
36183 * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
36186 2004-04-05 Olivier Hainque <hainque@act-europe.fr>
36188 * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
36189 libexc. We currently don't reference anything in this library and
36190 linking it in triggers linker warnings we don't want to see.
36192 * init.c: Update comments.
36194 2004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36196 * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
36197 * utils.c (create_field_decl): Likewise.
36198 * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
36200 2004-04-02 Arnaud Charlet <charlet@act-europe.fr>
36202 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
36203 Replace ifinfo by ifnottex, to make makeinfo --html happy again.
36204 Add info directory entry and category.
36206 2004-04-02 Jan Hubicka <jh@suse.cz>
36208 * utils.c: Include function.h
36209 (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
36211 2004-04-01 Arnaud Charlet <charlet@act-europe.fr>
36214 * Make-lang.in: Clean up generation of documentation
36216 * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
36218 * xgnatug.adb: Removed, replaced by xgnatugn.adb
36220 * xgnatugn.adb: Replaces xgnatug.adb
36222 * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
36224 * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
36226 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
36227 gnat_ug_wnt.texi: Removed.
36229 2004-04-01 Arnaud Charlet <charlet@act-europe.fr>
36231 * utils2.c: Update copyright notice.
36233 2004-04-01 Robert Dewar <dewar@gnat.com>
36235 * checks.adb: Minor reformatting throughout
36236 Note that prev checkin added RM reference to alignment warning
36238 2004-04-01 Ed Schonberg <schonberg@gnat.com>
36240 * exp_aggr.adb (Get_Component_Val): Treat a string literal as
36241 non-static when building aggregate for bit-packed array.
36243 * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
36244 function call that is itself the actual in a procedure call, build
36247 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
36248 a string literal, create a temporary for it, constant folding only
36249 handles scalars here.
36251 2004-04-01 Vincent Celier <celier@gnat.com>
36253 * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
36254 Error_Msg_SP): New empty procedures to instantiate the Scanner.
36255 (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
36257 (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
36258 (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
36259 and get the checksum.
36261 * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
36263 Increase the Marking_Label at the end of the Multiple_Main_Loop,
36264 instead of at the beginning.
36266 * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
36268 (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
36271 * osint.ads (Multi_Unit_Index_Character): New Character global variable
36273 * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
36276 * par.adb: Remove test on file name to detect language defined units.
36277 Add test on unit name, after parsing, to detect language defined units
36278 that are not compiled with -gnatg (except System.RPC and its children)
36280 * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
36281 following units without style checking.
36283 * switch-c.adb: Change -gnatC to -gnateI
36285 * usage.adb: Document new switch -gnateInnn
36287 * scng.adb (Accumulate_Token_Checksum): New procedure
36288 (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
36289 word or literal number.
36290 (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
36293 2004-04-01 Thomas Quinot <quinot@act-europe.fr>
36296 g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
36297 switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
36298 5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
36299 5vtpopde.adb: Add missing 'constant' keywords.
36301 2004-04-01 Javier Miranda <miranda@gnat.com>
36303 * par-ch4.adb: (P_Allocator): Code cleanup
36305 * sem_ch3.adb (Access_Definition): Properly set the null-excluding
36308 * sinfo.ads: Complete documentation of previous change
36310 2004-04-01 Pascal Obry <obry@gnat.com>
36312 * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
36313 only on VMS. This special handling was done because an old GNU/ld bug
36314 on Windows which has been fixed.
36316 2004-04-01 GNAT Script <nobody@gnat.com>
36318 * Make-lang.in: Makefile automatically updated
36320 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36322 * decl.c (gnat_to_gnu_entity, make_type_from_size):
36323 Use TYPE_UNSIGNED, not TREE_UNSIGNED.
36324 * trans.c (tree_transform, convert_with_check): Likewise.
36325 * utils.c (gnat_signed_or_unsigned_type): Likewise.
36326 (build_vms_descriptor, unchecked_convert): Likewise.
36327 * utils2.c (nonbinary_modular_operation): Likewise.
36329 2004-03-29 Javier Miranda <miranda@gnat.com>
36331 * checks.adb (Null_Exclusion_Static_Checks): New subprogram
36332 (Install_Null_Excluding_Check): Local subprogram that determines whether
36333 an access node requires a runtime access check and if so inserts the
36334 appropriate run-time check.
36335 (Apply_Access_Check): Call Install_Null_Excluding check if required
36336 (Apply_Constraint_Check): Call Install_Null_Excluding check if required
36338 * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
36340 * einfo.ads: Fix typo in comment
36342 * exp_ch3.adb (Build_Assignment): Generate conversion to the
36343 null-excluding type to force the corresponding run-time check.
36344 (Expand_N_Object_Declaration): Generate conversion to the null-excluding
36345 type to force the corresponding run-time check.
36347 * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
36348 the null-excluding type to force the corresponding run-time check.
36350 * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
36351 case of access types unless they have the null-excluding attribute.
36353 * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
36356 * exp_util.ads: Fix typo in comment
36358 * par.adb (P_Null_Exclusion): New subprogram
36359 (P_Subtype_Indication): New formal that indicates if the null-excluding
36360 part has been scanned-out and it was present
36362 * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
36364 * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
36365 (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
36366 type to force the corresponding run-time check
36367 (Resolve_Aggregate): Propagate the null-excluding attribute to the array
36369 (Resolve_Array_Aggregate): Carry out some static checks
36370 (Resolve_Record_Aggregate.Get_Value): Carry out some static check
36372 * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
36373 attribute must be set only if specified by means of the null-excluding
36374 part. In addition, we must also propagate the access-constant attribute
36376 (Access_Subprogram_Declaration, Access_Type_Declaration,
36377 Analyze_Component_Declaration, Analyze_Object_Declaration,
36378 Array_Type_Declaration, Process_Discriminants,
36379 Analyze_Subtype_Declaration): Propagate the null-excluding attribute
36380 and carry out some static checks.
36381 (Build_Derived_Access_Type): Set the null-excluding attribute
36382 (Derived_Type_Declaration, Process_Subtype): Carry out some static
36385 * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
36387 * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
36389 * sem_ch6.adb (Process_Formals): Carry out some static checks.
36390 (Set_Actual_Subtypes): Generate null-excluding subtype if the
36391 null-excluding part was present; it is not required to be done here in
36392 case of anonymous access types.
36393 (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
36396 * sem_res.adb (Resolve_Actuals): Carry out some static check
36397 (Resolve_Null): Allow null in anonymous access
36399 * sinfo.adb: New subprogram Null_Exclusion_Present
36400 All_Present and Constant_Present available on access_definition nodes
36402 * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
36403 object_declaration, derived_type_definition, component_definition,
36404 discriminant_specification, access_to_object_definition,
36405 access_function_definition, allocator, access_procedure_definition,
36406 access_definition, parameter_specification, All_Present and
36407 Constant_Present flags available on access_definition nodes.
36409 2004-03-29 Robert Dewar <dewar@gnat.com>
36411 * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
36412 gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
36413 opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
36414 par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
36415 sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
36416 sem_prag.adb: Updates to handle multiple units/file
36418 * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
36420 * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
36421 sem_util.adb: Minor reformatting
36423 * sem_ch12.adb: Add comment for previous change
36425 2004-03-29 Laurent Pautet <pautet@act-europe.fr>
36427 * osint.adb (Executable_Prefix): Set Exec_Name to the current
36428 executable name when not initialized. Otherwise, use its current value.
36430 * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
36431 initialize it to another executable name than the current one. This
36432 allows to configure paths for an executable name (gnatmake) different
36433 from the current one (gnatdist).
36435 2004-03-29 Ed Schonberg <schonberg@gnat.com>
36437 * exp_ch6.adb (Expand_Call): A call to a function declared in the
36438 current unit cannot be inlined if it appears in the body of a withed
36439 unit, to avoid order of elaboration problems in gigi.
36441 * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
36442 information for protected (wrapper) operation as well, to simplify gdb
36445 * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
36446 protected body, indicate that the entity for the generated spec comes
36447 from source, to ensure that references are properly generated for it.
36448 (Build_Body_To_Inline): Do not inline a function that returns a
36451 * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
36452 apply convention to homonyms that are declared explicitly.
36454 * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
36455 that renames an equality operator and the operands are overloaded,
36456 resolve them with the declared formal types, before rewriting as an
36459 2004-03-29 GNAT Script <nobody@gnat.com>
36461 * Make-lang.in: Makefile automatically updated
36463 2004-03-25 Vasiliy Fofanov <fofanov@act-europe.fr>
36465 * memtrack.adb: Log realloc calls, which are treated as free followed
36468 2004-03-25 Vincent Celier <celier@gnat.com>
36470 * prj-makr.adb (Process_Directories): Detect when a file contains
36471 several units. Do not include such files in the config pragmas or
36472 in the naming scheme.
36474 * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
36475 Resolve links only when not in Trusted_Mode.
36476 (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
36477 Do not resolve links for the display names.
36479 * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
36480 resolve links when computing the display names.
36482 2004-03-25 Thomas Quinot <quinot@act-europe.fr>
36484 * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
36485 attribute reference does not denote a subtype, it can be any
36486 expression that has a classwide type, potentially after an implicit
36487 dereference. In particular, the prefix can be a view conversion for
36488 a classwide type (for which Is_Object_Reference holds), but it can
36489 also be a value conversion for an access-to-classwide type. In the
36490 latter case, there is an implicit dereference, and the original node
36491 for the prefix does not verify Is_Object_Reference.
36493 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
36494 conversion of a discriminant-dependent component of a mutable object
36497 2004-03-25 Ed Schonberg <schonberg@gnat.com>
36499 * freeze.adb (Freeze_Entity): When an inherited subprogram is
36500 inherited, has convention C, and has unconstrained array parameters,
36501 place the corresponding warning on the derived type declaration rather
36502 than the original subprogram.
36504 * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
36505 indication on renaming declaration, if formal has a box and actual
36508 * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
36509 determine whether to generate an implicit or explicit reference to
36510 the renamed entity.
36512 * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
36513 subprogram renaming comes from a defaulted formal subprogram in an
36516 2004-03-25 Gary Dismukes <dismukes@gnat.com>
36518 * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
36519 value expressions to ensure that calls within a component definition
36520 will be checked (since those are evaluated during the record type's
36523 2004-03-25 Arnaud Charlet <charlet@act-europe.fr>
36525 * s-tpobop.adb: Code clean up:
36526 (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
36528 (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
36530 2004-03-25 Jose Ruiz <ruiz@act-europe.fr>
36532 * Makefile.in: Clean up in the ravenscar run time.
36534 2004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36536 * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
36537 of No_Strict_Aliasing to build_pointer_type_for_mode.
36538 * utils.c (update_pointer_to): Walk pointer and ref chains.
36540 2004-03-22 Cyrille Comar <comar@act-europe.fr>
36542 * ali.ads: Fix Comment about Dynamic_Elab.
36544 * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
36545 Has_RACW, Is_Generic, etc.)
36546 (Output_Object, Gnatls): Take into account ALI files not attached to
36549 2004-03-22 Vincent Celier <celier@gnat.com>
36551 * gprep.adb: Change all String_Access to Name_Id
36552 (Is_ASCII_Letter): new function
36553 (Double_File_Name_Buffer): New procedure
36554 (Preprocess_Infile_Name): New procedure
36555 (Process_Files): New procedure
36556 (Gnatprep): Check if output and input are existing directories.
36557 Call Process_Files to do the real job.
36559 2004-03-22 Robert Dewar <dewar@gnat.com>
36561 * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
36562 s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
36564 2004-03-22 Sergey Rybin <rybin@act-europe.fr>
36566 * scn.adb (Contains): Add check for EOF, is needed for a degenerated
36567 case when the source contains only comments.
36569 2004-03-22 Ed Schonberg <schonberg@gnat.com>
36571 * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
36572 declaration for a child subprogram body that acts as a spec, indicate
36573 that the entity in the declaration needs debugging information.
36575 * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
36576 full view if the subtype is created for a constrained record component;
36577 gigi has enough information to construct the record, and there is no
36578 place in the tree for the declaration.
36580 * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
36581 serial number for the dummy body that is built for analysis, to avoid
36582 inconsistencies in the generation of internal names when compiling
36585 2004-03-22 Thomas Quinot <quinot@act-europe.fr>
36587 * sem_util.adb (Is_Object_Reference): A view conversion denotes an
36590 2004-03-22 GNAT Script <nobody@gnat.com>
36592 * Make-lang.in: Makefile automatically updated
36594 2004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36596 * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
36597 * trans.c (tree_transform, emit_index_check): Likewise.
36598 * utils.c (build_template): Likewise.
36599 (max_size, convert): Remove handling of WITH_RECORD_EXPR.
36600 (maybe_unconstrained_array, unchecked_convert): Likewise.
36601 * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
36602 (build_unary_op): Likewise.
36603 (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
36604 (fill_vms_descriptor): Likewise.
36605 (build_call_alloc_dealloc): Likewise.
36607 * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
36609 2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
36612 * gnat_ug.texi: Add info directory category and entry.
36613 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
36614 gnat_ug_wnt.texi: Regenerate.
36616 2004-03-19 Arnaud Charlet <charlet@act-europe.fr>
36618 * ada-tree.h: Update copyright notice.
36619 Minor reformatting.
36621 2004-03-19 Olivier Hainque <hainque@act-europe.fr>
36623 * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
36624 as regular exception objects and not as mere integers representing the
36625 condition code. The latter approach required some dynamics to mask off
36626 severity bits, which did not fit well into the GCC table based model.
36627 (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
36628 exception data objects. We don't it and it would conflict with the other
36629 external symbol we have to generate for such exceptions.
36631 * trans.c (tree_transform, case N_Exception_Handler): Remove part of
36632 the special code for VMS exceptions, since these are now represented
36633 as regular exceptions objects.
36635 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36637 * decl.c (debug_no_type_hash): Remove.
36638 (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
36639 * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
36641 2004-03-19 Laurent Guerby <laurent@guerby.net>
36643 * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
36644 aggregate, allows bootstrap from 3.3 on powerpc-darwin.
36646 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36648 * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
36649 (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
36650 (TYPE_RM_SIZE_INT): Directly use type.values.
36651 (TREE_LOOP_ID): Clean up check.
36652 * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
36653 TYPE_VALUES, not TYPE_FIELDS.
36654 * trans.c (convert_with_check): Delay access of bounds of basetype
36655 until sure is numeric.
36657 2004-03-18 Arnaud Charlet <charlet@act-europe.fr>
36659 * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
36662 * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
36663 5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
36664 Specific.Set instead of direct call to e.g pthread_setspecific.
36666 2004-03-18 Thomas Quinot <quinot@act-europe.fr>
36668 * adaint.c: Update comments.
36670 * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
36671 GNATLIB_SHARED for FreeBSD.
36673 2004-03-18 Jose Ruiz <ruiz@act-europe.fr>
36675 * init.c [VxWorks]: Do not fix the stack size for the environment task.
36676 When needed (stack checking) the stack size is retrieved
36677 from the VxWorks kernel.
36679 * Makefile.in: Flag -nostdinc is required when building the run time
36680 for avoiding looking for files in the base compiler.
36681 Add the VxWorks specific version of the package body for
36682 System.Stack_checking.Operations (5zstchop.adb).
36684 * Make-lang.in: Add the object file for
36685 System.Stack_Checking.Operations.
36687 * Makefile.rtl: Add object file for the package
36688 System.Stack_Checking.Operations.
36690 * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
36692 * s-stache.ads, s-stache.adb: Move the operations related to stack
36693 checking from this package to package System.Stack_Checking.Operations.
36694 This way, stack checking operations are only linked in the final
36695 executable when using the -fstack-check flag.
36697 2004-03-18 Doug Rupp <rupp@gnat.com>
36699 * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
36702 * 5qsystem.ads, 5xcrtl.ads: New files.
36704 2004-03-18 Vincent Celier <celier@gnat.com>
36706 * prj.adb (Reset): Reset hash table Files_Htable
36708 * prj-env.adb (Source_Paths, Object_Paths): New tables.
36709 (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
36710 the procedures Add_To_Path_File.
36711 (Set_Ada_Paths): Accumulate source and object dirs in the tables,
36712 making sure that each directory is present only once and, for object
36713 dirs, when a directory already present is added, the duplicate is
36714 removed and the directory is always put as the last in the table.
36715 Write the path files at the end of these accumulations.
36717 * prj-nmsc.adb (Record_Source): Add source file name in hash table
36718 Files_Htable for all sources.
36720 * prj-proc.adb (Process): Remove restrictions between not directly
36721 related extending projects.
36723 2004-03-18 Emmanuel Briot <briot@act-europe.fr>
36725 * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
36726 (Find_Sources): Minor speed optimization.
36728 * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
36729 parameter Trusted_Mode.
36731 2004-03-18 Sergey Rybin <rybin@act-europe.fr>
36733 * scn.adb (Determine_License): Take into account a degenerated case
36734 when the source contains only comments.
36736 2004-03-18 Ed Schonberg <schonberg@gnat.com>
36738 * sem_warn.adb (Check_References): For a warning on a selected
36739 component that does not come from source, locate an uninitialized
36740 component of the record type to produce a more precise error message.
36742 2004-03-15 Jerome Guitton <guitton@act-europe.fr>
36744 * 3zsoccon.ads: Fix multicast options.
36746 * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
36749 2004-03-15 Robert Dewar <dewar@gnat.com>
36751 * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
36752 pragma used for a private type.
36754 * lib-xref.adb (Generate_Reference): Do not generate warning if
36755 reference is in a different unit from the pragma Unreferenced.
36757 * 5vtpopde.adb: Minor reformatting
36758 Fix casing of To_Task_ID
36760 * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
36761 flag if we have an unchecked conversion to an access type in the same
36764 2004-03-15 Geert Bosch <bosch@gnat.com>
36766 * a-ngcoty.adb (Modulus): In alternate formula for large real or
36767 imaginary parts, use Double precision throughout.
36769 * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
36770 we want to be able to compile run-time with -gnata for testing, but
36771 this may also be instantiated in user code that is compiled with -gnata.
36773 2004-03-15 Olivier Hainque <hainque@act-europe.fr>
36775 * s-stalib.ads (Exception_Code): New type, to represent Import/Export
36776 codes. Having a separate type for this is useful to enforce consistency
36777 throughout the various run-time units.
36778 (Exception_Data): Use Exception_Code for Import_Code.
36780 * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
36781 Natural and Integer in various places.
36782 (Register_VMS_Exception): Use Base_Code_In to compute the exception code
36783 with the severity bits masked off.
36784 (Register_VMS_Exception): Handle the additional exception data pointer
36787 * raise.c (_GNAT_Exception structure): Remove the handled_by_others
36788 component, now reflected by an exported accessor.
36789 (is_handled_by): New routine to compute whether the propagated
36790 occurrence matches some handler choice specification. Extracted out of
36791 get_action_description_for, and expanded to take care of the VMS
36793 (get_action_description_for): Use is_handled_by instead of an explicit
36794 complex condition to decide if the current choice at hand catches the
36795 propagated occurrence.
36797 * raise.h (Exception_Code): New type for C.
36799 * rtsfind.ads (RE_Id, RE_Unit_Table): Add
36800 System.Standard_Library.Exception_Code, to allow references from the
36801 pragma import/export expander.
36803 * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
36804 New accessors to allow easy access to GNAT exception data
36806 (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
36807 redundant Handled_By_Others component, helper for the personality
36808 routine which will now be able to call the appropriate exception data
36811 * cstand.adb (Create_Standard): Adjust the type of the Import_Code
36812 component of Standard_Exception_Type to be the closest possible to
36813 Exception_Code in System.Standard_Library, that we cannot get at this
36814 point. Expand a ??? comment to notify that this type node should
36815 probably be rewritten later on.
36817 * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
36818 registration call to include a pointer to the exception object in the
36821 * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
36822 instead of int and explicit bitmasks.
36824 2004-03-15 Vincent Celier <celier@gnat.com>
36826 * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
36827 equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
36829 * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
36830 longer needed now that it is in the spec of
36831 System.Tasking.Task_Attributes.
36833 * adaint.h, adaint.c: (__gnat_create_output_file): New function
36835 * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
36837 * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
36839 * make.adb (Gnatmake): Do not check the executable suffix; it is being
36840 taken care of in Scan_Make_Arg.
36841 (Scan_Make_Arg): Add the executable suffix only if the argument
36842 following -o, in canonical case, does not end with the executable
36843 suffix. When in verbose mode and executable file name does not end
36844 with executable suffix, output the executable name, in canonical case.
36846 * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
36847 to avoid warnings when instantiating Ada.Task_Attributes.
36850 * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
36851 in the correct order.
36853 * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
36854 redirect standard output and error to a file for the invocation of the
36855 compiler, then read the file.
36857 * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
36858 directory, instead of the Value.
36859 (Find_Source_Dirs): Remove useless code & comments.
36861 2004-03-15 Ed Schonberg <schonberg@gnat.com>
36863 * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
36864 tagged type is inherited, and the parent operation is not frozen yet,
36865 force generation of a freeze node for the inherited operation, so the
36866 corresponding dispatch entry is properly initialized.
36867 (Make_Predefined_Primitive_Specs): Check that return type is Boolean
36868 when looking for user-defined equality operation.
36870 * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
36871 boolean when locating primitive equality of tagged component.
36873 * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
36874 bit-aligned field and the right-hand side a string literal, introduce
36875 a temporary before expanding assignment into a loop.
36877 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
36878 priority in full, to ensure that any expanded subepxressions of it are
36879 elaborated in the scope of the init_proc.
36881 * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
36882 after object declaration, skipping over code that may have been
36883 generated for validity checks.
36885 * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
36886 discriminants, ignore the known discriminants of its full view, if
36887 any, to check legality.
36889 * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
36890 component if type has unknown discriminants.
36891 (Analyze_Private_Extension_Declaration): Discriminant constraint is
36892 null if type has unknown discriminants.
36894 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
36895 for end label when present.
36897 * s-fileio.adb (Open): When called with a C_Stream, use given name for
36898 temporary file, rather than an empty string.
36900 2004-03-15 Ed Falis <falis@gnat.com>
36902 * s-thread.adb: Removed, no longer used.
36904 2004-03-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36906 * decl.c (target.h): Now include.
36907 (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
36908 in new build_pointer_from_mode calls for non-fat/non-thin pointer.
36909 (validate_size): For POINTER_TYPE, get smallest size permitted on
36912 * fe.h: Sort Einfo decls and add Set_Mechanism.
36914 * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
36915 (ada/decl.o): Depends on target.h.
36917 * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
36918 FUNCTION_BOUNDARY; always use TYPE_ALIGN.
36920 2004-03-15 Thomas Quinot <quinot@act-europe.fr>
36922 * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
36924 * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
36925 Insert_Dereference_Action when rewriting an implicit dereference into
36926 an explicit one, this will be taken care of during expansion of the
36927 explicit dereference.
36928 (Expand_N_Slice): Same. Always do the rewriting, even for the case
36929 of non-packed slices, since the dereference action generated by
36930 expansion of the explicit dereference is needed in any case.
36931 (Expand_N_Selected_Component): When rewriting an implicit dereference,
36932 analyze and resolve the rewritten explicit dereference so it is seen
36934 (Insert_Dereference_Action): This procedure is now called only for the
36935 expansion of an N_Explcit_Dereference_Node. Do insert a check even for
36936 dereferences that do not come from source (including explicit
36937 dereferences resulting from rewriting implicit ones), but do not
36938 recursively insert a check for the dereference nodes contained within
36940 (Insert_Dereference_Action): Clarify and correct comment.
36942 2004-03-08 Paolo Bonzini <bonzini@gnu.org>
36945 Move language detection to the top level.
36946 * config-lang.in: Build by default.
36948 2004-03-05 Robert Dewar <dewar@gnat.com>
36950 * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
36952 * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
36953 i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
36954 5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
36955 5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
36956 unchecked conversion to spec to avoid warnings.
36958 * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
36961 * 7stpopsp.adb: Correct casing in To_Task_ID call
36963 * a-strsea.ads, a-strsea.adb: Minor reformatting
36965 * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
36967 * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
36968 Adjust Max_Msg_Length to be clearly large enough.
36970 * fe.h: Define In_Same_Source_Unit
36972 * osint.adb: Add pragma Warnings Off to suppress warnings
36973 * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
36976 * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
36978 * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
36980 * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
36982 * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
36984 * sem_prag.adb: Implement pragma No_Strict_Aliasing.
36986 * sinfo.ads: Remove obsolete comment on validate unchecked conversion
36987 node. We now do generate them for gcc back end.
36989 * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
36992 * sinput-c.adb: Fix bad name in header.
36993 Add pragma Warnings Off to suppress aliasing warning.
36995 * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
36997 * snames.h, snames.ads, snames.adb: Add entry for pragma
36998 No_Strict_Aliasing.
37000 2004-03-05 Vincent Celier <celier@gnat.com>
37002 * prj-com.ads: Add hash table Files_Htable to check when a file name
37003 is already a source of another project.
37005 * prj-nmsc.adb (Record_Source): Before recording a new source, check
37006 if its file name is not already a source of another project. Report an
37009 * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
37010 source file name, call gnatpp with all the sources of the main project.
37012 * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
37015 * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
37016 NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
37017 /RUNTIME_SYSTEM=, converted to --RTS=
37018 /NOTABS, converted to -notabs
37020 2004-03-05 Pascal Obry <obry@gnat.com>
37022 * make.adb: Minor reformatting.
37024 2004-03-05 Ed Schonberg <schonberg@gnat.com>
37026 Part of implemention of AI-262.
37027 * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
37029 * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
37032 * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
37033 when component type is a partially constrained class-wide subtype.
37034 (Constrain_Discriminated_Type): If parent type has unknown
37035 discriminants, a constraint is illegal, even if full view has
37037 (Build_Derived_Record_Type): Inherit discriminants when deriving a type
37038 with unknown discriminants whose full view is a discriminated record.
37040 * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
37041 flag, to handle properly derivations of tagged types with unknown
37043 (Analyze_Package_Spec, Analyze_Package_Body): Install
37044 Private_With_Clauses before analyzing private part or body.
37046 * einfo.ads: Indicate that both Has_Unknown_Discriminants and
37047 Has_Discriminants can be true for a given type (documentation).
37049 2004-03-05 Arnaud Charlet <charlet@act-europe.fr>
37051 * s-restri.ads: Fix license (GPL->GMGPL).
37053 * s-tassta.adb: Minor reformatting.
37055 * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
37056 by calls to Exit_One_ATC_Level, since additional clean up is performed
37059 * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
37060 by calls to Exit_One_ATC_Level, since additional clean up is performed
37063 2004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37065 * trans.c: Reflect GCC changes to fix bootstrap problem.
37066 Add warning for suspicious aliasing unchecked conversion.
37068 2004-03-05 GNAT Script <nobody@gnat.com>
37070 * Make-lang.in: Makefile automatically updated
37072 2004-03-02 Emmanuel Briot <briot@act-europe.fr>
37074 * ali.adb (Read_Instantiation_Instance): Do not modify the
37075 current_file_num when reading information about instantiations, since
37076 this corrupts files in later references.
37078 2004-03-02 Vincent Celier <celier@gnat.com>
37080 * bcheck.adb (Check_Consistency): Get the full path of an ALI file
37081 before checking if it is read-only.
37083 * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
37084 of SRC_DIRS and eliminate duplicates.
37086 * gprcmd.adb: Replace command "path" with command "path_sep" to return
37087 the path separator.
37088 (Usage): Document path_sep
37090 * Makefile.generic: For Ada and GNU C++ cases, link directly with the
37091 C++ compiler. No need for a script.
37092 Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
37093 Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
37096 * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
37097 where there are Ada sources.
37098 (Set_Ada_Paths): Only add to the include path the source dirs of project
37100 (Add_To_Path): Add the Display_Values of the directories, not their
37103 * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
37106 * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
37108 (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
37109 Value is canonicalized.
37110 (Language_Independent_Check): Do not copy Value to Display_Value when
37111 canonicalizing Value.
37113 * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
37114 path to find limited with cycles.
37115 (Parse_Single_Project): Use canonical cased path to find the end of a
37118 2004-03-02 Ed Schonberg <schonberg@gnat.com>
37120 * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
37121 and not a child unit.
37123 * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
37124 appear in a with_clause.
37126 * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
37127 only happen in type_annotate mode, do not try to elaborate it.
37129 * exp_util.adb (Force_Evaluation): If expression is a selected
37130 component on the left of an assignment, use a renaming rather than a
37131 temporary to remove side effects.
37133 * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
37134 inlined instance body, which is analyzed before the end of the
37137 2004-03-02 Robert Dewar <dewar@gnat.com>
37139 * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
37140 sem_ch4.adb: Use new feature for substitution of keywords in VMS
37142 * errout.ads, errout.adb: Implement new circuit for substitution of
37145 * sem_case.adb (Analyze_Choices): Place message properly when case is
37146 a subtype reference rather than an explicit range.
37148 * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
37150 2004-03-02 Doug Rupp <rupp@gnat.com>
37152 * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
37154 2004-03-02 Thomas Quinot <quinot@act-europe.fr>
37156 * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
37158 2004-03-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37160 * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
37163 2004-02-25 Robert Dewar <dewar@gnat.com>
37165 * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
37166 55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
37167 5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
37168 5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
37169 5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
37170 5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
37171 the defining instance of the type to avoid aliasing problems.
37172 Fix copyright header. Fix bad comments in package header.
37174 * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
37176 2004-02-25 Ed Schonberg <schonberg@gnat.com>
37178 * exp_ch2.adb (Param_Entity): Handle properly formals that have been
37179 rewritten as references when aliased through an address clause.
37181 * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
37182 whether call can be interpreted as an indirect call to the result of a
37183 parameterless function call returning an access subprogram.
37185 2004-02-25 Arnaud Charlet <charlet@act-europe.fr>
37188 * exp_ch7.adb (Make_Clean): Remove generation of calls to
37189 Unlock[_Entries], since this is now done by Service_Entries directly.
37191 * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
37193 * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
37194 Requeue_Call for better code readability. Change spec and update calls:
37195 PO_Service_Entries now unlock the PO on exit.
37196 (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
37197 PO_Service_Entries.
37199 * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
37201 * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
37203 2004-02-25 Sergey Rybin <rybin@act-europe.fr>
37205 * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
37206 protected subprogram call and analyzing the result of such expanding
37207 in case when the called protected subprogram is eliminated.
37209 * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
37212 2004-02-25 Jerome Guitton <guitton@act-europe.fr>
37214 * Makefile.in: Clean ups.
37216 2004-02-23 Ed Schonberg <schonberg@gnat.com>
37218 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
37219 protected operations if original subprogram is flagged as eliminated.
37220 (Expand_N_Subprogram_Body): For a protected operation, create
37221 discriminals for next operation before checking whether the operation
37224 * exp_ch9.adb (Expand_N_Protected_Body,
37225 Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
37226 for internal protected operations if the original subprogram is
37229 * sem_elim.adb (Check_Eliminated): Handle properly protected operations
37230 declared in a single protected object.
37232 2004-02-23 Vincent Celier <celier@gnat.com>
37234 * prj-attr.adb: Make attribute Builder'Executable an associative array,
37235 case insensitive if file names are case insensitive, instead of a
37236 standard associative array.
37238 * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
37239 them as case insensitive on platforms where the file names are case
37242 * prj-part.adb (Parse_Single_Project): Make sure, when checking if
37243 project file has already been parsed that canonical path are compared.
37245 2004-02-23 Robert Dewar <dewar@gnat.com>
37247 * sinput-c.ads: Correct bad unit title in header
37249 * freeze.adb: Minor reformatting
37251 2004-02-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37253 * trans.c (tree_transform, case N_Procedure_Call_Statement): For
37254 nonaddressable COMPONENT_REF that is removing padding that we are
37255 taking the address of, take the address of the padded record instead
37256 if item is variable size.
37258 2004-02-20 Robert Dewar <dewar@gnat.com>
37260 * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
37262 2004-02-20 Ed Schonberg <schonberg@gnat.com>
37264 * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
37265 itype references for the constrained designated type of a component
37266 whose base type is already frozen.
37268 2004-02-20 Arnaud Charlet <charlet@act-europe.fr>
37270 * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
37271 avoid GCC warnings.
37273 2004-02-20 Sergey Rybin <rybin@act-europe.fr>
37275 * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
37276 identifier for a phantom package that rewrites the formal package
37277 declaration with a box. The Add semantic decorations for the defining
37278 identifier from the original node (that represents the formal package).
37280 2004-02-19 Matt Kraai <kraai@alumni.cmu.edu>
37282 * Make-lang.in (ada/stamp-sdefault): Use the top level
37285 2004-02-19 Richard Henderson <rth@redhat.com>
37287 * misc.c (record_code_position): Add third build arg for RTL_EXPR.
37289 2004-02-18 Emmanuel Briot <briot@act-europe.fr>
37291 * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
37292 Scan_ALI can be used for multiple ALI files without reinitializing
37295 2004-02-18 Robert Dewar <dewar@gnat.com>
37297 * debug.adb: Minor reformatting.
37299 2004-02-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37301 * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
37302 to zero if there is an address clause.
37304 2004-02-18 Thomas Quinot <quinot@act-europe.fr>
37306 * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
37308 2004-02-18 Gary Dismukes <dismukes@gnat.com>
37310 * layout.adb (Layout_Component_List): Revise generation of call to
37311 discriminant-checking function to pass selections of all of the type's
37312 discriminants rather than just the variant-controlling discriminant.
37314 2004-02-18 Olivier Hainque <hainque@act-europe.fr>
37316 * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
37317 fail in the current setup and triggers spurious system error messages.
37318 Pretend it occurred and failed instead.
37320 2004-02-18 Vincent Celier <celier@gnat.com>
37322 * bld.adb: Mark FLDFLAGS as saved
37323 (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
37324 it is not the root project. Put each directory to be
37325 extended between double quotes to prevent it to be expanded on Windows.
37326 (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
37327 the project file. Set them back to their initial values if they have not
37328 been set in the project file.
37330 * gprcmd.adb: (Gprdebug, Debug): New global variables
37331 (Display_Command): New procedure
37332 (Usage): Document new command "linkopts"
37333 Call Display_Command when env var GPRDEBUG has the value "TRUE"
37334 Implement new command "linkopts"
37335 Remove quotes that may be around arguments for "extend"
37336 Always call Normalize_Pathname with arguments formatted for the platform
37338 * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
37339 Change @echo to @$(display) in target clean to be able to clean silently
37341 * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
37343 * prj-part.adb (Project_Path_Name_Of): Do not put final result in
37346 * prj-part.adb (Parse_Single_Project): Always call with From_Extended
37347 = Extending_All when current project is an extending all project.
37349 * vms_conv.adb (Output_File_Expected): New Boolean global variable,
37350 set to True only for LINK command, after Unix switch -o.
37351 (Process_Arguments): Set Output_File_Expected to True for LINK command
37352 after Unix switch -o. When Output_File_Expected is True, never add an
37353 extension to a file name.
37355 * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
37356 option file name, only to the --for-linker= switch.
37357 (Option_File_Name): If option file name do not end with ".opt", append
37360 2004-02-18 GNAT Script <nobody@gnat.com>
37362 * Make-lang.in: Makefile automatically updated
37364 2004-02-17 Matt Kraai <kraai@alumni.cmu.edu>
37366 * Make-lang.in (stamp-sdefault): Do not depend on
37369 2004-02-12 Zack Weinberg <zack@codesourcery.com>
37371 * config-lang.in: Disable Ada by default until probe logic for
37372 a bootstrap Ada compiler can be moved to the top level configure
37375 2004-02-12 Olivier Hainque <hainque@act-europe.fr>
37377 * decl.c (components_to_record): Don't claim that the internal fields
37378 we make to hold the variant parts are semantically addressable, because
37381 * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
37382 adjust the comment describing the modular type form when we can use it.
37383 (Install_PAT): Account for the Esiz renaming.
37385 * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
37386 sc_onstack context indication before raising the exception to which
37387 the signal is mapped. Allows better handling of later signals possibly
37388 triggered by the resumed user code if the exception is handled.
37390 2004-02-12 Arnaud Charlet <charlet@act-europe.fr>
37392 * 5zinit.adb: Removed, no longer used.
37394 2004-02-12 Robert Dewar <dewar@gnat.com>
37396 * ali.adb: Remove separating space between parameters on R line. Makes
37397 format consistent with format used by the binder for Set_Globals call.
37399 * atree.ads, atree.adb: Minor reformatting (new function header format)
37401 * bindgen.adb: Add Run-Time Globals documentation section containing
37402 detailed documentation of the globals passed from the binder file to
37405 * gnatls.adb: Minor reformatting
37407 * init.c (__gnat_set_globals): Add note pointing to documentation in
37410 * lib-writ.ads, lib-writ.adb: Remove separating space between
37411 parameters on R line.
37412 Makes format consistent with format used by the binder for Set_Globals
37415 * osint.ads: Add 2004 to copyright notice
37418 * snames.ads: Correct capitalization of FIFO_Within_Priorities
37419 Noticed during code reading, documentation issue only
37421 * usage.adb: Remove junk line for obsolete C switch
37422 Noticed during code reading
37424 2004-02-12 Vincent Celier <celier@gnat.com>
37426 * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
37427 extend for each directory, so that multiple /** directories are
37428 extended individually.
37429 (Recursive_Process): Set the default for LANGUAGES to ada
37431 * gprcmd.adb: Define new command "ignore", to do nothing.
37432 Implement new comment "path".
37434 * Makefile.generic: Suppress output when SILENT is set
37435 Make sure that when compiler for C/C++ is gcc, the correct -x switch is
37436 used, so that the correct compiler is invoked.
37437 When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
37438 CXX_INCLUDE_PATH, to avoid failure with too long command lines.
37440 2004-02-12 Jerome Guitton <guitton@act-europe.fr>
37442 * Makefile.in: Clean ups and remove obsolete targets.
37444 2004-02-12 Ed Schonberg <schonberg@gnat.com>
37446 * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
37447 predicate declared in exp_util.
37449 * exp_util.adb: Add comments.
37451 * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
37452 visibility before compiling context of the subunit.
37454 * sem_res.adb (Check_Parameterless_Call): If the context expects a
37455 value but the name is a procedure, do not attempt to analyze as a call,
37456 in order to obtain more telling diagnostics.
37458 * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
37459 'Access on parameterless function calls.
37460 (Normalize_Actuals): For a parameterless function call with missing
37461 actuals, defer diagnostic until resolution of enclosing call.
37463 * sem_util.adb (Wrong_Type): If the context type is an access to
37464 subprogram and the expression is a procedure name, suggest a missing
37467 2004-02-10 Arnaud Charlet <charlet@act-europe.fr>,
37468 Nathanael Nerode <neroden@gcc.gnu.org>
37472 Merge with libada-branch:
37473 * config-lang.in: Build libada only when ada is built.
37475 2004-02-09 Ed Schonberg <schonberg@gnat.com>
37477 * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
37478 for a tagged type, verify that both formals have the same type.
37480 * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
37481 temporary when the formal is an in-parameter and the actual a possibly
37484 * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
37485 when expansion is disabled, to ensure proper name capture with
37486 overloaded literals. Condition can be of any boolean type, resolve
37489 * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
37490 renaming is for a formal subprogram with a default operator name, and
37491 there is a usable operator that is visible at the point of
37494 2004-02-09 Robert Dewar <dewar@gnat.com>
37496 * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
37497 rewrite to ignore errors in ali files, intended to allow tools downward
37498 compatibility with new versions of ali files.
37500 * ali.ads: Add new parameter Ignore_Errors
37502 * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
37503 duplicating the error message giving the file with restrictions.
37505 * debug.adb: Add debug flag I for gnatbind
37507 * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
37508 operators for the case where the operator is a defining operator.
37510 * exp_ch3.adb: Minor reformatting (new function spec format).
37512 * exp_ch4.adb: Add comment for previous change, and make minor
37513 adjustment to loop to always check for improper loop termination.
37514 Minor reformatting throughout (new function spec format).
37516 * gnatbind.adb: Implement -di debug flag for gnatbind
37518 * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
37520 * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
37522 * lib-load.adb: Fix bad assertion.
37523 Found by testing and code reading.
37524 Minor reformatting.
37526 * lib-load.ads: Minor reformatting.
37528 * lib-writ.adb: There is only one R line now.
37530 * lib-writ.ads: Add documentation on making downward compatible changes
37531 to ali files so old tools work with new ali files.
37532 There is only one R line now.
37533 Add documentation on format incompatibilities (with special GPS note)
37535 * namet.ads, namet.adb: (Is_Operator_Name): New procedure
37537 * par-load.adb: Minor reformatting
37539 * sem_ch8.adb: Fix to error message from last update
37540 Minor reformatting and restructuring of code from last update
37542 * par-prag.adb, snames.adb, snames.ads, snames.h,
37543 sem_prag.adb: Implement pragma Profile.
37545 * stylesw.adb: Implement -gnatyN switch to turn off all style check
37548 * usage.adb: Add line for -gnatyN switch
37550 * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
37552 2004-02-09 Albert Lee <lee@gnat.com>
37554 * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
37556 2004-02-09 Ed Schonberg <schonberg@gnat.com>
37558 * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
37561 * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
37562 is nested in an instance that is not frozen yet, to avoid
37563 order-of-elaboration problems in gigi.
37565 * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
37566 body the attribute is legal.
37568 2004-02-09 Robert Dewar <dewar@gnat.com>
37570 * s-rident.ads: Minor comment correction
37572 * targparm.adb: Remove dependence on uintp completely. There was
37573 always a bug in Make in that it called Targparm before initializing
37574 the Uint package. The old code appeared to get away with this, but
37575 the new code did not! This caused an assertion error in gnatmake.
37577 * targparm.ads: Fix bad comment, restriction pragmas with parameters
37578 are indeed fully supported.
37580 2004-02-06 Alan Modra <amodra@bigpond.net.au>
37582 * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
37584 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
37586 * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
37587 with targetm.calls.promote_prototypes.
37589 2004-02-04 Robert Dewar <dewar@gnat.com>
37591 * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
37592 ali.ads, gprcmd.adb: Minor reformatting
37594 * bindgen.adb: Output restrictions string for new style restrictions
37597 * impunit.adb: Add s-rident.ads (System.Rident) and
37598 s-restri (System.Restrictions)
37600 * lib-writ.adb: Fix bug in writing restrictions string (last few
37603 * s-restri.ads, s-restri.adb: Change name Restrictions to
37604 Run_Time_Restrictions to avoid conflict with package name.
37605 Add circuit to read and acquire run time restrictions.
37607 2004-02-04 Jose Ruiz <ruiz@act-europe.fr>
37609 * restrict.ads, restrict.adb: Use the new restriction
37610 No_Task_Attributes_Package instead of the old No_Task_Attributes.
37612 * sem_prag.adb: No_Task_Attributes is a synonym of
37613 No_Task_Attributes_Package.
37615 * snames.ads, snames.adb: New entry for proper handling of
37616 No_Task_Attributes.
37618 * s-rident.ads: Adding restriction No_Task_Attributes_Package
37619 (AI-00249) that supersedes the GNAT specific restriction
37620 No_Task_Attributes.
37622 2004-02-04 Ed Schonberg <schonberg@gnat.com>
37625 (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
37626 body, an identifier may be wrapped in an unchecked conversion.
37628 2004-02-04 Vincent Celier <celier@gnat.com>
37630 * lib-writ.ads: Comment update for the W lines
37632 * bld.adb: (Expression): An empty string list is static
37634 * fname-uf.adb: Minor comment update
37636 * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
37638 * gnatbind.adb: Initialize Cumulative_Restrictions with the
37639 restrictions on the target.
37641 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
37643 * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
37646 2004-02-02 Arnaud Charlet <charlet@gnat.com>
37648 * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
37650 2004-02-02 Vincent Celier <celier@gnat.com>
37652 * gprcmd.adb (Check_Args): If condition is false, print the invoked
37653 comment before the usage.
37654 Gprcmd: Fail when command is not recognized.
37655 (Usage): Document command "prefix"
37657 * g-md5.adb (Digest): Process last block.
37658 (Update): Do not process last block. Store remaining characters and
37661 * g-md5.ads (Update): Document that several call to update are
37662 equivalent to one call with the concatenated string.
37663 (Context): Add fields to allow new Update behaviour.
37665 * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
37666 defaulted to False.
37667 When May_Fail is True and no existing file can be found, return No_File.
37669 * 6vcstrea.adb: Inlined functions are now wrappers to implementation
37672 * lib-writ.adb (Write_With_Lines): When body file does not exist, use
37673 spec file name instead on the W line.
37675 2004-02-02 Robert Dewar <dewar@gnat.com>
37677 * ali.adb: Read and acquire info from new format restrictions lines
37679 * bcheck.adb: Add circuits for checking restrictions with parameters
37681 * bindgen.adb: Output dummy restrictions data
37682 To be changed later
37684 * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
37685 exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
37686 freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
37687 sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
37688 sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
37690 * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
37691 the warning message on access to possibly uninitialized variable S)
37692 Minor changes for new restrictions handling.
37694 * gnatbind.adb: Minor reformatting
37695 Minor changes for new restrictions handling
37696 Move circuit for -r processing here from bcheck (cleaner)
37698 * gnatcmd.adb, gnatlink.adb: Minor reformatting
37700 * lib-writ.adb: Output new format restrictions lines
37702 * lib-writ.ads: Document new R format lines for new restrictions
37705 * s-restri.ads/adb: New files
37707 * Makefile.rtl: Add entry for s-restri.ads/adb
37709 * par-ch3.adb: Fix bad error messages starting with upper case letter
37712 * restrict.adb: Major rewrite throughout for new restrictions handling
37713 Major point is to handle restrictions with parameters
37715 * restrict.ads: Major changes in interface to handle restrictions with
37716 parameters. Also generally simplifies setting of restrictions.
37718 * snames.ads/adb: New entry for proper handling of No_Requeue
37720 * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
37721 restriction counting.
37722 Other minor changes for new restrictions handling
37724 * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
37725 Restriction_Warnings now allows full parameter notation
37726 Major rewrite of Restrictions for new restrictions handling
37728 2004-02-02 Javier Miranda <miranda@gnat.com>
37730 * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
37731 syntax rule for object renaming declarations.
37732 (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
37733 component definitions.
37735 * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
37737 (Array_Type_Declaration): Give support to access components. In addition
37738 it was also modified to reflect the name of the object in anonymous
37739 array types. The old code did not take into account that it is possible
37740 to have an unconstrained anonymous array with an initial value.
37741 (Check_Or_Process_Discriminants): Allow access discriminant in
37743 (Process_Discriminants): Allow access discriminant in non-limited types
37744 Initialize the new Access_Definition field in N_Object_Renaming_Decl
37745 node. Change Ada0Y to Ada 0Y in comments
37747 * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
37748 equality operators.
37749 Change Ada0Y to Ada 0Y in comments
37751 * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
37752 renamings Change Ada0Y to Ada 0Y in comments
37754 * sem_type.adb (Find_Unique_Type): Give support to the equality
37755 operators for universal access types
37756 Change Ada0Y to Ada 0Y in comments
37758 * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
37760 * sinfo.ads (N_Component_Definition): Addition of Access_Definition
37762 (N_Object_Renaming_Declaration): Addition of Access_Definition field
37763 Change Ada0Y to Ada 0Y in comments
37765 * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
37766 component definition and object renaming nodes
37767 Change Ada0Y to Ada 0Y in comments
37769 2004-02-02 Jose Ruiz <ruiz@act-europe.fr>
37771 * restrict.adb: Use the new restriction identifier
37772 No_Requeue_Statements instead of the old No_Requeue for defining the
37773 restricted profile.
37775 * sem_ch9.adb (Analyze_Requeue): Check the new restriction
37776 No_Requeue_Statements.
37778 * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
37779 that supersedes the GNAT specific restriction No_Requeue. The later is
37780 kept for backward compatibility.
37782 2004-02-02 Ed Schonberg <schonberg@gnat.com>
37784 * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
37785 5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
37786 pragma and fix incorrect ones.
37788 * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
37789 warning if the pragma is redundant.
37791 2004-02-02 Thomas Quinot <quinot@act-europe.fr>
37793 * 5staprop.adb: Add missing 'constant' keywords.
37795 * Makefile.in: use consistent value for SYMLIB on
37796 platforms where libaddr2line is supported.
37798 2004-02-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37800 * utils.c (end_subprog_body): Do not call rest_of_compilation if just
37803 2004-02-02 Olivier Hainque <hainque@act-europe.fr>
37805 * init.c (__gnat_install_handler): Setup an alternate stack for signal
37806 handlers in the environment thread. This allows proper propagation of
37807 an exception on stack overflows in this thread even when the builtin
37808 ABI stack-checking scheme is used without support for a stack reserve
37811 * utils.c (create_field_decl): Augment the head comment about bitfield
37812 creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
37813 here, because the former is not accurate enough at this point.
37814 Let finish_record_type decide instead.
37815 Don't make a bitfield if the field is to be addressable.
37816 Always set a size for the field if the record is packed, to ensure the
37817 checks for bitfield creation are triggered.
37818 (finish_record_type): During last pass over the fields, clear
37819 DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
37820 not covered by the calls to layout_decl. Adjust DECL_NONADDRESSABLE_P
37821 from DECL_BIT_FIELD.
37823 2004-01-30 Kelley Cook <kcook@gcc.gnu.org>
37825 * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
37826 (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
37827 (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
37829 2004-01-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
37831 * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
37833 * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
37834 (ZCX_By_Default): Likewise.
37835 (Front_End_ZCX_Support): Likewise.
37837 * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
37838 (Initialize_Lock): Mark Level unreferenced.
37839 (Sleep): Mark Reason unreferenced.
37840 (Timed_Sleep): Likewise.
37841 (Wakeup): Likewise.
37842 (Exit_Task): Use Result.
37843 (Check_No_Locks): Mark Self_ID unreferenced.
37845 * 5gtasinf.adb (New_Sproc): Make Attr constant.
37846 (Bound_Thread_Attributes): Make Sproc constant.
37847 (New_Bound_Thread_Attributes): Likewise.
37849 2004-01-26 Ed Schonberg <schonberg@gnat.com>
37851 * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
37852 one-dimensional array an slice assignments, when component type is
37855 * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
37856 component type is controlled, and control_actions are in effect, use
37857 TSS procedure rather than generating inline code.
37859 * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
37860 arrays with controlled components.
37862 2004-01-26 Vincent Celier <celier@gnat.com>
37864 * gnatcmd.adb (GNATCmd): Add specification of argument file on the
37865 command line for the non VMS case.
37867 * gnatlink.adb (Process_Binder_File): When building object file, if
37868 GNU linker is used, put all object paths between quotes, to prevent ld
37869 error when there are unusual characters (such as '!') in the paths.
37871 * Makefile.generic: When there are sources in Ada and the main is in
37872 C/C++, invoke gnatmake with -B, instead of -z.
37874 * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
37875 from VMS_Conversion.
37876 (Process_Argument): New procedure, extracted from VMS_Conversion. Add
37877 specification of argument file on the command line.
37879 2004-01-26 Bernard Banner <banner@gnat.com>
37881 * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
37883 2004-01-26 Ed Schonberg <schonberg@gnat.com>
37885 * snames.adb: Update copyright notice.
37886 Add info on slice assignment for controlled arrays.
37888 2004-01-23 Robert Dewar <dewar@gnat.com>
37890 * exp_aggr.adb: Minor reformatting
37892 * exp_ch9.adb: Minor code clean up
37894 Fix bad character in comment
37897 * targparm.adb (Get_Target_Parameters): Give clean abort error on
37898 unexpected end of file, along with more detailed message.
37900 2004-01-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37902 * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
37905 * decl.c (copy_alias_set): New function.
37906 (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
37908 2004-01-23 Doug Rupp <rupp@gnat.com>
37910 * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
37911 lib$${file} in case subsequent character is not a separator.
37913 2004-01-23 Vincent Celier <celier@gnat.com>
37915 * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
37916 when the GCC version is at least 3.
37918 * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
37919 Remove all "Opt.", to prepare for opt split
37921 * prj-part.adb (Parse_Single_Project): New Boolean out parameter
37922 Extends_All. Set to True when the project parsed is an extending all
37923 project. Fails for importing an extending all project only when the
37924 imported project is an extending all project.
37925 (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
37926 depending on the value of Extends_All returned.
37928 * prj-proc.adb (Process): Check that no project shares its object
37929 directory with a project that extends it, directly or indirectly,
37930 including a virtual project.
37931 Check that no project extended by another project shares its object
37932 directory with another also extended project.
37934 * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
37935 Kind = N_With_Clause
37937 * prj-tree.ads: Minor reformatting
37938 Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
37940 2004-01-23 Ed Schonberg <schonberg@gnat.com>
37942 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
37943 applies to a type with an incomplete view, use full view in Name of
37944 clause, for consistency with uses of Get_Attribute_Definition_Clause.
37946 2004-01-23 Arnaud Charlet <charlet@act-europe.fr>
37948 * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
37949 SCHED_RR, since other values are not supported by this policy.
37950 (Initialize): Move initialization of mutex attribute to package
37951 elaboration, to prevent early access to this variable.
37953 * Makefile.in: Remove mention of Makefile.adalib, unused.
37955 * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
37956 1ssecsta.ads: Removed, unused.
37958 2004-01-21 Javier Miranda <miranda@gnat.com>
37960 * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
37961 entity if already built in the current scope.
37963 * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
37964 reminder in internal scopes. Required for nested limited aggregates.
37966 2004-01-21 Doug Rupp <rupp@gnat.com>
37968 * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
37969 VMS. Replace all occurences of libgnat- and libgnarl- with
37970 libgnat$(hyphen) and libgnarl$(hyphen).
37971 Fixed shared library build problem on VMS.
37973 2004-01-21 Robert Dewar <dewar@gnat.com>
37975 * mlib-prj.adb: Minor reformatting
37977 2004-01-21 Thomas Quinot <quinot@act-europe.fr>
37979 * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
37980 'constant' keywords for declaration of pointers that are not modified.
37982 * exp_pakd.adb: Fix English in comment.
37984 2004-01-21 Ed Schonberg <schonberg@gnat.com>
37987 * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
37988 copy all attributes of the parent, including the foreign language
37991 2004-01-21 Sergey Rybin <rybin@act-europe.fr>
37994 * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
37995 for 'delay until' statement.
37997 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
37999 * Make-lang.in: Replace $(docdir) with doc.
38000 (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
38001 doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
38002 to use consistent MAKEINFO rule.
38003 (ada.man, ada.srcman): Dummy entry.
38004 (ADA_INFOFILES): Define.
38005 (ada.info, ada.srcinfo): New rules.
38007 2004-01-19 Arnaud Charlet <charlet@act-europe.fr>
38009 * utils.c: Update copyright notice, missed in previous change.
38011 2004-01-19 Vincent Celier <celier@gnat.com>
38013 * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
38014 args if Bind is True. Set First_ALI, if not already done.
38015 (Build_Library): For Stand Alone Libraries, extract from one ALI file
38016 an eventual --RTS switch, for gnatbind, and all backend switches +
38017 --RTS, for linking.
38019 2004-01-19 Robert Dewar <dewar@gnat.com>
38021 * sem_attr.adb, memtrack.adb: Minor reformatting
38023 2004-01-19 Ed Schonberg <schonberg@gnat.com>
38025 * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
38026 that rename enumeration literals. This is properly done in sem_eval.
38028 * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
38029 to functions that rename enumeration literals.
38031 * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
38032 functions that rename enumeration literals.
38034 2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
38036 * Make-lang.in (utils.o): Depend on target.h.
38037 * utils.c: Include target.h.
38038 (process_attributes): Use targetm.have_named_sections instead
38039 of ASM_OUTPUT_SECTION_NAME.
38041 2004-01-16 Andreas Jaeger <aj@suse.de>
38043 * Makefile.in: Add $(DESTDIR).
38045 2004-01-15 Olivier Hainque <hainque@act-europe.fr>
38047 * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
38048 also when not defining if a Size clause applies. That information is
38051 2004-01-15 Arnaud Charlet <charlet@act-europe.fr>
38053 * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
38054 symbolic links for the shared gnat run time when needed.
38056 2004-01-15 Vasiliy Fofanov <fofanov@act-europe.fr>
38058 * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
38059 for writing, and terminate with an error message if not.
38061 2004-01-15 Ed Schonberg <schonberg@gnat.com>
38063 * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
38064 warning on an access to subprogram in an instance, when the target
38065 type is declared in the same generic unit.
38066 (Eval_Attribute): If 'access is known to fail accessibility check,
38067 rewrite as a raise statement.
38069 2004-01-15 GNAT Script <nobody@gnat.com>
38071 * Make-lang.in: Makefile automatically updated
38073 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
38075 * Make-lang.in (ada.srcextra): Dummy entry.
38077 2004-01-14 Kelley Cook <kcook@gcc.gnu.org>
38079 * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
38081 2004-01-13 Ed Schonberg <schonberg@gnat.com>
38083 * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
38084 components that are initialized with aggregates.
38086 2004-01-13 Vincent Celier <celier@gnat.com>
38088 * gnatlink.adb (Process_Binder_File): To find directory of shared
38089 libgcc, if "gcc-lib" is not a subdirectory, look for the last
38090 subdirectory "lib" in the path of the shared libgnat or libgnarl.
38092 * make.adb (Gnatmake): If GCC version is at least 3, link with
38093 -shared-libgcc, when there is at least one shared library project.
38095 * opt.ads (GCC_Version): New integer constant.
38097 * adaint.c (get_gcc_version): New function.
38099 2004-01-13 Robert Dewar <dewar@gnat.com>
38101 * sem_dist.adb, sem_res.adb, sem_util.adb,
38102 sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
38103 exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
38105 2004-01-13 Thomas Quinot <quinot@act-europe.fr>
38107 * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
38108 g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
38111 2004-01-12 Arnaud Charlet <charlet@act-europe.fr>
38113 * misc.c: Remove trailing spaces.
38114 Update copyright notice missed in previous change.
38117 * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
38120 * Makefile.generic: Update copyright.
38121 Add license notice.
38123 * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
38124 of prefix/share/make.
38126 * Makefile.prolog: Update copyright.
38127 Add license notice.
38129 2004-01-12 Laurent Pautet <pautet@act-europe.fr>
38131 * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
38132 3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
38133 g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
38136 * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
38139 2004-01-12 Javier Miranda <miranda@gnat.com>
38141 * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
38142 exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
38143 sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
38144 sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
38145 Component_Definition node.
38147 2004-01-12 Ed Falis <falis@gnat.com>
38149 * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
38151 2004-01-12 Thomas Quinot <quinot@act-europe.fr>
38153 * link.c: Change default libgnat kind to STATIC for FreeBSD.
38155 2004-01-12 Bernard Banner <banner@gnat.com>
38157 * Makefile.in: map 86numaux to a-numaux for x86_64
38159 2004-01-12 Ed Schonberg <schonberg@gnat.com>
38161 * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
38162 generated to rename a generic actual, go to the actual itself, the
38163 subtype is not a user-visible entity.
38165 * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
38166 part is a private subtype, reset the visibility of its full view, if
38167 any, to be consistent.
38170 * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
38171 to use a generic package G as a formal package for another generic
38174 2004-01-12 Robert Dewar <dewar@gnat.com>
38176 * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
38178 * usage.adb: Remove mention of obsolete -gnatwb switch
38179 Noticed during code reading
38181 2004-01-12 Jerome Guitton <guitton@act-europe.fr>
38183 * 1ssecsta.adb: Minor changes for -gnatwa warnings
38185 2004-01-12 GNAT Script <nobody@gnat.com>
38187 * Make-lang.in: Makefile automatically updated
38189 2004-01-09 Mark Mitchell <mark@codesourcery.com>
38191 * misc.c (gnat_expand_expr): Add alt_rtl parameter.
38193 2004-01-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
38195 * link.c [sgi] (shared_libgnat_default): Change to STATIC.
38197 2004-01-05 Kelley Cook <kcook@gcc.gnu.org>
38199 * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
38200 Update comment and copyright date.
38201 * stamp-xgnatug: Delete.
38203 2004-01-05 Robert Dewar <dewar@gnat.com>
38205 * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
38206 be modified by the binder generated main program if the -D switch is
38209 * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
38210 imported functions (since now we expect this to be done for imported
38213 * 5vtaprop.adb: Add several ??? for sections requiring more comments
38214 Minor reformatting throughout
38216 * 5zinit.adb: Minor reformatting
38217 Add 2004 to copyright date
38218 Minor changes to avoid -gnatwa warnings
38219 Correct some instances of using OR instead of OR ELSE (noted while
38220 doing reformatting)
38222 * sprint.adb: Minor updates to avoid -gnatwa warnings
38224 * s-secsta.ads, s-secsta.adb:
38225 (SS_Get_Max): New function to obtain high water mark for ss stack
38226 Default_Secondary_Stack is not a constant since it may be modified by
38227 the binder generated main program if the -D switch is used.
38229 * switch-b.adb: New -Dnnn switch for binder
38232 Make -gnatg imply all warnings currently in -gnatwa
38234 * vms_conv.adb: Minor reformatting
38235 Add 2004 to copyright notice
38236 Add 2004 to printed copyright notice
38238 * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
38239 3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
38240 5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
38241 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
38242 5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
38243 5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
38244 5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
38245 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
38246 5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
38247 5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
38248 6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
38249 vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
38250 xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
38251 sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
38252 checks.adb, clean.adb, cstand.adb, einfo.ads,
38253 einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
38254 exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
38255 prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
38256 sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
38257 g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
38258 lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
38259 Minor reformatting and code clean ups.
38260 Minor changes to prevent -gnatwa warnings
38262 * ali.adb: Minor reformatting and cleanup of code
38263 Acquire new SS indication of secondary stack use from ali files
38265 * a-numaux.ads: Add Pure_Function pragmas for all imported functions
38266 (since now we expect this to be done for imported functions)
38268 * bindgen.adb: Generate call to modify default secondary stack size if
38271 * bindusg.adb: Add line for new -D switch
38273 * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
38274 replacement name for Type_May_Have_Non_Bit_Aligned_Components!
38275 Add circuitry for both records and arrays to avoid gigi
38276 processing if the type involved has non-bit-aligned components
38278 * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
38279 N_String_Literal node always references an E_String_Literal_Subtype
38280 entity. This may not be true in the future.
38281 (Possible_Bit_Aligned_Component): Move processing of
38282 Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
38284 * exp_ch6.adb (Expand_Thread_Body): Pick up
38285 Default_Secondary_Stack_Size as variable so that we get value modified
38286 by possible -Dnnn binder parameter.
38288 * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
38289 (Type_May_Have_Bit_Aligned_Components): New function.
38291 * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
38292 (Type_May_Have_Bit_Aligned_Components): New function.
38294 * fe.h: (Set_Identifier_Casing): Fix prototype.
38295 Add declaration for Sem_Elim.Eliminate_Error_Msg.
38296 Minor reformatting.
38298 * freeze.adb (Freeze_Entity): Add RM reference to error message about
38299 importing constant atomic/volatile objects.
38300 (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
38301 unless explicit Pure_Function pragma given, to avoid insidious bug of
38302 call to non-pure imported function getting eliminated.
38304 * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
38305 gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
38306 gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
38307 Add 2004 to printed copyright notice
38309 * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
38312 * Makefile.rtl: Add entry for g-sestin.o
38313 g-sestin.ads: New file.
38315 * mdll.adb: Minor changes to avoid -gnatwa warnings
38317 * mlib-tgt.adb: Minor reformatting
38319 * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
38320 New switch Sec_Stack_Used (GNAT, GNATBIND)
38321 Make Default_Secondary_Stack_Size a variable instead of a constant,
38322 so that it can be modified by the new -Dnnn bind switch.
38324 * rtsfind.adb (Load_Fail): Give full error message in configurable
38325 run-time mode if all_errors mode is set. This was not done in the case
38326 of a file not found, which was an oversight.
38327 Note if secondary stack unit is used by compiler.
38329 * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
38330 ineffective elaborate all pragmas on non-visible packages (this
38331 happened when a renamed subprogram was called). Now the elaborate all
38332 always goes on the package containing the renaming rather than the one
38333 containing the renamed subprogram.
38335 * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
38336 (Process_Eliminate_Pragma): Add parameter to capture pragma location.
38338 * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
38339 has an Etype that references an E_String_Literal.
38340 (Eval_String_Literal): Avoid assumption that N_String_Literal node
38341 always references an E_String_Literal_Subtype entity. This may not
38342 be true in the future.
38344 * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
38347 * sem_res.adb (Resolve): Specialize msg for function name used in proc
38350 2004-01-05 Ed Falis <falis@gnat.com>
38352 * g-debuti.adb: Replaced direct boolean operator with short-circuit
38355 2004-01-05 Vincent Celier <celier@gnat.com>
38357 * bld.adb: Minor comment updates
38358 (Process_Declarative_Items): Correct incorrect name (Index_Name instead
38361 * make.adb (Gnatmake): Special process for files to compile/check when
38362 -B is specified. Fail when there are only foreign mains in attribute
38363 Main of the project file and -B is not specified. Do not skip bind/link
38364 steps when -B is specified.
38366 * makeusg.adb: Document new switch -B
38368 * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
38370 * switch-m.adb: (Scan_Make_Switches): Process -B switch
38372 * vms_data.ads: Add new GNAT PRETTY qualifier
38373 /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
38375 2004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
38377 * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
38380 * misc.c (gnat_printable_name): If VERBOSITY is 2, call
38381 Set_Identifier_Casing.
38383 * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
38384 has size that overflows.
38386 2004-01-05 Gary Dismukes <dismukes@gnat.com>
38388 * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
38389 -gnatwa warning on static condition.
38391 2004-01-05 Doug Rupp <rupp@gnat.com>
38393 * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
38395 2004-01-05 Arnaud Charlet <charlet@act-europe.fr>
38397 * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
38398 all attributes, including read-only attribute.
38400 2004-01-05 Pascal Obry <obry@gnat.com>
38402 * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
38403 library naming scheme.
38405 * mlib-prj.adb (Build_Library): Generate different names for the static
38406 or dynamic version of the GNAT runtime. This is needed to support the
38407 new shared library naming scheme.
38408 (Process_Binder_File): Add detection of shared library in binder file
38409 based on the new naming scheme.
38411 * gnatlink.adb (Process_Binder_File): Properly detect the new naming
38412 scheme for the shared runtime libraries.
38415 (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
38417 (install-gnatlib): Do not create symlinks for shared libraries.
38418 (gnatlib-shared-default): Idem.
38419 (gnatlib-shared-dual-win32): New target. Not used for now as the
38420 auto-import feature does not support arrays/records.
38421 (gnatlib-shared-win32): Do not create copy for the shared libraries.
38422 (gnatlib-shared-vms): Fix shared runtime libraries names.
38424 * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
38425 dependent runtime shared library name.
38427 2004-01-05 Vasiliy Fofanov <fofanov@act-europe.fr>
38429 * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
38432 2004-01-05 Ed Schonberg <schonberg@gnat.com>
38434 * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
38435 protected objects when allocator has a subtype indication, not a
38436 qualified expression. Note that qualified expressions may have to be
38437 checked when limited aggregates are implemented.
38439 * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
38440 pure, emit warning.
38441 (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
38442 subprogram is imported, remove warning.
38444 2004-01-05 Geert Bosch <bosch@gnat.com>
38446 * s-poosiz.adb: Update copyright notice.
38447 (Allocate): Use Task_Lock to protect against concurrent access.
38448 (Deallocate): Likewise.
38450 2004-01-05 Joel Brobecker <brobecker@gnat.com>
38452 * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
38455 2003-12-23 Kelley Cook <kcook@gcc.gnu.org>
38457 * gnat_ug.texi: Force a CVS commit by updating copyright.
38458 * gnat_ug_vxw.texi: Regenerate.
38459 * gnat_ug_wnt.texi: Regenerate.
38460 * gnat_ug_vms.texi: Regenerate.
38461 * gnat_ug_unx.texi: Regenerate.
38463 2003-12-20 Kazu Hirata <kazu@cs.umass.edu>
38465 * trans.c: Remove uses of "register" specifier in
38466 declarations of local variables.
38468 2003-12-18 Kelley Cook <kcook@gcc.gnu.org>
38470 * stamp-xgnatug: New stamp file.
38471 * Make-lang.in (stamp-xgnatug): New stamp file and comment.
38472 (ada/doctools/xgnatug): Add $(build_exeext).
38473 (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
38474 ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
38476 2003-12-17 Ed Falis <falis@gnat.com>
38478 * a-elchha.adb (Tailored_Exception_Information): made Info constant to
38481 * a-exextr.adb: Add context clause for
38482 Ada.Exceptions.Last_Chance_Handler.
38484 2003-12-17 Sergey Rybin <rybin@act-europe.fr>
38486 * cstand.adb (Create_Standard): Change the way how the declaration of
38487 the Duration type is created (making it the same way as it is for all
38488 the other standard types).
38490 2003-12-17 Robert Dewar <dewar@gnat.com>
38492 * s-crtl.ads: Fix header format
38493 Change Pure to Preelaborate
38495 2003-12-17 Ed Schonberg <schonberg@gnat.com>
38497 * checks.adb (Selected_Length_Checks): Generate an Itype reference for
38498 the expression type only if it is declared in the current unit.
38500 * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
38501 are universal and already analyzed, as can occur in constrained
38502 subcomponents that depend on discriminants, when one constraint is a
38505 * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
38506 type Any_Fixed is legal as the argument of a conversion, if only one
38507 fixed-point type is in context.
38509 2003-12-17 GNAT Script <nobody@gnat.com>
38511 * Make-lang.in: Makefile automatically updated
38513 2003-12-15 Robert Dewar <dewar@gnat.com>
38515 * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
38518 2003-12-15 Vincent Celier <celier@gnat.com>
38520 * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
38521 (Gnatchop): Do not set failure status when reporting the number of
38524 2003-12-15 Doug Rupp <rupp@gnat.com>
38526 * s-ctrl.ads: New file.
38528 * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
38530 * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
38531 (GNATBIND_OBJS): Add ada/s-crtl.o.
38533 * Makefile.in [VMS]: Clean up ifeq rules.
38535 * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
38536 a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
38537 g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
38538 s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
38539 s-tasdeb.adb: Update copyright.
38540 Import System.CRTL.
38541 Make minor modifications to use System.CRTL declared functions instead
38542 of importing locally.
38544 2003-12-15 GNAT Script <nobody@gnat.com>
38546 * Make-lang.in: Makefile automatically updated
38548 2003-12-11 Ed Falis <falis@gnat.com>
38550 * 5zinit.adb: Clean up.
38552 * 5zintman.adb (Notify_Exception): replaced case statement with a call
38553 to __gnat_map_signal, imported from init.c to support
38554 signal -> exception mappings that depend on the vxWorks version.
38557 Created and exported __gnat_map_signal to support signal -> exception
38558 mapping that is dependent on the VxWorks version.
38559 Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
38561 2003-12-11 Vasiliy Fofanv <fofanov@act-europe.fr>
38563 * 5wosinte.ads: Link with -mthreads switch.
38565 2003-12-11 Arnaud Charlet <charlet@act-europe.fr>
38567 * init.c (__gnat_install_handler [NetBSD]): Set
38568 __gnat_handler_installed, as done on all other platforms.
38569 Remove duplicated code.
38571 2003-12-11 Jerome Guitton <guitton@act-europe.fr>
38573 * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
38575 2003-12-11 Thomas Quinot <quinot@act-europe.fr>
38577 * sinfo.ads: Fix inconsistent example code in comment.
38579 2003-12-11 Robert Dewar <dewar@gnat.com>
38581 * a-tiinau.adb: Add a couple of comments
38583 * sem_ch3.adb: Minor reformatting
38586 Fix bad prototype of Same_Base_Type in body (code reading cleanup)
38587 Minor reformatting throughout
38589 2003-12-11 Ed Schonberg <schonberg@gnat.com>
38591 * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
38592 bounds of a loop, create a separate block in order to generate proper
38593 cleanup actions to prevent memory leaks.
38595 * sem_res.adb (Resolve_Call): After a call to
38596 Establish_Transient_Scope, the call may be rewritten and relocated, in
38597 which case no further processing is needed.
38599 * sem_util.adb: (Wrong_Type): Refine previous fix.
38600 Fixes ACATS regressions.
38603 * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
38606 2003-12-08 Jerome Guitton <guitton@act-europe.fr>
38608 * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
38609 i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
38612 * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
38615 2003-12-08 Robert Dewar <dewar@gnat.com>
38617 * 7sintman.adb: Minor reformatting
38619 * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
38620 standard linker options to get standard libraries linked. We now plan
38621 to provide dummy versions of these libraries to match the appropriate
38622 configurable run-time (e.g. if a library is not needed at all, provide
38623 a dummy empty library).
38625 * targparm.ads: Configurable_Run_Time mode no longer affects linker
38626 options (-L parameters and standard libraries). What we plan to do is
38627 to provide dummy libraries where the libraries are not required.
38629 * gnatbind.adb: Minor comment improvement
38631 2003-12-08 Javier Miranda <miranda@gnat.com>
38633 * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
38634 aggregate in the parent. Otherwise constants with limited aggregates
38635 are not supported. Add new formal to pass the component type (Ctype).
38636 It is required to call the corresponding IP subprogram in case of
38637 default initialized components.
38638 (Gen_Assign): In case of default-initialized component, generate a
38639 call to the IP subprogram associated with the component.
38640 (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
38641 of aggregate with default initialized components.
38642 (Has_Default_Init_Comps): Improve implementation to recursively check
38643 all the present expressions.
38645 * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
38646 to indicate that the initialization call corresponds to a
38647 default-initialized component of an aggregate.
38648 In case of default initialized aggregate with tasks this parameter is
38649 used to generate a null string (this is just a workaround that must be
38650 improved later). In case of discriminants, this parameter is used to
38651 generate a selected component node that gives access to the discriminant
38654 * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
38655 subprogram, based on Build_Task_Allocate_Block, but adapted to expand
38656 allocated aggregates with default-initialized components.
38658 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
38659 the box notation is used in positional aggregates.
38661 2003-12-08 Samuel Tardieu <tardieu@act-europe.fr>
38663 * lib.ads: Fix typo in comment
38665 2003-12-08 Vincent Celier <celier@gnat.com>
38667 * prj.adb (Project_Empty): New component Unkept_Comments
38668 (Scan): Remove procedure; moved to Prj.Err.
38670 * prj.ads (Project_Data): New Boolean component Unkept_Comments
38671 (Scan): Remove procedure; moved to Prj.Err.
38673 * prj-dect.adb: Manage comments for the different declarations.
38675 * prj-part.adb (With_Record): New component Node
38676 (Parse): New Boolean parameter Store_Comments, defaulted to False.
38677 Set the scanner to return ends of line and comments as tokens, if
38678 Store_Comments is True.
38679 (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
38680 comments are associated with these nodes. Store the node IDs in the
38682 (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
38684 (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
38685 the N_Project node. Call Tree.Save and Tree.Reset before scanning the
38686 current project. Call Tree.Restore afterwards. Set the various nodes
38687 for comment storage (Next_End, End_Of_Line, Previous_Line,
38690 * prj-part.ads (Parse): New Boolean parameter Store_Comments,
38691 defaulted to False.
38693 * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
38694 to False. When Truncated is True, truncate the string, never go to the
38696 (Write_End_Of_Line_Comment): New procedure
38697 (Print): Process comments for nodes N_With_Clause,
38698 N_Package_Declaration, N_String_Type_Declaration,
38699 N_Attribute_Declaration, N_Typed_Variable_Declaration,
38700 N_Variable_Declaration, N_Case_Construction, N_Case_Item.
38701 Process nodes N_Comment.
38703 * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
38704 without comments and there are some comments, set the flag
38705 Unkept_Comments to True.
38706 (Scan): If there are comments, set the flag Unkept_Comments to True and
38707 clear the comments.
38708 (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
38709 (Next_End_Nodes: New table
38710 (Comment_Zones_Of): New function
38711 (Scan): New procedure; moved from Prj. Accumulate comments in the
38712 Comments table and set end of line comments, comments after, after end
38714 (Add_Comments): New procedure
38715 (Save, Restore, Seset_State): New procedures
38716 (There_Are_Unkept_Comments): New function
38717 (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
38718 (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
38720 (First_Comment_After, First_Comment_After_End): New functions
38721 (First_Comment_Before, First_Comment_Before_End): New functions
38722 (Next_Comment): New function
38723 (End_Of_Line_Comment, Follows_Empty_Line,
38724 Is_Followed_By_Empty_Line): New functions
38725 (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
38726 (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
38727 (Set_Next_Comment): New procedure
38728 (Default_Project_Node): Associate comment before if the node can store
38731 * scans.ads (Token_Type): New enumeration value Tok_Comment
38732 (Comment_Id): New global variable
38734 * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
38735 defaulted to False.
38736 (Scan): Store position of start of comment. If comments are tokens, set
38737 Comment_Id and set Token to Tok_Comment when scanning a comment.
38738 (Set_Comment_As_Token): New procedure
38740 * sinput-p.adb: Update Copyright notice
38741 (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
38742 that no longer exists.
38744 2003-12-08 Javier Miranda <miranda@gnat.com>
38746 * sem_aggr.adb: Add dependence on Exp_Tss package
38747 Correct typo in comment
38748 (Resolve_Aggregate): In case of array aggregates set the estimated
38749 type of the aggregate before calling resolve. This is needed to know
38750 the name of the corresponding IP in case of limited array aggregates.
38751 (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
38752 in case of default initialized array components.
38754 * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
38755 types. Required to give support to limited aggregates in generic
38758 2003-12-08 Ed Schonberg <schonberg@gnat.com>
38760 * sem_ch3.adb (Check_Initialization): For legality purposes, an
38761 inlined body functions like an instantiation.
38762 (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
38763 until bounds are analyzed, to diagnose premature use of type.
38765 * sem_util.adb (Wrong_Type): Improve error message when the type of
38766 the expression is used prematurely.
38768 2003-12-08 GNAT Script <nobody@gnat.com>
38770 * Make-lang.in: Makefile automatically updated
38772 2003-12-08 Arnaud Charlet <charlet@act-europe.fr>
38774 * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
38775 they are automatically generated by Make-lang.in and cause nothing but
38776 maintenance troubles.
38778 2003-12-05 Thomas Quinot <quinot@act-europe.fr>
38780 * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
38781 version of this unit).
38783 2003-12-05 Olivier Hainque <hainque@act-europe.fr>
38785 * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
38786 5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
38787 5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
38788 the body of System.Interrupt_Management common to several targets.
38789 Update copyright notice when appropriate.
38791 * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
38794 * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
38795 to ensure that the kernel fills in the interrupted context structure
38796 before calling a signal handler, which is necessary to be able to
38797 unwind past it. Update the copyright notice.
38799 2003-12-05 Jerome Guitton <guitton@act-europe.fr>
38801 * a-elchha.ads: New file.
38803 * a-elchha.adb: New default last chance handler. Contents taken from
38804 Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
38806 * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
38807 is moved to a-elchha.adb to provide a target-independent default last
38810 * Makefile.rtl: Add a-elchha.o
38812 * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
38814 2003-12-05 Ed Schonberg <schonberg@gnat.com>
38816 * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
38817 declared in an instance, do not inline the call if the instance is not
38818 frozen yet, to prevent order of elaboration problems.
38820 * sem_prag.adb: Add comments for previous fix.
38822 2003-12-05 Samuel Tardieu <tardieu@act-europe.fr>
38824 * g-table.adb: Use the right variable in Set_Item.
38825 Update copyright notice.
38827 2003-12-05 Arnaud Charlet <charlet@act-europe.fr>
38829 * Makefile.in: Remove unused rules.
38831 2003-12-05 Vincent Celier <celier@gnat.com>
38833 * switch-c.adb (Scan_Front_End_Switches): Remove processing of
38834 -nostdlib. Not needed here after all.
38836 2003-12-03 Thomas Quinot <quinot@act-europe.fr>
38839 * adaint.h, adaint.c, g-os_lib.ads:
38840 Do not assume that the offset argument to lseek(2) is a 32 bit integer,
38841 on some platforms (including FreeBSD), it is a 64 bit value.
38842 Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
38844 2003-12-03 Arnaud Charlet <charlet@act-europe.fr>
38846 * gnatvsn.ads (Library_Version): Now contain only the relevant
38848 (Verbose_Library_Version): New constant.
38850 * g-spipat.adb, g-awk.adb, g-debpoo.adb,
38851 g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
38852 s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
38854 * gnatlbr.adb: Clean up: replace Library_Version by
38855 Verbose_Library_Version.
38857 * make.adb, lib-writ.adb, exp_attr.adb:
38858 Clean up: replace Library_Version by Verbose_Library_Version.
38860 * 5lintman.adb: Removed.
38863 Update and simplify computation of LIBRARY_VERSION.
38864 Fix computation of GSMATCH_VERSION.
38865 5lintman.adb is no longer used: replaced by 7sintman.adb.
38867 2003-12-03 Robert Dewar <dewar@gnat.com>
38870 (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
38871 name. Modified to consider small non-bit-packed arrays as troublesome
38872 and in need of component-by-component assigment expansion.
38874 2003-12-03 Vincent Celier <celier@gnat.com>
38876 * lang-specs.h: Process nostdlib as nostdinc
38878 * back_end.adb: Update Copyright notice
38879 (Scan_Compiler_Arguments): Process -nostdlib directly.
38881 2003-12-03 Jose Ruiz <ruiz@act-europe.fr>
38884 When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
38885 redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
38886 included in HIE_NONE_TARGET_PAIRS.
38888 2003-12-03 Ed Schonberg <schonberg@gnat.com>
38891 (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
38892 is legal in an instance, because legality is cheched in the template.
38895 (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
38896 appplied to an unchecked conversion of a formal parameter.
38899 (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
38902 2003-12-03 Olivier Hainque <hainque@act-europe.fr>
38904 * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
38905 routines. The second one is new functionality to deal with backtracing
38906 through signal handlers.
38907 (unwind): Split into the two separate subroutines above.
38908 Update the documentation, and deal properly with sizeof (REG) different
38909 from sizeof (void*).
38911 2003-12-01 Nicolas Setton <setton@act-europe.fr>
38913 * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
38914 so that the debugger can reliably access the value of the parameter,
38915 and therefore is able to display the exception name when an exception
38916 breakpoint is reached.
38918 2003-12-01 Thomas Quinot <quinot@act-europe.fr>
38920 * fmap.adb: Fix typo in warning message.
38922 * g-socket.ads, g-socket.adb: Make Free a visible instance of
38923 Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
38925 2003-12-01 Vincent Celier <celier@gnat.com>
38927 * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
38929 (Build_Library): Get the switches only if Default_Switches is declared
38932 2003-12-01 Ed Schonberg <schonberg@gnat.com>
38934 * exp_ch6.adb (Expand_Actuals): When applying validity checks to
38935 actuals that are indexed components, reanalyze actual to ensure that
38936 packed array references are properly expanded.
38938 * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
38939 attempted assignment to a discriminant.
38941 2003-12-01 Robert Dewar <dewar@gnat.com>
38943 * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
38946 * switch-c.adb: Minor reformatting of comments
38948 2003-12-01 Arnaud Charlet <charlet@act-europe.fr>
38950 * Makefile.in: Clean ups.
38952 2003-12-01 GNAT Script <nobody@gnat.com>
38954 * Make-lang.in: Makefile automatically updated
38956 2003-12-01 Arnaud Charlet <charlet@act-europe.fr>
38958 * 5wsystem.ads: Disable zero cost exception, not ready yet.
38960 2003-11-29 Ulrich Weigand <uweigand@de.ibm.com>
38962 * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
38963 to force serialization.
38965 2003-11-26 Thomas Quinot <quinot@act-europe.fr>
38967 * g-socket.ads, g-socket.adb:
38968 Clarify documentation of function Stream. Introduce a Free procedure
38969 to release the returned Stream once it becomes unused.
38971 * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
38973 2003-11-26 Arnaud Charlet <charlet@act-europe.fr>
38975 (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
38976 since NT 4 cannot handle timeout values that are too large,
38977 e.g. DWORD'Last - 1.
38979 2003-11-26 Ed Schonberg <schonberg@gnat.com>
38982 (Expand_N_Slice): Recognize all cases of slices that appear as actuals
38983 in procedure calls and whose expansion must be deferred.
38985 * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
38989 (Build_Derived_Array_Type): Create operator for unconstrained type
38990 if ancestor is unconstrained.
38992 2003-11-26 Vincent Celier <celier@gnat.com>
38994 * make.adb (Project_Object_Directory): New global variable
38995 (Change_To_Object_Directory): New procedure
38996 (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
38997 of Change_Dir directly. Do not change working directory to object
38998 directory of main project after each compilation.
38999 (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
39001 Change to object directory of main project before binding step.
39002 (Initialize): Initialize Project_Object_Directory to No_Project
39005 (Build_Library): Take into account Builder'Default_Switches ("Ada") when
39006 binding a Stand-Alone Library.
39008 * output.adb: Update Copyright notice
39009 (Write_Char): Output buffer when full
39011 2003-11-26 Robert Dewar <dewar@gnat.com>
39013 * sem_ch13.adb: (Check_Size): Reset size if size is too small
39016 (Check_Size): Fix documentation to include bit-packed array case
39018 * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
39020 * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
39022 * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
39024 2003-11-24 Arnaud Charlet <charlet@act-europe.fr>
39027 * utils.c (init_gigi_decls): Change name of built-in setjmp to
39028 __builtin_setjmp, since this is apparently needed by recent
39031 2003-11-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
39033 * adadecode.c: Only include ctype.h if not IN_GCC.
39034 (__gnat_decode): Use ISDIGIT from safe-ctype.h.
39036 2003-11-24 Jose Ruiz <ruiz@act-europe.fr>
39039 Use 5zintman.ads for VxWorks targets. This file avoid confusion between
39040 signals and interrupts.
39042 * 5zintman.ads: New File.
39044 * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
39045 add exception signals to the set of unmasked signals.
39048 Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
39049 between signals and interrupts.
39050 Add to Unblocked_Signal_Mask the set of signals that are in
39054 Adding a check to see whether the Interrupt_ID we want to unmask is in
39055 the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
39056 reason is that the index type of the Keep_Unmasked array is not always
39057 Interrupt_ID; it may be a subtype of Interrupt_ID.
39059 2003-11-24 Gary Dismukes <dismukes@gnat.com>
39062 (Remove_Side_Effects): Condition constantness of object created for a
39063 an unchecked type conversion on the constantness of the expression
39064 to ensure the correct value for 'Constrained when passing components
39065 of view-converted class-wide objects.
39067 2003-11-24 Robert Dewar <dewar@gnat.com>
39069 * par-load.adb (Load): Improve handling of misspelled and missing units
39070 Removes several cases of compilation abandoned messages
39072 * lib.adb: (Remove_Unit): New procedure
39074 * lib.ads: (Remove_Unit): New procedure
39076 * lib-load.adb: Minor reformatting
39078 2003-11-24 Vincent Celier <celier@gnat.com>
39081 (Gnatmake, Initialize): Call Usage instead of Makeusg directly
39082 (Marking_Label): Label to mark processed source files. Incremented for
39084 (Gnatmake): Increase Marking_Labet for each executable
39085 (Is_Marked): Compare against marking label
39086 (Mark): Mark with marking label
39088 2003-11-24 Jerome Guitton <guitton@act-europe.fr>
39091 Move the declaration of the TSD for System.Threads to System.Soft_Links.
39094 * Makefile.in: Added target pair for s-thread.adb for cert runtime.
39095 (rts-cert): build a single relocatable object for the run-time lib.
39098 2003-11-24 Vasiliy Fofanov <fofanov@act-europe.fr>
39101 Use gnatls rather than gcc to obtain the location of GNAT RTL for
39104 2003-11-24 Sergey Rybin <rybin@act-europe.fr>
39106 * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
39107 can not use it as before (that is, as a variable) when dumping it into
39108 the tree file. Add a local variable to store the result of this
39109 function and to be used as the string to be written into the tree.
39111 * scn.adb (Initialize_Scanner): Add comments explaining the recent
39114 * sinput.adb (Source_First, Source_Last): In case of
39115 Internal_Source_File, replace returning attributes of
39116 Internal_Source_Ptr (which is wrong) with returning attributes of
39119 2003-11-24 Ed Schonberg <schonberg@gnat.com>
39122 (New_Concatenation_Op): Proper name for New_Binary_Operator, only
39123 used for implicit concatenation operators.
39127 (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
39128 task bodies that are in the scope of a Suppress pragma.
39129 (Check_A Call): Use the flag to prevent spurious elaboration checks.
39131 * sinfo.ads, sinfo.adb:
39132 New flag No_Elaboration_Check on function/procedure calls, to properly
39133 suppress checks on calls in task bodies that are within a local suppress
39137 (Expand_Concatenate_Other): Use the proper integer type for the
39138 expression for the upper bound, to avoid universal_integer computations
39141 2003-11-21 Kelley Cook <kcook@gcc.gnu.org>
39143 * .cvsignore: Delete.
39145 2003-11-21 Andreas Schwab <schwab@suse.de>
39147 * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
39149 2003-11-21 Vasiliy Fofanov <fofanov@act-europe.fr>
39151 * 5wsystem.ads: Enable zero cost exception.
39153 2003-11-21 Jerome Guitton <guitton@act-europe.fr>
39155 * 5ztiitho.adb: Remove an unreferenced variable.
39157 2003-11-21 Thomas Quinot <quinot@act-europe.fr>
39159 * adaint.c: For FreeBSD, use mkstemp.
39161 2003-11-21 Arnaud Charlet <charlet@act-europe.fr>
39163 * gnatlbr.adb: Now reference Gnat_Static_Version_String.
39165 2003-11-21 Robert Dewar <dewar@gnat.com>
39167 * bld.adb: Remove useless USE of gnatvsn
39169 * gnatchop.adb: Minor reformatting
39170 Clean up version handling to be more consistent
39172 * gnatxref.adb: Minor reformatting
39174 * gprcmd.adb: Minor reformatting
39175 Fix output of copyright to be more consistent with other tools
39177 2003-11-21 Vincent Celier <celier@gnat.com>
39179 * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
39181 2003-11-21 Sergey Rybin <rybin@act-europe.fr>
39183 * atree.adb (Initialize): Add initializations for global variables
39184 used in New_Copy_Tree.
39186 * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
39187 Internal_Source_File as the actual).
39188 Put the set of statements creating Any_Character before the set of
39189 statements creating Any_Array to have Any_Character fully initialized
39190 when it is used in creating Any_Array.
39192 * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
39193 not call Scan in case if the actual is Internal_Source_File
39194 Add 2003 to copyright note.
39196 * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
39197 processing Internal_Source_File.
39199 * types.ads: Add the constant Internal_Source_File representing the
39200 source buffer for artificial source-code-like strings created within
39201 the compiler (the definition of Source_File_Index is changed).
39203 2003-11-20 Arnaud Charlet <charlet@act-europe.fr>
39205 * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
39206 56system.ads: New file, FreeBSD version.
39208 2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
39210 * Make-lang.in (ada.extraclean): Delete.
39212 2003-11-19 Arnaud Charlet <charlet@act-europe.fr>
39214 * gnatmem.adb: Clean up verbose output.
39216 * gprcmd.adb: Change copyright to FSF.
39218 2003-11-19 Vincent Celier <celier@gnat.com>
39220 * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
39221 and Version (ignored).
39223 * symbols.ads: (Policy): New type
39224 (Initialize): New parameter Reference, Symbol_Policy and
39226 Remove parameter Force.
39227 Minor reformatting.
39229 * snames.ads, snames.adbadb: New standard names
39230 Library_Reference_Symbol_File and Library_Symbol_Policy
39233 (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
39237 (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
39239 * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
39241 * prj.adb: (Project_Empty): New component Symbol_Data
39243 * prj.ads: (Policy, Symbol_Record): New types
39244 (Project_Data): New component Symbol_Data
39247 New attributes Library_Symbol_File, Library_Symbol_Policy and
39248 Library_Reference_Symbol_File.
39251 (Ada_Check): When project is a Stand-Alone library project, process
39252 attribute Library_Symbol_File, Library_Symbol_Policy and
39253 Library_Reference_Symbol_File.
39255 * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
39256 5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
39257 5sml-tgt.adb (Build_Dynamic_Library): New parameter
39258 Symbol_Data (ignored).
39260 * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
39261 (Build_Dynamic_Library): New parameter Symbol_Data. New internal
39262 functions Option_File_Name and Version_String. Set new options of
39263 gnatsym related to symbol file, symbol policy and reference symbol
39267 Extensive modifications to take into account the reference symbol file,
39268 the symbol policy, the library version and to put in the symbol file the
39269 minor and major IDs.
39271 * bld.adb (Process_Declarative_Items): Put second argument of
39272 gprcmd to_absolute between single quotes, to avoid problems with
39275 * bld-io.adb: Update Copyright notice.
39276 (Flush): Remove last character of a line, if it is a back slash, to
39277 avoid make problems.
39280 Implement new scheme with reference symbol file and symbol policy.
39282 * g-os_lib.ads: (Is_Directory): Clarify comment
39284 2003-11-19 Robert Dewar <dewar@gnat.com>
39286 * atree.adb: Move New_Copy_Tree global variables to head of package
39288 * errout.adb: Minor reformatting
39290 2003-11-19 Javier Miranda <miranda@gnat.com>
39292 * sem_ch4.adb: (Diagnose_Call): Improve error message.
39293 Add reference to Ada0Y (AI-50217)
39295 * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
39296 sem_util.adb: Add reference to AI-50217
39298 * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
39300 * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
39302 * sem_aggr.adb: Complete documentation of AI-287 changes
39304 * par-ch4.adb: Document previous changes.
39306 * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
39307 sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
39310 * exp_aggr.adb: Add references to AI-287 in previous changes
39312 2003-11-19 Ed Schonberg <schonberg@gnat.com>
39315 (Add_Call_By_Copy_Node): Do not original node of rewritten expression
39316 in the rewriting is the result of an inlined call.
39318 * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
39319 parameter is a type conversion, use original node to construct the
39320 post-call assignment, because expression may have been rewritten, e.g.
39321 if it is a packed array.
39324 (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
39325 body, just as it is in an instance.
39326 Categorization routines
39328 * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
39329 Instantiate_Object): Set proper sloc reference for message on missing
39332 2003-11-19 Thomas Quinot <quinot@act-europe.fr>
39334 * Makefile.in: Add FreeBSD libgnat pairs.
39336 * usage.adb: Fix typo in usage message.
39338 2003-11-19 Jerome Guitton <guitton@act-europe.fr>
39340 * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
39341 s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
39342 pragma Thread_Body.
39343 Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
39345 * s-thread.adb: This file is now a dummy implementation of
39348 2003-11-19 Sergey Rybin <rybin@act-europe.fr>
39350 * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
39352 2003-11-19 Emmanuel Briot <briot@act-europe.fr>
39354 * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
39355 instanciation references in the parent type description.
39357 2003-11-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39359 * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
39361 * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
39362 TYPE_PRECISION directly from esize.
39364 2003-11-18 Thomas Quinot <quinot@act-europe.fr>
39367 Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
39369 * init.c: Initialization routines for FreeBSD
39371 * link.c: Link info for FreeBSD
39373 * sysdep.c: Add the case of FreeBSD
39375 2003-11-17 Jerome Guitton <guitton@act-europe.fr>
39377 * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
39378 already called in System.Threads.
39380 * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
39381 environment task, as it has been moved to System.Threads.Initialization.
39383 2003-11-17 Arnaud Charlet <charlet@act-europe.fr>
39385 * adaint.c (__gnatlib_install_locks): Only reference
39386 __gnat_install_locks on VMS, since other platforms can avoid using
39387 --enable-threads=gnat
39389 2003-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39391 * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
39393 * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
39394 TYPE_PACKED_ARRAY_TYPE_P.
39395 (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
39397 Part of PR ada/12806
39398 * utils.c (float_type_for_precision): Renamed from float_type_for_size.
39399 Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
39401 2003-11-17 Vincent Celier <celier@gnat.com>
39403 * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
39405 Do not set exit status to Failure when Warning is True.
39406 (Gnatchop): Make errors "no compilation units found" and
39407 "no source files written" warnings only.
39409 * make.adb (Gnatmake): When using a project file, set
39410 Look_In_Primary_Dir to False.
39411 (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
39412 and Local_Configuration_Pragmas in the project where they are declared
39413 not an extending project which might have inherited them.
39415 * osint.adb (Locate_File): If Name is already an absolute path, do not
39416 look for a directory.
39418 * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
39419 -gnats (Check_Syntax) is used, issue only a warning, not an error.
39421 * prj.adb (Register_Default_Naming_Scheme): Add new component Project
39422 in objects of type Variable_Value.
39424 * prj.ads: (Variable_Value): New component Project
39426 * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
39427 is in a project extended by Project.
39429 * prj-proc.adb (Add_Attributes): New parameter Project. Set component
39430 Project of Variable_Values to this new parameter value.
39431 (Expression): Set component Project of Variable_Values.
39432 (Process_Declarative_Items): Call Add_Attributes with parameter Project.
39433 Set the component Project in array elements.
39435 2003-11-17 Sergey Rybin <rybin@act-europe.fr>
39437 * errout.adb: (Initialize): Add initialization for error nodes.
39439 * sem_ch12.adb (Initialize): Add missing initializations for
39440 Exchanged_Views and Hidden_Entities.
39442 2003-11-17 Ed Schonberg <schonberg@gnat.com>
39444 * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
39445 already instantiated tree for use in subsequent inlining.
39446 (Analyze_Associations, Instantiate_Formal_Subprogram,
39447 Instantiate_Object): improve error message for mismatch in
39450 * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
39451 instantiations of subprograms declared in instances.
39453 2003-11-17 Javier Miranda <miranda@gnat.com>
39455 * sem_ch4.adb (Analyze_Allocator): Previous modification must be
39456 executed only under the Extensions_Allowed flag.
39458 2003-11-17 Robert Dewar <dewar@gnat.com>
39460 * a-exexda.adb (Address_Image): Fix documentation to indicate leading
39462 (Address_Image): Fix bug of returning 0x instead of 0x0
39463 Minor reformatting (function specs).
39465 * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
39466 (missed case of 33-63)
39468 * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
39470 * s-thread.adb: Add comments for pragma Restriction
39472 * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
39473 sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
39475 2003-11-17 Ed Falis <falis@gnat.com>
39477 * s-thread.adb: Added No_Tasking restriction for this implementation.
39479 2003-11-17 Emmanuel Briot <briot@act-europe.fr>
39481 * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
39482 instanciation references in the parent type description.
39484 2003-11-17 GNAT Script <nobody@gnat.com>
39486 * Make-lang.in: Makefile automatically updated
39488 2003-11-16 Jason Merrill <jason@redhat.com>
39490 * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
39491 and TAGS files that include them for each front end.
39493 2003-11-14 Andreas Jaeger <aj@suse.de>
39495 * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
39496 is the canonical version.
39497 * misc.c (gnat_handle_option): Likewise.
39499 * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
39501 * 5nsystem.ads: New file for x86_64-linux-gnu.
39503 2003-11-14 Arnaud Charlet <charlet@act-europe.fr>
39505 * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
39507 * comperr.adb: Fix logic in previous change.
39509 2003-11-13 Vincent Celier <celier@gnat.com>
39511 * 5bml-tgt.adb (Build_Dynamic_Library): Use
39512 Osint.Include_Dir_Default_Prefix instead of
39513 Sdefault.Include_Dir_Default_Name.
39515 * gnatlbr.adb: Update Copyright notice
39516 (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
39517 Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
39518 instead of Sdefault.Object_Dir_Default_Name
39521 (Process_Binder_File): Never suppress the option following -Xlinker
39524 (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
39525 Sdefault.Object_Dir_Default_Name.
39527 * osint.ads, osint.adb:
39528 (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
39529 Minor reformatting.
39531 * vms_conv.ads: Minor reformating
39532 Remove GNAT STANDARD and GNAT PSTA
39535 Allow GNAT MAKE to have several files on the command line.
39536 (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
39537 Sdefault.Object_Dir_Default_Name.
39539 Remove data for GNAT STANDARD
39542 Add new compiler qualifier /PRINT_STANDARD (-gnatS)
39543 Remove data for GNAT STANDARD
39544 Remove options and documentation for -gnatwb/-gnatwB: these warning
39545 options no longer exist.
39547 2003-11-13 Ed Falis <falis@gnat.com>
39549 * 5zthrini.adb: (Init_RTS): Made visible
39552 (Register): Removed unnecessary call to taskVarGet that checked whether
39553 an ATSD was already set as a task var for the argument thread.
39556 Updated comment to reflect that this is a VxWorks version
39557 Added context clause for System.Threads.Initialization
39558 Added call to System.Threads.Initialization.Init_RTS
39560 2003-11-13 Jerome Guitton <guitton@act-europe.fr>
39563 (Init_RTS): New procedure, for the initialization of the run-time lib.
39566 Remove dependancy on System.Init, so that this file can be used in the
39567 AE653 sequential run-time lib.
39569 2003-11-13 Robert Dewar <dewar@gnat.com>
39571 * bindgen.adb: Minor reformatting
39573 2003-11-13 Ed Schonberg <schonberg@gnat.com>
39576 (Apply_Discriminant_Check): Do no apply check if target type is derived
39577 from source type with no applicable constraint.
39580 (Ensure_System_Dependency): Do not apply the style checks that may have
39581 been specified for the main unit.
39584 (Find_Selected_Component): Further improvement in error message, with
39588 (Resolve): Handle properly the case of an illegal overloaded protected
39591 2003-11-13 Javier Miranda <miranda@gnat.com>
39594 (Has_Default_Init_Comps): New function to check the presence of
39595 default initialization in an aggregate.
39596 (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
39597 extension aggregate of a limited record. In addition, a new formal
39598 was added to do not initialize the record controller (if any) during
39599 this recursive expansion of ancestors.
39600 (Init_Controller): Add support for limited record components.
39601 (Expand_Record_Aggregate): In case of default initialized components
39602 convert the aggregate into a set of assignments.
39604 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
39605 describing the new syntax.
39606 Nothing else needed to be done because this subprogram delegates part of
39607 its work to P_Precord_Or_Array_Component_Association.
39608 (P_Record_Or_Array_Component_Association): Give support to the new
39609 syntax for default initialization of components.
39612 (Resolve_Aggregate): Relax the strictness of the frontend in case of
39613 limited aggregates.
39614 (Resolve_Record_Aggregate): Give support to default initialized
39616 (Get_Value): In case of default initialized components, duplicate
39617 the corresponding default expression (from the record type
39618 declaration). In case of default initialization in the *others*
39619 choice, do not check that all components have the same type.
39620 (Resolve_Extension_Aggregate): Give support to limited extension
39624 (Check_Initialization): Relax the strictness of the front-end in case
39625 of aggregate and extension aggregates. This test is now done in
39626 Get_Value in a per-component manner.
39628 * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
39629 expression corresponds to a limited aggregate. This test is now done
39632 * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
39635 * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
39636 present in an N_Component_Association node
39638 2003-11-13 Thomas Quinot <quinot@act-europe.fr>
39640 * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
39641 type-conformant entry only if they are homographs.
39643 2003-11-13 GNAT Script <nobody@gnat.com>
39645 * Make-lang.in: Makefile automatically updated
39647 2003-11-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
39649 * adadecode.c: Use <> form of include for ctype.h.
39650 * sysdep.c [IN_RTS]: Use <> form of include for time.h.
39652 2003-11-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
39654 * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
39655 Works around PR middle-end/6552.
39657 2003-11-10 Ed Falis <falis@gnat.com>
39659 * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
39661 * 5zinit.adb: (Install_Handler): Moved back to spec
39662 (Install_Signal_Handlers): Deleted
39664 * 5zthrini.adb: Added context clause for System.Storage_Elements
39665 (Register): Only handles creation of taskVar; initialization moved to
39667 (Reset_TSD): Deleted; replaced by Thread_Body_Enter
39668 Added declaration of environment task secondary stack and
39671 * s-thread.adb: Implement bodies for thread body processing
39674 Added comment identifying supported targets for pragma Thread_Body.
39676 2003-11-10 Pascal Obry <obry@gnat.com>
39678 * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
39682 (Open): Properly check for string length before copying into the buffer.
39683 Raises Name_Error if buffer is too small. Note that this was a potential
39686 2003-11-10 Romain Berrendonner <berrendo@act-europe.fr>
39688 * bindgen.adb, comperr.adb: Code clean ups.
39689 * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
39691 2003-11-10 Sergey Rybin <rybin@act-europe.fr>
39693 * gnat1drv.adb: Add call to Sem_Elim.Initialize.
39695 2003-11-10 Vincent Celier <celier@gnat.com>
39698 (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
39701 * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
39703 * prj.adb: (Project_Empty): Add new boolean component Virtual
39705 * prj.ads: (Virtual_Prefix): New constant string
39706 (Project_Data): New boolean component Virtual
39708 * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
39709 a library project is extended by a virtual extending project.
39712 Modifications throughout to implement extending-all project, including:
39713 (Virtual_Hash, Processed_Hash): New hash tables
39714 (Create_Virtual_Extending_Project): New procedure
39715 (Look_For_Virtual_Projects_For): New procedure
39718 (Process): After checking the projects, if main project is an
39719 extending-all project, set the object directory of all virtual extending
39720 project to the object directory of the main project.
39721 Adjust error message when a virtual extending project has the same
39722 object directory as an project being extended.
39723 (Recursive_Process): If name starts with the virtual prefix, set Virtual
39724 to True in the project data.
39727 (Default_Project_Node): Add new boolean component Extending_All
39728 (Is_Extending_All): New function
39729 (Set_Is_Extending_All): New procedure
39731 * prj-tree.ads: (Is_Extending_All): New function
39732 (Set_Is_Extending_All): New procedure
39733 (Project_Node_Record): New boolean component Extending_All
39735 * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
39738 Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
39740 * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
39741 "gprcmd prefix" to define it.
39743 2003-11-10 Thomas Quinot <quinot@act-europe.fr>
39745 * einfo.ads: Fix a typo and remove an extraneous word in comments.
39748 (Create_Dummy_Package_Unit): Set the scope of the entity for the
39749 created dummy package to Standard_Standard, not to itself, to
39750 defend other parts of the front-end against encoutering a cycle in
39754 (Analyze_With_Clause): When setting the entities for the successive
39755 N_Expanded_Names that constitute the name of a child unit, do not
39756 attempt to go further than Standard_Standard in the chain of scopes.
39757 This case arises from the placeholder units created by
39758 Create_Dummy_Package_Unit in the case of a with_clause for a
39759 nonexistent child unit.
39761 2003-11-10 Ed Schonberg <schonberg@gnat.com>
39764 (Expand_Thread_Body): Place subprogram on scope stack, so that new
39765 declarations are given the proper scope.
39768 (Check_Expr_Constants): Reject an expression that contains a constant
39769 created during expansion, and that appears after the object to which
39770 the address clause applies.
39772 * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
39773 Analyze_Iteration_Scheme, to rewrite a loop parameter specification
39774 that uses 'Range of a function call with controlled components, so
39775 that the function result can be finalized before starting the loop.
39778 (Find_Selected_Component): Improve error message when prefix is
39779 an implicit dereference of an incomplete type.
39781 2003-11-10 Robert Dewar <dewar@gnat.com>
39783 * opt.ads: New Print_Standard flag for -gnatS switch
39785 * sem_ch13.adb: Remove some additional checks for unaligned arrays
39787 * cstand.adb (Create_Standard): Print out package standard if -gnatS
39790 * debug.adb: Update doc for -gnatds to discuss relationship with new
39793 * sinfo.adb: Add new field Entity_Or_Associated_Node
39795 * sinfo.ads: Add new field Entity_Or_Associated_Node
39796 Update documentation for Associated_Node and Entity fields to clarify
39797 relationship and usage.
39800 (Write_Id): Properly process Associated_Node field in generic template
39803 Recognize new -gnatS switch for printing package Standard
39804 This replaces gnatpsta
39807 Add line for new -gnatS switch for printing package Standard
39808 This replaces gnatpsta
39810 2003-11-10 Andreas Jaeger <aj@suse.de>
39812 * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
39815 2003-11-10 Arnaud Charlet <charlet@act-europe.fr>
39817 * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
39820 2003-11-10 Arnaud Charlet <charlet@act-europe.fr>
39822 * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
39825 * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
39827 * sysdep.c: Add handling of cygwin.
39829 2003-11-10 GNAT Script <nobody@gnat.com>
39831 * Make-lang.in: Makefile automatically updated
39833 2003-11-10 Arnaud Charlet <charlet@act-europe.fr>
39836 * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
39837 functions. Used to handle dynamic prefix relocation, via set_std_prefix.
39838 Replace GNAT_ROOT by GCC_ROOT.
39840 * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
39842 2003-11-06 Zack Weinberg <zack@codesourcery.com>
39844 * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
39845 and update for changed meaning of GET_MODE_BITSIZE.
39847 2003-11-04 Doug Rupp <rupp@gnat.com>
39849 * sysdep.c: Problem discovered during IA64 VMS port.
39850 [VMS] #include <unixio.h> to get proper prototypes.
39853 Issues discovered/problems fixed during IA64 VMS port.
39854 [VMS] #define _POSIX_EXIT for proper semantics.
39855 [VMS] #include <unixio.h> for proper prototypes.
39856 [VMS] (fork): #define IA64 version.
39857 (__gnat_os_exit): Remove unnecessary VMS specific code.
39859 2003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39861 Part of PR ada/12806
39862 * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
39866 (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
39869 * targtyps.c, decl.c, misc.c,
39870 gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
39871 routines to work around change in FP sizing semantics in GCC.
39874 (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
39876 * gigi.h: (enumerate_modes): New function.
39878 * Make-lang.in: (ada/misc.o): Add real.h.
39880 * misc.c: (enumerate_modes): New function.
39882 2003-11-04 Robert Dewar <dewar@gnat.com>
39884 * 3vtrasym.adb: Minor reformatting
39885 Use terminology encoded/decoded name, rather than C++ specific notion
39886 of mangling (this is the terminology used throughout GNAT).
39888 * einfo.h: Regenerated
39890 * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
39893 (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
39895 * par-prag.adb: Add dummy entry for Thread_Body pragma
39898 Add entries for System.Threads entities for thread body processing
39901 (Analyze_Pragma, Access attributes): Check these are not applied to a
39902 thread body, since this is not permitted
39904 * sem_prag.adb: Add processing for Thread_Body pragma.
39908 (Resolve_Call): Check for incorrect attempt to call a thread body
39909 procedure with a direct call.
39911 * snames.ads, snames.adb: Add entry for Thread_Body pragma
39912 Add names associated with thread body expansion
39914 * snames.h: Add entry for Thread_Body pragma
39916 * s-thread.adb: Add entries for thread body processing
39917 These are dummy bodies so far
39919 * s-thread.ads: Add documentation on thread body handling.
39920 Add entries for thread body processing.
39922 2003-11-04 Javier Miranda <miranda@gnat.com>
39925 (Build_Limited_Views): Return after posting an error in case of limited
39926 with_clause on subprograms, generics, instances or generic renamings
39927 (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
39928 on subprograms, generics, instances or generic renamings
39930 2003-11-04 Arnaud Charlet <charlet@act-europe.fr>
39932 * raise.c (setup_to_install): Correct mistake in last revision; two
39933 arguments out of order.
39935 * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
39936 gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
39937 notice, missed in previous change.
39938 Remove trailing blanks and other style errors introduced in previous
39941 2003-11-04 Olivier Hainque <hainque@act-europe.fr>
39943 * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
39944 rid of the wrapper for a LJM type, ensuring we don't do that if the
39945 field is addressable. This avoids potential low level type view
39946 mismatches later on, for instance in a by-reference argument passing
39949 2003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
39951 * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
39952 aligned at byte boundary.
39954 2003-11-04 Joel Brobecker <brobecker@gnat.com>
39956 * decl.c (components_to_record): Do not delete the empty variants from
39957 the end of the union type.
39959 2003-11-04 Ed Schonberg <schonberg@gnat.com>
39961 * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
39962 operation for a derived type, an explicit declaration may use a local
39963 subtype of Boolean.
39965 2003-11-04 Vincent Celier <celier@gnat.com>
39967 * make.adb (Gnatmake): Allow main sources on the command line with a
39968 library project when it is only for compilation (no binding or
39971 2003-11-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
39973 * Makefile.in: Remove many duplicate variables.
39975 2003-11-03 Kelley Cook <kcook@gcc.gnu.org>
39977 * Make-lang.in (dvi): Move targets to $(docobjdir).
39978 (gnat_ug_vms.dvi): Simplify rule and adjust target.
39979 (gnat_ug_wnt.dvi): Likewise.
39980 (gnat_ug_unx.dvi): Likewise.
39981 (gnat_ug_vxw.dvi): Likewise.
39982 (gnat_rm.dvi): Likewise.
39983 (gnat-style.dvi): Likewise.
39985 2003-10-31 Kelley Cook <kcook@gcc.gnu.org>
39987 * gigi.h: Missed commit from update for C90.
39989 2003-10-31 Kelley Cook <kcook@gcc.gnu.org>
39991 * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
39993 2003-10-31 Andreas Schwab <schwab@suse.de>
39995 * raise.c (get_action_description_for): Fix typo in last change.
39997 2003-10-31 Nathanael Nerode <neroden@gcc.gnu.org>
40000 * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
40001 T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
40003 2003-10-30 Kelley Cook <kcook@gcc.gnu.org>
40005 * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
40006 ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
40007 gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
40008 sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
40009 trans.c, utils.c, utils2.c: Convert function prototypes to C90.
40011 2003-10-30 Vasiliy Fofanov <fofanov@act-europe.fr>
40014 Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
40015 numbers when symbol name is too long.
40017 2003-10-30 Ed Falis <falis@gnat.com>
40019 * g-signal.ads, g-signal.adb: New files
40021 * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
40023 * Makefile.rtl: Introduce GNAT.Signals
40025 2003-10-30 Robert Dewar <dewar@gnat.com>
40027 * freeze.adb: Minor reformatting
40029 * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
40031 * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
40032 par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
40033 New handling of Id_Check parameter to improve recognition of keywords
40034 used as identifiers.
40035 Update copyright notice to include 2003
40037 2003-10-29 Robert Dewar <dewar@gnat.com>
40039 * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
40040 sem_ch10.adb: Minor reformatting
40042 * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
40043 (Expand_Assign_Record): Test right hand side for bit unaligned as well
40045 2003-10-29 Vasiliy Fofanov <fofanov@act-europe.fr>
40047 * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
40048 Support for TBK$SYMBOLIZE-based symbolic traceback.
40050 2003-10-29 Jose Ruiz <ruiz@act-europe.fr>
40053 Revert previous change, that did not work well when pragma No_Run_Time
40054 was used in conjunction with a run-time other than ZFP.
40056 2003-10-29 Vincent Celier <celier@gnat.com>
40059 (Gnatmake): When there are no Ada mains in attribute Main, disable the
40060 bind and link steps only is switch -z is not used.
40062 2003-10-29 Arnaud Charlet <charlet@act-europe.fr>
40064 * Makefile.generic: Remove duplicated setting of CC.
40066 * Makefile.prolog: Set CC to gcc by default, to override make's
40069 * einfo.h: Regenerated.
40071 2003-10-29 Ed Schonberg <schonberg@gnat.com>
40073 * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
40074 current body, after compiling subunit.
40076 * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
40077 when in deleted code, because gigi needs properly ordered freeze
40078 actions to annotate types.
40080 * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
40081 prevent the premature freezing of record type that contains
40082 subcomponents with a private type that does not yet have a completion.
40084 2003-10-29 Javier Miranda <miranda@gnat.com>
40087 (Analyze_Package_Instantiation): Check that instances can not be used in
40088 limited with_clauses.
40091 (Analyze_Package_Renaming): Check that limited withed packages cannot
40092 be renamed. Improve text on error messages related to limited
40095 * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
40097 * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
40098 Update copyright notice.
40100 * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
40101 (Install_Limited_Context_Clauses): New subprogram that isolates all the
40102 checks required for limited context_clauses and installs the limited
40104 (Install_Limited_Withed_Unit): Complete its documentation.
40105 (Analyze_Context): Check that limited with_clauses are only allowed in
40107 (Install_Context): Call Install_Limited_Context_Clauses after the
40108 parents have been installed.
40109 (Install_Limited_Withed_Unit): Add documentation. Mark the installed
40110 package as 'From_With_Type'; this mark indicates that the limited view
40111 is installed. Used to check bad usages of limited with_clauses.
40112 (Build_Limited_Views): Do not add shadow entities to the scope's list
40113 of entities. Do not add real entities to the Non_Limited_Views chain.
40114 Improve error notification.
40115 (Remove_Context_Clauses): Remove context clauses in two phases:
40116 limited views first and regular views later (to maintain the
40118 (Remove_Limited_With_Clause): If the package is analyzed then reinstall
40119 its visible entities.
40121 2003-10-29 Thomas Quinot <quinot@act-europe.fr>
40123 * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
40124 with any type that Is_Fixed_Point_Type.
40126 * sinfo.ads: Fix documentation for Associated_Node attribute.
40128 2003-10-29 Sergey Rybin <rybin@act-europe.fr>
40130 * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
40131 both '-gnatc' and '-gnatt' are specified.
40133 * atree.adb (Initialize): Add initialization for Node_Count (set to
40136 2003-10-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
40138 * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
40139 do not consider as Pure.
40141 Part of implementation of function-at-a-time:
40143 * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
40144 (tree_transform): Add new argument to build_component_ref.
40145 (tree_transform, case N_Assignment_Statement): Make and return an
40147 (tree_transform): If result IS_STMT, set flags and return it.
40148 (gnat_expand_stmt, set_lineno_from_sloc): New functions.
40150 * utils2.c (build_simple_component_ref, build_component_ref): Add new
40152 (build_binary_op, case EQ_EXPR): Pass additional arg to it.
40153 (build_allocator): Likewise.
40155 * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
40156 Add new arg to build_component_ref.
40157 (maybe_unconstrained_array, unchecked_convert): Likewise.
40159 * ada-tree.def (EXPR_STMT): New code.
40161 * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
40163 * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
40164 build_component_ref calls.
40166 * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
40168 * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
40169 (build_component_ref): Add new argument, NO_FOLD_P.
40171 2003-10-27 Arnaud Charlet <charlet@act-europe.fr>
40173 * Makefile.generic: Add missing substitution on object_deps handling.
40176 * Make-lang.in (check-ada): Enable ACATS test suite.
40178 2003-10-27 Robert Dewar <dewar@gnat.com>
40181 (Freeze_Array_Type): We do not need an initialization routine for types
40182 derived from String or Wide_String. They should be treated the same
40183 as String and Wide_String themselves. This caused problems with the
40184 use of Initialize_Scalars.
40187 (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
40188 composites. This allows use of component clauses that are not byte
40192 (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
40193 is an attempt to pack an array of atomic objects.
40195 * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
40197 2003-10-27 Pascal Obry <obry@gnat.com>
40200 (Basename): Check for drive letters in a pathname only on DOS based OS.
40202 2003-10-27 Vincent Celier <celier@gnat.com>
40205 (Gnatmake): When unable to change dir to the object dir, display the
40206 content of the parent dir of the obj dir, to try to understand why this
40209 2003-10-27 GNAT Script <nobody@gnat.com>
40211 * Make-lang.in: Makefile automatically updated
40213 2003-10-27 Ed Schonberg <schonberg@gnat.com>
40216 (Inline_Instance_Body): Indicate that the save/restore of use_clauses
40217 should not be done in Save/Restore_Scope_Stack, because it is performed
40221 (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
40222 whether use clauses should be removed/restored.
40225 (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
40226 whether use clauses should be removed/restored.
40228 2003-10-26 Andreas Jaeger <aj@suse.de>
40230 * Makefile.in: Remove duplicated lines.
40232 2003-10-24 Arnaud Charlet <charlet@act-europe.fr>
40234 * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
40235 minimize the differences with ACT tree.
40237 * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
40238 gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
40239 Gnatvsn.Gnat_Static_Version_String to reduce differences between
40242 2003-10-24 Pascal Obry <obry@gnat.com>
40245 * adadecode.c (ostrcpy): New function.
40246 (__gnat_decode): Use ostrcpy of strcpy.
40247 (has_prefix): Set first parameter a const.
40248 (has_suffix): Set first parameter a const.
40249 Update copyright notice. Fix source name in header.
40250 Removes a trailing space.
40252 2003-10-24 Jose Ruiz <ruiz@act-europe.fr>
40255 Remove the test against being in No_Run_Time_Mode before generating a
40256 call to Register_Tag. It is redundant with the test against the
40257 availability of the function Register_Tag.
40259 2003-10-24 Vincent Celier <celier@gnat.com>
40261 * g-catiio.adb: (Month_Name): Correct spelling of February
40263 * make.adb: (Mains): New package
40264 (Initialize): Call Mains.Delete
40265 (Gnatmake): Check that each main on the command line is a source of a
40266 project file and, if there are several mains, each of them is a source
40267 of the same project file.
40268 (Gnatmake): When a foreign language is specified in attribute Languages,
40269 no main is specified on the command line and attribute Mains is not
40270 empty, only build the Ada main. If there is no Ada main, just compile
40271 the Ada sources and their closure.
40272 (Gnatmake): If a main is specified on the command line with directory
40273 information, check that the source exists and, if it does, that the path
40274 is the actual path of a source of a project.
40277 (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
40278 Full_Path is True, return the full path instead of the simple file name.
40279 (Project_Of): New function
40282 (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
40283 defaulted to False.
40284 (Project_Of): New function
40286 2003-10-24 Arnaud Charlet <charlet@act-europe.fr>
40288 * Makefile.generic:
40289 Ensure objects of main project are always checked and rebuilt if needed.
40290 Set CC to gcc by default.
40291 Prepare new handling of link by creating a global archive (not activated
40294 * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
40295 stringt.h: Update copyright notice. Remove trailing blanks.
40296 Fix source name in header.
40298 2003-10-24 Robert Dewar <dewar@gnat.com>
40300 * sem_ch12.adb: Minor reformatting
40303 Minor reformatting (including new function return style throughout)
40306 Minor reformatting (including new function return style throughout)
40308 2003-10-24 Arnaud Charlet <charlet@act-europe.fr>
40310 * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
40311 stringt.h: Update copyright notice. Remove trailing blanks.
40312 Fix source name in header.
40314 2003-10-24 GNAT Script <nobody@gnat.com>
40316 * Make-lang.in: Makefile automatically updated
40318 2003-10-23 Nathanael Nerode <neroden@gcc.gnu.org>
40320 * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
40321 stringt.h: Convert to ISO C90 declarations and definitions.
40323 2003-10-23 Thomas Quinot <quinot@act-europe.fr>
40326 * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
40327 External_Tag attribute definition clauses.
40329 2003-10-23 Ed Schonberg <schonberg@gnat.com>
40332 * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
40333 child unit, generate a fully qualified name to avoid spurious errors
40334 when the context contains renamings of different child units with
40335 the same simple name.
40337 * exp_dbug.ads: Add documentation on name qualification for renamings
40340 2003-10-23 Robert Dewar <dewar@gnat.com>
40342 * g-regpat.ads, g-regpat.adb: Minor reformatting
40344 2003-10-23 Jose Ruiz <ruiz@act-europe.fr>
40346 * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
40348 2003-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
40350 * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
40353 * urealp.h: (Machine): Update to proper definition.
40355 2003-10-23 Arnaud Charlet <charlet@act-europe.fr>
40357 * init.c, adaint.c: Minor reformatting.
40359 2003-10-23 Danny Smith <dannysmith@users.sourceforge.net>
40361 * adaint.c (w32_epoch_offset): Define static const at file level.
40362 (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
40363 rather than t_create, t_access in call to GetFileTime. Use union
40364 to convert between FILETIME and unsigned long long.
40365 (__gnat_file_time_name): Test for invalid file handle.
40366 (__gnat_set_filetime_name): Support win32 targets using
40367 w32api SetFileTime.
40369 2003-10-22 Danny Smith <dannysmith@users.sourceforge.net>
40371 * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
40373 * ctrl_c.c (__gnat_int_handler): Remove declaration.
40375 * decl.c (creat_concat_name): Const-ify prefix.
40377 * adaint.c: Include ctype.h if __MINGW32__.
40378 (__gnat_readlink): Mark arguments as possibly unused.
40379 (__gnat_symlink): Likewise.
40380 (__gnat_is_symbolic_link): Likewise.
40381 (__gnat_portable_spawn): Likewise. Cast last arg of spawnvp to match
40383 (__gnat_file_time_name): Don't declare struct stat statbuf when
40385 (__gnat_is_absolute_path): Add parenthesis around condition of
40386 'if' statement to avoid warning.
40387 (__gnat_plist_init): Specify void as parameter.
40388 (plist_enter): Likewise.
40389 (plist_leave): Likewise.
40390 (remove_handle): Make static. Initialize prev.
40392 2003-10-22 Arnaud Charlet <charlet@act-europe.fr>
40395 * Makefile.in: Disable build of gnatpsta.
40396 * cstreams.c (__gnat_full_name): Minor improvements and clean up
40397 of previous change.
40399 2003-10-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
40401 * tracebak.c (MAX): Avoid redefinition warning.
40403 * init.c [sgi] (__gnat_error_handler): Remove i, unused.
40404 Change msg to const char *.
40405 (__gnat_install_handler): Remove ss, unused.
40406 [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
40408 * cstreams.c (__gnat_full_name): Declare p only when used.
40409 (__gnat_full_name) [sgi] Return buffer.
40411 2003-10-22 Arnaud Charlet <charlet@act-europe.fr>
40413 * mingw32.h: New file.
40414 * gnat_wrapper.adb: New file.
40416 2003-10-22 Jerome Roussel <roussel@act-europe.fr>
40418 * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
40419 string match a pre compiled regular expression (the corresponding
40420 version of the function working on a raw regular expression)
40421 Fix typos in various comments
40422 Update copyright notice in spec
40424 2003-10-21 Gary Dismukes <dismukes@gnat.com>
40427 (Component_Needs_Simple_Initialization): Return False when the type is a
40428 packed bit array. Revise spec comments to document this case.
40431 (Expand_Pragma_Import): Set any expression on the imported object to
40432 empty to avoid initializing imported objects (in particular this
40433 covers the case of zero-initialization of bit arrays).
40434 Update copyright notice.
40436 2003-10-21 Ed Schonberg <schonberg@gnat.com>
40439 (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
40440 a subunit is missing.
40441 (Instantiate_Subprogram_Body): If body of function is missing, set type
40442 of return expression explicitly in dummy body, to prevent cascaded
40443 errors when a subunit is missing.
40447 (Access_Subprogram_Declaration): Verify that return type is valid.
40451 (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
40456 (Corresponding_Discriminant): If the scope of the discriminant is a
40457 private type without discriminant, use its full view.
40460 2003-10-21 Arnaud Charlet <charlet@act-europe.fr>
40462 * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
40463 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
40464 3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
40465 55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
40466 56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
40467 59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
40468 5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
40469 5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
40470 5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
40471 5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
40472 5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
40473 5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
40474 5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
40475 5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
40476 7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
40477 a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
40478 a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
40479 a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
40480 bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
40481 erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
40482 err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
40483 g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
40484 g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
40485 g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
40486 g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
40487 g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
40488 g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
40489 gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
40490 g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
40491 g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
40492 i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
40493 prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
40494 prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
40495 s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
40496 s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
40497 s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
40498 s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
40499 s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
40500 s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
40501 s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
40502 s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
40503 socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
40504 s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
40505 s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
40506 s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
40507 styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
40508 s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
40509 tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
40510 vms_conv.ads, vms_conv.adb, vms_data.ads,
40511 vxaddr2line.adb: Files added. Merge with ACT tree.
40513 * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
40514 5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
40515 5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
40516 5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
40517 g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
40518 s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
40519 s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
40520 s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
40521 s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
40522 s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
40524 * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
40525 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
40526 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
40527 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
40528 4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
40529 4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
40530 4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
40531 4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
40532 51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
40533 53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
40534 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
40535 5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
40536 5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
40537 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
40538 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
40539 5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
40540 5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
40541 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
40542 5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
40543 5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
40544 5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
40545 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
40546 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
40547 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
40548 5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
40549 5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
40550 5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
40551 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
40552 5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
40553 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
40554 5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
40555 5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
40556 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
40557 5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
40558 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
40559 7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
40560 7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
40561 a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
40562 a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
40563 a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
40564 a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
40565 a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
40566 ali.adb, ali.ads, ali-util.adb, ali-util.ads,
40567 a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
40568 a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
40569 a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
40570 a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
40571 a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
40572 a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
40573 a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
40574 a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
40575 a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
40576 a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
40577 a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
40578 a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
40579 atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
40580 a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
40581 a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
40582 bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
40583 checks.adb, checks.ads, cio.c, comperr.adb,
40584 comperr.ads, csets.adb, cstand.adb, cstreams.c,
40585 debug_a.adb, debug_a.ads, debug.adb, decl.c,
40586 einfo.adb, einfo.ads, errout.adb, errout.ads,
40587 eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
40588 expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
40589 exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
40590 exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
40591 exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
40592 exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
40593 exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
40594 exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
40595 exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
40596 fe.h, fmap.adb, fmap.ads, fname.adb,
40597 fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
40598 freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
40599 g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
40600 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
40601 g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
40602 g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
40603 g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
40604 g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
40605 g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
40606 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
40607 g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
40608 g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
40609 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
40610 g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
40611 gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
40612 gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
40613 gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
40614 gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
40615 gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
40616 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
40617 g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
40618 g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
40619 g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
40620 g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
40621 g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
40622 g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
40623 g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
40624 i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
40625 i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
40626 inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
40627 itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
40628 layout.adb, lib.adb, lib.ads, lib-list.adb,
40629 lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
40630 lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
40631 link.c, live.adb, make.adb, make.ads,
40632 Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
40633 mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
40634 mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
40635 misc.c, mkdir.c, mlib.adb, mlib.ads,
40636 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
40637 mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
40638 namet.adb, namet.ads, namet.h, nlists.ads,
40639 nlists.h, nmake.adt, opt.adb, opt.ads,
40640 osint.adb, osint.ads, osint-b.adb, osint-c.adb,
40641 par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
40642 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
40643 par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
40644 par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
40645 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
40646 prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
40647 prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
40648 prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
40649 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
40650 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
40651 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
40652 prj-util.adb, prj-util.ads, raise.c, raise.h,
40653 repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
40654 rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
40655 s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
40656 s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
40657 scans.ads, scn.adb, scn.ads, s-crc32.adb,
40658 s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
40659 sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
40660 sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
40661 sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
40662 sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
40663 sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
40664 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
40665 sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
40666 sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
40667 sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
40668 sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
40669 sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
40670 s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
40671 s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
40672 s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
40673 s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
40674 s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
40675 s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
40676 s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
40677 sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
40678 sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
40679 sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
40680 s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
40681 s-memory.adb, s-memory.ads, snames.adb, snames.ads,
40682 snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
40683 s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
40684 s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
40685 s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
40686 s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
40687 s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
40688 s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
40689 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
40690 s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
40691 s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
40692 s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
40693 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
40694 s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
40695 s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
40696 s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
40697 s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
40698 s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
40699 stringt.adb, stringt.ads, stringt.h, style.ads,
40700 stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
40701 s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
40702 s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
40703 switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
40704 s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
40705 table.adb, table.ads, targparm.adb, targparm.ads,
40706 targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
40707 trans.c, tree_io.adb, treepr.adb, treeprs.adt,
40708 ttypes.ads, types.ads, types.h, uintp.adb,
40709 uintp.ads, uintp.h, uname.adb, urealp.adb,
40710 urealp.ads, urealp.h, usage.adb, utils2.c,
40711 utils.c, validsw.adb, validsw.ads, widechar.adb,
40712 xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
40713 xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
40714 einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
40715 gnatvsn.ads: Merge with ACT tree.
40717 * gnatvsn.adb: Rewritten in a simpler and more efficient way.
40719 2003-10-20 Mark Mitchell <mark@codesourcery.com>
40721 * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
40722 (gnat_ug_vmx.info): Likewise.
40723 (gnat_ug_vxw.info): Likewise.
40724 (gnat_ug_wnt.info): Likewise.
40725 (gnat_rm.info): Likewise.
40726 (gnat-style.info): Likewise.
40728 * Make-lang.in (ada.install-info): Remove target.
40729 (info): New target.
40730 (install-info): Likewise.
40731 (gnat_ug_unx.info): Simplify rule.
40732 (gnat_ug_vmx.info): Likewise.
40733 (gnat_ug_vxw.info): Likewise.
40734 (gnat_ug_wnt.info): Likewise.
40735 (gnat_rm.info): Likewise.
40736 (gnat-style.info): Likewise.
40738 2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
40740 * Make-lang.in: Replace uses of $(target_alias) with
40741 $(target_noncanonical).
40742 * ada/Makefile.in: Remove unused mention of $(target_alias).
40744 2003-10-06 Mark Mitchell <mark@codesourcery.com>
40746 * Make-lang.in (ada.info): Replace with ...
40748 (ada.dvi): Replace with ...
40751 2003-09-29 Zack Weinberg <zack@codesourcery.com>
40753 * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
40754 initialize dconstp5 and dconstmp5.
40756 2003-09-28 Richard Henderson <rth@redhat.com>
40758 * trans.c (tree_transform): Update call to expand_asm_operands.
40760 2003-09-21 Richard Henderson <rth@redhat.com>
40762 * trans.c, utils.c: Revert.
40764 2003-09-21 Richard Henderson <rth@redhat.com>
40766 * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
40769 2003-09-04 Michael Matz <matz@suse.de>
40771 * misc.c: Include "target.h".
40772 * Make-lang.in (misc.o): Add dependency on target.h.
40774 2003-09-03 DJ Delorie <dj@redhat.com>
40776 * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
40779 2003-08-30 Zack Weinberg <zack@codesourcery.com>
40781 * Makefile.in: Update substitutions to match changes to
40782 configure. Use include directives instead of @-insertions
40783 to read in host and target fragments. Add a rule to
40784 regenerate ada/Makefile.
40786 2003-07-18 Neil Booth <neil@daikokuya.co.uk>
40788 * lang-options.h: Remove.
40789 * lang.opt: Add help text.
40791 2003-07-07 Nathan Sidwell <nathan@codesourcery.com>
40793 * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
40796 2003-07-06 Neil Booth <neil@daikokuya.co.uk>
40798 * misc.c (gnat_handle_option): Don't handle filenames.
40800 2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
40802 * Make-lang.in: Replace PWD with PWD_COMMAND.
40803 * Makefile.adalib: Likewise.
40804 * Makefile.in: Likewise.
40806 2003-07-04 Matt Kraai <kraai@alumni.cmu.edu>
40808 * misc.c (gnat_argv): Revert last change.
40809 (gnat_handle_option, gnat_init_options): Copy arguments.
40811 2003-07-03 Neil Booth <neil@daikokuya.co.uk>
40813 * misc.c (gnat_argv): Make const.
40815 2003-07-02 Neil Booth <neil@daikokuya.co.uk>
40817 * misc.c (save_argc, save_argv): Keep non-static!
40819 2003-07-02 Neil Booth <neil@daikokuya.co.uk>
40821 * misc.c (save_argc, save_argv): Make static.
40822 (gnat_init_options): New prototype.
40823 (gnat_init_options): Update.
40825 2003-07-01 Matt Kraai <kraai@alumni.cmu.edu>
40827 * gnat_ug.texi: Remove unlikely characters from @vars.
40828 * gnat_ug_vms.texi: Regenerate.
40830 2003-06-27 Nathan Sidwell <nathan@codesourcery.com>
40832 * misc.c (record_code_position): Adjust emit_note call.
40834 2003-06-26 Neil Booth <neil@daikokuya.co.uk>
40836 * misc.c (gnat_handle_option): Don't check for missing arguments.
40838 2003-06-20 Nathan Sidwell <nathan@codesourcery.com>
40840 * utils.c (end_subprog_body): Adjust expand_function_end call.
40842 2003-06-16 Matt Kraai <kraai@alumni.cmu.edu>
40844 * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
40847 2003-06-15 Neil Booth <neil@daikokuya.co.uk>
40849 * lang.opt: Declare Ada.
40850 * misc.c (gnat_init_options): Update.
40852 2003-06-14 Nathan Sidwell <nathan@codesourcery.com>
40854 * utils.c (begin_subprog_body): Adjust init_function_start call.
40856 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
40858 * Make-lang.in: Update to use options.c and options.h.
40859 * misc.c: Include options.h not aoptions.h.
40860 (gnat_handle_option): Abort on unrecognized switch.
40861 (gnat_init_options): Request Ada switches.
40863 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
40865 * lang.opt: Add -Wall.
40866 * misc.c (gnat_handle_option): Handle it.
40868 2003-06-12 Neil Booth <neil@daikokuya.co.uk>
40870 * misc.c (gnat_handle_option): Fix warnings.
40872 2003-06-11 Matt Kraai <kraai@alumni.cmu.edu>
40874 * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
40876 2003-06-11 Neil Booth <neil@daikokuya.co.uk>
40878 * Make-lang.in: Update to handle command-line options.
40879 * lang.opt: New file.
40880 * misc.c: Include aoptions.h.
40881 (cl_options_count, cl_options): Remove.
40882 (gnat_handle_option): New.
40883 (gnat_decode_option): Remove.
40884 (LANG_HOOKS_DECODE_OPTION): Remove.
40885 (LANG_HOOKS_HANDLE_OPTION): Override.
40887 2003-06-10 Nathanael Nerode <neroden@gcc.gnu.org>
40889 * init.c, misc.c, trans.c, utils.c: Remove dead code.
40891 2003-06-09 Nathanael Nerode <neroden@gcc.gnu.org>
40893 * Makefile.in: Replace "host_canonical" with "host" for autoconf
40896 2003-06-08 Neil Booth <neil@daikokuya.co.uk>
40898 * Make-lang.in: Update.
40899 * misc.c: Include opts.h. Define cl_options_count and cl_options.
40901 2003-06-07 Neil Booth <neil@daikokuya.co.uk>
40903 * misc.c (gnat_init_options): Update.
40905 2003-06-05 Matt Kraai <kraai@alumni.cmu.edu>
40907 * Make-lang.in (ada/b_gnatb.o-warn): Remove.
40908 * bindgen.adb (Gen_Main_C): Mark ensure_reference with
40909 __attribute__ ((__unused__)).
40911 2003-06-05 Jan Hubicka <jh@suse.cz>
40913 * Make-lang.in: Add support for stageprofile and stagefeedback
40915 2003-06-05 Matt Kraai <kraai@alumni.cmu.edu>
40917 * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
40918 (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
40920 2003-06-04 Matt Kraai <kraai@alumni.cmu.edu>
40922 * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
40923 Remove non-VMS directive.
40924 (Switches for gnatlbr, Optimization Levels): Remove non-VMS
40926 (Examples of gnatls Usage): Remove VMS alternative.
40928 2003-06-04 Olivier Hainque <hainque@act-europe.fr>
40931 * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
40932 and turn ZCX_By_Default back to False since the underlying support
40933 is not quite there yet.
40935 2003-06-01 Andreas Jaeger <aj@suse.de>
40937 * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
40938 and ROUND_TYPE_SIZE_UNIT.
40940 2003-05-22 Geert Bosch <bosch@gnat.com>
40942 * gnat_rm.texi : Remove reference to Ada Core Technologies.
40944 2003-05-03 Nathan Sidwell <nathan@codesourcery.com>
40946 * trans.c (tree_transform): Use location_t and input_location
40948 (build_unit_elab): Likewise.
40949 * utils.c (create_label_decl): Likewise.
40951 2003-05-01 Nathan Sidwell <nathan@codesourcery.com>
40953 * trans.c (tree_transform, build_unit_elab,
40954 set_lineno): Rename lineno to input_line.
40955 * utils.c (pushdecl, create_label_decl, begin_subprog_body,
40956 end_subprog_body): Likewise.
40957 * utils2.c (build_call_raise): Likewise.
40959 2003-05-01 Laurent Guerby <guerby@acm.org>
40962 * 5iosinte.ads: Increase pthread_cond_t size to match recent
40963 LinuxThread and NPTL version, merge from ACT.
40965 2003-04-28 Zack Weinberg <zack@codesourcery.com>
40967 * utils.c (convert): No need to clear TREE_CST_RTL.
40969 2003-04-23 Geert Bosch <bosch@gnat.com>
40971 * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
40972 1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
40973 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
40974 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
40975 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
40976 4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
40977 4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
40978 4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
40979 4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
40980 4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
40981 4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
40982 4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
40983 52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
40984 5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
40985 5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
40986 5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
40987 5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
40988 5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
40989 5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
40990 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
40991 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
40992 5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
40993 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
40994 5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
40995 5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
40996 5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
40997 5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
40998 5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
40999 5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
41000 5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
41001 5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
41002 5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
41003 5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
41004 5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
41005 5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
41006 5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
41007 5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
41008 5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
41009 5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
41010 5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
41011 5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
41012 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
41013 5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
41014 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
41015 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
41016 7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
41017 7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
41018 9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
41019 a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
41020 a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
41021 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
41022 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
41023 a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
41024 a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
41025 a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
41026 a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
41027 a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
41028 a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
41029 a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
41030 a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
41031 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
41032 a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
41033 a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
41034 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
41035 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
41036 a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
41037 a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
41038 a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
41039 a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
41040 a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
41041 a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
41042 a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
41043 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
41044 a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
41045 a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
41046 a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
41047 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
41048 a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
41049 a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
41050 a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
41051 a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
41052 a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
41053 a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
41054 a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
41055 a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
41056 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
41057 a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
41058 a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
41059 a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
41060 a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
41061 a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
41062 a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
41063 a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
41064 a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
41065 a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
41066 a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
41067 a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
41068 a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
41069 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
41070 a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
41071 a-wttest.ads, ada-tree.h, ada.ads, ada.h,
41072 adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
41073 ali.adb, ali.ads, alloc.ads, argv.c,
41074 atree.adb, atree.ads, atree.h, aux-io.c,
41075 back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
41076 binde.adb, binde.ads, binderr.adb, binderr.ads,
41077 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
41078 butil.adb, butil.ads, cal.c, calendar.ads,
41079 casing.adb, casing.ads, ceinfo.adb, checks.adb,
41080 checks.ads, cio.c, comperr.adb, comperr.ads,
41081 config-lang.in, csets.adb, csets.ads, csinfo.adb,
41082 cstand.adb, cstand.ads, cuintp.c, debug.adb,
41083 debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
41084 dec-io.ads, dec.ads, deftarg.c, directio.ads,
41085 einfo.adb, einfo.ads, elists.adb, elists.ads,
41086 elists.h, errno.c, errout.adb, errout.ads,
41087 eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
41088 exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
41089 exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
41090 exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
41091 exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
41092 exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
41093 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
41094 exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
41095 exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
41096 exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
41097 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
41098 exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
41099 exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
41100 exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
41101 exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
41102 fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
41103 fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
41104 freeze.adb, freeze.ads, frontend.adb, frontend.ads,
41105 g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
41106 g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
41107 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
41108 g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
41109 g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
41110 g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
41111 g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
41112 g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
41113 g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
41114 g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
41115 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
41116 g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
41117 g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
41118 g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
41119 g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
41120 g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
41121 g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
41122 g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
41123 g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
41124 g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
41125 g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
41126 g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
41127 get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
41128 gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
41129 gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
41130 gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
41131 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
41132 gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
41133 gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
41134 gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
41135 hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
41136 i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
41137 i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
41138 i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
41139 i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
41140 i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
41141 i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
41142 inline.adb, inline.ads, interfac.ads, ioexcept.ads,
41143 itypes.adb, itypes.ads, krunch.adb, krunch.ads,
41144 layout.adb, layout.ads, lib-list.adb, lib-load.adb,
41145 lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
41146 lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
41147 lib.adb, lib.ads, live.adb, live.ads,
41148 machcode.ads, make.adb, make.ads, makeusg.adb,
41149 makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
41150 mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
41151 memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
41152 mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
41153 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
41154 mlib.ads, namet.adb, namet.ads, nlists.adb,
41155 nlists.ads, opt.adb, opt.ads, osint-b.adb,
41156 osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
41157 osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
41158 osint.ads, output.adb, output.ads, par-ch10.adb,
41159 par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
41160 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
41161 par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
41162 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
41163 par-tchk.adb, par-util.adb, par.adb, par.ads,
41164 prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
41165 prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
41166 prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
41167 prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
41168 prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
41169 prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
41170 prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
41171 prj.adb, prj.ads, repinfo.adb, repinfo.ads,
41172 restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
41173 rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
41174 s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
41175 s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
41176 s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
41177 s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
41178 s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
41179 s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
41180 s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
41181 s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
41182 s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
41183 s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
41184 s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
41185 s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
41186 s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
41187 s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
41188 s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
41189 s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
41190 s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
41191 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
41192 s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
41193 s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
41194 s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
41195 s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
41196 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
41197 s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
41198 s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
41199 s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
41200 s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
41201 s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
41202 s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
41203 s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
41204 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
41205 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
41206 s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
41207 s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
41208 s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
41209 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
41210 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
41211 s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
41212 s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
41213 s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
41214 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
41215 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
41216 s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
41217 s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
41218 s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
41219 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
41220 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
41221 s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
41222 s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
41223 s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
41224 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
41225 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
41226 s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
41227 s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
41228 s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
41229 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
41230 s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
41231 s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
41232 s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
41233 s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
41234 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
41235 s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
41236 s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
41237 s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
41238 s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
41239 s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
41240 s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
41241 s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
41242 s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
41243 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
41244 s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
41245 s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
41246 s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
41247 s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
41248 s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
41249 s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
41250 s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
41251 s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
41252 s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
41253 s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
41254 s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
41255 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
41256 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
41257 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
41258 s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
41259 s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
41260 s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
41261 s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
41262 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
41263 s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
41264 s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
41265 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
41266 s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
41267 scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
41268 sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
41269 sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
41270 sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
41271 sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
41272 sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
41273 sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
41274 sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
41275 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
41276 sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
41277 sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
41278 sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
41279 sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
41280 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
41281 sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
41282 sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
41283 sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
41284 sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
41285 sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
41286 sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
41287 sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
41288 snames.ads, sprint.adb, sprint.ads, stand.adb,
41289 stand.ads, stringt.adb, stringt.ads, style.adb,
41290 style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
41291 switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
41292 switch-m.ads, switch.adb, switch.ads, system.ads,
41293 table.adb, table.ads, targparm.adb, targparm.ads,
41294 tbuild.adb, tbuild.ads, text_io.ads, trans.c,
41295 tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
41296 tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
41297 ttypef.ads, ttypes.ads, types.adb, types.ads,
41298 uintp.adb, uintp.ads, uname.adb, uname.ads,
41299 unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
41300 usage.adb, usage.ads, validsw.adb, validsw.ads,
41301 widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
41302 xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
41303 xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
41304 formatting and other trivial changes from ACT.
41306 2003-04-12 Zack Weinberg <zack@codesourcery.com>
41308 * gigi.h, utils2.c (build_constructor):
41309 Rename gnat_build_constructor. Use build_constructor.
41310 * decl.c (gnat_to_gnu_entity)
41311 * trans.c (tree_transform, pos_to_constructor, extract_values)
41312 * ada/utils.c (build_template, convert_to_fat_pointer, convert)
41313 (unchecked_convert)
41314 * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
41315 (fill_vms_descriptor):
41318 2003-04-06 Zack Weinberg <zack@codesourcery.com>
41320 * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
41321 * misc.c (gnat_tree_size): New function.
41322 (LANG_HOOKS_TREE_SIZE): Override.
41324 2003-04-03 Jason Merrill <jason@redhat.com>
41326 * misc.c (gnat_adjust_rli): #if 0.
41328 2003-03-31 Geert Bosch <bosch@gnat.com>
41331 * link.c : Fix misspelled "const" keyword
41333 2003-03-23 Mark Mitchell <mark@codesourcery.com>
41336 * utils2.c: Adjust calls to put_var_into_stack.
41338 2003-03-12 Nathanael Nerode <neroden@gcc.gnu.org>
41340 * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
41342 2003-03-08 Neil Booth <neil@daikokuya.co.uk>
41344 * misc.c (gnat_init): Update for new prototype.
41346 2003-03-05 Olivier Hainque <hainque@gnat.com>
41349 * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
41350 warning, and fix return type for the IN_RTS && !SJLJ case.
41352 2003-03-04 Tom Tromey <tromey@redhat.com>
41354 * Make-lang.in (ada.tags): New target.
41356 2003-03-04 Olivier Hainque <hainque@act-europe.fr>
41359 * a-except.adb (Unwind_RaiseException): Import a GNAT specific
41360 wrapper, which name remains constant whatever underlying GCC
41363 * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
41364 the stable interface needed for a-except.
41366 2003-03-02 Andreas Jaeger <aj@suse.de>
41368 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41369 gnat_ug_wnt.texi: Regenerate.
41371 2003-03-02 Laurent Guerby <guerby@acm.org>
41373 * Makefile.in (install-gnatlib): Match previous change there
41376 2003-02-28 Andreas Schwab <schwab@suse.de>
41378 * Make-lang.in (install-gnatlib): Change to ada directory before
41379 running make instead of using ada/Makefile directly.
41381 2003-02-18 Ben Elliston <bje@redhat.com>
41383 Part of PR ada/9406
41384 * gnat_ug.texi (Binder output file): Grammar fix.
41386 2003-02-18 Ben Elliston <bje@redhat.com>
41389 * 5qtaprop.adb (Sleep): Fix typo in comment.
41391 2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
41393 * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
41394 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41395 gnat_ug_wnt.texi: Regenerate.
41397 2003-02-03 Christian Cornelssen <ccorn@cs.tu-berlin.de>
41399 * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
41400 be created if necessary.
41401 (ada.install-common): Let $(DESTDIR)$(bindir) be created
41402 if necessary. Remove erroneous and redundant gnatchop
41403 installation commands. Test for gnatdll before attempting
41405 (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
41406 and gnatdll from all plausible locations.
41408 2003-02-01 Richard Sandiford <rsandifo@redhat.com>
41410 * utils2.c (build_unary_op): Don't check flag_volatile.
41411 * gnat_ug.texi: Remove -fvolatile from example.
41412 * gnat_ug_vxw.texi: Likewise.
41414 2003-01-29 Laurent Guerby <guerby@acm.org>
41417 * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
41418 * Makefile.in: match previous change.
41419 * Make-lang.in: match previous change.
41421 2003-01-29 Joel Sherrill <joel@OARcorp.com>
41423 * 5rosinte.ads: Add SIGXCPU.
41424 * 5rtpopsp.adb: New file.
41425 * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
41426 * Makefile.in: Recognize more RTEMS targets and add the RTEMS
41427 specific file 5rtpopsp.adb.
41428 * adaint.h: Add include of <stdio.h> when target is RTEMS. This
41429 is likely needed for all newlib targets.
41430 * init.c: Add RTEMS specific version of __gnat_initialize().
41432 2003-01-28 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41434 * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
41436 2003-01-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41438 * init.c (__gnat_error_handler): Make msg const.
41440 * gmem.c (convert_addresses): Move declaration ...
41441 * adaint.h: ... here.
41442 * adaint.c (convert_addresses): Adapt addrs type to match
41445 * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
41447 2003-01-24 Andreas Schwab <schwab@suse.de>
41449 * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
41450 size_t to avoid warning.
41452 2003-01-21 Zack Weinberg <zack@codesourcery.com>
41454 * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
41456 2003-01-09 Geoffrey Keating <geoffk@apple.com>
41458 * gnat_rm.texi: Remove RCS version number.
41460 * ada-tree.h (union lang_tree_node): Add chain_next option.
41462 2003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
41464 * Make-lang.in (ada.install-info, ada.install-common,
41465 ada.uninstall): Prepend $(DESTDIR) to the destination
41466 directory in all (un)installation commands.
41467 * Makefile.in (install-gnatlib, install-rts): Ditto.
41469 2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
41471 * gnat_rm.texi, gnat_ug.texi: Use @copying.
41472 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41473 gnat_ug_wnt.texi: Regenerate.
41475 2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
41477 * gnat_rm.texi: Include gcc-common.texi. Use GCC version number
41479 * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
41480 $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
41481 $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
41482 ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
41483 ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
41484 $(srcdir)/doc/include/gcc-common.texi.
41486 2002-12-15 Geert Bosch <bosch@gnat.com>
41488 * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
41490 2002-12-14 Geert Bosch <bosch@gnat.com>
41493 * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
41494 case of a body created for a Renaming_As_Body, on which
41495 conformance checks are not performed.
41497 2002-11-30 Zack Weinberg <zack@codesourcery.com>
41499 * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
41500 utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
41501 not already included.
41502 * Make-lang.in: Update dependencies.
41504 2002-11-18 Nathanael Nerode <neroden@gcc.gnu.org>
41505 * adaint.c (__gnat_tmp_name): Better, but good enough for now,
41506 solution to buffer overflow bug on GNU/Linux.
41508 2002-11-14 Nathanael Nerode <neroden@gcc.gnu.org>
41512 * bindgen.adb: Remove all references to Public_Version.
41513 * comperr.adb: Remove all references to Public_Version and
41514 GNATPRO_Version; correct bug reporting instructions.
41515 * comperr.ads: Change to match bug box.
41516 * gnatvsn.ads: Remove all references to Public version and
41519 2002-11-13 Nathanael Nerode <neroden@gcc.gnu.org>
41522 * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
41526 * config-lang.in: Remove diff_excludes.
41528 2002-11-05 Graham Stott <graham.stott@btinternet.com>
41531 * trans.c (gnu_pending_elaboration_lists): New GC root.
41532 (build_unit_elab): Use..
41534 2002-10-30 Geert Bosch <bosch@gnat.com>
41537 * misc.c : Include optabs.h
41539 * Make-lang.in (misc.o): Add dependency on optabs.h
41541 2002-10-29 Geert Bosch <bosch@gnat.com>
41544 * Make-lang.in (gnatbind): Depend on CONFIG_H
41546 2002-10-29 Geert bosch <bosch@gnat.com>
41549 * misc.c: Unrevert misc.c (1.13)
41551 2002-10-28 Nathanael Nerode <neroden@gcc.gnu.org>
41553 * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
41554 maintainership comments.
41556 2002-09-25 Nathanael Nerode <neroden@gcc.gnu.org>
41559 * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
41560 5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
41561 5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
41562 7staprop.adb: Correct statements in comments about
41563 maintainership of GNAT.
41566 * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
41567 gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
41568 osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
41569 osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
41570 s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
41571 s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
41572 sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
41573 switch-c.ads switch-m.adb switch-m.ads: Correct statements in
41574 comments about maintainership of GNAT.
41576 PR ada/6919 (forward port of patch for PR ada/5904)
41577 * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
41578 4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
41579 4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
41580 4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
41581 4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
41582 4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
41583 4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
41584 52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
41585 5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
41586 5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
41587 5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
41588 5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
41589 5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
41590 5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
41591 5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
41592 5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
41593 5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
41594 5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
41595 5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
41596 5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
41597 5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
41598 5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
41599 5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
41600 5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
41601 5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
41602 5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
41603 5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
41604 5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
41605 7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
41606 a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
41607 a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
41608 a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
41609 a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
41610 a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
41611 a-except.adb a-except.ads a-excpol.adb a-exctra.adb
41612 a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
41613 a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
41614 a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
41615 a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
41616 a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
41617 a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
41618 a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
41619 a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
41620 a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
41621 a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
41622 a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
41623 a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
41624 a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
41625 a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
41626 a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
41627 a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
41628 a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
41629 a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
41630 a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
41631 a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
41632 a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
41633 a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
41634 a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
41635 a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
41636 a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
41637 a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
41638 a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
41639 a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
41640 a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
41641 a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
41642 a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
41643 a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
41644 a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
41645 adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
41646 alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
41647 back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
41648 binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
41649 bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
41650 ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
41651 csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
41652 cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
41653 debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
41654 einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
41655 errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
41656 exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
41657 exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
41658 exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
41659 exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
41660 exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
41661 exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
41662 exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
41663 exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
41664 exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
41665 exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
41666 exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
41667 exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
41668 exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
41669 final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
41670 fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
41671 freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
41672 g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
41673 g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
41674 gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
41675 gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
41676 gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
41677 gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
41678 gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
41679 gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
41680 i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
41681 i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
41682 i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
41683 i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
41684 impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
41685 itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
41686 lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
41687 lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
41688 lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
41689 lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
41690 makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
41691 namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
41692 nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
41693 osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
41694 par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
41695 par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
41696 par-endh.adb par-labl.adb par-load.adb par-prag.adb
41697 par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
41698 prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
41699 prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
41700 prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
41701 prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
41702 prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
41703 prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
41704 repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
41705 rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
41706 s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
41707 s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
41708 s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
41709 s-direio.adb s-direio.ads s-except.ads s-exctab.adb
41710 s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
41711 s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
41712 s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
41713 s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
41714 s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
41715 s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
41716 s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
41717 s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
41718 s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
41719 s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
41720 s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
41721 s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
41722 s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
41723 s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
41724 s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
41725 s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
41726 s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
41727 s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
41728 s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
41729 s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
41730 s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
41731 s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
41732 s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
41733 s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
41734 s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
41735 s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
41736 s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
41737 s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
41738 s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
41739 s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
41740 s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
41741 s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
41742 s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
41743 s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
41744 s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
41745 s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
41746 s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
41747 s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
41748 s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
41749 s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
41750 s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
41751 s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
41752 s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
41753 s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
41754 s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
41755 s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
41756 s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
41757 s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
41758 s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
41759 s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
41760 s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
41761 s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
41762 s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
41763 s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
41764 s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
41765 s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
41766 s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
41767 s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
41768 s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
41769 s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
41770 s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
41771 s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
41772 s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
41773 s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
41774 s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
41775 s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
41776 s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
41777 s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
41778 s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
41779 s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
41780 s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
41781 s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
41782 s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
41783 s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
41784 s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
41785 s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
41786 s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
41787 s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
41788 scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
41789 sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
41790 sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
41791 sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
41792 sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
41793 sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
41794 sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
41795 sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
41796 sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
41797 sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
41798 sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
41799 sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
41800 sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
41801 sem_type.adb sem_type.ads sem_util.adb sem_util.ads
41802 sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
41803 sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
41804 sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
41805 sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
41806 snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
41807 stringt.ads stringt.h style.adb style.ads stylesw.adb
41808 stylesw.ads switch.adb switch.ads sysdep.c system.ads
41809 table.adb table.ads targparm.adb targparm.ads targtyps.c
41810 tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
41811 tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
41812 treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
41813 types.adb types.ads types.h uintp.adb uintp.ads uintp.h
41814 uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
41815 usage.ads utils.c utils2.c validsw.adb validsw.ads
41816 widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
41817 xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
41818 xtreeprs.adb: Correct statements in comments about maintainership
41821 2002-09-23 Zack Weinberg <zack@codesourcery.com>
41823 * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
41824 * Makefile.in (TOOLS_LIBS): Add ../../version.o.
41825 * gnatvsn.ads: Gnat_Version_String is now a function.
41826 * gnatvsn.adb: New file. When asked for Gnat_Version_String,
41827 copy the C version_string into a String and return it.
41828 * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
41829 gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
41830 Remove pragma Ident (Gnat_Version_String). If this was the
41831 sole use of package Gnatvsn, remove the with statement too.
41832 * gnat1drv.adb: Tweak -gnatv output.
41834 2002-09-17 Richard Henderson <rth@redhat.com>
41836 * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
41837 * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
41838 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
41839 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
41840 * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
41841 and real_2expN instead of a loop.
41842 * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
41843 (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
41845 2002-08-25 Andre Leis <a.leis@gmx.net>
41846 David Billinghurst <David.Billinghurst@riotinto.com>
41848 * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
41850 2002-08-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41852 * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
41853 Remove $(CONFIG_H) dependency.
41855 2002-08-08 Nathan Sidwell <nathan@codesourcery.com>
41857 * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
41859 2002-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41861 * adadecode.c (ada_demangle): Use xstrdup in lieu of
41863 * misc.c (gnat_decode_option): Likewise.
41865 2002-07-15 Florian Weimer <fw@deneb.enyo.de>
41867 * make.adb (Add_Switch): Make Generic_Position a procedure. The
41868 function approach did not work well because of a side effect (the
41869 function call could reallocate the table which was being indexed
41870 using its result). Fixes ada/4851. [RESURRECTED]
41872 2002-07-01 Roger Sayle <roger@eyesopen.com>
41874 * ada/utils.c (builtin_function): Accept an additional parameter.
41876 2002-06-28 Andreas Jaeger <aj@suse.de>
41879 * Makefile.in: Fix typo in comment, patch by Adrian Knoth
41882 2002-06-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41884 * Makefile.in (SHELL): Set to @SHELL@.
41886 2002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
41888 * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
41889 array size calculation.
41891 2002-06-04 Andreas Jaeger <aj@suse.de>
41893 * Make-lang.in (gnatbind): Readd rule that has been lost in last
41896 2002-06-03 Geoffrey Keating <geoffk@redhat.com>
41898 Merge from pch-branch:
41900 * config-lang.in (gtfiles): Add ada-tree.h.
41901 * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
41902 (SET_TYPE_MODULUS): New.
41903 (SET_TYPE_INDEX): New.
41904 (SET_TYPE_DIGITS_VALUE): New.
41905 (SET_TYPE_RM_SIZE): New.
41906 (SET_TYPE_UNCONSTRAINED_ARRAY): New.
41907 (SET_TYPE_ADA_SIZE): New.
41908 (SET_TYPE_ACTUAL_BOUNDS): New.
41909 (SET_DECL_CONST_CORRESPONDING_VAR): New.
41910 (SET_DECL_ORIGINAL_FIELD): New.
41911 (TREE_LOOP_ID): Correct typo.
41912 * decl.c: Use new macros.
41913 * utils.c: Include debug.h, use new macros.
41914 * utils2.c: Use new macros.
41916 * ada-tree.h: Update all macros for new tree description.
41917 (struct tree_loop_id): New.
41918 (union lang_tree_node): New.
41919 (struct lang_decl): New.
41920 (struct lang_type): New.
41921 * misc.c (gnat_mark_tree): Delete.
41922 (LANG_HOOKS_MARK_TREE): Delete.
41923 * trans.c (tree_transform): No longer any need to cast
41926 * utils.c (struct language_function): New dummy structure.
41928 * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
41929 (misc.o): Likewise.
41930 (utils.o): Likewise; also gtype-ada.h.
41931 * Make-lang.in (gnat1): Add dependency on s-gtype.
41932 (gnatbind): Add dependency on $(CONFIG_H).
41933 * utils.c: Correct last #include.
41934 (stuct e_stack): Remove unnecessary 'static'.
41935 (mark_e_stack): Remove unused prototype.
41937 * scn-nlit.adb: Remove whitespace after version number to
41938 keep lines under 80 chars.
41939 * snames.adb: Likewise.
41940 * treepr.ads: Likewise.
41942 * Makefile.in (decl.o): Include gt-ada-<filename>.h.
41943 (misc.o): Likewise.
41944 (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
41945 * config-lang.in (gtfiles): New.
41946 * decl.c: Use gengtype for roots.
41947 * gigi.h: Use gengtype for roots.
41948 * trans.c: Use gengtype for roots.
41949 * utils.c: Use gengtype for roots, marking. Include gtype-ada.h.
41951 2002-06-02 Gabriel Dos Reis <gdr@codesourcery.com>
41953 * misc.c (gnat_init): Adjust setting of internal_error_function.
41955 2002-06-01 Joseph S. Myers <jsm28@cam.ac.uk>
41957 * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
41958 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41959 gnat_ug_wnt.texi: Regenerate.
41961 2002-05-31 Florian Weimer <fw@deneb.enyo.de>
41963 * 5ntaprop.adb (with System.OS_Primitives): Remove.
41965 * cstreams.c (max_path_len): Move from here ...
41966 * adaint.c (__gnat_max_path_len): ... to here.
41967 * adaint.c (__gnat_max_path_len): Declare.
41968 * g-dirope.adb (Max_Path): Adjust.
41969 * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
41970 * i-cstrea.ads (max_path_len): Adjust.
41971 * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
41972 * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
41974 * Makefile.in, Make-lang.in: Documentation is now built in
41975 Make-lang.in. Store Info and generated Texinfo files in the
41977 * gnat_ug.texi: Remove CVS keywords, correct version number.
41978 Set file name correctly.
41980 * gnat_ug_*.texi: Add.
41981 * .cvsignore: Ignore generated Texinfo files.
41983 2002-05-30 Zack Weinberg <zack@codesourcery.com>
41985 * ada.h: Add MI guard macro.
41986 (SUBTYPE): Define constants with an anonymous enum, not static
41988 (IN): Cast constants to appropriate type before use.
41990 2002-05-26 Joseph S. Myers <jsm28@cam.ac.uk>
41992 * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
41995 2002-05-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
41997 * Make-lang.in (CP, ECHO): Copy from Makefile.in.
41998 (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
41999 (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
42000 (ALL_ADA_CFLAGS): Likewise.
42001 (ADA_INCLUDES): Likewise.
42002 Adapt for new working dir.
42003 (GNATBIND): Use Makefile.in version.
42004 (.SUFFIXES): Copy from Makefile.in.
42005 (ada-warn): Define.
42006 (.adb.o, .ads.o): Copy from Makefile.in.
42007 Added $(OUTPUT_OPTION).
42008 (GNAT1_C_OBJS): Moved from Makefile.in.
42009 Prefix with ada subdir.
42010 (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
42011 (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
42012 Adapt for new working dir.
42013 (EXTRA_GNATBIND_OBJS): Likewise.
42014 (ADA_BACKEND): Moved from Makefile.in.
42015 Renamed to avoid conflict with global BACKEND.
42017 (TARGET_ADA_SRCS): Moved from Makefile.in.
42018 (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
42020 (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
42021 (ada_extra_files): Moved from Makefile.in.
42022 Prefix with ada subdir.
42023 (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
42024 (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
42025 (ada/nmake.ads): Likewise.
42026 (update-sources): Moved from Makefile.in.
42027 Prefix with ada subdir.
42028 (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
42029 (ADA_TREE_H): Likewise.
42030 (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
42031 (ada/memtrack.o): Likewise.
42032 (ada/adadecode.o): Likewise.
42033 Update dependencies.
42034 (ada/adaint.o): New.
42035 (ada/argv.o): Moved from Makefile.in.
42036 Prefix with ada subdir.
42037 Update dependencies.
42038 (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
42039 (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
42040 (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
42041 Prefix with ada subdir.
42042 (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
42043 (GNAT DEPENDENCIES): Regenerate.
42044 * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
42045 toplevel Makefile.in.
42046 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
42047 (TARGET_ADA_SRCS): Removed.
42048 (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
42049 (GNATBIND_OBJS): Likewise.
42050 (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
42051 (BACKEND): Removed.
42052 (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
42053 (TREE_H): Likewise.
42054 (ada_extra_files): Likewise.
42055 (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
42056 (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
42057 (update-sources): Likewise.
42058 (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
42059 (ADA_TREE_H): Likewise.
42060 (adadecoce.o): Likewise.
42061 (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
42062 (GNAT DEPENDENCIES): Likewise.
42064 2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
42066 * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
42067 * Makefile.in: Likewise.
42069 2002-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
42071 * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
42072 Restore $(CONFIG_H) and prefix.o dependencies.
42073 (ada.stage[1-4]): Depend on stage?-start.
42075 * Makefile.in (b_gnatb.c): Depend on interfac.o.
42077 2002-05-02 Jim Wilson <wilson@redhat.com>
42079 * utils.c (finish_record_type): Change record_size to record_type.
42081 2001-05-02 John David Anglin <dave@hiauly1.hia.nrc.ca>
42083 * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
42084 (ALL_ADA_CFLAGS): Define. Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
42085 ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
42087 2002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
42089 * misc.c (gnat_parse_file): Update.
42091 2002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
42093 * misc.c (gnat_init): Don't set lang_attribute_common.
42095 2002-04-21 Joseph S. Myers <jsm28@cam.ac.uk>
42097 * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
42099 2002-04-21 Florian Weimer <fw@deneb.enyo.de>
42101 * gnat_ug.texi: New file.
42103 * gnat_rm.texi: Do not include texiplus.texi. Include fdl.texi
42104 instead of gfdl.texi
42106 * xgnatug.adb, ug_words: New files.
42108 * Makefile.in (doc, dvi): New targets. Build gnat_ug_*,
42109 gnat_rm and gnat-style manuals.
42111 2002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
42113 * gigi.h (incomplete_type_error): Remove.
42114 * utils.c (incomplete_type_error): Remove.
42116 2002-04-16 Mark Mitchell <mark@codesourcery.com>
42118 * trans.c (tree_transform): Add has_scope argument to
42119 expand_start_stmt_expr.
42121 2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
42123 * gigi.h (truthvalue_conversion): Rename.
42124 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
42125 * trans.c (tree_transform): Update.
42126 * utils2.c (truthvalue_conversion): Rename, update.
42127 (build_binary_op, build_unary_op): Update.
42129 2002-04-04 Laurent Guerby <guerby@acm.org>
42131 * make.adb: Implement -margs, remove restriction about file name placement.
42132 * makeusg.adb: Documentation update.
42133 * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
42134 * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
42136 2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
42138 * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
42139 (builtin_function): Similarly.
42141 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
42143 * decl.c (gnat_to_gnu_entity): Update.
42144 * gigi.h (mark_addressable): Rename.
42145 * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
42146 * trans.c (tree_transform): Update.
42147 * utils.c (create_var_decl): Update.
42148 * util2.c (build_binary_op, build_unary_op,
42149 fill_vms_descriptor): Update.
42150 (mark_addressable): Rename, update.
42152 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
42154 * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
42156 * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
42157 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
42158 * trans.c (tree_transform, convert_with_check): Update.
42159 * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
42162 2002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
42164 * gigi.h (finish_incomplete_decl): Rename.
42165 * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
42166 * utils.c (gnat_init_decl_processing): Don't set hook.
42167 (finish_incomplete_decl): Rename.
42169 2002-03-29 Andreas Schwab <schwab@suse.de>
42171 * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
42174 2001-03-28 Robert Dewar <dewar@gnat.com>
42177 (Remove_Checks): New procedure
42180 (Remove_Checks): New procedure
42183 Use new Duplicate_Subexpr functions
42184 (Duplicate_Subexpr_No_Checks): New procedure
42185 (Duplicate_Subexpr_No_Checks_Orig): New procedure
42186 (Duplicate_Subexpr): Restore original form (checks duplicated)
42187 (Duplicate_Subexpr): Call Remove_Checks
42190 (Duplicate_Subexpr_No_Checks): New procedure
42191 (Duplicate_Subexpr_No_Checks_Orig): New procedure
42192 Add 2002 to copyright notice
42194 * sem_util.adb: Use new Duplicate_Subexpr functions
42197 (Eval_Indexed_Component): This is the place to call
42198 Constant_Array_Ref and to replace the value. We simply merge
42199 the code of this function in here, since it is now no longer
42200 used elsewhere. This fixes the problem of the back end not
42201 realizing we were clever enough to see that this was
42203 (Expr_Val): Remove call to Constant_Array_Ref
42204 (Expr_Rep_Val): Remove call to Constant_Array_Ref
42206 (Constant_Array_Ref): Deal with string literals (patch
42207 suggested by Zack Weinberg on the gcc list)
42209 2001-03-28 Ed Schonberg <schonber@gnat.com>
42211 * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
42212 Duplicate_Subexpr_Move_Checks.
42214 * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
42215 Duplicate_Subexpr_Move_Checks.
42217 * sem_eval.adb: (Constant_Array_Ref): Verify that constant
42218 value of array exists before retrieving it (it may a private
42219 protected component in a function).
42221 2002-03-28 Geert Bosch <bosch@gnat.com>
42223 * prj-pp.adb : New file.
42225 * prj-pp.ads : New file.
42227 2002-03-28 Andreas Jaeger <aj@suse.de>
42229 * Makefile.in (stamp-sdefault): Fix path for Makefile.
42231 2002-03-28 Neil Booth <neil@daikokuya.demon.co.uk>
42233 * misc.c (gnat_expand_expr): Move prototype.
42235 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
42237 * misc.c (insert_default_attributes): Remove.
42239 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
42241 * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
42242 (gnat_init): Don't set hook.
42243 (gnat_expand_expr): Fix prototype.
42245 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
42247 * misc.c (ggc_p): Remove.
42249 2002-03-27 Geert Bosch <bosch@gnat.com>
42251 * prj-makr.ads, prj-makr.adb : New files.
42253 2002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
42255 * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
42256 (lang_mark_tree): Make static, rename.
42258 2002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
42260 * misc.c (maybe_build_cleanup): Remove.
42262 2002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
42264 * gigi.h (yyparse): Remove.
42266 2002-03-23 Florian Weimer <fw@deneb.enyo.de>
42268 From Ben Brosgol <brosgol@gnat.com>
42269 * gnat_rm.texi: Sync with ACT version.
42271 2002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
42273 * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
42274 (gnat_init): Remove old hook.
42276 2002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
42278 * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
42279 (yyparse): Rename gnat_parse_file.
42281 2002-03-14 Geoffrey Keating <geoffk@redhat.com>
42283 Delete all lines containing "$Revision:".
42284 * xeinfo.adb: Don't look for revision numbers.
42285 * xnmake.adb: Likewise.
42286 * xsinfo.adb: Likewise.
42287 * xsnames.adb: Likewise.
42288 * xtreeprs.adb: Likewise.
42290 2002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
42292 * misc.c (gnat_tree_code_type, gnat_tree_code_length,
42293 gnat_tree_code_name): Delete.
42294 (tree_code_type, tree_code_length, tree_code_name): Define.
42295 (gnat_init): Don't try to copy into the various tree_code
42298 2002-03-11 Richard Henderson <rth@redhat.com>
42300 * Makefile.in (.NOTPARALLEL): Add fake tag.
42302 2002-03-07 Geert Bosch <bosch@gnat.com>
42304 * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
42305 s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
42306 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
42307 switch-m.adb, switch-m.ads : New files.
42309 2002-03-07 Geert Bosch <bosch@gnat.com>
42311 * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
42312 4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
42313 4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
42314 4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
42315 5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
42316 5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
42317 5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
42318 5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
42319 5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
42320 5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
42321 5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
42322 5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
42323 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
42324 5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
42325 5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
42326 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
42327 5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
42328 5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
42329 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
42330 5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
42331 7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
42332 Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
42333 a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
42334 a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
42335 a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
42336 a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
42337 a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
42338 a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
42339 a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
42340 adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
42341 atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
42342 bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
42343 csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
42344 einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
42345 eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
42346 exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
42347 exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
42348 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
42349 exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
42350 exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
42351 expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
42352 freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
42353 g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
42354 g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
42355 g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
42356 g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
42357 g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
42358 g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
42359 gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
42360 gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
42361 gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
42362 i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
42363 impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
42364 lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
42365 lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
42366 memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
42367 mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
42368 nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
42369 output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
42370 par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
42371 prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
42372 prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
42373 prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
42374 rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
42375 s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
42376 s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
42377 s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
42378 s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
42379 s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
42380 s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
42381 s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
42382 s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
42383 s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
42384 s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
42385 s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
42386 s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
42387 s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
42388 s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
42389 s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
42390 sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
42391 sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
42392 sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
42393 sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
42394 sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
42395 sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
42396 sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
42397 sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
42398 sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
42399 sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
42400 snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
42401 stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
42402 table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
42403 tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
42404 treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
42405 types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
42406 utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
42407 xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
42409 * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
42410 g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
42411 mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
42412 osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
42414 * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
42415 5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
42417 * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
42418 to mdll-fil.ad[bs] and mdll-util.ad[bs]
42420 * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
42421 from mdllfile.ad[bs] and mdlltool.ad[bs]
42423 2002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
42425 * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
42426 lieu of explicit sizeof/sizeof.
42428 2002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
42430 * misc.c (copy_lang_decl): Remove.
42432 2002-02-27 Zack Weinberg <zack@codesourcery.com>
42434 * misc.c: Delete traditional-mode-related code copied from the
42435 C front end but not used, or used only to permit the compiler
42438 2002-02-07 Richard Henderson <rth@redhat.com>
42440 * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
42441 * adaint.h (__gnat_to_gm_time): Update prototype.
42443 2002-01-30 Richard Henderson <rth@redhat.com>
42445 * trans.c (tree_transform) [N_Loop_Statement]: Use
42446 expand_exit_loop_top_cond.
42448 2001-12-23 Richard Henderson <rth@redhat.com>
42450 * utils.c (end_subprog_body): Push GC context around
42451 rest_of_compilation for nested functions.
42453 2001-12-23 Richard Henderson <rth@redhat.com>
42455 * 5nosinte.ads: Get definition of "int" from Interfaces.C.
42457 2001-12-23 Florian Weimer <fw@deneb.enyo.de>
42459 * gnat-style.texi (Declarations and Types): Remove ancient style
42460 rule which was mandated by code generation issues.
42462 * gnat-style.texi (header): Add @dircategory, @direntry.
42463 (title page): Remove date.
42464 (general) Add @./@: where approriate, and two spaces after the
42465 full stop at the end of a sentence. Use @samp markup when
42466 referring concrete lexical entities (keywords, attribute names
42467 etc.), and @syntax for ARM grammar elements. Use @r for English
42468 text in comments. Use @emph for emphasis. Change "if-statements"
42469 etc. to "if statements" (without @samp). Break long lines. Make
42470 casing of section names consistent.
42471 (Identifiers): Use @samp markup for variable names.
42472 (Comments): Use @samp markup for comment characters. Line-end
42473 comments may follow any Ada code, not just statements. Fix
42474 misspelling of "Integer" as "integer".
42475 (Loop statements): Do not use variable name "I", use "J".
42476 (Subprogram Declarations): Document alignment.
42477 (Subprogram Bodies, Block statements): Document empty line before
42480 2001-12-22 Florian Weimer <fw@deneb.enyo.de>
42482 * make.adb (Add_Switch): Make Generic_Position a procedure. The
42483 function approach did not work well because of a side effect (the
42484 function call could reallocate the table which was being indexed
42485 using its result). Fixes ada/4851.
42487 2001-12-19 Robert Dewar <dewar@gnat.com>
42489 * bindgen.adb: Minor reformatting
42491 * cstand.adb: Minor reformatting
42493 * fmap.adb: Minor reformatting
42494 Change name from Add for Add_To_File_Map (Add is much too generic)
42495 Change Path_Name_Of to Mapped_Path_Name
42496 Change File_Name_Of to Mapped_File_Name
42497 Fix copyright dates in header
42500 Change name from Add for Add_To_File_Map (Add is much too generic)
42501 Change Path_Name_Of to Mapped_Path_Name
42502 Change File_Name_Of to Mapped_File_Name
42503 Fix copyright dates in header
42505 * fname-uf.adb: Minor reformatting. New names of stuff in Fmap.
42506 Add use clause for Fmap.
42508 * make.adb: Minor reformatting
42510 * osint.adb: Minor reformatting. Change of names in Fmap.
42511 Add use clause for Fmap.
42513 * prj-env.adb: Minor reformatting
42515 * prj-env.ads: Minor reformatting
42517 * switch.adb: Minor reformatting. Do proper raise of Bad_Switch if
42518 error found (there were odd exceptions to this general rule in
42519 -gnatec/-gnatem processing)
42521 2001-12-19 Olivier Hainque <hainque@gnat.com>
42523 * raise.c (__gnat_eh_personality): Exception handling personality
42524 routine for Ada. Still in rough state, inspired from the C++ version
42525 and still containing a bunch of debugging artifacts.
42526 (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
42527 inspired from the C++ library.
42529 * raise.c (eh_personality): Add comments. Part of work for the GCC 3
42530 exception handling integration.
42532 2001-12-19 Arnaud Charlet <charlet@gnat.com>
42534 * Makefile.in: Remove use of 5smastop.adb which is obsolete.
42535 (HIE_SOURCES): Add s-secsta.ad{s,b}.
42536 (HIE_OBJS): Add s-fat*.o
42537 (RAVEN_SOURCES): Remove files that are no longer required. Add
42538 interrupt handling files.
42539 (RAVEN_MOD): Removed, no longer needed.
42541 2001-12-19 Robert Dewar <dewar@gnat.com>
42543 * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
42544 Add 2001 to copyright date
42546 * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
42547 need to force universal inlining for these cases.
42549 2001-12-19 Arnaud Charlet <charlet@gnat.com>
42551 * s-taprob.adb: Minor clean ups so that this unit can be used in
42554 * exp_ch7.adb: Allow use of secondary stack in HI mode.
42555 Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
42557 2001-12-19 Vincent Celier <celier@gnat.com>
42559 * prj-tree.ads (Project_Node_Record): Add comments for components
42560 Pkg_Id and Case_Insensitive.
42562 2001-12-19 Pascal Obry <obry@gnat.com>
42564 * g-socket.adb: Minor reformatting. Found while reading code.
42566 2001-12-19 Robert Dewar <dewar@gnat.com>
42568 * prj-tree.ads: Minor reformatting
42570 2001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
42572 * config-lang.in (diff_excludes): Remove.
42574 2001-12-17 Ed Schonberg <schonber@gnat.com>
42576 * sem_res.adb (Resolve_Selected_Component): do not generate a
42577 discriminant check if the selected component is a component of
42578 the argument of an initialization procedure.
42580 * trans.c (tree_transform, case of arithmetic operators): If result
42581 type is private, the gnu_type is the base type of the full view,
42582 given that the full view itself may be a subtype.
42584 2001-12-17 Robert Dewar <dewar@gnat.com>
42586 * sem_res.adb: Minor reformatting
42588 * trans.c (tree_transform, case N_Real_Literal): Add missing third
42589 parameter in call to Machine (unknown horrible effects from this
42592 * urealp.h: Add definition of Round_Even for call to Machine
42593 Add third parameter for Machine
42595 2001-12-17 Ed Schonberg <schonber@gnat.com>
42597 * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
42598 predefined units in No_Run_Time mode.
42600 2001-12-17 Richard Kenner <kenner@gnat.com>
42602 * misc.c (insn-codes.h): Now include.
42604 2001-12-17 Olivier Hainque <hainque@gnat.com>
42606 * a-except.adb: Preparation work for future integration of the GCC 3
42607 exception handling mechanism
42608 (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
42609 to factorize previous code sequences and make them externally callable,
42610 e.g. for the Ada personality routine when the GCC 3 mechanism is used.
42611 (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
42612 Use the new notification routines.
42614 2001-12-17 Emmanuel Briot <briot@gnat.com>
42616 * prj-tree.ads (First_Choice_Of): Document the when others case
42618 2001-12-17 Arnaud Charlet <charlet@gnat.com>
42620 * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
42621 HI-E mode, in order to support Ravenscar profile properly.
42623 * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
42624 mode on 32 bits targets.
42626 2001-12-17 Vincent Celier <celier@gnat.com>
42628 * fmap.adb: Initial version.
42630 * fmap.ads: Initial version.
42632 * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
42633 If search is successfully done, add to mapping.
42635 * frontend.adb: Initialize the mapping if a -gnatem switch was used.
42638 (Gnatmake): Add new local variable Mapping_File_Name.
42639 Create mapping file when using project file(s).
42640 Delete mapping file before exiting.
42642 * opt.ads (Mapping_File_Name): New variable
42644 * osint.adb (Find_File): Use path name found in mapping, if any.
42646 * prj-env.adb (Create_Mapping_File): New procedure
42648 * prj-env.ads (Create_Mapping_File): New procedure.
42650 * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
42653 * usage.adb: Add entry for new switch -gnatem.
42655 * Makefile.in: Add dependencies for fmap.o.
42657 2001-12-17 Ed Schonberg <schonber@gnat.com>
42659 * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
42660 is a package instantiation rewritten as a package body.
42661 (Install_Withed_Unit): Undo previous change, now redundant.
42663 2001-12-17 Gary Dismuke <dismukes@gnat.com>
42666 (Compute_Length): Move conversion to Unsigned to callers.
42667 (Get_Max_Size): Convert Len expression to Unsigned after calls to
42668 Compute_Length and Determine_Range.
42669 (Layout_Array_Type): Convert Len expression to Unsigned after calls to
42670 Compute_Length and Determine_Range.
42671 Above changes fix problem with length computation for supernull arrays
42672 where Max (Len, 0) wasn't getting applied due to the Unsigned
42673 conversion used by Compute_Length.
42675 2001-12-17 Arnaud Charlet <charlet@gnat.com>
42678 (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
42679 System.Secondary_Stack.
42680 (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
42682 Remove unused entity RE_Exception_Data.
42684 * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
42686 * rident.ads (No_Secondary_Stack): New restriction.
42688 2001-12-17 Joel Brobecker <brobecke@gnat.com>
42690 * gnat_rm.texi: Fix minor typos. Found while reading the section
42691 regarding "Bit_Order Clauses" that was sent to a customer.
42692 Very interesting documentation!
42694 2001-12-17 Robert Dewar <dewar@gnat.com>
42696 * sem_case.adb (Choice_Image): Avoid creating improper character
42697 literal names by using the routine Set_Character_Literal_Name. This
42698 fixes bombs in certain error message cases.
42700 2001-12-17 Arnaud Charlet <charlet@gnat.com>
42702 * a-reatim.adb: Minor reformatting.
42704 2001-12-17 Ed Schonberg <schonber@gnat.com>
42706 * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
42707 case where the formal is an extension of another formal in the current
42708 unit or in a parent generic unit.
42710 2001-12-17 Arnaud Charlet <charlet@gnat.com>
42712 * s-tposen.adb: Update comments. Minor reformatting.
42713 Minor code clean up.
42715 * s-tarest.adb: Update comments. Minor code reorganization.
42717 2001-12-17 Gary Dismukes <dismukes@gnat.com>
42719 * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
42722 2001-12-17 Robert Dewa <dewar@gnat.com>
42724 * exp_attr.adb: Minor reformatting
42726 2001-12-17 Ed Schonberg <schonber@gnat.com>
42728 * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
42729 derivations nested within a child unit: verify that the parent
42730 type is declared in an outer scope.
42732 2001-12-17 Robert Dewar <dewar@gnat.com>
42734 * sem_ch12.adb: Minor reformatting
42736 2001-12-17 Ed Schonberg <schonber@gnat.com>
42738 * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
42739 warning if current unit is a predefined one, from which bodies may
42742 2001-12-17 Robert Dewar <dewar@gnat.com>
42744 * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
42745 Fix header format. Add 2001 to copyright date.
42747 * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
42748 which caused CE during compilation if checks were enabled.
42750 2001-12-17 Vincent Celier <celier@gnat.com>
42753 (Switches_Of): New function
42754 (Test_If_Relative_Path): New procedure
42755 (Add_Switches): Use new function Switches_Of
42756 (Collect_Arguments_And_Compile): Use new function Switches_Of.
42757 When using a project file, test if there are any relative
42758 search path. Fail if there are any.
42759 (Gnatmake): Only add switches for the primary directory when not using
42760 a project file. When using a project file, change directory to the
42761 object directory of the main project file. When using a project file,
42762 test if there are any relative search path. Fail if there are any.
42763 When using a project file, fail if specified executable is relative
42764 path with directory information, and prepend executable, if not
42765 specified as an absolute path, with the exec directory. Make sure
42766 that only one -o switch is transmitted to the linker.
42768 * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
42771 (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
42772 when using a non standard naming scheme.
42773 (Check_Ada_Naming_Scheme): Make sure that error messages
42774 do not raise exceptions.
42775 (Is_Illegal_Append): Return True if there is no dot in the suffix.
42776 (Language_Independent_Check): Check the exec directory.
42778 * prj.adb (Project_Empty): Add new component Exec_Directory
42781 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
42782 (Project_Data): Add component Exec_Directory
42784 * snames.adb: Updated to match snames.ads revision 1.215
42786 * snames.ads: Added Exec_Dir
42788 2001-12-17 Robert Dewar <dewar@gnat.com>
42790 * make.adb: Minor reformatting
42792 * prj-nmsc.adb: Minor reformatting
42794 * snames.adb: Updated to match snames.ads
42796 * snames.ads: Alphebetize entries for project file
42798 2001-12-17 Ed Schonberg <schonber@gnat.com>
42800 * trans.c (process_freeze_entity): Do nothing if the entity is a
42801 subprogram that was already elaborated.
42803 2001-12-17 Richard Kenner <kenner@gnat.com>
42805 * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
42806 and Esize if object is referenced via pointer.
42808 2001-12-17 Ed Schonberg <schonber@gnat.com>
42810 * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
42811 is discrete before analyzing choices.
42813 2001-12-17 Joel Brobecker <brobecke@gnat.com>
42815 * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
42816 containing the name of the Ada Main Program. This string is mainly
42817 intended for the debugger.
42818 (Gen_Output_File_C): Do the equivalent change when generating a C file.
42820 2001-12-17 Robert Dewar <dewar@gnat.com>
42822 * ali.adb: Set new Dummy_Entry field in dependency entry
42824 * ali.ads: Add Dummy_Entry field to source dependency table
42826 * bcheck.adb (Check_Consistency): Ignore dummy D lines
42828 * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
42830 * lib-writ.ads: Document dummy D lines for missing files.
42832 * types.ads: (Dummy_Time_Stamp): New value for non-existant files
42834 2001-12-17 Robert Dewar <dewar@gnat.com>
42836 * ali.adb: Type reference does not reset current file.
42838 * ali.adb: Recognize and scan renaming reference
42840 * ali.ads: Add spec for storing renaming references.
42842 * lib-xref.ads: Add documentation for handling of renaming references
42844 * lib-xref.adb: Implement output of renaming reference.
42847 (Determine_Range): Document local variables
42848 (Determine_Range): Make sure Hbound is initialized. It looks as though
42849 there could be a real problem here with an uninitialized reference
42850 to Hbound, but no actual example of failure has been found.
42852 2001-12-17 Laurent Pautet <pautet@gnat.com>
42855 Fix comment of Shutdown_Socket and Close_Socket. These functions
42856 should not fail silently because if they are called twice, this
42857 probably means that there is a race condition in the user program.
42858 Anyway, this behaviour is consistent with the rest of this unit.
42859 When an error occurs, an exception is raised with the error message
42860 as exception message.
42862 2001-12-17 Robert Dewar <dewar@gnat.com>
42864 * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
42865 that it happens before modification of Sloc values for -gnatD.
42867 * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
42868 so that it happens before modification of Sloc values for -gnatD.
42870 * switch.adb: Minor reformatting
42872 2001-12-15 Richard Henderson <rth@redhat.com>
42874 * sem_ch7.adb: Wrap comment.
42876 2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
42878 * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
42879 5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
42880 5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
42881 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
42882 5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
42883 7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
42884 a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
42885 a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
42886 cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
42887 exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
42888 exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
42889 g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
42890 gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
42891 make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
42892 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
42893 repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
42894 s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
42895 s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
42896 s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
42897 s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
42898 sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
42899 sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
42900 sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
42901 sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
42904 2001-12-14 Vincent Celier <celier@gnat.com>
42906 * osint.adb(Create_Debug_File): When an object file is specified,
42907 put the .dg file in the same directory as the object file.
42909 2001-12-14 Robert Dewar <dewar@gnat.com>
42911 * osint.adb: Minor reformatting
42913 * lib-xref.adb (Output_Instantiation): New procedure to generate
42914 instantiation references.
42916 * lib-xref.ads: Add documentation of handling of generic references.
42918 * ali.adb (Read_Instantiation_Ref): New procedure to read
42919 instantiation references
42921 * ali.ads: Add spec for storing instantiation references
42923 * bindusg.adb: Minor reformatting
42925 * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42927 * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42929 * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42931 * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42935 Add 2001 to copyright date
42936 Add entry for Latin-5 (Cyrillic ISO-8859-5)
42938 2001-12-14 Matt Gingell <gingell@gnat.com>
42940 * adaint.c: mktemp is a macro on Lynx and can not be used as an
42943 2001-12-14 Richard Kenner <kenner@gnat.com>
42945 * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
42946 if operand is CONSTRUCTOR.
42948 2001-12-14 Ed Schonberg <schonber@gnat.com>
42950 * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
42951 before emiting check on right-hand side, so that exception information
42954 2001-12-14 Richard Kenner <kenner@gnat.com>
42956 * utils.c (create_var_decl): Throw away initializing expression
42957 if just annotating types and non-constant.
42959 2001-12-14 Vincent Celier <celier@gnat.com>
42961 * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
42964 * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
42966 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
42968 * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
42970 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
42972 2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
42974 * ChangeLog: Remove piece of diff output.
42976 2001-12-14 Geert Bosch <bosch@gnat.com>
42978 * config-lang.in: Update copyright notice
42980 * layout.adb: Remove commented out code.
42982 * mdllfile.ads: Update copyright notice. Fix header format.
42984 * sem_case.ads: Likewise.
42986 * sem_ch3.adb: Minor reformatting.
42988 2001-12-12 Geert Bosch <bosch@gnat.com>
42990 * freeze.ads: Update copyright date.
42992 * g-comlin.ads: Minor reformatting.
42994 * gnat-style.texi: Fix typo.
42996 2001-12-12 Geert Bosch <bosch@gnat.com>
42998 * einfo.h: Regenerate.
43000 2001-12-12 Ed Schonberg <schonber@gnat.com>
43002 * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
43003 on known node types, rather than untyped fields. Further cleanups.
43005 2001-12-12 Robert Dewar <dewar@gnat.com>
43008 (Save_Entity_Descendant): Minor comment update.
43009 (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
43010 of an N_Attribute_Reference node. As per note below, this does not
43011 eliminate need for Associated_Node in attribute ref nodes.
43012 (Associated_Node): Documentation explicitly mentions attribute
43013 reference nodes, since this field is used in such nodes.
43015 * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
43017 2001-12-12 Robert Dewar <dewar@gnat.com>
43019 * s-stalib.adb: Add more comments on with statements being needed
43021 * par-ch12.adb: Minor reformatting
43023 * prj-dect.ads: Fix copyright header
43025 * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
43026 inputs fit in 32 bits, but the result still overflows.
43028 * s-fatgen.ads: Minor comment improvement
43030 2001-12-12 Ed Schonberg <schonber@gnat.com>
43032 * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
43033 formal derived type, look for an inherited component from the full
43034 view of the parent, if any.
43036 2001-12-12 Robert Dewar <dewar@gnat.com>
43038 * checks.ads (Apply_Alignment_Check): New procedure.
43040 * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
43041 ensure that the alignment of objects with address clauses is
43042 appropriate, and raise PE if not.
43044 * exp_util.ads (Must_Be_Aligned): Removed, replaced by
43045 Exp_Pakd.Known_Aligned_Enough
43047 * mdllfile.ads: Minor reformatting
43049 * mlib-fil.ads: Minor reformatting
43051 2001-12-12 Ed Schonberg <schonber@gnat.com>
43053 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
43054 fix to any component reference if enclosing record has non-standard
43057 2001-12-12 Vincent Celier <celier@gnat.com>
43059 * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
43062 2001-12-12 Ed Schonberg <schonber@gnat.com>
43064 * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
43067 2001-12-12 Robert Dewar <dewar@gnat.com>
43069 * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
43071 2001-12-12 Emmanuel Briot <briot@gnat.com>
43073 * g-regexp.adb: Remove all debug code, since it isn't required anymore,
43074 and it adds dependencies to system.io.
43076 2001-12-12 Pascal Obry <obry@gnat.com>
43078 * g-dirope.adb (Expand_Path.Var): Correctly detect end of
43081 2001-12-11 Ed Schonberg <schonber@gnat.com>
43083 * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
43084 that is the parent of other generics, the instance body replaces the
43085 instance node. Retrieve the instance of the spec, which is the one
43086 that is visible in clients and within the body.
43088 2001-12-11 Vincent Celier <celier@gnat.com>
43090 * gnatmain.adb: Initial version.
43092 * gnatmain.ads: Initial version.
43094 * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
43096 * snames.adb: Updated to match snames.ads.
43098 * snames.ads: Added Gnatstub.
43100 2001-12-11 Vincent Celier <celier@gnat.com>
43102 * prj-attr.adb (Initialization_Data): Change name from
43103 Initialisation_Data.
43105 2001-12-11 Emmanuel Briot <briot@gnat.com>
43107 * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
43108 + and * applied to backslashed expressions like \r.
43110 2001-12-11 Vasiliy Fofanov <fofanov@gnat.com>
43112 * g-os_lib.ads: String_List type added, Argument_List type is now
43113 subtype of String_List.
43115 2001-12-11 Robert Dewar <dewar@gnat.com>
43117 * g-os_lib.ads: Change copyright to FSF
43118 Add comments for String_List type
43120 2001-12-11 Vincent Celier <celier@gnat.com>
43122 * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
43123 string to the buffer).
43125 2001-12-11 Ed Schonberg <schonber@gnat.com>
43127 * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
43130 * sem_attr.adb: Simplify previous fix for Address.
43131 (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
43132 to avoid anomalies where the bound of the type appears to raise
43135 2001-12-11 Robert Dewar <dewar@gnat.com>
43137 * lib-xref.adb (Output_Refs): Make sure pointers are always properly
43140 2001-12-11 Ed Schonber <schonber@gnat.com>
43142 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
43143 renamed unit before checking for recursive instantiations.
43145 2001-12-11 Emmanuel Briot <briot@gnat.com>
43147 * prj.ads: Add comments for some of the fields.
43149 2001-12-11 Robert Dewar <dewar@gnat.com>
43151 * lib-xref.adb (Output_Refs): Don't output type references outside
43152 the main unit if they are not otherwise referenced.
43154 2001-12-11 Ed Schonberg <schonber@gnat.com>
43156 * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
43157 code and diagnose additional illegal uses
43159 * sem_util.adb (Is_Object_Reference): An indexed component is an
43160 object only if the prefix is.
43162 2001-12-11 Vincent Celier <celier@gnat.com>
43164 * g-diopit.adb: Initial version.
43166 * g-diopit.ads: Initial version.
43169 (Expand_Path): Avoid use of Unbounded_String
43170 (Find, Wildcard_Iterator): Moved to child package Iteration
43172 * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
43174 2001-12-11 Robert Dewar <dewar@gnat.com>
43176 * sem_attr.adb: Minor reformatting
43178 2001-12-11 Ed Schonberg <schonber@gnat.com>
43180 * sem_ch3.adb: Clarify some ???.
43182 2001-12-11 Robert Dewar <dewar@gnat.com>
43184 * exp_util.adb (Must_Be_Aligned): Removed, replaced by
43185 Exp_Pakd.Known_Aligned_Enough
43187 * sem_ch13.adb (Check_Address_Alignment): Removed, extended
43188 version is moved to Exp_Ch13.
43190 2001-12-11 Robert Dewar <dewar@gnat.com>
43192 * einfo.ads: Minor reformatting
43194 * exp_ch5.adb: Add comment for previous.change
43196 * ali.adb: New interface for extended typeref stuff.
43198 * ali.ads: New interface for typeref stuff.
43200 * checks.adb (Apply_Alignment_Check): New procedure.
43202 * debug.adb: Add -gnatdM for modified ALI output
43204 * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
43206 * lib-xref.adb: Extend generation of <..> notation to cover
43207 subtype/object types. Note that this is a complete rewrite,
43208 getting rid of the very nasty quadratic algorithm previously
43209 used for derived type output.
43211 * lib-xref.ads: Extend description of <..> notation to cover
43212 subtype/object types. Uses {..} for these other cases.
43213 Also use (..) for pointer types.
43215 * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
43217 * exp_pakd.adb: Minor reformatting. Note that prevous RH should say:
43218 (Known_Aligned_Enough): Replaces Must_Be_Aligned.
43220 2001-12-11 Vincent Celier <celier@gnat.com>
43223 Changed /COMPILE_ONLY to /ACTIONS=COMPILE
43224 Changed /BIND_ONLY to /ACTIONS=BIND
43225 Changed /LINK_ONLY to /ACTIONS=LINK
43227 2001-12-11 Ed Schonberg <schonber@gnat.com>
43229 * sem_ch8.adb (Find_Selected_Component): improved search for a
43230 candidate package in case of error.
43232 * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
43233 chain back on scope stack before reinstalling use clauses.
43235 * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
43236 is enabled, do not kill the code for the condition, to preserve
43239 2001-12-11 Robert Dewar <dewar@gnat.com>
43241 * checks.adb (Insert_Valid_Check): Apply validity check to expression
43242 of conversion, not to result of conversion.
43244 2001-12-11 Ed Schonberg <schonber@gnat.com>
43246 * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
43247 before freezing parent. If the declarations are mutually recursive,
43248 an access to the current record type may be frozen before the
43249 derivation is complete.
43251 2001-12-05 Vincent Celier <celier@gnat.com>
43253 * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
43254 -c /COMPILE_ONLY, -l /LINK_ONLY
43257 (Bind_Only): New Flag
43258 (Link_Only): New flag
43260 * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
43263 * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
43266 (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
43267 (Gnatmake): Set the step flags. Only perform a step if the
43268 corresponding step flag is True.
43269 (Scan_Make_Arg): Reset the bind and link step flags when -u
43270 or -gnatc has been specified.
43272 2001-12-05 Ed Schonberg <schonber@gnat.com>
43274 * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
43275 get bounds from right operand.
43277 * sem_eval.adb: Minor reformatting
43279 * exp_util.adb (Make_Literal_Range): use bound of literal rather
43280 than Index'First, its lower bound may be different from 1.
43282 * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
43285 2001-12-05 Vincent Celier <celier@gnat.com>
43287 * prj-nmsc.adb Minor reformatting
43289 * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
43290 set and libraries are not supported.
43292 2001-12-05 Ed Schonberg <schonber@gnat.com>
43294 * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
43295 private view explicitly, so the back-end can treat as a global
43298 2001-12-05 Ed Schonberg <schonber@gnat.com>
43300 * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
43301 unit, always replace instance node with new body, for ASIS use.
43303 2001-12-05 Vincent Celier <celier@gnat.com>
43305 * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
43306 libraries are not supported and both attributes Library_Name and
43307 Library_Dir are specified.
43309 * prj-proc.adb (Expression): Set location of Result to location of
43312 * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
43313 (prj-nmsc is now importing MLib.Tgt)
43315 * prj-proc.adb: Put the change indicated above that was forgotten.
43317 2001-12-05 Robert Dewar <dewar@gnat.com>
43319 * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
43321 2001-12-05 Ed Schonberg <schonber@gnat.com>
43323 * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
43324 constraint, introduce explicit subtype declaration and derive from it.
43326 * sem_ch3.adb: Minor reformatting
43328 2001-12-05 Robert Dewar <dewar@gnat.com>
43330 * checks.adb (Determine_Range): Increase cache size for checks.
43333 * exp_ch6.adb: Minor reformatting
43334 (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
43335 a parameter whose root type is System.Address, since treating such
43336 subprograms as pure in the code generator is almost surely a mistake
43337 that will lead to unexpected results.
43339 * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
43340 change handling of conversions.
43342 * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
43344 2001-12-05 Ed Schonberg <schonber@gnat.com>
43346 * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
43347 aggregate with static wrong size, attach generated Raise node to
43350 2001-12-05 Robert Dewar <dewar@gnat.com>
43352 * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
43353 Fixes compilation abandoned bomb in B24009B.
43355 2001-12-05 Ed Schonberg <schonber@gnat.com>
43358 Document use of Associated_Node on Selected_Components.
43359 (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
43360 to clarify use of untyped descendant fields.
43362 2001-12-05 Robert Dewar <dewar@gnat.com>
43364 * prj-dect.ads: Add ??? comment
43365 Add 2001 to copyright notice (was not done in after all)
43367 * prj-part.adb: Minor reformatting. Reword one awkward error message.
43369 * prj.ads: Minor reformatting throughout, and add some ??? comments
43371 * snames.ads: Minor reformatting
43373 2001-12-05 Geert Bosch <bosch@gnat.com>
43375 * snames.adb: Autoupdate
43377 2001-12-05 Vincent Celier <celier@gnat.com>
43379 * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
43381 * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
43383 * prj-env.adb: Minor comment changes (modifying -> extends).
43385 * prj-nmsc.adb: Minor comment changes (modifying -> extends).
43387 * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
43390 * prj.adb (Initialize): Change Modifying to Extends.
43392 * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
43394 * prj.ads: Minor comment change (Modifying -> extending).
43396 * snames.ads: Change modifying to extends.
43398 2001-12-05 Robert Dewar <dewar@gnat.com>
43400 * sem_warn.adb: Remove stuff for conditionals, we are not going to
43403 * sem_warn.ads: Remove stuff for conditionals, we are not going to
43404 do this after all. Add 2001 to copyright notice
43406 2001-12-04 Geert Bosch <bosch@gnat.com>
43408 * einfo.h, sinfo.h, treeprs.ads: Regenerate.
43410 2001-12-04 Robert Dewar <dewar@gnat.com>
43412 * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
43413 location if we already have errors. Stops some cases of cascaded
43416 * errout.adb: Improve comment.
43418 2001-12-04 Robert Dewar <dewar@gnat.com>
43421 (Analyze_Formal_Type_Definition): Defend against Error.
43422 (Analyze_Formal_Subprogram): Defend against Error.
43424 * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
43425 remove following semicolon if present. Removes cascaded error.
43427 2001-12-04 Douglas B. Rupp <rupp@gnat.com>
43430 (Gen_Exception_Table_Ada): Write "begin" and then return if Num
43431 exceptions equals 0.
43432 (Gen_Exception_Table_C): Return if Num exceptions equals 0.
43433 Fixes PIWG E tests (which have to be run with -gnatL).
43435 2001-12-04 Robert Dewar <dewar@gnat.com>
43437 * einfo.ads: Minor reformatting
43439 2001-12-04 Ed Schonberg <schonber@gnat.com>
43441 * einfo.ads: Block_Node points to the identifier of the block, not to
43442 the block node itself, to preserve the link when the block is
43443 rewritten, e.g. within an if-statement with a static condition.
43445 * inline.adb (Cleanup_Scopes): recover block statement from block
43446 entity using new meaning of Block_Node.
43448 * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
43449 identifier of block node, rather than to node itself.
43451 2001-12-04 Gary Dismukes <dismukes@gnat.com>
43454 (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
43455 (Discrimify): Go back to setting the Etypes of the selected component
43456 because the Vname component does not exist at this point and will
43457 fail name resolution. Also set Analyzed.
43458 Remove with and use of Sem_Res.
43460 2001-12-04 Arnaud Charlet <charlet@gnat.com>
43462 * Makefile.in: (HIE_SOURCES): add s-fat*.
43464 2001-12-04 Robert Dewar <dewar@gnat.com>
43467 (Compile_Time_Known_Attribute): New procedure.
43468 (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
43469 proper range check.
43471 2001-12-04 Ed Schonberg <schonber@gnat.com>
43473 * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
43474 processing discriminants to diagnose illegal default values.
43476 2001-12-04 Ed Schonberg <schonber@gnat.com>
43478 * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
43479 access discriminant within a type extension that constrains its
43480 parent discriminants.
43482 2001-12-04 Ed Schonberg <schonber@gnat.com>
43484 * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
43485 is malformed, use instance of Any_Id to allow analysis to proceed.
43487 * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
43488 type definition is illegal.
43489 (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
43492 2001-12-04 Ed Schonberg <schonber@gnat.com>
43494 * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
43497 2001-12-04 Robert Dewar <dewar@gnat.com>
43499 * errout.adb: Minor reformatting
43501 2001-12-04 Robert Dewar <dewar@gnat.com>
43503 * exp_util.adb: Minor reformatting from last change
43505 * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
43506 which is a rewriting of an expression, traverse the original
43507 expression to remove warnings that may have been posted on it.
43509 2001-12-04 Ed Schonberg <schonber@gnat.com>
43511 * exp_util.adb (Must_Be_Aligned): Return false for a component of a
43512 record that has other packed components.
43514 2001-12-04 Douglass B. Rupp <rupp@gnat.com>
43516 * adaint.c: Minor cleanups.
43518 2001-12-04 Douglass B. Rupp <rupp@gnat.com>
43520 * adaint.c: Do not use utime.h on vxworks.
43522 2001-12-04 Arnaud Charlet <charlet@gnat.com>
43524 * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
43525 more confusion than it solves.
43527 2001-12-04 Geert bosch <bosch@gnat.com>
43529 * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
43531 2001-12-04 Geert Bosch <bosch@gnat.com>
43533 * Makefile.in (update-sources): New target.
43534 For use by gcc_release script.
43536 2001-12-04 Ed Schonberg <schonber@gnat.com>
43538 * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
43539 a configuration pragma, it is now legal wherever a pragma can appear.
43541 2001-12-04 Zack Weinberg <zack@codesourcery.com>
43543 * Makefile.in: Don't set ALL. Delete @cross_defines@,
43544 @cross_overrides@, @build_overrides@ stanzas. INTERNAL_CFLAGS
43545 is now @CROSS@ -DIN_GCC; update comment.
43547 2001-12-04 Robert Dewar <dewar@gnat.com>
43549 * einfo.adb (Has_Pragma_Pure_Function): New flag.
43550 Fix problem that stopped ceinfo from working
43552 * einfo.ads (Has_Pragma_Pure_Function): New flag.
43554 * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
43556 2001-12-04 Douglas B. Rupp <rupp@gnat.com>
43559 (File_Time_Stamp): New procedure.
43560 (Preserve_Mode): New boolean.
43561 (Write_Unit): Pass time stamp.
43562 Implement -p switch (preserve time stamps).
43564 * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
43566 * gnatchop.adb: Do usage info for -p switch
43568 * adaint.h (__gnat_set_file_time_name): New function
43570 * adaint.c (__gnat_set_file_time_name): Implement
43572 * adaint.h: Fix typo
43574 2001-12-03 Robert Dewar <dewar@gnat.com>
43576 * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
43577 have Associated_Node.
43579 2001-12-03 Robert Dewar <dewar@gnat.com>
43581 * prj-proc.adb: Minor reformatting
43583 * make.adb: Minor reformatting
43585 2001-12-03 Geert Bosch <bosch@gnat.com>
43587 * make.adb: Minor reformatting.
43589 2001-12-03 Robert Dewar <dewar@gnat.com>
43591 * sem_ch12.adb: Minor reformatting
43593 2001-12-03 Ed Schonberg <schonber@gnat.com>
43595 * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
43596 push Standard on the stack before analyzing the instance body,
43597 in order to have a clean visibility environment.
43599 * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
43601 2001-12-03 Ed Schonberg <schonber@gnat.com>
43603 * sem_ch12.adb (Instantiate_Package_Body): Protect against double
43604 instantiation of a body that contains an inlined body.
43606 2001-12-03 Ed Schonberg <schonber@gnat.com>
43609 (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
43610 to prevent freezing within formal packages.
43611 (Freeze_Subprogram_Body): If body comes from another instance that
43612 appeared before its own body, place freeze node at end of current
43613 declarative part, to prevent a back-end crash.
43614 (Inline_Instance_Body): Handle properly a package instance within
43615 a subprogram instance that is a child unit.
43617 2001-12-01 Graham Stott <grahams@redhat.com>
43619 * Makefile.in (misc.o): Add missing $(srcdir) prefix
43620 and add optabs.h dependency.
43622 * misc.c: Include optabs.h
43623 (gnat_tree_code_type): Make static and const.
43624 (gnat_tree_code_length): Likewise.
43625 (gnat_tree_code_name): Likewise.
43626 (update_setjmp_buf): Obtain operands mode from insn_data.
43628 2001-11-29 Richard Henderson <rth@redhat.com>
43630 * init.c: Remove obsolete dwarf2 frame.h section.
43632 2001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
43634 * Make-lang.in (ada.generated-manpages): New dummy target.
43636 2001-11-29 Ed Schonberg <schonber@gnat.com>
43638 * g-os_lib.adb (Add_To_Command): use explicit loop to move string
43639 into Command, an array conversion is illegal here. Uncovered by
43642 2001-11-28 Geert Bosch <bosch@gnat.com>
43644 * init.c: Minor whitespace changes.
43646 2001-11-28 Doug Rupp <rupp@gnat.com>
43648 * init.c: (__gnat_install_handler,VMS): Increase size of alternate
43651 2001-11-28 Zack Weinberg <zack@codesourcery.com>
43653 * misc.c (gnat_expand_constant): Move declaration above
43654 definition of lang_hooks.
43655 (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
43656 (gnat_init): lang_expand_constant no longer exists.
43658 (internal_error_function): Remove #ifdef HAVE_VPRINTF. We
43659 always have vprintf.
43660 (gnat_init): Always call set_internal_error_function.
43662 2001-11-27 Andreas Jaeger <aj@suse.de>
43664 * Makefile.in (stamp-tool_src_dir): Use symbolic link.
43666 2001-11-27 Laurent Guerby <guerby@acm.org>
43668 * Makefile.in: Regenerate Ada dependencies.
43670 2001-11-26 Richard Henderson <rth@redhat.com>
43672 * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
43673 gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
43674 gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
43676 2001-11-25 Laurent Guerby <guerby@acm.org>
43678 * sysdep.c (rts_get_*): Fix style.
43680 2001-11-19 Laurent Guerby <guerby@acm.org>
43682 * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
43683 since it is of no apparent use and cause warnings.
43685 2001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
43687 * misc.c (gnat_decode_option, gnat_init_options): Make definitions
43689 (gnat_init): Don't return NULL.
43690 (finish_parse): Remove.
43692 2001-11-17 Laurent Guerby <guerby@acm.org>
43694 * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
43695 * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
43696 * io-aux.c: Provide K&R prototypes to all functions, reformat code.
43697 * lang-spec.h: Add missing struct field to silence warnings.
43698 * sysdep.c (rts_get_*): Provide K&R prototype.
43699 * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
43700 * traceback.c (Unlock_Task, Lock_Task): Likewise.
43701 * tracebak.c (__gnat_backtrace): Remove unused variable.
43702 * utils.c (end_subprog_body): Move to K&R style.
43704 Thu Nov 15 18:16:17 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
43706 * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
43708 2001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
43710 * misc.c (gnat_init): Change prototype. Include the
43711 functionality of the old init_parse and init_decl_processing.
43712 (gnat_init_decl_processing): New prototype.
43713 (init_parse): Remove.
43714 * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
43716 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
43718 * misc.c (gnat_print_decl, gnat_print_type): Renamed.
43719 (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
43720 (print_lang_statistics, lang_print_xnode, print_lang_identifier,
43721 set_yydebug): Remove.
43723 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
43725 * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
43726 (struct lang_hooks): Constify.
43727 (language_string, lang_identify): Remove.
43728 * utils.c (init_decl_processing): Update.
43730 2001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
43732 * misc.c: Include langhooks-def.h.
43733 * Makefile.in: Update.
43735 2001-10-30 Robert Dewar <dewar@gnat.com>
43738 (Check_Identifier): Rewrite circuit to be compatible with use of letters
43739 in the upper half of ASCII.
43740 (Check_Identifier): Minor reformatting
43742 2001-10-30 Geert Bosch <bosch@gnat.com>
43744 * (Associated_Node, Set_Associated_Node): Do not check for
43747 2001-10-30 Robert Dewar <dewar@gnat.com>
43749 * a-reatim.ads: Minor reformatting
43751 2001-10-30 Robert Dewar <dewar@gnat.com>
43753 * gnatdll.adb: Minor reformatting throughout. Many ??? added for
43754 undocumented declarations.
43756 2001-10-30 Pascal Obry <obry@gnat.com>
43758 * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
43759 to the binder and linker.
43762 * mdll.ads: Fix layout. Update copyright notice.
43764 * mdll.adb: Fix layout. Update copyright notice.
43766 2001-10-30 Robert Dewar <dewar@gnat.com>
43768 * usage.adb: Minor fix to output for -gnaty.
43770 2001-10-30 Ed Schonberg <schonber@gnat.com>
43772 * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
43773 to accommodate all its possible values.
43775 * a-reatim.adb (Split): Special-case handling of Time_Span_First
43776 and of small absolute values of T.
43778 2001-10-30 Richard Kenner <kenner@gnat.com>
43780 * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
43781 set_mem_attributes since not needed and wrong if RESULT if a REG;
43782 fixes ACATS failures.
43784 2001-10-30 Geert Bosch <bosch@gnat.com>
43786 * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
43787 s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
43789 2001-10-30 Robert Dewar <dewar@gnat.com>
43791 * bindusg.adb: Undocument -f switch.
43793 * gnatcmd.adb: Remove /FULL_ELABORATION.
43795 * opt.ads (Force_RM_Elaboration_Order): Document that this is
43798 * gnatbind.adb: Output new warning for use of obsolescent -f switch.
43800 * gnatbind.adb: Minor update of warning msg.
43802 2001-10-30 Vincent Celier <celier@gnat.com>
43804 * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
43805 for project file switches (-P (/PROJECT_FILE=),
43806 -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
43809 2001-10-30 Geert Bosch <bosch@gnat.com>
43811 * decl.c: Minor whitespace fixes.
43813 2001-10-30 Richard Kenner <kenner@gnat.com>
43815 * utils2.c (build_allocator): Test for SIZE overflow in array case too
43817 2001-10-30 Geert Bosch <bosch@gnat.com>
43819 * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
43820 Found due to GCC 3.0 warning of using uninitialized value.
43823 (Get_Max_Size): Use variant record for tracking value/expression.
43824 Makes logic clearer and prevents warnings for uninitialized variables.
43825 (Layout_Array_Type): Use variant record for tracking value/expression.
43826 Makes logic clearer and prevents warnings for uninitialized variables.
43828 2001-10-30 Robert Dewar <dewar@gnat.com>
43830 * lib.adb: Minor reformatting
43832 * s-taprop.ads: Minor reformatting
43834 2001-10-29 Laurent Guerby <guerby@acm.org>
43837 (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
43839 (_gnat_error_handler): Make MSG const.
43841 2001-10-29 Richard Kenner <kenner@gnat.com>
43843 * sysdep.c: Fix localtime_r problem on LynxOS.
43844 Also remove #elif to avoid warnings.
43846 * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
43849 * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
43851 2001-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
43853 * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
43854 exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
43855 g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
43856 g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
43857 layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
43858 s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
43859 sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
43860 sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
43861 sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
43862 types.ads, urealp.adb: Fix spelling errors.
43864 2001-10-27 Laurent Guerby <guerby@acm.org>
43866 * trans.c (gigi): Fix non determinism leading to bootstrap
43867 comparison failures for debugging information.
43869 2001-10-26 Florian Weimer <fw@deneb.enyo.de>
43871 * gnat_rm.texi: Use @./@: where appropriate.
43873 2001-10-26 Robert Dewar <dewar@gnat.com>
43875 * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
43877 2001-10-26 Richard Kenner <kenner@gnat.com>
43879 * gmem.c (__gnat_gmem_read_next): Properly check for EOF
43881 2001-10-26 Richard Kenner <kenner@gnat.com>
43883 * decl.c (validate_size): Modify message for bad size to avoid
43884 implication that compiler is modifying the size.
43886 2001-10-26 Robert Dewar <dewar@gnat.com>
43888 * prj-util.adb: Minor reformatting. Fix bad header format.
43890 2001-10-26 Robert Dewar <dewar@gnat.com>
43892 * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
43894 * sinfo.ads: Clarify use of Associated_Node (documentation only).
43896 * sem_ch12.adb: Change Node4 to Associated_Node. Change
43897 Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
43898 much more narrowly in places where needed. These are cleanups.
43900 2001-10-26 Joel Brobecker <brobecke@gnat.com>
43902 * 5zosinte.ads (null_pthread): new constant.
43905 (Initialize_TCB): Initialize thread ID to null, to be able to verify
43906 later that this field has been set.
43907 (Finalize_TCB): ditto.
43908 (Suspend_Task): Verify that the thread ID is not null before using it.
43909 (Resume_Task): ditto.
43912 (Resume_All_Tasks): Lock the tasks list before using it.
43913 (Suspend_All_Tasks): ditto.
43915 2001-10-26 Richard Kenner <kenner@gnat.com>
43917 * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
43918 Make constant variant of designated type for Is_Access_Constant.
43919 Call update_pointer_to with main variant.
43921 * trans.c (process_freeze_entity, process_type):
43922 Call update_pointer_to on main variant.
43924 * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
43925 If main variant, update all other variants.
43927 * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
43930 2001-10-26 Robert Dewar <dewar@gnat.com>
43932 * prj-util.adb: Minor reformatting
43934 2001-10-26 Robert Dewar <dewar@gnat.com>
43936 * prj-util.adb: Minor reformatting
43938 2001-10-26 Robert Dewar <dewar@gnat.com>
43940 * prj-attr.adb: Minor reformatting throughout
43942 2001-10-26 Robert Dewar <dewar@gnat.com>
43944 * prj-attr.ads: Minor reformatting
43945 Add ??? comment (this whole spec has almost no comments)
43947 2001-10-26 Vincent Celier <celier@gnat.com>
43949 * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
43950 ("//") that precede the drive letter on Interix.
43952 2001-10-26 Geert Bosch <bosch@gnat.com>
43954 * gnat_rm.texi: Add GNAT Reference Manual.
43956 2001-10-25 Robert Dewar <dewar@gnat.com>
43958 * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
43959 is Error. Similar change for other renaming cases.
43961 2001-10-25 Robert Dewar <dewar@gnat.com>
43963 * s-atacco.ads: Add pragma Inline_Always for functions.
43964 Fix header format. Add copyright 2001
43966 2001-10-25 Ed Schonberg <schonber@gnat.com>
43968 * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
43969 return Error rather than Empty so that analysis can proceed.
43971 2001-10-25 Ed Schonberg <schonber@gnat.com>
43973 * sem_util.adb (Enter_Name): better handling of cascaded error
43974 messages when a unit appears in its own context.
43976 2001-10-25 Ed Schonberg <schonber@gnat.com>
43978 * sem_util.adb (Defining_Entity): in case of error, attach created
43979 entity to specification, so that semantic analysis can proceed.
43981 2001-10-25 Robert Dewar <dewar@gnat.com>
43984 (Defining_Entity): Deal with Error.
43985 (Process_End_Label): Deal with bad end label for.
43987 2001-10-25 Ed Schonberg <schonber@gnat.com>
43989 * sem_elab.adb (Check_A_Call): refine message when call is in an
43990 instance but callee is not declared in the generic unit.
43992 2001-10-25 Ed Schonberg <schonber@gnat.com>
43994 * sem_elab.adb (Check_A_Call): check for renaming before finding the
43995 enclosing unit, which may already be different from the calling unit.
43997 2001-10-25 Geert Bosch <bosch@gnat.com>
43999 * 4gintnam.ads: fix header format.
44001 2001-10-25 Ed Schonberg <schonber@gnat.com>
44003 * sem_res.adb (Resolve_Call): if the call is actually an indexing
44004 operation on the result of a parameterless call, perform elaboration
44005 check after the node has been properly rewritten.
44007 * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
44008 inlined within the generic tree, the defining identifier is not a
44011 2001-10-25 Ed Schonberg <schonber@gnat.com>
44013 * sem_res.adb (Resolve): special-case resolution of Null in an
44014 instance or an inlined body to avoid view conflicts.
44016 * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
44017 compatibility by retrieving the access type of the generic copy.
44019 2001-10-25 Robert Dewar <dewar@gnat.com>
44022 (Analyze_Number_Declaration): Handle error expression.
44023 (Signed_Integer_Type_Declaration): Handle error bound.
44024 (Analyze_Subtype_Indication): Handle error range.
44026 * sem_util.adb (Get_Index_Bounds): Check for Error.
44028 2001-10-25 Robert Dewar <dewar@gnat.com>
44030 * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
44031 in no run time mode.
44033 2001-10-25 Pascal Obry <obry@gnat.com>
44035 * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
44036 mode case for ALLOC case.
44038 * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
44039 all platforms. Improvement of last change.
44041 2001-10-25 Robert Dewar <dewar@gnat.com>
44043 * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
44045 2001-10-25 Geert Bosch <bosch@gnat.com>
44047 * osint.adb (Is_Relative): Remove duplicate.
44049 2001-10-25 Pascal Obry <obry@gnat.com>
44051 * osint.adb (Read_Default_Search_Dirs): correctly detect relative
44052 pathnames in UNIX and DOS style with drive letter.
44053 (Is_Relative): new routine.
44055 * osint.adb: Minor reformatting
44057 * osint.adb (Is_Relative): implementation using
44058 GNAT.OS_Lib.Is_Absolute_Path. Better fix.
44060 2001-10-25 Pascal Obry <obry@gnat.com>
44062 * g-dirope.adb (Basename): correctly compute offset between the
44063 original Path and the translated one.
44065 * g-dirope.adb: (Base_Name): add some comments.
44067 2001-10-25 Robert Dewar <dewar@gnat.com>
44069 * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
44070 in HIE mode, avoids compilation abandoned message
44072 * exp_imgv.adb: Correct typo in previous change
44074 * exp_imgv.adb: Correct typo in previous change (not my day!)
44076 2001-10-25 Robert Dewar <dewar@gnat.com>
44078 * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
44080 2001-10-25 Pascal Obry <obry@gnat.com>
44082 * g-awk.ads: Move all pragma inlines next to the routine
44083 declarations. This is more uniform with other GNAT spec.
44085 2001-10-22 Geert Bosch <bosch@gnat.com>
44087 * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
44089 2001-10-19 Geert Bosch <bosch@gnat.com>
44091 * Makefile.in (tools, gnattools): Remove gnatmem.
44093 2001-10-17 Richard Henderson <rth@redhat.com>
44095 * Makefile.in (misc.o): Depend on langhooks.h.
44096 * misc.c: Include it.
44097 (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
44098 (LANG_HOOKS_DECODE_OPTION): New.
44099 (lang_hooks): Use LANG_HOOKS_INITIALIZER.
44101 2001-10-16 Florian Weimer <fw@deneb.enyo.de>
44103 * trans.c (tree_transform): Adjust to recent change in
44104 expand_asm_operands to implement named asm operands.
44106 2001-10-11 Ed Schonberg <schonber@gnat.com>
44108 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
44109 renaming of discriminant for mutable record type.
44111 2001-10-11 Robert Dewar <dewar@gnat.com>
44113 * validsw.adb: Properly save -gnatVn status.
44115 2001-10-11 Robert Dewar <dewar@gnat.com>
44117 * usage.adb: Add lines for V switch.
44119 * gnatcmd.adb (COMPILE): Revise translations for -gnatV
44120 (/VALIDITY_CHECKING).
44122 2001-10-11 Ed Schonberg <schonber@gnat.com>
44124 * sem_type.adb (Add_One_Interp): an operator for a type declared in
44125 an extension of System is known to be visible.
44127 2001-10-11 Ed Schonberg <schonber@gnat.com>
44129 * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
44130 properly. Fixes regression on ACATS C34005G.
44132 2001-10-11 Robert Dewar <dewar@gnat.com>
44134 * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
44135 loop in generic instance, since this is likely not very useful.
44137 2001-10-11 Robert Dewar <dewar@gnat.com>
44139 * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
44140 the error message for high integrity mode.
44142 * rtsfind.adb (RTE): Give message if we try to find an entity that
44143 is not available in high integrity mode.
44146 (OK_To_Use_In_HIE_Mode): New array.
44147 (RTE): May return Empty in high integrity mode.
44149 * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
44150 OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
44152 * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
44153 unit if not inlined always and in no runtime mode. Fixes problem
44154 caused by new Rtsfind changes.
44156 * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
44159 * rtsfind.adb (RTE): Make sure we do not try to load unit after
44160 giving message for entity not available in high integrity mode.
44162 2001-10-11 Pascal Obry <obry@gnat.com>
44164 * impunit.adb: Add GNAT.CRC32.
44166 2001-10-11 Ed Schonberg <schonber@gnat.com>
44168 * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
44169 properly the case where one universal operand in a non-static
44170 exponentiation of a real literal.
44172 2001-10-11 Ed Schonberg <schonber@gnat.com>
44174 * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
44175 clause, return the gobal finalization list, for lack of anthing else.
44177 2001-10-11 Ed Schonberg <schonber@gnat.com>
44179 * exp_ch7.adb (Make_Transient_Block): if statement is within
44180 exception handler, always use new transient scope to place Clean
44183 2001-10-11 Pascal Obry <obry@gnat.com>
44186 (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
44187 (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
44188 (GNATLS_RTL_OBJS): add g-crc32.o
44189 (GNATMAKE_RTL_OBJS): add g-crc32.o
44192 (CRC_Match): new function.
44193 (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
44194 instead of the previous simple checksum algorithm.
44195 (Time_Stamp_Mismatch): use CRC_Match for comparison.
44196 (Set_Source_Table): idem.
44199 (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
44200 instead of simple checksum.
44201 (CRC_Match): new function.
44202 (CRC_Error): new constant.
44204 * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
44205 a CRC now and not a simple checksum. A CRC uses lower-case hex
44206 letters, fixes ambiguity in parsing.
44208 * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
44209 is what this variable will store.
44211 * bcheck.adb: Change reference to chechsum in comments by CRC.
44212 (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
44213 rename All_Checksum_Match to All_CRC_Match. Change due to API
44214 renaming since now GNAT does not use a simple checksum but a
44215 CRC using GNAT.CRC32.
44217 * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
44218 now and not anymore a simple checksum.
44220 * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
44223 * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
44226 (Restore_Scan_State): rename Checksum to CRC.
44227 (Save_Scan_State): idem.
44231 (Checksum): rename to CRC.
44232 (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
44234 * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
44235 GNAT.CRC32). Update copyright notice.
44237 * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
44238 GNAT.CRC32). Update copyright notice.
44241 (Accumulate_Checksum): removed.
44242 (Update): new procedure. Add a wide-character into the CRC.
44245 (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
44246 (Load_File): fix initialization of S (change Source_Checksum to
44249 * sinput-p.adb (Load_Project_File): rename Source_Checksum to
44250 Source_CRC in S initialization.
44252 * sinput.adb (Source_Checksum): renamed to Source_CRC.
44254 * sinput.ads (Source_Checksum): renamed to Source_CRC.
44255 Update comments for the CRC.
44257 * types.adb (Hex): Use lowercase for the letter part.
44259 * types.ads (Get_Hex_String): Returns the hexadecimal representation
44260 for a word. This is currently used only for CRC. In previous version,
44261 the checksum was using a representation with all letter being
44262 upper-case. With the new implementation (using CRC) we do not remove
44263 the 32th bit of the CRC, so we can have an upper-case starting letter
44264 in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
44265 It is ambigous since the CRC was optional and could be followed by
44266 options like EB, EE. So now this routines uses lower-case letter for
44267 the hexadecimal representation. Strange enough only lower case letters
44268 where checked in Scan_ALI (even if this was not a possible case).
44270 * gnatvsn.ads (Library_Version): changed to 3.15a.
44272 * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
44275 * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
44278 * ali-util.adb: Redo previous change to avoid using word CRC everywhere
44279 Add 2001 to copyright notice
44280 (Accumulate_Checksum): Modify to use System.CRC32.
44282 * ali-util.ads: Redo changes of previous revision to continue to use
44283 the word Checksum. Add 2001 to copyright notice.
44285 * ali.adb: Undo some of previous changes, not needed.
44286 Keep the change for lower case letters in the checksum.
44288 * ali.ads: Undo previous change not needed.
44290 * bcheck.adb: Undo most of previous change, not needed.
44291 But do use Checksums_Match for checksum comparison.
44293 * gnatls.adb: Undo most of previous change, not needed.
44294 But do use Checksums_Match for comparing checksums.
44296 * lib-load.adb: Undo previous change, not needed.
44298 * lib-writ.adb: Undo previous change, not needed.
44300 * lib-writ.ads: Document that checksums use lower case,
44301 not upper case letters.
44303 * scans.adb: Undo previous change, not needed
44305 * scans.ads: Undo previous change, not needed.
44307 * scn-nlit.adb: Undo previous changes, not needed.
44309 * scn-slit.adb: Undo previous change, not needed. Fix header format.
44312 (Accumulate_Checksum): Use System.CRC32.
44313 (Initialize_Checksum): New procedure.
44314 Remove other changes of previous revision.
44316 * sinput-p.adb: Undo previous change, not needed.
44318 * sinput.adb: Undo previous change, not needed.
44320 * sinput-l.adb: Undo previous change, not needed.
44322 * sinput.ads: Undo previous change, not needed. Keep only comment
44323 on new checksum algorithm
44325 * Makefile.in: Add s-crc32 as needed, remove g-crc32.
44326 Also remove a-tags and a-stream from GNAT sources.
44328 * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
44330 * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
44332 2001-10-11 Geert Bosch <bosch@gnat.com>
44334 * einfo.h: Regenerate.
44336 * nmake.ads: Regenerate.
44338 * nmake.adb: Regenerate.
44340 * sinfo.h: Regenerate.
44342 * treeprs.adb: Regenerate.
44344 2001-10-10 Geert Bosch <bosch@gnat.com>
44346 * gnat-style.texi: New file describing coding guidelines for Ada.
44348 2001-10-10 Ed Schonberg <schonber@gnat.com>
44350 * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
44353 2001-10-10 Geert Bosch <bosch@gnat.com>
44355 * snames.ads: Add new names for project facility.
44357 * snames.adb: Update to reflect snames.ads changes.
44359 * snames.h: Update to reflect snames.ads changes.
44361 2001-10-10 Vincent Celier <celier@gnat.com>
44364 (Add_Switches): reflect the changes for the switches attributes
44365 Default_Switches indexed by the programming language,
44366 Switches indexed by the file name.
44367 (Collect_Arguments_And_Compile): Idem.
44368 Reflect the attribute name changes.
44371 (Initialisation_Data): Change the names of some packages and
44373 (Initialize): process case insensitive associative arrays.
44376 (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
44379 (Parse_Attribute_Declaration): For case insensitive associative
44380 arrays, set the index string to lower case.
44383 Reflect the changes of the project attributes.
44386 Replace Check_Naming_Scheme by Ada_Check and
44387 Language_Independent_Check.
44390 Replaced Check_Naming_Scheme by 2 procedures:
44391 Ada_Check and Language_Independent_Check.
44394 (Process_Declarative_Items): For case-insensitive associative
44395 arrays, set the index string to lower case.
44396 (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
44397 Prj.Nmsc.Check_Naming_Scheme.
44400 (Case_Insensitive): New function
44401 (Set_Case_Insensitive): New procedure
44404 (Case_Insensitive): New function
44405 (Set_Case_Insensitive): New procedure
44406 (Project_Node_Record): New flag Case_Insensitive.
44409 (Value_Of): new function to get the string value of a single
44410 string variable or attribute.
44413 (Value_Of): new function to get the string value of a single
44414 string variable or attribute.
44417 (Ada_Default_Spec_Suffix): New function
44418 (Ada_Default_Impl_Suffix): New function
44419 Change definitions of several constants to reflect
44420 new components of record types.
44423 (Naming_Data): Change several components to reflect new
44424 elements of naming schemes.
44425 (Project_Data): New flags Sources_Present and
44426 Language_Independent_Checked.
44427 (Ada_Default_Spec_Suffix): New function.
44428 (Ada_Default_Impl_Suffix): New function.
44431 Modification of predefined names for project manager: added
44432 Implementation, Specification_Exceptions, Implementation_Exceptions,
44433 Specification_Suffix, Implementation_Suffix, Separate_Suffix,
44434 Default_Switches, _Languages, Builder, Cross_Reference,
44435 Finder. Removed Body_Part, Specification_Append, Body_Append,
44436 Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
44439 * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
44442 * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
44443 not that it is Nil_Variable_Value.
44445 * prj.ads: Add ??? for uncommented declarations
44447 2001-10-10 Ed Schonberg <schonber@gnat.com>
44449 * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
44450 constant, do not indicate possible modification, so that gigi can
44451 treat it as a bona fide constant.
44453 2001-10-10 Robert Dewar <dewar@gnat.com>
44455 * sem_prag.adb: Add processing for pragma External.
44457 * snames.ads: Add entry for pragma External.
44459 * par-prag.adb: Add pragma External.
44461 * snames.adb: Updated to match snames.ads.
44463 2001-10-10 Ed Schonberg <schonber@gnat.com>
44465 * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
44466 a dynamic task if the allocator appears in an indexed assignment
44467 or selected component assignment.
44469 * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
44470 For a dynamic task in an assignment statement, use target of
44471 assignment to generate meaningful name.
44473 2001-10-10 Ed Schonberg <schonber@gnat.com>
44475 * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
44478 * einfo.ads: Body_Entity is also defined for generic package.
44479 Documentation change only
44481 * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
44482 others_choice for a discriminated component initialization,
44483 convert discriminant references into the corresponding discriminals.
44485 * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
44486 only if original type is private and expression has to be wrapped
44490 (Apply_Constraint_Check): Do not perform length check
44491 if expression is an aggregate with only an others_choice.
44492 (Length_N_Cond): two references to the same in_parameter
44493 (typically the discriminal in an init_proc) denote the same value.
44494 Two useful optimization uncovered by bugfixes above.
44496 2001-10-10 Robert Dewar <dewar@gnat.com>
44498 * xeinfo.adb: Change int to char in translation of enumeration types.
44499 This fixes a problem in the C representation of component alignment.
44500 Add 2001 to copyright notice
44502 2001-10-10 Richard Kenner <kenner@gnat.com>
44504 * decl.c: (validate_size): Do check size of object of integral type
44505 if it is a packed array type.
44507 2001-10-10 Richard Kenner <kenner@gnat.com>
44509 * decl.c: (gnat_to_gnu_entity, case object): Also materialize
44510 VAR_DECL for constant if not Is_Public but -O0.
44512 2001-10-10 Richard Kenner <kenner@gnat.com>
44514 * misc.c (struct lang_hooks): Add new initializer to match GCC change.
44516 2001-10-10 Geert Bosch <bosch@gnat.com>
44518 * xnmake.adb (XNmake): Fix handling of -s/-b options. No longer
44519 use '/' as switch character, allowing for absolute file names.
44521 2001-10-09 Joseph S. Myers <jsm28@cam.ac.uk>
44523 * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
44526 2001-10-08 Geert Bosch <bosch@gnat.com>
44528 * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
44529 Automatically build utilities when files need to be regenerated.
44531 2001-10-08 Geert Bosch <bosch@gnat.com>
44533 * xsnames.adb: New utility for updating snames.ads and snames.adb
44535 2001-10-08 Zack Weinberg <zack@codesourcery.com>
44537 * Make-lang.in (ADAFLAGS): Add -W -Wall.
44538 (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
44539 (gnat1): Also depend on attribs.o.
44540 (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
44541 * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
44542 (ADAC): Set to @ADAC@ in stage1, $(CC) later.
44543 (ADAFLAGS): Add -W -Wall.
44544 (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
44547 (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
44548 s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
44549 s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
44550 Use $(ADAC), not $(CC), as compilation command.
44552 (gnattools): Depend directly on tools to build, don't use
44554 (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
44556 * einfo.h, sinfo.h: New files (autogenerated).
44558 2001-10-08 Richard Henderson <rth@redhat.com>
44560 * comperr.adb (Abort_In_Progress): New.
44561 (Compiler_Abort): Use it to prevent recursion.
44563 2001-10-08 Robert Dewar <dewar@gnat.com>
44565 * atree.adb: Set Error_Posted in Error node, helps error recovery.
44567 * par-endh.adb (Output_End_Expected): We should also not test
44568 Error_Posted on the Error node, since now it is always set.
44570 * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
44571 to help error recovery. Part of general work on 9407-004.
44573 * par.adb: Add ??? for misuse of error
44576 (Resolve): Defend against Error, fixes 9407-003.
44577 (Resolve_Discrete_Subtype_Indication): Defend against Error.
44579 * sinfo.ads (N_Error): Now has Etype field (which will be set
44580 to Any_Type to help error recovery).
44582 2001-10-08 Richard Kenner <kenner@gnat.com>
44584 * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
44585 Consistently set MEM attributes from expression; fixes
44586 bootstrap failure on x86.
44588 2001-10-08 Geert Bosch <bosch@gnat.com>
44590 * 5oosinte.adb: Add 2001 to copyright notice.
44592 2001-10-08 Geert Bosch <bosch@gnat.com>
44594 * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
44596 * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
44598 2001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
44600 * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
44602 2001-10-05 Geert Bosch <bosch@gnat.com>
44604 * adaint.h: Small formatting fix.
44606 2001-10-04 Geert Bosch <bosch@gnat.com>
44608 * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
44609 Arg is int, not FILE *, in dummy version of functions.
44611 * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
44612 Arg is int, not FILE *.
44614 2001-10-04 Geert Bosch <bosch@gnat.com>
44616 * 3lsoccon.ads: Added file, missed with initial check ins.
44618 * 4lintnam.ads: Fix header format.
44619 Change Linux to GNU/Linux.
44621 * 5iosinte.adb: Change Linux to GNU/Linux.
44623 * 5iosinte.ads: Change Linux to GNU/Linux.
44625 * 5itaprop.adb: Change Linux to GNU/Linux.
44627 * 5itaspri.ads: Change Linux to GNU/Linux.
44628 Update copyright notice.
44630 * 5lintman.adb: Change Linux to GNU/Linux.
44632 * 5lml-tgt.adb: Change Linux to GNU/Linux.
44634 * 5losinte.ads: Change Linux to GNU/Linux.
44636 * 5lsystem.ads: Change Linux to GNU/Linux.
44638 * 5qosinte.adb: Change Linux to GNU/Linux.
44640 * 5qosinte.ads: Change Linux to GNU/Linux.
44642 * 5qparame.ads: Change Linux to GNU/Linux.
44644 * 5qtaprop.adb: Change Linux to GNU/Linux.
44646 * 5qtaspri.ads: Change Linux to GNU/Linux.
44647 Add 2001 to copyright notice.
44649 * 5vintman.ads: Change Linux to GNU/Linux.
44650 Fix header format. Add 2001 to copyright notice.
44652 * g-soccon.ads: Change Linux to GNU/Linux.
44654 * g-trasym.ads: Change Linux to GNU/Linux.
44655 Add 2001 to copyright notice.
44657 * memtrack.adb: Change Linux to GNU/Linux.
44659 * s-intman.ads: Change Linux to GNU/Linux.
44660 Add 2001 to copyright notice. Fix header format.
44662 * s-stache.adb: Change Linux to GNU/Linux.
44664 * adaint.c: Change Linux to GNU/Linux.
44666 * cio.c: Change Linux to GNU/Linux.
44668 * cstreams.c: Change Linux to GNU/Linux.
44670 * init.c: Change Linux to GNU/Linux.
44672 * gmem.c: Change Linux to GNU/Linux.
44674 * tracebak.c: Change Linux to GNU/Linux.
44677 2001-10-02 Geert Bosch <bosch@gnat.com>
44679 * misc.c (insert_default_attributes): Add dummy version.