1 2008-03-26 Arnaud Charlet <charlet@adacore.com>
3 * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
4 s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
5 s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
6 i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
7 s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
10 2008-03-26 Thomas Quinot <quinot@adacore.com>
14 * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
15 Get_Socket_Option): Add support for Receive_Packet_Info.
17 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
18 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
19 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
20 g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
21 g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
22 new constants SO_REUSEPORT and IP_PKTINFO
24 2008-03-26 Robert Dewar <dewar@adacore.com>
26 * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
27 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
28 a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
29 a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
30 a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
31 a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
32 s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
33 s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
34 a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
35 s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
36 s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
37 s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
38 s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
39 s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
40 s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
41 s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
42 s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
43 s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
44 s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
45 s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
46 a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
47 a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
48 s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
49 s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
50 s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
51 s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
52 s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
53 a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
54 a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
55 s-tasloc.adb: Minor reformatting.
57 Remove "used for" sections from comments.
59 2008-03-26 Robert Dewar <dewar@adacore.com>
61 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
62 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
63 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
64 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
65 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
66 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
67 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
68 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
69 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
70 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
71 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
72 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
73 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
74 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
75 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
76 double spaced if it fits on one line and otherwise single spaced.
78 2008-03-26 Arnaud Charlet <charlet@adacore.com>
80 * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
81 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
82 s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
83 or task info if the thread could not be created.
85 2008-03-26 Arnaud Charlet <charlet@adacore.com>
87 * gnatvsn.ads (Library_Version): Bump to 4.4.
88 (Current_Year): Bump to 2008.
90 2008-03-26 Robert Dewar <dewar@adacore.com>
92 * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
94 * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
96 * debug.adb: Add debug flags d.r and d.v
97 Add debug flag .T (Optimize_Alignment (Time))
98 Add debug flag .S (Optimize_Alignment (Space))
100 * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
101 depending on setting of relevant debug flags.
102 Replace use of Warnings_Off by Has_Warnings_Off
103 (Freeze_Entity): In circuit for warning on suspicious convention
104 actuals, do not give warning if subprogram has same entity as formal
105 type, or if subprogram does not come from source.
106 (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
107 if Optimize_Alignment set to Space.
109 * frontend.adb: Add call to Sem_Warn.Initialize
110 Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
111 Reset Optimize_Alignment mode from debug switches .S and .T
113 * layout.adb (Layout_Composite_Object): Rewritten for
114 Optimize_Aligment pragma.
116 * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
119 * opt.ads, opt.adb: (Optimize_Alignment): New global switch
121 * par-prag.adb (N_Pragma): Chars field removed, use Chars
122 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
123 this change. Add entry for pragma Optimize_Alignment
125 * sem_prag.adb (N_Pragma): Chars field removed, use Chars
126 (Pragma_Identifier (..
127 instead, adjustments throughout to accomodate this change.
128 (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
129 (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
130 Add implementation of pragma Optimize_Alignment
132 2008-03-26 Vincent Celier <celier@adacore.com>
134 * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
135 Improve memory usage to avoid use of stack.
137 2008-03-26 Robert Dewar <dewar@adacore.com>
139 * a-teioed.ads: Correct value of Default_Fill
141 * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
143 2008-03-26 Robert Dewar <dewar@adacore.com>
145 * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
146 with Current_Output (introduce Self).
148 2008-03-26 Robert Dewar <dewar@adacore.com>
150 * checks.adb (Ensure_Valid): Capture valid status if possible
153 2008-03-26 Robert Dewar <dewar@adacore.com>
155 * stand.ads: Deal with reordering of package standard declarations
157 * cstand.adb: Put package Standard declarations in proper order
159 2008-03-26 Robert Dewar <dewar@adacore.com>
161 * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
162 (Pragma_Identifier (.. instead.
163 (OK_To_Reorder_Components): New flag
164 (Has_Entries): Code cleanup.
165 (Warnings_Off_Used): New flag
166 (Warnings_Off_Used_Unmodified): New flag
167 (Warnings_Off_Used_Unreferenced): New flag
168 (Has_Warnings_Off): New function
169 (Has_Unmodified): New function
170 (Has_Unreferenced): New function
171 (Is_Trivial_Subprogram): New flag
172 (Is_Static_Dispatch_Table_Entity): New attribute.
173 Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
174 (more consistent with other similar names)
175 (Access_Subprogram_Type): New classification function
177 2008-03-26 Robert Dewar <dewar@adacore.com>
179 * errout.ads: Document new !! insertion sequence
181 * errout.adb (N_Pragma): Chars field removed, use Chars
182 (Pragma_Identifier (.. instead.
183 Replace use of Warnings_Off by Has_Warnings_Off
184 (Error_Msg_Internal): Don't delete warning ending in !!
186 2008-03-26 Robert Dewar <dewar@adacore.com>
188 * par.adb (Check_No_Right_Paren): Removed no longer used
190 * par-ch10.adb (N_Pragma): Chars field removed, use Chars
191 (Pragma_Identifier (.. instead.
193 * par-ch10.adb (P_Subunit): Improvement in error recovery and message
195 * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
196 par-ch4.adb: Minor improvements in error recovery and messages.
198 * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
201 * par-ch9.adb: Minor improvements in error recovery and messages
202 (P_Protected): Better error recovery for "protected type x;"
204 * par-util.adb: Minor improvements in error recovery and messages
205 (Check_No_Right_Paren): Removed no longer used
207 2008-03-26 Ed Schonberg <schonberg@adacore.com>
209 * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
210 that the prefix of an attribute is the type of the aggregate being
213 2008-03-26 Javier Miranda <miranda@adacore.com>
214 Robert Dewar <dewar@adacore.com>
216 * exp_attr.adb (N_Pragma): Chars field removed.
217 (Expand_N_Attribute_Reference): If the designated type associated with
218 attribute 'Unrestricted_Access is a subprogram entity then replace it
219 by an E_Subprogram_Type itype.
220 Implement attribute Old
222 * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
224 * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
226 New_Internal_Entity by call to Create_Itype to centralize calls
227 building itypes, ad propagate the convention of the designated
228 subprogram. In addition, disable the machinery cleaning constant
229 indications from all entities in current scope when 'Unrestricted_Access
230 corresponds with a node initializing a dispatch table slot.
231 (Analyze_Attribute): Parameterless attributes returning a string or a
232 type will not be called with improper arguments, so we can remove junk
233 code that was dealing with this case.
234 Implement attribute Old
236 * snames.ads, snames.h, snames.adb: Add entries for attribute Old
237 Add entry for pragma Optimize_Alignment
238 New standard names Sync and Synchronize
240 2008-03-26 Robert Dewar <dewar@adacore.com>
241 Arnaud Charlet <charlet@adacore.com>
243 * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
245 (No_Exception_Propagation_Active): New function.
246 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
247 Update comments, and review all uses of No_Exception_Propagation, which
248 are now correct and in sync with what gigi expects.
250 * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
252 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
253 Update comments, and review all uses of No_Exception_Propagation, which
254 are now correct and in sync with what gigi expects.
256 2008-03-26 Ed Schonberg <schonberg@adacore.com>
258 * sem_ch3.adb (Access_Definition): If the access type is the return
259 result of a protected function, create an itype reference for it
260 because usage will be in an inner scope from the point of declaration.
261 (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
262 OK_To_Reorder_Components.
263 (Make_Index): If an overloaded range includes a universal integer
264 interpretation, resolve to Standard.Integer.
265 (Analyze_Subtype_Indication): Copy Convention to subtype
266 (Check_Abstract_Interfaces): Complete semantic checks on the legality of
267 limited an synchronized progenitors in type declaration and private
268 extension declarations.
270 * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
271 protected subprogram body, determine proper scope from subprogram
274 2008-03-26 Robert Dewar <dewar@adacore.com>
276 * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
279 2008-03-26 Gary Dismukes <dismukes@adacore.com>
281 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
282 of a heap allocator for a limited unconstrained function return when
283 resstriction No_Allocators is active.
284 (Analyze_Allocator): The restriction No_Allocators is now only checked
285 on allocators that have Comes_From_Source set, as per RM-H.4(7).
287 * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
288 of a heap allocator for a limited unconstrained function return when
289 resstriction No_Allocators is active.
290 (Analyze_Allocator): The restriction No_Allocators is now only checked
291 on allocators that have Comes_From_Source set, as per RM-H.4(7).
292 (Has_Fixed_Op): If the name in a function call is Standard."*" and the
293 operands are fixed-point types, the universal_fixed predefined operation
294 is used, regardless of whether the operand type (s) have a primitive
295 operation of the same name.
297 2008-03-26 Javier Miranda <miranda@adacore.com>
299 * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
300 Is_Static_Dispatch_Table
301 (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
302 to Exchange_Declarations to exchange the private and full-view. Bug
303 found working in this issue.
304 (Expand_Dispatching_Call): Propagate the convention of the subprogram
305 to the subprogram pointer type.
306 (Make_Secondary_DT): Replace generation of Prim'Address by
307 Address (Prim'Unrestricted_Access)
308 (Make_DT): Replace generation of Prim'Address by
309 Address (Prim'Unrestricted_Access)
310 (Make_Disp_*_Bodies): When compiling for a restricted profile, use
311 simple call form for single entry.
312 (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
313 tables of predefined primitives).
314 (Make_Secondary_DT): Add support to handle access to dispatch tables of
315 predefined primitives.
316 (Make_Tags): Add entities to Access_Dispatch_Table associated with
317 access to dispatch tables containing predefined primitives.
319 * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
320 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
322 (Register_Predefined_DT_Entry): Updated to handle the new contents
323 of attribute Access_Disp_Table (pointers to dispatch tables containing
324 predefined primitives).
326 * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
328 (Find_Interface_ADT): Updated to skip the new contents of attribute
329 Access_Dispatch_Table (pointers to dispatch tables containing predefined
332 * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
334 (Set_Convention): Use new function Is_Access_Subprogram_Type
335 (Collect_Interfaces_Info): Updated to skip the new contents of attribute
336 Access_Dispatch_Table (pointers to dispatch tables containing predefined
339 * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
340 expanded code avoiding calls to Build_Predef_Prims.
341 (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
342 call to Build_Get_Predefined_Prim_Op_Address.
344 2008-03-26 Javier Miranda <miranda@adacore.com>
346 * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
347 subprogram Corresponding_Runtime_Package to know the runtime package
348 that will provide support to a given protected type.
350 * exp_ch9.adb (Add_Private_Declarations,
351 Build_Protected_Subprogram_Call,
352 Build_Protected_Entry, Build_Simple_Entry_Call,
353 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
354 Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
355 cleanup using the new centralized subprogram Corresponding_Runtime
356 Package to know the runtime package that provides support to
357 a given protected type.
359 2008-03-26 Ed Schonberg <schonberg@adacore.com>
361 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
362 assignment is within the initialization procedure for a packed array,
363 and Initialize_Scalars is enabled, compile right-hand side with checks
364 off, because the value is purposely out of range.
366 2008-03-26 Vincent Celier <celier@adacore.com>
368 * gnatcmd.adb: Add processing for GNAT SYNC
370 * vms_conv.ads: (Command_Type): Add command Sync
372 * vms_conv.adb (Initialize): Add Command_List data for new command Sync
374 * vms_data.ads: Add entries for -gnatw.w
375 Add qualifier for gnatstub --header-file option
376 Add switches for GNAT SYNC
378 * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
379 (Add_Package_Name): New procedure
380 (Package_Name_List): New function
381 (Initialize): Add known package names to the list
382 (Register_New_Package): Add the new package name to the list
384 2008-03-26 Robert Dewar <dewar@adacore.com>
386 * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
387 s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
388 Raise_Exception by "raise with" construct.
390 2008-03-26 Pascal Obry <obry@adacore.com>
392 * Makefile.in: Add proper GNAT.Serial_Communications implementation on
395 * Makefile.rtl: Add g-sercom.o.
397 * impunit.adb: Add g-sercom.adb.
399 * s-crtl.ads (open): New routine.
403 * s-osinte-mingw.ads (BYTE): New type.
405 (OVERLAPPED): Likewise.
406 (GENERIC_READ): New constant.
407 (GENERIC_WRITE): Likewise.
408 (OPEN_EXISTING): Likewise.
409 (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
411 (CreateFile): New routine.
412 (WriteFile): Likewise.
413 (ReadFile): Likewise.
414 (CloseHandle): Move next to the other file oriented routines.
416 * g-sercom.ads: New unit.
418 * g-sercom.adb: Default implementation, calls to this unit will raise
419 a program error exception.
421 * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
422 GNU/Linux implementations.
424 2008-03-26 Robert Dewar <dewar@adacore.com>
426 * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
428 * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
429 unchecked conversion for different conventions only for subprogram
432 2008-03-26 Vincent Celier <celier@adacore.com>
434 * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
435 to check if the specified object file is correct.
437 2008-03-26 Thomas Quinot <quinot@adacore.com>
439 * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
440 Comes_From_Source to exclude primitives from being checked. We want to
441 exclude predefined primitives only, so use the appropriate specific
442 predicate. Also, flag a formal parameter of an anonymous
443 access-to-subprogram type as illegal for a primitive operation of a
444 remote access to class-wide type.
446 2008-03-26 Vincent Celier <celier@adacore.com>
448 * prj-dect.adb (Parse_Package_Declaration): When a package name is not
449 known, check if it may be a missspelling of a known package name. In
450 not verbose, not mode, issue warnings only if the package name is a
451 possible misspelling.
452 In verbose mode, always issue a warning for a not known package name,
453 plus a warning if the name is a misspelling of a known package name.
455 * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
456 limited withs or limited withs are parse during one call.
457 (Parse_Single_Project): Post parse context clause in two passes: non
458 limited withs before current project and limited withs after current
461 * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
462 project with the name With_Name, even if it is only extended indirectly.
463 (Recursive_Process): Process projects in order: first single withs, then
464 current project, then limited withs.
466 * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
467 project with the name With_Name, even if it is only extended indirectly.
469 2008-03-26 Robert Dewar <dewar@adacore.com>
471 * scn.adb (Initialize_Scanner): Format messages belong on standard error
473 2008-03-26 Ed Schonberg <schonberg@adacore.com>
475 * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
476 a generic subprogram that is imported, do not attempt to compile
479 * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
480 imported, do not generate a raise_program_error for the non-existent
482 (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
483 perform minimal name resolution on the generic to avoid spurious
485 (Find_Actual_Type): the designated type of the actual in a child unit
486 may be declared in a parent unit without being an actual.
488 2008-03-26 Robert Dewar <dewar@adacore.com>
490 * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
491 * sinfo.ads, sinfo.adb (From_At_End): New flag
493 2008-03-26 Ed Schonberg <schonberg@adacore.com>
495 * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
496 operations that have an interface parameter.
497 (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
498 Don't treat No_Return call as raise.
500 * sem_disp.adb (Check_Dispatching_Operations): apply check for
501 non-primitive interface primitives to access parameters, not to all
502 parameters of an access type.
504 2008-03-26 Ed Schonberg <schonberg@adacore.com>
506 * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
507 declarations of a parent unit are made visible when compiling a child
508 instance, the parent is not a hidden open scope, even though it may
509 contain other pending instance.
511 * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
512 hidden open scope for some child instance, it does affect the
513 visibility status of other stach entries.
514 (Analyze_Object_Renaming): Check that a class-wide object cannot be
515 renamed as an object of a specific type.
517 2008-03-26 Robert Dewar <dewar@adacore.com>
519 * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
520 recursion and raise SE directly.
521 (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
522 set for formal type for IN mode parameter.
524 2008-03-26 Robert Dewar <dewar@adacore.com>
526 * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
527 (Initialize): New procedure
528 (Output_Warnings_Off_Warnings): New procedure
529 (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
530 (Output_Non_Modifed_In_Out_Warnings): Ditto
531 (Warn_On_Unreferenced_Entity): Ditto
533 2008-03-26 Vincent Celier <celier@adacore.com>
535 * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
538 2008-03-26 Matthew Heaney <heaney@adacore.com>
540 * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
541 a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
542 Marked with clauses as private, and controlled operations as overriding
544 2008-03-26 Robert Dewar <dewar@adacore.com>
546 * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
548 2008-03-26 Robert Dewar <dewar@adacore.com>
550 * back_end.adb, back_end.ads: Minor reformatting
552 * bindgen.adb: Minor clarification of comments
554 * fname.ads: Minor comment fixes
556 * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
557 prj-nmsc.adb, sem_aggr.adb: Minor reformatting
559 * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
560 xsnames.adb: Remove warnings off pragma no longer needed
562 * a-catizo.ads, a-calari.ads, a-calfor.adb,
563 a-calfor.ads: Fix header.
565 2008-03-26 Tristan Gingold <gingold@adacore.com>
567 * init.c: Do not adjust pc for HPARITH on alpha/vms.
569 2008-03-26 Robert Dewar <dewar@adacore.com>
571 * lib-xref.adb: (OK_To_Set_Reference): New function
572 (Generate_Reference): Don't set referenced from occurrence in Warnings,
573 Unmodified, or Unreferenced pragma
575 2008-03-26 Robert Dewar <dewar@adacore.com>
577 * alloc.ads: Add entries for Warnings_Off_Pragmas table
579 2008-03-26 GNAT Script <nobody@adacore.com>
581 * Make-lang.in: Makefile automatically updated
583 2008-03-26 Robert Dewar <dewar@adacore.com>
585 * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
586 par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
587 removed, use Chars (Pragma_Identifier (.. instead, adjustments
588 throughout to accomodate this change.
590 * s-pooglo.ads, s-pooloc.ads: Minor comment updates
592 * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
593 Einfo.Set_Needs_Debug_Info)
595 2008-03-26 Robert Dewar <dewar@adacore.com>
597 * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
598 Add description for the new gnatstub option '--header-file'
599 clarification of -gnatwz/-gnatwZ
600 Add a "Irix-Specific Considerations" section to document the need to
601 set LD_LIBRARY_PATH when using the default shared runtime library.
602 Added documentation for both gcov and gprof.
604 * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
605 messages that are not suppressed when clients are compiled.
606 Add documentation of s-pooglo s-pooloc
607 Document the new GNAT.Serial_Communications API.
608 Add documentation for 'Old attribute
609 Add description of pragma Optimize_Alignment
611 * ug_words: Add entries for -gnatw.w -gnatw.W
613 * usage.adb: Add line for -gnatw.w (warn on warnings off)
615 2008-03-25 Eric Botcazou <ebotcazou@adacore.com>
618 2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
620 * decl.c (maybe_pad_type): Avoid padding an integral type when
621 bumping its alignment is sufficient.
623 2008-03-25 Arnaud Charlet <charlet@adacore.com>
625 * exp_ch6.adb, exp_disp.adb: Update copyright notice.
626 Fix wrong formatting (lines too long)
628 2008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
630 * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
631 a-calend-vms.adb, a-calend.adb, a-calend.ads,
632 a-calfor.adb, a-chahan.ads, a-chtgke.adb,
633 a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
634 a-cohama.ads, a-comlin.ads, a-coorse.adb,
635 a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
636 a-except-2005.ads, a-except.adb, a-except.ads,
637 a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
638 a-exextr.adb, a-filico.ads, a-finali.ads,
639 a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
640 a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
641 a-sequio.ads, a-strbou.ads, a-strfix.adb,
642 checks.adb, exp_ch3.adb, exp_ch4.adb,
643 exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
644 exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
645 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
646 exp_dbug.ads, exp_disp.adb, exp_dist.adb,
647 exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
649 2008-03-24 Robert Dewar <dewar@adacore.com>
651 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
652 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
653 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
654 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
655 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
656 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
657 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
658 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
659 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
660 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
661 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
662 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
663 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
664 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
665 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
666 double spaced if it fits on one line and otherwise single spaced.
668 2008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
670 PR documentation/15479
671 * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
672 (doc/gnat_ugn_unw.texi): ... this, and adjusted.
673 (doc/gnat_ugn.info): Renamed from ...
674 (doc/gnat_ugn_unw.info): ... this.
675 (doc/gnat_ugn.dvi): Renamed from ...
676 (doc/gnat_ugn_unw.dvi): ... this.
677 (doc/gnat_ugn.pdf): Renamed from ...
678 (doc/gnat_ugn_unw.pdf): ... this.
679 (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
681 * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
682 unconditionally to gnat_ugn.info. Fix cross references to the
683 GNAT Reference Manual. Convert links to the GCC, GDB, Emacs,
684 and GNU make manuals to be proper texinfo links.
685 * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
687 2008-03-21 Olivier Hainque <hainque@adacore.com>
689 * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
690 ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
692 2008-03-21 Eric Botcazou <ebotcazou@adacore.com>
694 * trans.c (addressable_p): Add notes on addressability issues.
696 2008-03-21 Olivier Hainque <hainque@adacore.com>
697 Ed Schonberg <schonberg@adacore.com>
699 * trans.c (addressable_p): Accept COND_EXPR when both arms
701 (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
702 (call_to_gnu): Do not use name reference in the error message
703 for a misaligned by_reference_parameter. The actual may be a
706 2008-03-18 Paolo Bonzini <bonzini@gnu.org>
708 * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
710 2008-03-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
712 * gnat_rm.texi (Implementation Defined Characteristics)
713 (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
715 * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
716 (Switches for gnatchop, Installing a library): Likewise.
718 2008-03-10 Eric Botcazou <ebotcazou@adacore.com>
720 * trans.c (emit_range_check): Do not emit the check if the base type
721 of the expression is the type against which its range must be checked.
723 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
725 * decl.c (maybe_pad_type): Use value_factor_p.
727 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
729 * lang.opt (nostdlib): Move around.
730 * misc.c (gnat_handle_option): Fix formatting.
731 (gnat_dwarf_name): Move around.
732 * trans.c (Case_Statement_to_gnu): Fix formatting.
733 (gnat_to_gnu): Likewise.
734 * utils.c (aggregate_type_contains_array_p): Likewise.
735 (create_subprog_decl): Likewise.
737 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
739 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
740 bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
742 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
744 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
745 BIGGEST_ALIGNMENT when capping the alignment of records with
746 strict alignment and size clause.
748 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
750 * lang-specs.h: Pass -gnatwa if -Wall is passed.
751 * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
753 (gnat_post_options): Clear warn_unused_parameter.
755 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
757 * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
758 aligned bit-fields, bumping the alignment of the record type if deemed
760 (value_factor_p): Return false instead of 0.
762 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
764 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
765 for scalar types with small alignment.
767 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
769 * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
770 from that of the front-end's end label.
771 (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
772 from that of the loop label.
774 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
776 * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
777 comment for the packed array type case.
778 * utils.c (build_template): Use a loop to strip padding or
779 containing records for justified modular types.
781 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
783 * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
784 large alignments specified for types.
785 (validate_alignment): Minor cleanup.
787 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
789 * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
790 (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
791 the component for packing, if possible, as well as if a component
792 size clause is specified.
793 <E_Record_Subtype>: For an array type used to implement a packed
794 array, get the component type from the original array type.
795 Try to get a smaller form of the component for packing, if possible,
796 as well as if a component size clause is specified.
797 (round_up_to_align): New function.
798 (make_packable_type): Add in_record parameter.
799 For a padding record, preserve the size. If not in_record and the
800 size is too large for an integral mode, attempt to shrink the size
801 by lowering the alignment.
802 Ditch the padding bits of the last component.
803 Compute sizes and mode manually, and propagate the RM size.
804 Return a BLKmode record type if its size has shrunk.
805 (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
806 Use Original_Array_Type to retrieve the type in case of an error.
807 Adjust call to make_packable_type.
808 (gnat_to_gnu_field): Likewise.
809 (concat_id_with_name): Minor tweak.
810 * trans.c (larger_record_type_p): New predicate.
811 (call_to_gnu): Compute the nominal type of the object only if the
812 parameter is by-reference. Do the conversion actual type -> nominal
813 type if the nominal type is a larger record.
814 (gnat_to_gnu): Do not require integral modes on the source type to
815 avoid the conversion for types with identical names.
816 (addressable_p): Add gnu_type parameter. If it is specified, do not
817 return true if the expression is not addressable in gnu_type.
818 Adjust recursive calls.
819 * utils.c (finish_record_type): Remove dead code.
821 2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
824 * decl.c (maybe_pad_type): Avoid padding an integral type when
825 bumping its alignment is sufficient.
827 2008-03-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
829 * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
830 * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
832 * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
833 gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
834 sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
836 * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
837 system-vms_64.ads: Fix typos in ada source code comments.
838 * sinfo-cn.adb: Remove incomplete sentence.
840 PR documentation/15479
841 * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
843 2008-02-27 Samuel Tardieu <sam@rfc1149.net>
846 * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
848 2008-02-27 Samuel Tardieu <sam@rfc1149.net>
851 * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
852 that underlying type is present.
854 2008-02-26 Tom Tromey <tromey@redhat.com>
856 * misc.c (internal_error_function): Remove test of
858 * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
859 (Sloc_to_locus): Remove old location code.
861 2008-02-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
863 * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
864 `i.e.' by adding comma or `@:' as appropriate.
865 * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
866 plain characters `C', use `@samp{C}'.
867 * gnat_ugn.texi (File Naming Rules, About gnatkr)
868 (Krunching Method): Likewise.
870 * gnat_ugn.texi (Conventions): List environment variables and
871 metasyntactic variables.
872 (Compiling Programs): Fix notation of metasyntactic variables.
873 Add @file where appropriate. Use @file for file extensions,
875 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
876 instead of @file, @env instead of @code.
878 2008-02-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
880 PR documentation/15479
881 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
882 and `...' with `@dots{}' or `@enddots{}'.
884 PR documentation/15479
885 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
886 use @command instead of @code, @option instead of @samp or @code,
887 @code instead of @var, @samp instead of @file.
889 PR documentation/15479
890 * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
891 in Makefile rules, by using `&&' rather than `;'.
893 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
895 PR documentation/15479
896 * gnat_ugn.texi: In non-code, avoid space before colon.
897 (Regular Expressions in gnatfind and gnatxref): Fix indentation.
898 (Examples of gnatxref Usage): Use @command{vi} instead of
900 (Character Set Control): Do not use @code for UTF-8.
901 (Validity Checking): Fix typo "NaNs" instead of "NaN's". Do not
903 * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
905 * gnat_rm.texi, gnat_ugn.texi: Fix typos. Bump copyright years.
907 2008-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
910 * env.c: Add __rtems__ to if defined.
911 * s-osinte-rtems.adb: Add To_Target_Priority. Fix formatting.
912 * s-osinte-rtems.ads: Add To_Target_Priority prototype and
913 PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants. Add
914 pragma Convention as required.
915 * gsocket.h: Make compile in and out of RTS.
916 * Makefile.in: Add system-rtems.ads. Build DEC extensions.
917 Use g-soccon-rtems.ads.
918 * g-soccon-rtems.ads, system-rtems.ads: New files.
920 2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
923 * Make-lang.in (gnat1): Add $(GMPLIBS).
925 2008-01-26 Eric Botcazou <ebotcazou@adacore.com>
927 * decl.c (components_to_record): Improve comment.
929 2008-01-22 Eric Botcazou <ebotcazou@adacore.com>
931 * decl.c (components_to_record): Do not reuse the empty union type
932 if there is a representation clause on the record.
933 * trans.c (addressable_p): Return true for INTEGER_CST.
935 2008-01-21 Eric Botcazou <ebotcazou@adacore.com>
937 * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
938 in pointer arithmetics.
939 * utils2.c (build_allocator): Likewise.
941 2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
943 * utils.c (build_function_stub): Properly build the call expression.
945 2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
947 * decl.c (gnat_to_gnu_entity) <object>: Process renamings
948 before converting the expression to the type of the object.
949 * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
950 Stabilize constructors for special wrapping types.
952 2008-01-13 Eric Botcazou <ebotcazou@adacore.com>
954 * trans.c (call_to_gnu): Invoke the addressable_p predicate only
955 when necessary. Merge some conditional statements. Update comments.
956 Rename unchecked_convert_p local variable to suppress_type_conversion.
957 Do not suppress conversions in the In case.
958 (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
959 into account on non strict-alignment platforms.
961 2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
963 * utils.c (aggregate_type_contains_array_p): New predicate.
964 (create_field_decl): In a packed record, force byte alignment
965 for fields without specified position that contain an array.
967 2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
969 * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
971 2008-01-10 John David Anglin <dave.anglin.@nrc-cnrc.gc.ca>
974 * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
976 (bit_field): New packed boolean type used by cpu_set_t.
977 (cpu_set_t): New type corresponding to the C type with
978 the same name. Note that on the Ada side we use a bit
979 field array for the affinity mask. There is not need
980 for the C macro for setting individual bit.
981 (pthread_setaffinity_np): New imported routine.
983 2008-01-03 Tero Koskinen <tero.koskinen@iki.fi>
986 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
987 on OpenBSD as is done on other BSD systems.
990 * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
991 getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
995 * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
999 * init.c (__gnat_error_handler, __gnat_install_handler,
1000 __gnat_init_float): Define for OpenBSD.
1002 * initialize.c (__gnat_initialize): Define for OpenBSD.
1004 2007-12-27 Samuel Tardieu <sam@rfc1149.net>
1007 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
1008 instead of mktemp() or tmpnam() on NetBSD.
1010 2007-12-23 Eric Botcazou <ebotcazou@adacore.com>
1012 * trans.c (call_to_gnu): Make the temporary for non-addressable
1013 In parameters passed by reference.
1014 (addressable_p): Return true for STRING_CST and CALL_EXPR.
1016 2007-12-19 Robert Dewar <dewar@adacore.com>
1018 * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
1019 Add pragma Warnings (Off) for unassigned IN OUT arguments
1021 * sem_warn.adb (Output_Reference): Suppress messages for internal names
1022 (Check_References): Extensive changes to tune up warnings
1023 (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
1024 (Has_Pragma_Unmodifed_Check_Spec): New function
1025 (Check_References): Implement pragma Unmodified
1026 (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
1028 * par-prag.adb: Dummy entry for pragma Unmodified
1030 * sem_prag.adb: Implement pragma Unmodified
1032 * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
1033 (Proc_Next_Component_Or_Discriminant): Fix typo.
1036 * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
1038 (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
1039 because the former already takes care of discarding the result.
1040 (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
1043 * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
1045 2007-12-19 Eric Botcazou <ebotcazou@adacore.com>
1047 * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
1048 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
1049 system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
1050 system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
1051 system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
1052 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
1053 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
1054 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
1055 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
1056 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
1057 (Dynamic_Trampolines_Used): Delete.
1059 * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
1060 Turn on stack probing mechanism on LynxOS.
1062 2007-12-19 Bob Duff <duff@adacore.com>
1064 * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
1065 the resulting tail recursion by hand. This prevents running out of
1066 memory on deeply nested concatenations, since Field2 is where the left
1067 operand of concatenations is stored.
1068 Fix bug (was returning OK_Orig in some cases). Fix return subtype to
1069 clarify that it can only return OK or Abandon.
1071 * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
1072 operand by iteration, in order to avoid running out of memory on
1073 deeply-nested concatenations. Use the Parent pointer to get back up the
1075 (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
1076 Resolve_Op_Concat_Rest): New procedures split out of
1077 Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
1080 * checks.adb (Remove_Checks): Use Traverse_Proc instead of
1081 Traverse_Func, because the former already takes care of discarding the
1084 * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
1085 because the former already takes care of discarding the result.
1086 (Remove_Warning_Messages): Use appropriate subtype for Status and
1089 2007-12-19 Ed Schonberg <schonberg@adacore.com>
1091 * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
1092 discriminants forces expansion of the aggregate into assignments.
1093 (Init_Record_Controller): If the type of the aggregate is untagged and
1094 is not inherently limited, the record controller is not limited either.
1096 2007-12-19 Robert Dewar <dewar@adacore.com>
1098 * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
1099 handling compile time known size of record or array (case of front end
1100 layout active, e.g. in GNAAMP).
1102 2007-12-19 Javier Miranda <miranda@adacore.com>
1104 * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
1105 that forces the construction of static dispatch tables in case of
1108 2007-12-19 Robert Dewar <dewar@adacore.com>
1110 * exp_ch9.adb (Null_Statements): Moved to library level
1111 (Trivial_Accept_OK): New function
1112 (Expand_Accept_Declaration): Use Trivial_Accept_OK
1113 (Expand_N_Accept_Statement): Use Trivial_Accept_OK
1115 2007-12-19 Robert Dewar <dewar@adacore.com>
1117 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
1118 in complex case where array is Volatile.
1120 2007-12-19 Ed Schonberg <schonberg@adacore.com>
1122 * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
1123 properly the Ada2005 rules concerning when the current instance of a
1124 record type is aliased.
1126 2007-12-19 Ed Schonberg <schonberg@adacore.com>
1128 * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
1130 (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
1132 (P_Variant_Part): Cleaner patch for parenthesized discriminant
1134 2007-12-19 Vincent Celier <celier@adacore.com>
1136 * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
1137 package is not known
1139 * prj-attr.ads (Unknown_Package): New constant
1140 Do not crash when an unknown package is in several projects
1142 * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
1145 * prj-nmsc.adb (Check): Remove obsolete code related to no longer
1146 existing package Language_Processing.
1148 2007-12-19 Ed Schonberg <schonberg@adacore.com>
1149 Gary Dismukes <dismukes@adacore.com>
1150 Samuel Tardieu <sam@rfc1149.net>
1152 PR ada/15803, ada/15805
1153 * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
1154 illegal access subtypes when there is a constrained partial view.
1155 (Check_For_Premature_Usage): New procedure inside
1156 Access_Subprogram_Declaration for checking that an access-to-subprogram
1157 type doesn't reference its own name within any formal parameters or
1158 result type (including within nested anonymous access types).
1159 (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
1160 (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
1161 context is an access_to_variable, the expression cannot be an
1164 2007-12-19 Bob Duff <duff@adacore.com>
1166 * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
1167 (Analyze_Concatenation): Use iteration instead of recursion in order
1168 to avoid running out of stack space for deeply nested concatenations.
1170 2007-12-19 Ed Schonberg <schonberg@adacore.com>
1171 Gary Dismukes <dismukes@adacore.com>
1173 * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
1174 whose renamed entity is a subprogram that requires overriding.
1175 (Premature_Usage): Test for the case of N_Full_Type_Declaration when
1176 issuing an error for premature usage and issue a message that says
1177 'type' rather than 'object'.
1179 2007-12-19 Gary Dismukes <dismukes@adacore.com>
1182 * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
1183 presence of a statically tagged operand (Present (Static_Tag)) with
1184 test for Indeterm_Ancestor_Call when determining whether to propagate
1185 the static tag to tag-indeterminate operands (which forces dispatching
1187 (Check_Controlling_Formals): Ada2005, access parameters can have
1189 (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
1190 not insert subprogram in list of primitive operations if already there.
1192 2007-12-19 Tristan Gingold <gingold@adacore.com>
1194 * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
1197 2007-12-19 Thomas Quinot <quinot@adacore.com>
1199 Part of PR ada/33688
1200 * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
1201 datagram info on Linux.
1203 2007-12-19 Vincent Celier <celier@adacore.com>
1205 * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
1206 that the source path name is always found in the dependencies.
1208 2007-12-19 Robert Dewar <dewar@adacore.com>
1210 * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
1211 Fix name of Wide_Wide_Latin_1/9 file names
1212 Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
1213 Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
1214 Add missing documentation for Ada.Command_Line.Response_File
1215 Update list of warning letters for Warnings pragma
1216 Add documentation for pragma Unmodified
1218 2007-12-19 Samuel Tardieu <sam@rfc1149.net>
1220 * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
1222 2007-12-17 Arnaud Charlet <charlet@adacore.com>
1224 * s-vxwork-alpha.ads: Removed, no longer used.
1226 2007-12-15 Jakub Jelinek <jakub@redhat.com>
1228 * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
1230 2007-12-13 Samuel Tardieu <sam@rfc1149.net>
1233 * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
1234 mlib-tgt-specific.adb.
1236 2007-12-13 Bob Duff <duff@adacore.com>
1238 * trans.c (Attribute_to_gnu): Check for violations of the
1239 No_Implicit_Dynamic_Code restriction. This checking used to be done in
1240 the front end, but is moved here so we can make it more accurate.
1242 2007-12-13 Pascal Obry <obry@adacore.com>
1244 * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
1245 version is provided for older GNU/Linux distribution not
1246 supporting thread affinity sets.
1248 * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
1250 (bit_field): New packed boolean type used by cpu_set_t.
1251 (cpu_set_t): New type corresponding to the C type with
1252 the same name. Note that on the Ada side we use a bit
1253 field array for the affinity mask. There is not need
1254 for the C macro for setting individual bit.
1255 (pthread_setaffinity_np): New imported routine.
1257 * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
1259 (Create_Task): Set the processor affinity mask if information
1262 * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
1264 2007-12-13 Robert Dewar <dewar@adacore.com>
1266 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
1267 s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
1268 s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
1269 s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
1270 s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
1271 s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
1272 s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
1273 i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
1274 for subprogram pointers.
1276 * g-ctrl_c.adb: New file.
1278 * g-ctrl_c.ads (Install_Handler): New body.
1280 * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
1281 instead of obsolete function Is_Always_Inlined.
1282 (Freeze_Entity): check for tagged type in imported C subprogram
1283 (Freeze_Entity): check for 8-bit boolean in imported C subprogram
1284 (Freeze_Entity): check for convention Ada subprogram pointer in
1285 imported C subprogram.
1286 (Freeze_Fixed_Point_Type): In the case of a base type where the low
1287 bound would be chopped off and go from negative to zero, force
1288 Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
1289 bound) so that the size computation for the base type will take
1290 negative values into account.
1292 2007-12-13 Eric Botcazou <ebotcazou@adacore.com>
1293 Bob Duff <duff@adacore.com>
1294 Tristan Gingold <gingold@adacore.com>
1296 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
1297 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
1298 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
1299 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
1300 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
1301 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
1302 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
1303 system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
1304 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
1305 system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
1306 system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
1307 (Always_Compatible_Rep): New flag to control trampolines globally.
1308 (Dynamic_Trampolines_Used): New flag for implementing the
1309 No_Implicit_Dynamic_Code restriction more correctly (not yet used,
1310 and not yet set correctly for some targets).
1312 * s-taprop-vxworks.adb: Use stack limit method of stack checking.
1313 Simply indirectly call s-stchop when a task is created.
1316 New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
1317 appears as an argument (entries A) in an ALI file.
1319 * fe.h (Stack_Check_Limits): Declare new target parameter.
1320 (Check_Implicit_Dynamic_Code_Allowed): New procedure.
1322 * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
1323 This variable is declared in C to be sure not subject to elaboration
1325 (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
1328 * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
1329 (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
1331 * s-stchop.ads: Add comments.
1333 * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
1334 limit method of stack checking.
1336 * s-stchop-limit.ads: New file.
1338 2007-12-13 Robert Dewar <dewar@adacore.com>
1340 * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
1341 a-cihama.adb, g-awk.adb,
1342 s-inmaop-posix.adb: Update handling of assigned value/unreferenced
1345 * exp_smem.adb: Update handling of assigned value/unreferenced warnings
1347 * sem.adb: Update handling of assigned value/unreferenced warnings
1349 * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
1351 * lib-xref.ads: Improve documentation for k xref type
1354 Update handling of assigned value/unreferenced warnings
1355 (Generate_Reference): Warning for reference to entity for which a
1356 pragma Unreferenced has been given should be unconditional.
1357 If the entity is a discriminal, mark the original
1358 discriminant as referenced.
1360 * sem_warn.ads, sem_warn.adb
1361 (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
1362 no entities referenced in package
1363 (Check_One_Unit): Don't give message about no entities referenced in
1364 a package if a pragma Unreferenced has appeared.
1365 Handle new warning flag -gnatw.a/-gnatw.A
1366 Update handling of assigned value/unreferenced warnings
1368 * atree.h: Add flags up to Flag247
1369 (Flag231): New macro.
1371 2007-12-13 Jose Ruiz <ruiz@adacore.com>
1373 * adaint.h: (__gnat_plist_init): Not defined for RTX.
1375 * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
1378 * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
1379 (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
1380 EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
1381 GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
1384 Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
1386 * sysdep.c (winflush_function for RTX): Procedure that does nothing
1387 since we only have problems with Windows 95/98, which are not
1389 (__gnat_ttyname): Return the empty string on Nucleus, just as
1392 2007-12-13 Robert Dewar <dewar@adacore.com>
1394 * a-textio.adb, a-textio.ads:
1395 Extensive changes to private part for wide character encoding
1397 * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
1398 (Look_Ahead): Fix mishandling of encoded sequences
1399 Move declaration of Wch_Con to private part (should not be visible)
1401 * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
1402 UTF-8. Probably this is never used, but if it is, brackets is
1405 * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
1406 setting wide character encoding for no main program case and when
1407 encoding is specified using -W?
1408 Initialize stack limit of environment task if stack limit method of
1409 stack checking is enabled.
1410 (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
1411 (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
1412 (Get_Main_Unit_Name): New function.
1413 (Gen_Adainit_Ada): Add call to main program for .NET when needed.
1414 (Gen_Output_File): Set Bind_Main_Program to True for .NET
1416 * bindusg.adb: Add line for -Wx switch
1418 * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
1420 Add new useful constant WC_Longest_Sequences
1422 * switch-b.adb: Clean up handling of -Wx switch
1423 For -gnatWx, set Wide_Character_Encoding_Method_Specified
1425 * switch-c.adb: -gnatg activates warning on assertion errors
1426 For -gnatWx, set Wide_Character_Encoding_Method_Specified
1428 * s-wchcon.adb: (Is_Start_Of_Encoding): New function
1430 2007-12-13 Robert Dewar <dewar@adacore.com>
1431 Ed Schonberg <schonberg@adacore.com>
1433 * a-ngcoty.adb: New pragma Fast_Math
1435 * opt.adb: New pragma Fast_Math
1438 Add Implemented_By_Entry to the list of pragmas which do not require any
1440 (Favor_Top_Level): New pragma.
1441 New pragma Fast_Math
1443 * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
1444 (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
1445 Expand_Allocator_Expression): Take into account VM_Target
1446 (Expand_Attribute, case 'Identity): Handle properly the case where
1447 the prefix is a task interface.
1448 New pragma Fast_Math
1450 * par.adb (Next_Token_Is): New function
1451 (P_Pragma): Add Skipping parameter
1452 (U_Left_Paren): New procedure
1453 (U_Right_Paren): New procedure
1454 New pragma Fast_Math
1456 * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
1458 New pragma Fast_Math
1460 * sem_prag.adb: Add significance value to table Sig_Flag for pragma
1461 Implemented_By_Entry.
1462 (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
1463 (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
1464 items, since it can apply to more than one overloadable entity. Set
1465 new flag Has_Pragma_Inline_Always for Inline_Always case.
1466 (Analyze_Pragma, case Complex_Representation): Improve error message.
1467 (Analyze_Pragma, case Assert): When assertions are disabled build the
1468 rewritten code with Sloc of expression rather than pragma, so new
1469 warning about failing is not deleted.
1470 (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
1471 protected types and update error message to reflect that. Test whether
1472 the protected type is allowed for the pragma (an error is issued if the
1473 type has any entries, or components that do not have preelaborable
1475 New pragma Fast_Math
1476 (Analyze_Pragma, case No_Return): Handle generic instance
1478 * snames.h, snames.ads, snames.adb:
1479 Add new predefined name for interface primitive _Disp_Requeue.
1480 New pragma Fast_Math
1482 * a-tags.ads, a-tags.adb: New calling sequence for
1483 String_To_Wide_[Wide_]String
1484 (Secondary_Tag): New subprogram.
1486 * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
1488 New calling sequence for String_To_Wide_[Wide_]String
1489 (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
1490 the use of the secondary stack for image routines.
1492 * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
1493 calling sequence for String_To_Wide_[Wide_]String
1495 * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
1497 (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
1498 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1500 * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
1501 (P_Formal_Part): Use Skipping parameter in P_Pragma call
1502 to improve error recovery
1504 * par-util.adb (Next_Token_Is): New function
1505 (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
1507 * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
1508 semicolon if missing
1509 (P_Pragma): Implement new Skipping parameter
1510 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1511 Fix location of flag for unrecognized pragma message
1513 * par-tchk.adb (U_Left_Paren): New procedure
1514 (U_Right_Paren): New procedure
1516 2007-12-13 Geert Bosch <bosch@adacore.com>
1519 (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
1520 the second or later Scaled_Divide would omit leading zeroes,
1521 resulting in too few digits produced and a Layout_Error as result.
1522 (Put): Initialize Pos.
1524 2007-12-13 Robert Dewar <dewar@adacore.com>
1526 atree.ads, atree.adb (Flag231..Flag247): New functions
1527 (Set_Flag231..Set_Flag247): New procedures
1528 (Basic_Set_Convention): Rename Set_Convention to be
1529 Basic_Set_Convention
1530 (Nkind_In): New functions
1531 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1533 * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
1535 of obsolete function Is_Always_Inlined
1536 (Register_Predefined_DT_Entry): Initialize slots of the second
1537 secondary dispatch table.
1538 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1539 (Expand_N_Function_Call): Remove special provision for stack checking.
1541 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
1542 Include _Disp_Requeue in the list of predefined operations.
1543 (Find_Interface_ADT): Modified to fulfill the new specification.
1544 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1546 * par-ch4.adb, nlists.ads, nlists.adb:
1547 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1549 * sinfo.ads, sinfo.adb: (Nkind_In): New functions
1550 Fix location of flag for unrecognized pragma message
1552 * sem_ch7.adb: Use Nkind_In
1554 2007-12-13 Vincent Celier <celier@adacore.com>
1557 Indicate what flags are used by the Project Manager, gprbuild and
1559 (Opt.Follow_Links_For_Dirs): New flag
1560 (Warn_On_Assertion_Failure): New flag
1561 (Wide_Character_Encoding_Method_Specified): New flag
1562 (Suppress_All_Inlining): New switch set by -fno-inline
1563 (Real_VMS_Target): New flag
1564 New pragma Fast_Math
1566 2007-12-13 Robert Dewar <dewar@adacore.com>
1568 * back_end.adb: Recognize -fno-inline
1570 2007-12-13 Robert Dewar <dewar@adacore.com>
1572 * checks.adb: Fix optimization problem with short-circuited form
1574 2007-12-13 Bob Duff <duff@adacore.com>
1576 * clean.adb (Usage): Add line for -aP
1577 (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
1578 with a parameter "procedure Usage", instead of passing a pointer to a
1579 procedure. This is to eliminate trampolines (since the Usage procedure
1580 is often nested in a main procedure, and it would be inconvenient to
1583 * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
1584 to be generic, with a parameter "procedure Callback (...)", instead of
1585 passing a pointer to a procedure. This is to eliminate trampolines
1586 (since the Callback procedure is usually nested).
1588 * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
1589 gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
1590 (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
1592 * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
1593 Use the generic Heap_Sort_G instead of Heap_Sort_A.
1595 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
1597 * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
1598 (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
1599 (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
1600 (Renamed_In_Spec): New flag
1601 (Has_Pragma_Inline_Always): New flag
1602 Add missing doc for pragma Obsolescent_Warning
1603 Add missing doc for 17 additional unused flags (230-247)
1604 (Is_Derived_Type): Remove condition "not Is_Generic_Type".
1605 Alphabetize with clauses.
1606 Separate Is_Thunk and Has_Thunks flags
1607 (Write_Entity_Flags): Add forgotten entry for Has_Thunks
1608 (Related_Interface): Renamed to Related_Type.
1609 (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
1610 (Set_Is_Flag): Restrict the assertion.
1612 2007-12-13 Vincent Celier <celier@adacore.com>
1614 * errout.adb (Output_Source_Line): Do not keep a trailing space after
1615 the source line number if the source line is empty.
1617 2007-12-13 Geert Bosch <bosch@adacore.com>
1619 * eval_fat.adb (Decompose_Int): Handle argument of zero.
1620 (Compose): Remove special casing of zero.
1621 (Exponent): Likewise.
1622 (Fraction): Likewise.
1623 (Machine): Likewise.
1624 (Decompose): Update comment.
1626 2007-12-13 Ed Schonberg <schonberg@adacore.com>
1628 * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
1629 limited ancestor part, initialize controllers of enclosing record
1630 before expanding ancestor aggregate.
1631 (Gen_Assign): If a component of the aggregate is box-initialized, add
1632 code to call Initialize if the component is controlled, and explicit
1633 assignment of null if the component is an access type.
1635 Handle properly aggregates for limited types that appear in object
1636 declarations when the aggregate contains controlled values such as
1638 When expanding limited aggregates into individual components, do not
1639 call Adjust on controlled components that are limited.
1641 2007-12-13 Ed Schonberg <schonberg@adacore.com>
1643 * expander.adb: Take into account N_Subprogram_Renaming_Declaration
1645 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
1647 * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
1648 predefined primitive _Disp_Requeue.
1649 (Make_Predefined_Primitive_Specs): Create the spec for predefined
1650 primitive _Disp_Requeue.
1651 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
1652 type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
1653 (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
1654 an interface type. In case of limited interfaces we now declare all the
1655 predefined primitives associated with synchronized interfaces as
1657 (Predef_Spec_Or_Body): For interface types generate abstract subprogram
1659 (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
1660 tagged type is an interface type and there is no user-defined equality
1662 Add also bodies of predefined primitives associated with synchronized
1664 (Freeze_Record_Type): Do not build bodies of predefined primitives of
1665 interface types because they are now defined abstract.
1666 Add missing documentation.
1667 (Expand_Record_Controller): Update occurrence of Related_Interface
1669 (Build_Offset_To_Top_Functions): Do nothing in case of VM.
1670 (Expand_N_Object_Declaration): Take into account VM_Target when handling
1671 class wide interface object declaration.
1672 (Expand_Previous_Access_Type): Do not create a duplicate master entity
1673 if the access type already has one.
1674 (Expand_N_Object_Declaration): Defend against attempt to validity check
1675 generic types. Noticed for -gnatVcf specified with previous errors.
1677 2007-12-13 Arnaud Charlet <charlet@adacore.com>
1679 * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
1680 Expand_Allocator_Expression): Take into account VM_Target
1682 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
1683 secondary stack when VM_Target /= No_VM
1685 2007-12-13 Javier Miranda <miranda@adacore.com>
1686 Ed Schonberg <schonberg@adacore.com>
1688 * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
1689 Is_Complation_Unit by Is_Library_Level_Entity in the code
1690 that decides if the static dispatch tables need to be built.
1691 (Wrap_Transient_Declaration): Do not generate a finalization call if
1692 this is a renaming declaration and the renamed object is a component
1693 of a controlled type.
1695 2007-12-13 Gary Dismukes <dismukes@adacore.com>
1697 * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
1698 In the case where the renamed subprogram is a dereference, call
1699 Force_Evaluation on the prefix.
1701 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
1702 Ed Schonberg <schonberg@adacore.com>
1704 * exp_ch9.adb (Expand_N_Asynchronous_Select,
1705 Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
1706 comment reformatting.
1707 (Set_Privals): Inherit aliased flag from formal. From code reading.
1708 (Build_Simple_Entry_Call): Out parameters of an access type are passed
1709 by copy and initialized from the actual. This includes entry parameters.
1710 (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
1711 and Ada 2005 models of requeue.
1712 (Null_Statements): Still connsider do-end block null if it contains
1713 Unreferenced and Warnings pragmas.
1714 (Expand_N_Accept_Statement): Do not optimize away null do end if
1715 dispatching policy is other than defaulted.
1716 (Expand_N_Timed_Entry_Call): When the triggering statement is a
1717 dispatching call, manually analyze the delay statement.
1718 (Find_Parameter_Type): Move subprogram to Sem_Util.
1720 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
1721 Javier Miranda <miranda@adacore.com>
1723 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
1724 _Disp_Requeue occupies dispatch table slot number 15. Move
1725 _Disp_Timed_Select to slot 16.
1726 (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
1727 generate the spec and body of _Disp_Reqeueue.
1728 (Make_DT): Build and initialize the second dispatch table.
1729 Handle initialization of RC_Offset when the parent
1730 is a private type with variable size components.
1731 (Make_Secondary_DT): Complete documentation. Add support to
1732 initialize the second dispatch table.
1733 (Make_Tags): Generate the tag of the second dispatch table.
1734 (Register_Primitive): Add support to register primitives in the
1735 second dispatch table.
1737 2007-12-13 Pascal Obry <obry@adacore.com>
1739 * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
1740 Windows. This signal is used by gnatmake to kill child processes for
1743 2007-12-13 Javier Miranda <miranda@adacore.com>
1745 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
1746 support for generic dispatching constructor calls in which we need to
1747 locate the tag of a secondary dispatch table associated with an
1748 interface type to properly dispatch the call.
1749 (Expand_N_Attribute_Reference [case Address],
1750 Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
1751 handling of VM targets.
1753 2007-12-13 Robert Dewar <dewar@adacore.com>
1754 Ed Schonberg <schonberg@adacore.com>
1756 * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
1759 * ug_words: Add entries for -gnatw.a -gnatw.A
1761 * sem_res.adb (Set_String_Literal_Subtype): If the context of the
1762 literal is a subtype with non-static constraints, use the base type of
1763 the context as the base of the string subtype, to prevent type
1765 (Resolve_Actuals): If the actual is an entity name, generate a
1766 reference before the actual is resolved and expanded, to prevent
1767 spurious warnings on formals of enclosing protected operations.
1768 (Analyze_Overloaded_Selected_Component): If type of prefix if
1769 class-wide, use visible components of base type.
1770 (Resolve_Selected_Component): Ditto.
1771 (Resolve_Short_Circuit): Detect case of pragma Assert argument
1772 evaluating to False, and issue warning message.
1774 * usage.adb: Add lines for -gnatw.a and -gnatw.A
1776 2007-12-13 Emmanuel Briot <briot@adacore.com>
1778 * g-calend.ads (No_Time): New constant, to represent an uninitialized
1781 * g-catiio.ads, g-catiio.adb (Value): Added support for more date
1783 (Month_Name_To_Number): New subprogram
1785 * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
1786 letter to upper-case.
1788 2007-12-13 Robert Dewar <dewar@adacore.com>
1789 Ed Schonberg <schonberg@adacore.com>
1791 * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
1793 * layout.adb (Resolve_Attribute, case 'Access): If designated type of
1794 context is a limited view, use non-limited view when available. If the
1795 non-limited view is an unconstrained array, this enforces consistency
1796 requirements in 3.10.2 (27).
1797 (Layout_Type): For an access type whose designated type is a limited
1798 view, examine its declaration to determine if it is an unconstrained
1799 array, and size the access type accordingly.
1800 (Layout_Type): Do not force 32-bits for convention c subprogram
1801 pointers in -gnatdm mode, only if real vms target.
1803 * sem_attr.adb (Analyze_Access_Attribute): Use new flag
1804 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
1805 (Analyze_Access_Attribute,Attribute_Address): Remove checks for
1806 violations of the No_Implicit_Dynamic_Code restriction.
1807 (Resolve_Attribute, case 'Access): If designated type of context is a
1808 limited view, use non-limited view when available. If the non-limited
1809 view is an unconstrained array, this enforces consistency requirements
1811 (Layout_Type): For an access type whose designated type is a limited
1812 view, examine its declaration to determine if it is an unconstrained
1813 array, and size the access type accordingly.
1815 2007-12-13 Vincent Celier <celier@adacore.com>
1817 * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
1818 object directory of main project does not exist.
1819 On VMS, correctly set then environment variable for the source
1822 2007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
1824 * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
1825 set to True this procedure will create the value of type REG_EXPAND_SZ.
1826 It was only possible to create REG_SZ values before.
1828 2007-12-13 Robert Dewar <dewar@adacore.com>
1830 * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
1831 g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
1832 namet-sp.adb, namet-sp.ads: New files.
1834 * g-speche.adb: Use generic routine in g-spchge
1836 * s-wchcnv.ads, s-wchcnv.adb:
1837 Minor code cleanup (make formal type consistent with spec)
1839 * namet.adb: Update comments.
1841 * par-endh.adb (Evaluate_End_Entry): Use new
1842 Namet.Sp.Is_Bad_Spelling_Of function
1844 * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
1846 * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
1847 ancestor is an access type initialized with a box, set its type
1848 explicitly, for use in subsequent expansion.
1849 (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
1852 2007-12-13 Robert Dewar <dewar@adacore.com>
1854 * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
1857 2007-12-13 Robert Dewar <dewar@adacore.com>
1859 * inline.adb (Back_End_Cannot_Inline): Use new flag
1860 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
1862 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
1863 Has_Pragma_Inline_Always instead.
1864 of obsolete function Is_Always_Inlined
1865 (Build_Body_To_Inline): Same change
1866 (Cannot_Inline): Same change
1867 Do not give warning on exception raise in No_Return function
1869 * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
1870 component has two inconsistent component clauses in the same record
1871 representation clause, favor the message that complains about
1872 duplication rather than inconsistency.
1874 (Record_Representation_Clause): Do not warn on missing component
1875 clauses for inherited components of a type extension.
1876 (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
1877 an overloadable item if it is a pragma that can apply to multiple
1878 overloadable entities (e.g. Inline) because a pragma cannot be on
1879 more than one chain at a time.
1880 (Validate_Unchecked_Conversion): Add code to warn on unchecked
1881 conversion where one of the operands is Ada.Calendar.Time.
1882 (Analyze_Attribute_Definition_Clause): Fix typo in error message.
1883 For now, ignore Component_Size clause on VM targets, as done for
1886 2007-12-13 Emmanuel Briot <briot@adacore.com>
1887 Vincent Celier <celier@adacore.com>
1889 * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
1891 (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
1893 (Hash): Move instantiation of System.HTable.Hash from spec to body
1894 (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
1895 systems, since we do not need to recompute the Name_Id for the canonical
1897 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
1898 as a parameter. This parameter is in fact always "ada" in all calls, and
1899 we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
1900 while loading a project with 40000 files
1902 * prj-attr.adb: Fix name of attribute Dependency_Driver
1903 Change the kind of indexing for attribute Root
1905 * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
1906 variables already declared, in case constructions.
1908 * prj-env.adb (Initialize): Reset Current_Source_Path_File and
1909 Current_Object_Path_File to No_Path.
1911 * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
1912 ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
1914 * prj-makr.adb: new parameter Current_Dir
1916 * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
1917 Ada sources when language is not Ada.
1918 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
1919 (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
1920 (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
1921 (Locate_Directory): Always resolve links when computing Canonical_Path
1922 (Look_For_Sources): Make sure that Name_Buffer contains the file name
1923 in Source_Files before checking for the presence of a directory
1925 Optimize calls to Name_Find when on case sensitive systems.
1926 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
1928 (Prj.Nmsc.Check): new parameter Current_Dir
1929 (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
1930 cannot be empty and the spec suffix cannot be the same as the body or
1932 (Get_Unit): When a file name can be of several unit kinds (spec, body or
1933 subunit), always consider the longest suffix.
1934 (Check_Configuration): Do not issue an error if there is no compiler
1935 for a language. Just issue a warning and ignore the sources for the
1937 (Check_Library_Attributes): Only check Library_Dir if Library_Name is
1939 (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
1940 (Unit_Exceptions): New hash table
1941 (Check_Naming_Schemes): Check if a file that could be a unit because of
1942 the naming scheme is not in fact a source because there is an exception
1944 (Look_For_Sources): Put the unit exceptions in hash table
1946 (Get_Unit_Exceptions): Give initial value No_Source to local variable
1947 Other_Part to avoid exception when code is compiled with validity
1949 (Get_Sources_From_File): Check that there is no directory information
1951 (Look_For_Sources): Check that there is no directory information in the
1952 list of file names in Source_Files.
1953 (Look_For_Sources): In multi-language mode, do not allow exception file
1954 names that are excluded.
1955 (Excluded_Sources_Htable): New hash table
1956 (Search_Directories.Check_File): New procedure to simplify
1958 (Search_Directories): Do not consider excluded sources
1959 (Look_For_Sources): Populate Excluded_Sources_Htable before calling
1961 (Get_Exceptions): Set component Lang_Kind of Source_Data
1962 (Get_Unit_Exceptions): Ditto
1963 (Search_Directories): Ditto
1965 * prj-pars.adb: new parameter Current_Dir
1967 * prj-part.ads, prj-part.adb:
1968 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
1969 (Opt.Follow_Links_For_Dirs): New flag
1970 (Project_Path_Name_Of): Cache information returned by this routine as
1971 Locate_Regular_File is a costly routine. The code to output a log
1972 information and the effective call to Locate_Regular_File is now
1973 factorized into a routine (code clean-up).
1974 (Parse, Parse_Single_Project): new parameter Current_Dir
1975 When main project file cannot be found, indicate in the error
1976 message the project path that was used to do the search.
1978 * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
1979 (Prj.Proc.Process*): new parameter Current_Dir
1981 * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
1983 2007-12-13 Bob Duff <duff@adacore.com>
1985 * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
1986 procedure to be called from the back end to check the
1987 No_Implicit_Dynamic_Code restriction.
1989 2007-12-13 Arnaud Charlet <charlet@adacore.com>
1991 * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
1992 Fixes another case where RTE_Available_Call was ignored instead of being
1996 * rtsfind.ads: Add new entries.
1998 2007-12-13 Robert Dewar <dewar@adacore.com>
2000 * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
2001 g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
2003 * scn.adb: Implement BOM recognition
2005 2007-12-13 Thomas Quinot <quinot@adacore.com>
2006 Ed Schonberg <schonberg@adacore.com>
2008 * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
2009 subprogram body that acts as its own spec may not have a non-private
2010 WITH clause on a private sibling.
2011 (Build_Unit_Name): If the parent unit in the name in a with_clause on a
2012 child unit is a renaming, create an implicit with_clause on that
2013 parent, and not on the unit it renames, to prevent visibility errors
2014 in the current unit.
2016 2007-12-13 Ed Schonberg <schonberg@adacore.com>
2018 * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
2019 renaming declaration, use the Slocs of the formal parameters from the
2020 declaration of the formal subprogram when creating the formal parameter
2021 entities in the renaming declaration.
2022 (Analyze_Formal_Type_Declaration): Change the placement of the error
2023 message concerning illegal known discriminants. It is now posted on the
2024 type rather than on the first discriminant. This change ensures early
2026 (Freeze_Subprogram_Body): If the generic subprogram is nested within
2027 the package body that contains the instance, do not generate an
2028 out-of-place freeze node for the enclosing package.
2029 (Collect_Previous_Instantiations): Ignore internal instantiations
2030 generated for formal packages.
2031 (Validate_Derived_Type_Instance): Add a check that when a formal
2032 derived type is Known_To_Have_Preelab_Init then the actual type must
2033 have preelaborable initialization, and issue an error when this
2034 condition is violated.
2036 2007-12-13 Robert Dewar <dewar@adacore.com>
2038 * s-imenne.adb, s-imenne.ads: New files.
2040 * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
2041 s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
2042 s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
2043 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
2044 s-imgwch.ads: New calling sequence for Image routines to avoid sec
2047 2007-12-13 Javier Miranda <miranda@adacore.com>
2048 Ed Schonberg <schonberg@adacore.com>
2050 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
2051 generation of spurious error if parent is an interface type; caused
2052 because predefined primitive bodies will be generated later by
2054 (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
2056 (Derive_Subprograms): Handle derivations of predefined primitives
2057 after all the user-defined primitives to ensure that they are
2058 found in proper order in instantiations.
2059 (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
2060 of Related_Interface to Related_Type.
2061 (Record_Type_Declaration): Minor reordering of calls to decorate the
2062 Tag component because the entity must have set its Ekind attribute
2063 before setting its Is_Tag attribute.
2064 (Analyze_Subtype_Declaration): In the case of subtypes with
2065 Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
2067 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
2068 Ed Schonberg <schonberg@adacore.com>
2070 * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
2071 statement to the list of contexts where a selected component with a
2072 concurrent tagged type prefix should yield a primitive operation.
2073 (Find_Primitive_Operation): Handle case of class-wide types.
2074 (Analyze_Overloaded_Selected_Component): If type of prefix is
2075 class-wide, use visible components of base type.
2076 (Resolve_Selected_Component): Ditto.
2077 (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
2078 formal of a generic subprogram. find candidate interpretations by
2079 scanning the list of generic formal declarations.:
2080 (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
2081 type from a limited_with_clause, and the full view is available, use it
2082 for subsequent semantic checks.
2083 (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
2084 (Find_Primitive_Operation): New function.
2085 (Analyze_Overloaded_Selected_Component): insert explicit dereference
2086 only once if several interpretations of the prefix yield an access type.
2087 (Try_Object_Operation): Code and comment cleanup.
2088 (Analyze_Selected_Component): Reorder local variables. Minot comment and
2089 code reformatting. When the type of the prefix is tagged concurrent, a
2090 correct interpretation might be available in the primitive and
2091 class-wide operations of the type.
2093 2007-12-13 Robert Dewar <dewar@adacore.com>
2094 Ed Schonberg <schonberg@adacore.com>
2096 * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
2097 renaming entry as subprogram using rename-as-body if subprogram spec
2099 (Use_One_Type): The clause is legal on an access type whose designated
2100 type has a limited view.
2101 (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
2102 (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
2103 (Analyze_Renamed_Primitive_Operation): new procedure to determine the
2104 operation denoted by a selected component.
2105 (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
2106 it can be an expression, possibly overloaded, that returns a task or
2109 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
2110 Gary Dismukes <dismukes@adacore.com>
2112 * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
2113 requeue statement is dispatching. Do not emit an error when the name is
2114 not an entry and the context is a dispatching select. Add code to
2115 perform subtype conformance between the formals of the current entry
2116 and those of the target interface primitive.
2117 (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
2118 Timed_Entry_Call): Analyze the triggering statement as the first step of
2119 the processing. If this is a dispatching select, postpone the analysis
2120 of all select statements until the Expander transforms the select. This
2121 approach avoids generating duplicate identifiers after the Expander has
2122 replicated some of the select statements. In case the Expander is
2123 disabled, perform regular analysis.
2124 (Check_Triggering_Statement): New routine.
2125 (Analyze_Requeue): Exclude any interpretations that are not entries when
2126 checking overloaded names in a requeue. Also test type conformance for
2127 matching interpretations rather than requiring subtype conformance at
2128 that point to conform with the RM's resolution rule for requeues.
2130 2007-12-13 Ed Schonberg <schonberg@adacore.com>
2132 * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
2133 inherited operation is a defaulted tag-indeterminate call, and there is
2134 a statically tagged actual, use the static tag as a controlling actual
2135 for the defaulted actual.
2137 2007-12-13 Geert Bosch <bosch@adacore.com>
2139 * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
2140 context, so do not call Check_Non_Static_Context.
2142 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
2144 * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
2145 whether formal E is an entity which may have parameters.
2147 2007-12-13 Bob Duff <duff@adacore.com>
2148 Javier Miranda <miranda@adacore.com>
2149 Robert Dewar <dewar@adacore.com>
2151 * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
2152 (Set_Convention): New procedure to set the Convention flag, and in
2153 addition make sure the Favor_Top_Level flag is kept in sync (all
2154 foreign-language conventions require Favor_Top_Level = True).
2155 (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
2157 (Collect_Interfaces_Info): Minor update to handle the two secondary
2158 dispatch tables. Update occurrence of Related_Interface to Related_Type.
2159 (Generate_Parent_Ref): Add parameter to specify entity to check
2160 (Is_Preelaborable_Expression): Allow the name of a discriminant to
2161 initialize a component of a type with preelaborable initialization.
2162 This includes the case of a discriminal used in such a context.
2163 (Is_Dependent_Component_Of_Mutable_Object): Take into account the
2164 latest Ada 2005 rules about renaming and 'Access of
2165 discriminant-dependent components.
2166 (Check_Nested_Access): Add handling when there are no enclosing
2167 subprograms (e.g. case of a package body).
2168 (Find_Parameter_Type): Factor routine from several other compiler files.
2169 Remove routine from Find_Overridden_Synchronized_Primitive.
2171 2007-12-13 Thomas Quinot <quinot@adacore.com>
2173 * sinput.adb (Get_Source_File_Index): Add assertion to guard against
2174 an invalid access to an uninitialized slot in the
2175 Source_File_Index_Table.
2177 2007-12-13 Thomas Quinot <quinot@adacore.com>
2179 * sinput-l.adb (Load_File): Disable style checks when preprocessing.
2181 2007-12-13 Bob Duff <duff@adacore.com>
2183 * s-soflin.ads: Apply new pragma Favor_Top_Level to all
2184 access-to-subprogram types in this package.
2186 2007-12-13 Olivier Hainque <hainque@adacore.com>
2188 * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
2189 with Stack_Grows_Down in System.Parameters. Rename Array_Address into
2190 Stack_Overlay_Address and document that we are using an internal
2192 (Byte_Size, Unsigned_32_Size): Remove, now useless.
2193 (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
2194 consistently throughout the various implementation pieces.
2196 * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
2197 overlay we are using to fill the stack area with patterns.
2198 (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
2199 (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
2200 (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
2202 2007-12-13 Robert Dewar <dewar@adacore.com>
2204 * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
2206 2007-12-13 Arnaud Charlet <charlet@adacore.com>
2209 (Create_Task): Take into account tasks created by foreign threads.
2210 Code clean up: use constants instead of hard coded values.
2212 2007-12-13 Robert Dewar <dewar@adacore.com>
2214 * styleg.adb (Check_Comment): More liberal rules for comment placement
2216 2007-12-13 Olivier Hainque <hainque@adacore.com>
2218 * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
2219 of Procedure Value instead of Frame Pointer as the invocation
2220 identifier associated with the instruction pointer in each traceback
2223 * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
2224 TB_Entry_For): Revert back to use of Procedure Value instead of Frame
2225 Pointer as the invocation identifier passed to tbk$symbolize.
2227 * s-traent-vms.ads, s-traent-vms.adb
2228 (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
2229 Procedure Value instead of Frame Pointer as the invocation identifier
2230 passed to tbk$symbolize.
2232 2007-12-13 Robert Dewar <dewar@adacore.com>
2234 * tbuild.ads, tbuild.adb:
2235 Fix location of flag for unrecognized pragma message
2237 2007-12-13 Robert Dewar <dewar@adacore.com>
2239 * treepr.ads, treepr.adb: (pl): implement use of positive value
2242 2007-12-13 Robert Dewar <dewar@adacore.com>
2244 * xeinfo.adb: Remove warnings
2245 * xnmake.adb: Remove warnings
2246 * xsinfo.adb: Remove warnings
2247 * xtreeprs.adb: Remove warnings
2248 * xsnames.adb: Remove warnings
2250 * a-ngcoar.adb: Fix typo.
2251 * s-interr.adb: Minor reformatting
2252 * env.c: Minor reformatting.
2253 * g-bytswa.adb: Minor reformatting.
2254 * g-rannum.ads: Minor documentation improvements
2255 * s-tasinf-mingw.adb: Minor header fix
2256 * a-clrefi.adb: Minor reformatting
2257 * g-sttsne.ads: Minor documentation improvement
2258 * g-sttsne-locking.ads: Minor documentation improvement
2259 * g-soliop-solaris.ads: Minor documentation improvement
2260 * g-soliop-mingw.ads: Minor documentation improvement
2261 * g-soliop.ads: Minor documentation improvement
2262 * exp_aggr.ads: Minor reformatting
2263 * debug.adb: Add documentation for the gprbuild debug flags
2264 * exp_ch2.adb: Use Nkind_In to simplify code throughout
2265 * exp_pakd.adb: Minor reformatting
2267 * g-altive.ads, g-alleve.adb: Remove assertions.
2268 Add comment about minor differences between targets regarding
2269 floating-point operations.
2271 * g-thread.adb: Remove pragma unreferenced.
2272 * lib.ads: Minor reformatting
2273 * par-ch9.adb: Minor reformatting of error messages
2274 * sem_case.adb: Minor reformatting
2275 * s-fileio.adb: Minor reformattinng
2276 * s-vmexta.ads: Minor typo
2278 Take into account 'Success' value as per new GNAT warning.
2280 2007-12-13 Vincent Celier <celier@adacore.com>
2282 * a-direct.adb (Create_Path): Always take '/' as a directory separator,
2285 2007-12-13 Robert Dewar <dewar@adacore.com>
2286 Bob Duff <duff@adacore.com>
2288 * gnat_ugn.texi: Dcoument new rules for style check comment alignment
2289 Document that suffixes may be terminations of each others
2290 Add doc for -gnatw.a and -gnatw.A
2291 Document gnatbind -Wx switch
2292 Document BOM recognition
2293 Document pragma Implemented_By_Entry.
2296 * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
2297 Add doc for pragma Unreferenced suppressing no entities referenced msg
2298 Add documentation of GNAT.Directory_Operations.Iteration
2299 Add documentation of GNAT.Random_Numbers
2300 Add documentation for pragma Shared.
2301 Correct documentation for Bit_Order
2302 Add documentation for the Pool_Address attribute.
2303 Fix and improve documentation of pragma machine_attribute.
2304 New pragma Fast_Math
2305 Document BOM recognition
2307 * vms_data.ads: Add entries for -gnatw.a -gnatw.A
2308 Add /Wide_Character_Encoding for binder
2309 Add qualifier for the new gnatpp option --no-separate-loop-then
2311 2007-12-13 Matthew Heaney <heaney@adacore.com>
2313 * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
2314 which generic formal operations are called for each operation.
2316 2007-12-13 Olivier Hainque <hainque@adacore.com>
2318 * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
2319 (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
2321 2007-12-13 Emmanuel Briot <briot@adacore.com>
2323 * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
2324 Reference_Dir unless we actually need it.
2326 2007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
2327 Tristan Gingold <gingold@adacore.com>
2329 * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
2332 a-calend-vms.adb: Remove pragma warning off and add pragma
2335 2007-12-13 Robert Dewar <dewar@adacore.com>
2337 * impunit.adb: Add entries for missing units
2339 * Makefile.rtl: Add new run-time units.
2341 * Make-lang.in: Update dependencies.
2343 2007-12-13 Bob Duff <duff@adacore.com>
2345 * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
2346 types, set Can_Use_Internal_Rep appropriately, based on
2347 Always_Compatible_Rep_On_Target.
2349 2007-12-13 Gary Dismukes <dismukes@adacore.com>
2350 Arnaud Charlet <charlet@adacore.com>
2352 * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
2353 it to the front end and setting the aamp_target environment variable
2354 to the switch's argument to ensure that gnaampbind and gnaamplink will
2355 take the specified library into account.
2356 (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
2357 target, since the CIL compiler supports an "object" file (.il files).
2359 2007-12-13 Vincent Celier <celier@adacore.com>
2361 * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
2362 (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
2364 2007-12-13 Geert Bosch <bosch@adacore.com>
2366 * s-parame-vxworks.adb:
2367 Update comments to reflect usage of this package by Nucleus.
2369 2007-12-13 Arnaud Charlet <charlet@adacore.com>
2371 * i-vxwork.ads: Kill new warning on Convention C, since changing the
2372 spec would break code.
2374 * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
2376 * system-vxworks-alpha.ads: Removed.
2378 2007-12-10 Eric Botcazou <ebotcazou@adacore.com>
2380 * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
2382 2007-12-09 Samuel Tardieu <sam@rfc1149.net>
2385 * sem_ch3.adb (Designates_T): New function.
2386 (Mentions_T): Factor reusable part of the logic into Designates_T.
2387 Consider non-access parameters and access and non-access result.
2388 (Check_Anonymous_Access_Components): Set ekind of anonymous access to
2389 E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
2391 * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
2393 2007-12-07 Ludovic Brenta <ludovic@ludovic-brenta.org>
2396 * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
2397 the new implementation of target-specific calls.
2399 2007-12-07 Olivier Hainque <hainque@adacore.com>
2401 * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
2402 the designated full view, only follow a second level Full_View link
2403 for Non_Limited_Views of from_limited_with references.
2405 2007-12-07 Samuel Tardieu <sam@rfc1149.net>
2408 * sem_ch6.adb (Process_Formals): Prevent an access type formal
2409 to be initialized with an access to constant object.
2411 * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
2412 when an access to constant is used to initialize an access
2416 * a-direct.adb (Compose): Containing_Directory can be an empty string.
2418 2007-12-07 Olivier Hainque <hainque@adacore.com>
2421 * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
2422 the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
2423 this is from an alignment clause on the GNAT entity.
2424 * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
2425 to distinguish the case where we set it from the type's alignment.
2426 When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
2427 whether this alignment was set from an explicit alignment clause.
2429 2007-12-06 Eric Botcazou <ebotcazou@adacore.com>
2431 * decl.c (make_packable_type): Revert last change.
2432 (gnat_to_gnu_field): Avoid setting size and position multiple times.
2433 * utils.c (finish_record_type): Retrieve the real name of the type.
2435 2007-12-05 Eric Botcazou <ebotcazou@adacore.com>
2437 * trans.c (lvalue_required_p): Take base node directly instead
2438 of its parent. Rename second parameter to 'gnu_type'.
2439 <N_Indexed_Component>: Return 0 if the node isn't the prefix.
2440 <N_Slice>: Likewise.
2441 (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
2442 Adjust calls to lvalue_required_p.
2444 2007-12-05 Samuel Tardieu <sam@rfc1149.net>
2447 * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
2448 parameters of an entry call.
2450 2007-12-03 Robert Dewar <dewar@adacore.com>
2451 Samuel Tardieu <sam@rfc1149.net>
2454 * sem_util.adb (Safe_To_Capture_Value): Do not capture values
2455 of variables declared in a library-level package.
2457 2007-12-02 Samuel Tardieu <sam@rfc1149.net>
2459 * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
2460 of Empty_String'Unchecked_Access.
2462 * Makefile.in: Add support for sh4-linux.
2464 * system-linux-sh4.ads: New file.
2466 2007-12-01 Kostik Belousov <kostikbel@ukr.net>
2469 * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
2470 and its argument must not be free()ed.
2472 2007-11-29 Eric Botcazou <ebotcazou@adacore.com>
2474 * decl.c (make_packable_type): Retrieve the real name of the type.
2475 (maybe_pad_type): Simplify similar code.
2477 2007-11-28 Samuel Tardieu <sam@rfc1149.net>
2480 * par-ch3.adb (P_Variant_Part): Signal an error when anything other
2481 than an identifier is used after "case" in a variant_part.
2484 * par-ch4.adb (Is_Parameterless_Attribute): New map.
2485 (P_Name, Scan_Apostrophe block): Parse left parenthesis following
2486 attribute name or not depending on the new map.
2488 * sem-attr.adb (Analyze_Attribute): Parameterless attributes
2489 returning a string or a type will not be called with improper
2492 * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
2494 * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
2497 * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
2498 Signal an error when attribute argument is a fixed-point value of
2502 * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
2503 a derived ordinary fixed point type.
2505 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
2506 RM_Size when a Small clause is found.
2508 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
2511 * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
2512 Pass 'false' for the new allocate_struct_function parameter.
2513 * utils.c (build_function_stub): Likewise.
2515 2007-11-25 Richard Guenther <rguenther@suse.de>
2517 * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
2518 (gnat_poplevel): Likewise.
2520 2007-11-25 Eric Botcazou <ebotcazou@adacore.com>
2522 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
2523 strict alignment, no alignment clause and a known static size, cap
2524 the type alignment to the greatest power of 2 factor of the size.
2525 (gnat_to_gnu_field): If the field has a component clause, is aliased
2526 or of a type with strict alignment, require that its size be equal to
2528 (validate_size): Use the type size as the minimum size for a type with
2531 2007-11-23 Samuel Tardieu <sam@rfc1149.net>
2533 * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
2534 s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
2535 s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
2536 Use 'Access instead of 'Unchecked_Access in second and third
2537 arguments of pthread_sigmask.
2539 2007-11-23 Eric Botcazou <ebotcazou@adacore.com>
2541 * decl.c (ceil_alignment): New function.
2542 (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
2543 (make_packable_type): Likewise.
2545 2007-11-22 Olivier Hainque <hainque@adacore.com>
2547 * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
2548 to fit in 80 columns.
2550 2007-11-21 Aurelien Jarno <aurelien@aurel32.net>
2552 * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
2553 * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
2555 2007-11-19 Eric Botcazou <ebotcazou@adacore.com>
2558 * misc.c (gnat_adjust_rli): Delete.
2559 (gnat_init): Do not initialize the translation code here.
2560 Do not call set_lang_adjust_rli.
2561 * trans.c (init_code_table): Make static.
2562 (gnat_init_stmt_group): Delete.
2563 (gigi): Initialize the translation code entirely here.
2564 Emit debug info for the common types here instead of...
2565 * utils.c (gnat_init_decl_processing): ...here.
2566 * gigi.h (init_code_table): Delete.
2567 (gnat_init_stmt_group): Likewise.
2569 2007-11-16 Olivier Hainque <hainque@adacore.com>
2571 * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
2572 retrieving an allocator return value from a super-aligned address from
2574 * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
2575 expect a super-aligned address for a fat or thin pointer.
2577 2007-11-14 Eric Botcazou <ebotcazou@adacore.com>
2579 * trans.c (call_to_gnu): Always set the source location on the call
2580 expression. If the function returns-by-target, also set it on the
2583 2007-11-14 Samuel Tardieu <sam@rfc1149.net>
2585 * adaint.c, init.c, initialize.c, link.c: Remove system-specific
2586 sections of non-supported Interix target.
2588 * s-osinte-interix.ads: Removed.
2590 * i-cstrin.ads (chars_ptr): Make it a C convention type.
2592 2007-11-13 Samuel Tardieu <sam@rfc1149.net>
2594 * a-tasatt.adb: Add a comment at the beginning of the package
2595 explaining why in general 'Unchecked_Access must be used instead
2598 * sem_prag.adb (Process_Convention): Move the test for the
2599 entity on which the Convention pragma applies down to also
2600 forbid pragma Convention on enumeration literals reached
2603 2007-11-10 Samuel Tardieu <sam@rfc1149.net>
2605 * a-tasatt.adb: Revert previous change for this file as it will
2606 generate an error when this package is instantiated from a
2609 2007-11-07 Samuel Tardieu <sam@rfc1149.net>
2611 * a-tasatt.adb: Type Wrapper should be declared in comment instead
2612 of already declared type Node_Access.
2613 Use 'Access instead of 'Unchecked_Access when applicable. Local
2614 lifetime is the one of the package.
2615 (Set_Value): W is allocated on the heap.
2617 * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
2619 (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
2621 (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
2624 * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
2626 (elaboration code): Timer_Queue lifetime is the one of the
2629 * tracebak.c (i386 alternative): Remove useless comparaison
2630 which is always false; LOWEST_ADDRESS is 0 and is never greater
2631 than an unsigned integer.
2633 * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
2634 embedded check for "Ada_Version >= Ada_05".
2636 2007-11-07 Olivier Hainque <hainque@adacore.com>
2638 * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
2639 craft and expand comment.
2641 2007-11-01 Eric Botcazou <ebotcazou@adacore.com>
2643 * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
2645 2007-10-23 Eric Botcazou <ebotcazou@adacore.com>
2647 * misc.c (gnat_handle_option): Replace call to abort with
2648 call to gcc_unreachable.
2649 (gnat_init): Likewise.
2650 (gnat_expand_expr): Likewise.
2651 (fp_prec_to_size): Likewise.
2652 (fp_size_to_prec): Likewise.
2654 2007-10-23 Richard Guenther <rguenther@suse.de>
2657 * tracebak.c: #undef abort after including system.h.
2659 2007-10-20 Danny Smith <dannysmith@users.sourceforge.net>
2661 * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
2662 s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
2664 (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
2666 2007-10-15 Eric Botcazou <ebotcazou@adacore.com>
2668 * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
2669 Set the protection status of the guard page based on the value of On.
2671 * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
2673 * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
2674 (Exit_Task): Pass False to Hide_Yellow_Zone.
2676 2007-10-15 Robert Dewar <dewar@adacore.com>
2678 * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
2679 s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
2680 a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
2681 checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
2682 freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
2683 gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
2684 mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
2685 prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
2686 sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
2687 s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
2688 uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
2689 a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
2690 a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
2691 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
2692 a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
2693 a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
2695 Add Unreferenced and Warnings (Off) pragmas for cases of
2696 variables modified calls where they are IN OUT or OUT parameters and
2697 the resulting values are not subsequently referenced. In a few cases,
2698 we also remove redundant code found by the new warnings.
2700 * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
2701 sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
2702 sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
2703 sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
2704 warning controlled by -gnatw.o that warns on cases of out parameter
2705 values being ignored.
2707 2007-10-15 Geert Bosch <bosch@adacore.com>
2709 * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
2711 * expect.c: Initial port to arm-mentor-nucleus.
2712 Use kill for __gnat_kill() on VMS.
2714 2007-10-15 Emmanuel Briot <briot@adacore.com>
2716 * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
2718 (Xref_Record): Change type for Line, since in the case of a reference to
2719 a predefined entity (as happens for array index types), the line is set
2721 Add support for parsing multiple array index types info, or
2722 multiple inherited interfaces info. This information cannot be stored
2723 in Xref_Entity_Record, which only supports a single instance of Tref_*,
2724 and is therefore stored in the list of references instead. It has a
2725 special treatement later on in tools that use this information.
2727 2007-10-15 Tristan Gingold <gingold@adacore.com>
2729 * debug.adb: Document use of -gnatd.a and -gnatd.I
2731 * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
2733 2007-10-15 Javier Miranda <miranda@adacore.com>
2735 * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
2736 Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
2737 care of access to class-wide interface types plus removal of bizarre
2738 conversion of tagged object to access type (reported by Gary
2739 Dismukes). After this patch there is no need to perform any
2740 additional management on these nodes in Expand_Interface_Actuals.
2742 * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
2743 that handles use of 'Access and 'Unchecked_Access applied to
2744 actuals covering interface types. Such code is now
2745 centralized in Expand_N_Attribute_Reference.
2747 2007-10-15 Ed Schonberg <schonberg@adacore.com>
2749 * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
2750 of tagged types whose ultimate ancestor is a CPP type.
2751 (Freeze_Array_Type): For a packed array type, generate an initialization
2752 procedure if the type is public, to handle properly a client that
2753 specifies Normalize_Scalars.
2755 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
2757 * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
2758 inside a generic body, retrieve the full view of the entry family
2759 discrete subtype if available.
2761 2007-10-15 Thomas Quinot <quinot@adacore.com>
2763 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
2764 attempt to generate stubs for hidden primitive operations.
2766 2007-10-15 Vincent Celier <celier@adacore.com>
2768 * mlib-tgt-specific.adb (Support_For_Libraries): New function,
2769 returning None, used when there is no platform specific body for
2772 2007-10-15 Bob Duff <duff@adacore.com>
2774 * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
2775 (passing'Unrestricted_Access of nested subprograms to Sort) with use of
2776 the generic Heap_Sort_G, in order to avoid trampolines.
2778 2007-10-15 Vasiliy Fofanov <fofanov@adacore.com>
2779 Jose Ruiz <ruiz@adacore.com>
2781 * vx_stack_info.c: New file.
2783 * i-forbla-unimplemented.ads: New file.
2785 * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
2786 for unsupported configurations; use it on VMS targets instead of the
2788 (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
2789 vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
2790 used by VxWorks targets to have access to task-specific data and be
2791 able to extract the stack boundaries for stack checking.
2792 Use system-vms-ia64.ads on ivms.
2794 * Make-lang.in: Update dependencies.
2796 * sysdep.c (__gnat_get_stack_info): Move to a standalone file
2799 2007-10-15 Vincent Celier <celier@adacore.com>
2801 * snames.adb, snames.ads: Add new standard name runtime_library_dir
2803 * prj.ads (Language_Config): Add new component Runtime_Library_Dir
2805 * prj-attr.adb: Add project level attribute Runtime_Library_Dir
2807 * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
2808 the source is unknown.
2810 * prj-ext.adb: Spelling error fix
2812 * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
2813 95 reserved word in its name.
2814 (Process_Project_Level_Array_Attributes): Process new attribute
2815 Runtime_Library_Dir.
2817 * prj-part.adb (Parse_Single_Project): Do not check the name of the
2818 config project against the user project names.
2820 * prj-proc.adb (Expression): In multi-language mode, indexes that do
2821 not include a dot are always case insensitive.
2822 (Process_Declarative_Items): Ditto
2823 (Process_Project_Tree_Phase_1): Set Success to False in case an error is
2826 * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
2827 True, compare both indexes in lower case.
2829 2007-10-15 Robert Dewar <dewar@adacore.com>
2831 * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
2833 2007-10-15 Gary Dismukes <dismukes@adacore.com>
2835 * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
2836 association for an access component, add an association with null as
2837 the expression. Remove testing for array subtypes and the setting in
2838 that case of Ctyp to the array component type, which prevented proper
2839 inclusion of an association for null-initialized arrays. Collapse
2840 condition that tests for array subtypes into just a test of
2841 Is_Partially_Initialized_Type (which already covers arrays anyway).
2843 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
2845 * sem_ch12.adb: Minor code reformatting.
2846 (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
2847 find the parent package which may have been hidden by local
2850 2007-10-15 Gary Dismukes <dismukes@adacore.com>
2852 * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
2853 flag of derived concurrent types, taking into account the flag setting
2854 on the parent subtype and any new set of discriminants.
2856 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
2858 * sem_ch4.adb: Minor code and comment reformatting.
2859 (Analyze_Allocator): When the designated type of an unconstrained
2860 allocator is a record with unknown discriminants or an array with
2861 unknown range bounds, emit a detailed error message depending on the
2862 compilation mode and whether the designated type is limited.
2864 2007-10-15 Tristan Gingold <gingold@adacore.com>
2866 * system-vms-ia64.ads: New file.
2868 * system-vms_64.ads: Minor comment fix.
2870 2007-10-15 Ed Schonberg <schonberg@adacore.com>
2872 * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
2873 body generated for a function with a controlling result that is a null
2874 extension, discard the generated body in favor of the current explicit
2877 2007-10-15 Ed Schonberg <schonberg@adacore.com>
2879 * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
2880 examining its original form, to handle properly operator calls that
2881 have been rewritten.
2883 2007-10-15 Olivier Hainque <hainque@adacore.com>
2885 * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
2886 instead of a procedure value in each traceback entry.
2888 * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
2889 instead of procedure value to TBK$SYMBOLIZE.
2891 * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
2893 (TB_Entry_For): Account for the PV/FP renaming.
2895 * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
2897 (Null_TB_Entry): Account for change of component name.
2898 (PV_For): Rename as FP_For.
2900 2007-10-15 Tristan Gingold <gingold@adacore.com>
2902 * trans.c (gnat_to_gnu): Remove the padding structure more often.
2903 This optimize assignment to over-aligned record.
2905 2007-10-15 Emmanuel Briot <briot@adacore.com>
2907 * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
2910 * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
2911 type, for dispatching calls.
2913 2007-10-15 Vincent Celier <celier@adacore.com>
2914 Robert Dewar <dewar@adacore.com>
2916 * gnat_ugn.texi: Add documentation for switches --version and --help
2917 for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
2918 gnatxref, gnatfind, gnatls, and gnatclean.
2920 Mention attribute Excluded_Source_Dirs
2921 Replace obsolescent attribute Locally_Removed_Files with attribute
2922 Excluded_Source_Files.
2923 Improve documentation of -u (gnatbind)
2924 Document how to do reliable stack checking for the environmental task
2927 * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
2928 Document attribute Excluded_Source_Files and indicate that attribute
2929 Locally_Removed_Files is obsolescent.
2931 2007-10-15 Thomas Quinot <quinot@adacore.com>
2933 * g-soccon-vms.ads: Fix value of MSG_WAITALL.
2936 Update documentation to note that OpenVMS 8.3 or later must be used
2937 to generate g-soccon-vms.ads.
2939 * atree.adb: Add ??? comment
2941 * exp_util.adb: Minor reformatting.
2942 Add ??? comment in Kill_Dead_Code.
2944 2007-10-15 Robert Dewar <dewar@adacore.com>
2946 * errout.ads: Comment clarification
2948 * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
2949 (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
2951 * lib.ads: Comment update
2953 * init.c: Minor reformatting.
2955 * sem_attr.adb: Minor formatting
2957 * osint-b.ads: Minor reformatting
2959 * sem_ch9.adb: Implement -gnatd.I switch
2961 * g-comlin.adb: (Start): Fix handling of empty command line.
2963 * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
2964 even when -rules follows the -cargs section.
2966 2007-10-08 Ollie Wild <aaw@google.com>
2968 * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
2970 (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
2972 (gnat_eh_runtime_type): Removed.
2973 (gnat_return_tree): New function.
2975 2007-10-08 Ben Elliston <bje@au.ibm.com>
2979 2007-08-31 Ben Elliston <bje@au.ibm.com>
2981 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
2982 when compiling for powerpc64-*-linux.
2983 * system-linux-ppc64.ads: New file.
2985 2007-09-27 Eric Botcazou <ebotcazou@adacore.com>
2987 Mapped location support
2988 * back_end.adb (Call_Back_End): Pass information about source
2989 files instead of units to gigi.
2990 * gigi.h (struct File_Info_Type): New.
2991 (gigi): Rename and change type of number_units parameter, change
2992 type of file_info_ptr parameter.
2993 * trans.c (number_files): New global variable.
2994 (gigi): Rename and change type of number_units parameter, change
2995 type of file_info_ptr parameter.
2996 If mapped location support is enabled, create the isomorphic mapping
2997 between source files and line maps.
2998 (Sloc_to_locus): If mapped location support is enabled, translate
2999 source location into mapped location.
3000 (annotate_with_node): Rename into set_expr_location_from_node.
3001 Call set_expr_location instead of annotate_with_locus.
3002 (Pragma_to_gnu): Adjust for above change.
3003 (Loop_Statement_to_gnu): Likewise.
3004 (call_to_gnu): Likewise.
3005 (Handled_Sequence_Of_Statements_to_gnu): Likewise.
3006 (gnat_to_gnu): Likewise.
3007 (add_stmt_with_node): Likewise.
3008 (add_cleanup): Likewise.
3009 * utils.c (gnat_init_decl_processing): Do not set input_line.
3011 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
3013 * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
3014 (Applicable_Use): Emit a warning when a package tries to use itself.
3015 (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
3016 is already in use or the package where it is declared is in use or is
3017 declared in the current package.
3018 (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
3020 * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
3021 s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
3022 s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
3024 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
3026 * a-calend-vms.adb, a-calend.adb:
3027 Add a section on leap seconds control along with two entities used to
3028 enable and disable leap seconds support. The array Leap_Second_Times is
3029 now constant and contains hard time values pre-generated. Remove
3030 all elaboration code used to populate the table of leap seconds.
3033 Add entity Leap_Seconds_Support to the list of global run-time variables
3034 along with a comment on its usage and values.
3035 (Gen_Adainit_Ada): Add code to generate the declaration and import of
3036 Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
3037 or one (enabled) depending on the presence of binder switch "-y".
3038 (Gen_Adainit_C): Add code to generate the declaration of external int
3039 __gl_leap_seconds_support. Set is value to zero (disabled) or one
3040 (enabled) depending on the presence of binder switch "-y".
3042 * init.c: Add __gl_leap_seconds_support to the list of global values
3043 computed by the binder.
3045 2007-09-26 Jerome Guitton <guitton@adacore.com>
3047 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
3048 s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
3049 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
3050 s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
3052 * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
3054 * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
3055 function which can be called by the debugger to interrupt the tasks of
3056 an Ada application asynchronously, as needed on VxWorks.
3057 (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
3059 * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
3060 renamed from Stop_All_Tasks. Update comments.
3061 (Stop_All_tasks): New function declaration.
3063 2007-09-26 Olivier Hainque <hainque@adacore.com>
3065 * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
3066 #include <utime.h> and #define GCC_RESOURCE_H before
3067 #include <sys/wait.h>.
3068 Add more protections in __gnat_translate_vms.
3070 * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
3071 #include <sys/wait.h>.
3073 2007-09-26 Thomas Quinot <quinot@adacore.com>
3074 Sergey Rybin <rybin@adacore.com>
3076 * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
3078 * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
3081 * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
3083 * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
3086 * sem_dist.ads: Minor comment fix
3088 * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
3090 2007-09-26 Javier Miranda <miranda@adacore.com>
3091 Eric Botcazou <ebotcazou@adacore.com>
3094 (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
3095 indirection added to the HT_Link component of the TSD. This is required
3096 to statically allocate the TSD.
3099 Minor reordering of the declarations in the private part. Required to
3100 add a level of indirection to the contents of the TSD component HT_Link.
3101 This is required to statically allocate the TSD.
3103 * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
3104 Is_Statically_Allocated set from constant objects.
3105 Do not make exported constants created by the compiler volatile.
3106 (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
3109 * trans.c (Identifier_to_gnu): For constants, unshare initializers
3110 before returning them.
3112 * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
3113 public part of the package.
3114 (Make_DT): Move HT_Link component out of the TSD record. For this
3115 purpose Make_DT now declares a separate object that stores the
3116 HT_Link value, and initializes the TSD component with the address
3117 of this new object. The addition of this level of indirection is
3118 required to statically allocate the TSD because the TSD cannot
3119 have variable components.
3120 (Expand_Interface_Conversion): Improve the expanded code.
3121 (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
3123 * sem_disp.adb (Check_Dispatching_Operation): In case of a body
3124 declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
3125 if we are building static dispatch tables then we must not generate
3126 extra code to register the primitive because the dispatch table will
3127 be built at the end of the library package; otherwise we notify that
3128 we cannot build the static dispatch table.
3130 2007-09-26 Robert Dewar <dewar@adacore.com>
3132 * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
3135 * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
3136 (Analyze_Record_Representation_Clause): Suppress junk warning for
3137 missing component clause.
3138 (Analyze_Attribute_Definition_Clause, case Address): Apply the special
3139 tests for controlled type overlay to composites with controlled
3141 (Analyze_Record_Representation_Clause): Add reference for component name
3143 2007-09-26 Javier Miranda <miranda@adacore.com>
3144 Gary Dismukes <dismukes@adacore.com>
3146 * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
3147 for thunks associated with interface types.
3149 * einfo.ads: Improve documentatation of Is_Internal
3150 (Is_Thunk): New attribute applicable to subprograms. True for thunks
3151 associated with interface types.
3152 Extensive comment fixes regarding flags that appear in all entities. The
3153 documentation is now consistent for all such flags (there were a number
3154 of errors in the documentation in this regard).
3156 * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
3158 * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
3159 of these procedures are passed a function call that already has
3160 build-in-place actuals (testing new flag
3161 Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
3162 the case where processing continues.
3163 (Expand_Call): If the call is generated from a thunk body then we
3164 propagate the extra actuals associated with the accessibility
3165 level of the access type actuals.
3167 * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
3168 of each extra formal of a protected operation to reference the
3169 corresponding extra formal of the subprogram denoted by the
3170 operation's Protected_Body_Subprogram.
3172 * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
3173 N_Function_Call nodes.
3175 2007-09-26 Robert Dewar <dewar@adacore.com>
3177 * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
3179 * debug.adb: Add d.s flag.
3181 2007-09-26 Gary Dismukes <dismukes@adacore.com>
3183 * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
3184 debug variable so that it won't be initialized when pragma
3185 Initialize_Scalars is in effect.
3187 2007-09-26 Gary Dismukes <dismukes@adacore.com>
3189 * freeze.adb (Freeze_Entity): Remove check for preelaborable
3190 initialization of a full view. This is moved to
3191 Analyze_Package_Specification.
3193 * sem_ch7.adb (Analyze_Package_Specification): Add check for
3194 preelaborable initialization of a full view in entity loop.
3195 (Uninstall_Declarations): If entity is a use-visible compilation unit,
3196 its child units are use-visible only if they are visible child units.
3198 * sem_util.adb (Is_Preelaborable_Expression): New function to determine
3199 whether an expression can be used within a type declaration that
3200 requires preelaborable init.
3201 (Check_Components): Replace inline code that does partial checking for
3202 preelaborable default expressions with call to
3203 Is_Preelaborable_Expression.
3204 (Has_Preelaborable_Initialization): In the case of a generic actual
3205 subtype, (that is, Is_Generic_Actual is True), return the result of
3206 applying Has_Preelaborable_Initialization to the generic actual's base
3209 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
3211 * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
3212 call to Jan_1_Day _Of_Week to optimize its performance.
3213 (Is_Leap): Move the routine to the scope of Week_In_Year.
3214 (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
3215 weekday on which January 1 falls of Year - 1 and Year + 1. This function
3216 avoids calling Time_Of and Split, thus making it more efficent.
3217 (Week_In_Year): Reimplemented in oder to follow ISO 8601.
3219 * g-calend.ads (Week_In_Year): Change comment to reflect new
3222 2007-09-26 Emmanuel Briot <briot@adacore.com>
3224 * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
3225 Command_Line): New types
3226 (Define_Alias, Define_Prefix, Free): New subprograms. These provide
3227 support for defining how switches can be grouped on a command line (as
3228 is the case for -gnatw... for GNAT), and how simple switches can be
3229 used as aliases for more complex switches (-gnatwa is same as
3231 (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
3232 (Start, Current_*): New subprograms
3233 Added support for parsing an array of strings in addition to the real
3235 (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
3236 be moved from the body to the private part of the spec.
3237 (*): All subprograms now have an extra parameter with default value to
3238 specify which parser should be used. For backward compatibility, it
3239 defaults to parsing the command line of the application. They were also
3240 modified to properly handle cases where each of the argument does not
3241 start at index 1 (which is always true for Ada.Command_Line, but not
3242 when processing any Argument_List).
3243 (Free): New subprogram
3244 (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
3245 Argument): New subprograms
3246 (Switch_Parameter_Type): New enum, which clarifies the code. The extra
3247 special characters like ':', '=',... are now handled in a single place,
3248 which makes the code more extensible eventually.
3249 (Getopt, Full_Switch): When the switch was returned as part of the
3250 special character '*', make sure it is prepended by the switch character
3251 ('-' in general), so that the application knows whether "foo" or "-foo"
3252 was specified on the command line.
3254 2007-09-26 Florian Villoing <villoing@adacore.com>
3256 * g-dirope.adb (Remove_Dir): In case we are removing directories
3257 recursively, make sure that if an exception is raised during the
3258 processing, the current working directory is reset to its initial
3259 value before propagating the exception.
3261 2007-09-26 Vincent Celier <celier@adacore.com>
3263 * gnatbind.adb: If there are several ALI files specified and there is
3264 a main program to bind, the first ALI is expected to contain the main
3265 subprogram and the names of the binder generated files will be derived
3266 from the first ALI file name.
3267 (Gnatbind): Fix insertion character in invocation of Error_Msg
3269 2007-09-26 Vincent Celier <celier@adacore.com>
3271 * gnatcmd.adb (Check_Files): Do not include sources that have been
3272 removed by attributes Exclude_Source_Files or Locally_Removed_Files.
3274 2007-09-26 Ed Schonberg <schonberg@adacore.com>
3276 * lib-xref.ads, lib-xref.adb: The entry for array types now carries
3277 information about each of its index types, following the type
3278 reference for its component type.
3280 2007-09-26 Vincent Celier <celier@adacore.com>
3282 * make.adb: (Kill): New procedure (__gnat_kill imported)
3283 (Running_Compile, Outstanding_Compiles): Global variables that
3284 were previously local to procedure Compile_Sources.
3285 (Sigint_Intercepted): Send signal SIGINT to all outstanding
3286 compilation processes.
3288 (Gnatmake): If project files are used, create the mapping of all the
3289 sources, so that the correct paths will be found.
3291 * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
3293 2007-09-26 Vincent Celier <celier@adacore.com>
3295 * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
3297 * prj.ads, prj.adb (Default_Language): Remove function, no longer used
3298 Replace components Compiler_Min_Options and Binder_Min_Options with
3299 Compiler_Required_Switches and Binder_Required_Switches in record
3301 Remove components Default_Language and Config in Project_Tree_Data,
3304 * prj-attr.adb: New attributes Required_Switches (<language>) in
3305 packages Compiler and Binder.
3307 * prj-nmsc.adb: Major rewrite of the processing of configuration
3308 attributes for gprbuild. No impact on GNAT tools.
3310 * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
3311 process configuration attributes: this is done in Prj.Nmsc.Check.
3312 (Recursive_Process): Make a full copy of packages inherited from project
3313 being extended, instead of a shallow copy.
3314 (Process_Project_Tree_Phase_1): New procedure
3315 (Process_Project_Tree_Phase_1): New procedure
3316 (Process): Implementation now uses the two new procedures
3318 * prj-util.adb (Executable_Of): Get the suffix and the default suffix
3319 from the project config, not the tree config that no longer exists.
3321 2007-09-26 Vincent Celier <celier@adacore.com>
3323 * Make-lang.in: Update dependencies..
3325 2007-09-26 Vincent Celier <celier@adacore.com>
3327 * osint.adb, osint.ads: Minor reformatting
3329 * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
3331 2007-09-26 Gary Dismukes <dismukes@adacore.com>
3333 * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
3334 message to cite use of <> in aggregate component associations rather
3335 than wrongly indicating use of limited aggregates.
3337 2007-09-26 Robert Dewar <dewar@adacore.com>
3339 * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
3342 2007-09-26 Ed Schonberg <schonberg@adacore.com>
3344 * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
3345 ancestor of the derived type, the operations are inherited from the
3346 primary dispatch table of the parent.
3347 (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
3348 when the context is an explicit type conversion.
3350 2007-09-26 Ed Schonberg <schonberg@adacore.com>
3352 * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
3353 rule for qualified expressions properly, to detect improper conversions
3354 and resolve some cases of overloading.
3356 2007-09-26 Ed Schonberg <schonberg@adacore.com>
3358 * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
3359 proper kind of reference to the primitive operation, for better source
3361 (Valid_Conversion): A tagged conversion is legal if both operands are
3364 2007-09-26 Robert Dewar <dewar@adacore.com>
3366 * sem_warn.adb (Check_References): Catch more cases of unreferenced
3369 2007-09-26 Vincent Celier <celier@adacore.com>
3371 * snames.adb, snames.ads: Change Include_Option to Include_Switches
3373 2007-09-26 Robert Dewar <dewar@adacore.com>
3375 * s-wchstw.adb: provide messages for run time unit exceptions
3377 * a-witeio.adb: Minor reformatting
3379 * exp_ch13.adb: Minor reformatting
3381 2007-09-26 Sergey Rybin <rybin@adacore.com>
3383 * vms_data.ads: Revise gnatmetric qualifiers.
3384 Add qualified for the new gnatbind option '-y'
3386 * gnat_ugn.texi: Revise the gnatmetric section.
3387 Add entry for new gnatbind option '-y'.
3389 * gnat_rm.texi: Minor spelling correction.
3390 Document restriction on overlaying controlled types
3392 2007-09-26 Vincent Celier <celier@adacore.com>
3394 * makegpr.adb (Link_Executables): Do not fail when the root project has
3395 no sources, but is an extending project.
3397 2007-09-25 Eric Botcazou <ebotcazou@adacore.com>
3399 * trans.c: Fix misplaced #define.
3401 2007-09-22 Eric Botcazou <ebotcazou@adacore.com>
3403 * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
3404 the TYPE_REF_CAN_ALIAS_ALL flag to the result.
3406 2007-09-21 Olivier Hainque <hainque@adacore.com>
3408 * utils.c (type_for_nonaliased_component_p): Return false for
3409 all AGGREGATE_TYPEs.
3411 2007-09-17 Eric Botcazou <ebotcazou@adacore.com>
3413 * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
3414 object covered by 13.3(19) volatile.
3416 2007-09-12 Eric Botcazou <ebotcazou@adacore.com>
3420 * utils.c (unchecked_convert): Use a subtype as the intermediate type
3421 in the special VIEW_CONVERT_EXPR case.
3423 2007-09-12 Robert Dewar <dewar@adacore.com>
3425 * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
3427 * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
3428 lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
3429 s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
3430 s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
3431 s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
3432 s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
3433 s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
3434 s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
3435 a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
3436 g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
3437 s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
3438 s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
3439 snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
3440 s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
3441 s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
3442 s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
3443 s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
3444 pragma Compiler_Unit and adds it to relevant library units.
3446 2007-09-12 Ed Schonberg <schonberg@adacore.com>
3448 * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
3449 a box need not correspond to any component.
3451 2007-09-12 Robert Dewar <dewar@adacore.com>
3453 * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
3454 the tasking version of the Ada run time when foreign threads are
3455 present and there are no explicit Ada tasks or tasking constructs.
3457 * gnat_rm.texi: Clarify documentation of GNAT.Threads.
3459 2007-09-12 Hristian Kirtchev <kirtchev@adacore.com>
3461 * bindusg.adb (Display): Correct comment for switch -X. Add a line for
3462 the usage of switch -y.
3464 * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
3465 when switch -y is present.
3467 * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
3468 leap seconds in Ada.Calendar and its children.
3470 2007-09-12 Jose Ruiz <ruiz@adacore.com>
3472 * a-extiti.ads (Timer): The discriminant is a "not null access
3473 constant" in the Reference Manual.
3474 (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
3476 2007-09-12 Robert Dewar <dewar@adacore.com>
3478 * a-swuwha.adb: Remove junk RM header
3480 2007-09-12 Vincent Celier <celier@adacore.com>
3482 * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
3485 * g-bytswa.ads: Minor reformatting
3487 2007-09-12 Thomas Quinot <quinot@adacore.com>
3489 * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
3490 Add new constant Thread_Blocking_IO, always True by default, set False
3491 on a per-runtime basis.
3492 (Need_Netdb_Buffer): New constant.
3494 2007-09-12 Arnaud Charlet <charlet@adacore.com>
3496 * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
3497 Added renames for corresponding functions in System.Partition_Interface.
3499 2007-09-12 Doug Rupp <rupp@adacore.com>
3501 * Makefile.in: Remove VMS specific System.CRTL packages which are no
3504 * s-crtl-vms64.ads: Removed.
3506 2007-09-12 Olivier Hainque <hainque@adacore.com>
3508 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
3509 with discriminant constraints, generalize the code for BIT_FIELDs
3510 to PACKED fields of constant size and propagate DECL_PACKED.
3512 2007-09-11 Eric Botcazou <ebotcazou@adacore.com>
3514 * decl.c (array_type_has_nonaliased_component): New predicate.
3515 (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
3516 set the TYPE_NONALIASED_COMPONENT flag on the type.
3517 <E_Array_Subtype>: Likewise.
3518 * gigi.h (type_for_nonaliased_component_p): Declare.
3519 * utils.c (type_for_nonaliased_component_p): New predicate.
3520 (create_field_decl): Invoke the above predicate to set the
3521 DECL_NONADDRESSABLE_P flag on the field.
3523 2007-09-11 Javier Miranda <miranda@adacore.com>
3525 * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
3526 in library level record type entities if we are generating statically
3527 allocated dispatch tables.
3529 * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
3530 importing/exporting the _tag declaration by new code
3531 importing/exporting the dispatch table wrapper. This change allows us
3532 to statically allocate of the TSD.
3533 (Make_DT.Export_DT): New procedure.
3534 (Build_Static_DT): New function.
3535 (Has_DT): New function.
3537 * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
3538 True_Constant and Current_Value. Required to statically
3539 allocate the dispatch tables.
3540 (Check_Allocator): Make function iterative instead of recursive.
3541 Also return inner allocator node, when present, so that we do not have
3542 to look for that node again in the caller.
3544 2007-09-11 Jan Hubicka <jh@suse.cz>
3546 * misc.c (gnat_expand_body): Kill.
3547 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
3549 2007-09-10 Robert Dewar <dewar@adacore.com>
3551 * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
3552 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
3553 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
3554 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
3555 ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
3556 bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
3557 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
3558 butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
3559 comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
3560 elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
3561 err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
3562 exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
3563 exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
3564 exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
3565 exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
3566 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
3567 exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
3568 exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
3569 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
3570 exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
3571 exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
3572 exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
3573 fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
3574 get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
3575 gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
3576 gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
3577 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
3578 gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
3579 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
3580 gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
3581 inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
3582 lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
3583 lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
3584 make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
3585 mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
3586 mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
3587 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
3588 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
3589 osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
3590 osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
3591 par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
3592 par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
3593 par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
3594 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
3595 par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
3596 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
3597 prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
3598 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
3599 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
3600 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
3601 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
3602 prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
3603 rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
3604 scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
3605 sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
3606 sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
3607 sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
3608 sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
3609 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
3610 sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
3611 sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
3612 sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
3613 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
3614 sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
3615 sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
3616 sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
3617 sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
3618 sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
3619 stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
3620 styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
3621 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
3622 switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
3623 tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
3624 treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
3625 types.h, uintp.h, urealp.h, usage.adb, usage.ads,
3626 validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
3627 xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
3628 xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
3629 gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
3630 mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
3631 symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
3632 mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
3633 mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
3635 2007-09-10 Emmanuel Briot <briot@adacore.com>
3637 * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
3640 2007-09-10 Vasiliy Fofanov <fofanov@adacore.com>
3642 * adaint.c (__gnat_translate_vms): new function.
3644 2007-09-10 Gary Dismukes <dismukes@adacore.com>
3645 Thomas Quinot <quinot@adacore.com>
3647 * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
3648 create an abstract subprogram in the case of 'Input. For 'Output we now
3649 create a real spec/body when the type is abstract, since it can
3650 potentially be called.
3651 (Predefined_Primitive_Bodies): Now allow the creation of a predefined
3652 body for 'Output when the type is abstract (only the creation of the
3653 body for 'Input is excluded when the type is abstract).
3654 (Stream_Operation_OK): Add an additional condition in the return
3655 statement, so that False will be returned for TTS_Stream_Input if the
3656 associated tagged type is an abstract extension. Add comments for
3658 (Expand_N_Object_Declaration): For the case of a shared passive
3659 variable, insert init proc call only after the shared variable
3660 procedures have been processed, because the IP call needs to undergo
3661 shared passive variable reference expansion, which requires these
3662 procedures to be available (and elaborated).
3664 2007-09-10 Vincent Celier <celier@adacore.com>
3666 * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
3667 parameter Runtime_Project.
3669 2007-09-10 Ed Schonberg <schonberg@adacore.com>
3671 * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
3672 given a box association, the type of the component is discriminated,
3673 and the value of the discriminant is the discriminant of the enclosing
3674 type, retrieve its value from the aggregate itself, where it must have
3677 * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
3678 to remove other spurious ambiguities on arithmetic operations involving
3679 literals and addresses, on systems where Address is a visible integer
3680 type, when the operator is called in functional notation.
3681 (Try_Primitive_Operation): Within an instance, a call in prefixed form
3682 is legal when the types match, even if the operation is currently
3685 2007-09-10 Ed Schonberg <schonberg@adacore.com>
3687 * sem_ch12.adb (Build_Local_Package): A formal package with no
3688 associations is legal if all formals have defaults. It is not
3689 equivalent to a formal declared with a box.
3691 2007-09-10 Sergey Rybin <rybin@adacore.com>
3693 * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
3695 2007-09-10 Sergey Rybin <rybin@adacore.com>
3697 * gnat_ugn.texi: Add description of the new '-lratio' option
3698 Update 7.3.1 section about availability of the feature.
3700 2007-09-10 Thomas Quinot <quinot@adacore.com>
3702 * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
3705 2007-09-10 Olivier Hainque <hainque@adacore.com>
3707 * Makefile.in: (mips-irix section): Activate build of libgmem.
3709 2007-09-10 Eric Botcazou <ebotcazou@adacore.com>
3711 * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
3714 2007-09-10 Eric Botcazou <ebotcazou@adacore.com>
3716 * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
3717 a debug renaming declaration specially.
3719 2007-09-08 Eric Botcazou <ebotcazou@adacore.com>
3721 * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
3722 which a constant renaming is treated as a normal object declaration.
3723 * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
3724 the N_Indexed_Component case.
3725 <N_Indexed_Component>: Fall through to above case.
3726 <N_Object_Renaming_Declaration>: Return true for all composite types.
3728 2007-09-08 Eric Botcazou <ebotcazou@adacore.com>
3730 * decl.c (make_packable_type): If the new type has been given BLKmode,
3731 try again to get an integral mode for it.
3733 2007-09-07 Eric Botcazou <ebotcazou@adacore.com>
3735 Re-apply accidentally reverted change:
3737 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
3739 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
3740 get_action_description_for): Replace _Unwind_Word with _uleb128_t
3741 and _Unwind_SWord with _sleb128_t.
3743 2007-09-06 Eric Botcazou <ebotcazou@adacore.com>
3745 * trans.c (convert_with_check): Update call to real_2expN.
3747 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
3749 * trans.c (Compilation_unit_to_gnu): Use set_cfun.
3750 * utils.c (end_subprog_body): Likewise.
3752 2007-09-03 Nick Clifton <nickc@redhat.com>
3754 * Make-lang.in: Change copyright header to refer to version 3 of
3755 the GNU General Public License and to point readers at the
3756 COPYING3 file and the FSF's license web page.
3757 * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
3758 Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
3759 namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
3760 treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
3763 2007-08-31 Vincent Celier <celier@adacore.com>
3767 * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
3768 gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
3769 (Check_Version_And_Help): New procedure in package Switch to process
3770 switches --version and --help.
3771 Use Check_Version_And_Help in GNAT tools
3774 (Compile_Sources): Make sure that sources that are "excluded" are not
3776 (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
3777 project file is used.
3778 (Version_Switch): Remove, moved to Switch
3779 (Help_Switch): Remove, moved to Switch
3780 (Display_Version): Remove, moved to Switch
3782 * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
3783 package Switch to process switches --version and --help.
3784 (Display_Version): New procedure
3786 * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
3788 2007-08-31 Javier Miranda <miranda@adacore.com>
3790 * a-tags.adb (Internal_Tag): Protect the run-time against wrong
3793 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3795 * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
3796 (Mark_Non_Null): If the node for which we just generated an access check
3797 is a reference to an *in* parameter and the reference appears in the
3798 declarative part of a subprogram body, mark the node as known non null.
3800 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3802 * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
3803 structure of E_Exception to reflect the new flag.
3804 (Is_Raised, Set_Is_Raised): New inlined routines.
3805 Update the usage of available flag to reflect the addition of Is_Raised.
3806 (Is_Raised, Set_Is_Raised): Bodies of new routines.
3807 (Write_Entity_Flags): Write the status of flag Is_Raised.
3808 (Is_Descendent_Of_Address): New entity flag, to simplify handling of
3809 spurious ambiguities when integer literals appear in the context of an
3810 address type that is a visible integer type.
3812 * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
3813 exceptions never being raised.
3814 (Analyze_Raise_Statement): When analyzing an exception, mark it as being
3817 2007-08-31 Javier Miranda <miranda@adacore.com>
3819 * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
3820 statement when compiling under restriction No_Exceptions_Proparation.
3822 2007-08-31 Ed Schonberg <schonberg@adacore.com>
3824 * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
3825 initialization aggregate for the type, generate itype references for
3826 thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
3828 2007-08-31 Gary Dismukes <dismukes@adacore.com>
3830 * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
3831 library-level package renaming, pass the declaration associated with
3832 the renaming's special debug variable to Qualify_Entity_Names to ensure
3833 that its encoded name is properly qualified.
3835 * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
3836 occurring in the list of entities to qualify, and do not attempt to
3837 traverse an entity list in that case. Variables associated with
3838 ` library-level package renamings can now occur in the table.
3840 * exp_dbug.ads: Revise documentation of the encoding for renaming
3843 2007-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3845 * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
3846 access type points to an unconstrained array.
3848 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
3850 * restrict.adb, namet.adb, par-util.adb: Remove redundant type
3853 * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
3854 simple redundant qualifications. The check is performed whenever the
3855 expression is a non-overloaded identifier.
3856 (Resolve_Type_Conversion): Enchance the redundant type conversion check
3857 to include loop parameters.
3858 (Valid_Conversion): Avoid generation of spurious error message.
3860 2007-08-31 Bob Duff <duff@adacore.com>
3862 * par-ch4.adb (P_Simple_Expression): Fold long sequences of
3863 concatenations of string literals into a single literal, in order to
3864 avoid very deep recursion in the front end, which was causing stack
3867 * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
3868 string, and the right operand is a string literal (the case of "" &
3869 "..."), optimize by avoiding copying the right operand -- just use the
3870 value of the right operand directly.
3872 * stringt.adb (Store_String_Chars): Optimize by growing the
3873 String_Chars table all at once, rather than appending characters one by
3875 (Write_String_Table_Entry): If the string to be printed is very long,
3876 just print the first few characters, followed by the length. Otherwise,
3877 doing "pn(n)" in the debugger can take an extremely long time.
3879 * sem_prag.adb (Process_Interface_Name): Replace loop doing
3880 Store_String_Char with Store_String_Chars.
3882 2007-08-31 Vincent Celier <celier@adacore.com>
3884 * prj-attr.adb: Add new attribute Excluded_Source_Files
3886 * prj-nmsc.adb: Use attribute Excluded_Source_Files before
3887 Locally_Removed_Files.
3889 * snames.ads, snames.adb: New standard name Excluded_Source_Files
3891 2007-08-31 Ed Schonberg <schonberg@adacore.com>
3893 * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
3894 clauses of subunits, ignore limited_with_clauses that are illegal and
3895 have not been fully analyzed.
3897 2007-08-31 Ed Schonberg <schonberg@adacore.com>
3899 * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
3900 flag, for effiency. It is called when analyzing arithmetic operators
3901 and also for actuals in calls that are universal_integers. The flag is
3902 set for the predefined type address, and for any type or subtype
3905 * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
3906 Universal_Integer, when the formal is a descendent of address and the
3907 call appears in user code.
3908 (Analyze_Selected_Component): if the prefix is a private extension, the
3909 tag component is visible.
3911 * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
3914 2007-08-31 Robert Dewar <dewar@adacore.com>
3916 * s-fileio.adb (Open): Normalize file name to lower case in non-case
3917 sensitive file name systems to avoid unexpected mismatch in Vista.
3919 2007-08-31 Vincent Celier <celier@adacore.com>
3921 * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
3923 2007-08-31 Vincent Celier <celier@adacore.com>
3925 * symbols-vms.adb (Initialize): Read symbol files with continuation
3927 (Finalize): If symbol is long, split the line
3929 2007-08-31 Vincent Celier <celier@adacore.com>
3931 * fmap.ads: Minor comment updates
3933 2007-08-31 GNAT Script <nobody@adacore.com>
3935 * Make-lang.in: Makefile automatically updated
3937 2007-08-31 Bob Duff <duff@adacore.com>
3939 * sinfo.ads: Minor comment fix.
3941 2007-08-31 Thomas Quinot <quinot@adacore.com>
3943 * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
3944 with implementation.
3945 Documentation cleanup only.
3947 2007-08-31 Sergey Rybin <rybin@adacore.com>
3949 * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
3950 gnatpp '--separate-stmt-name' option.
3951 Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
3954 * gnat_ugn.texi: Add description for the new gnatpp
3955 '--separate-stmt-name' and '--use-on-new-line' options.
3957 2007-08-31 Ben Elliston <bje@au.ibm.com>
3959 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
3960 when compiling for powerpc64-*-linux.
3961 * system-linux-ppc64.ads: New file.
3963 2007-08-22 Krister Walfridsson <cato@df.lth.se>
3965 * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
3968 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3970 * misc.c (gnat_type_max_size): Constify.
3972 2007-08-16 Gary Dismukes <dismukes@adacore.com>
3974 * cstand.adb (Create_Standard): Create an entity for a zero-sized type
3975 associated with Standard_Debug_Renaming_Type, to be used as the type of
3976 the special variables whose names provide debugger encodings for
3977 renaming declarations.
3979 * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
3980 (Set_Debug_Renaming_Link): Change to set Node25.
3981 (Write_Field13_Name): Remove case for E_Enumeration_Literal.
3982 (Write_Field25_Name): Add case for E_Variable to output
3983 "Debug_Renaming_Link".
3984 (Write_Field23_Name): Correct the output string for "Limited_View".
3986 * exp_dbug.adb: Add with and use of Tbuild.
3987 (Debug_Renaming_Declaration): Replace creation of an enumeration type
3988 and literal with creation of a variable of type
3989 Standard_Debug_Renaming_Type whose name encodes both the renamed object
3990 and the entity of the renaming declaration.
3991 (Qualify_Entity_Name): Add the delayed qualification of the entity name
3992 part of the name of a variable that has a Debug_Renaming_Link.
3994 * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
3995 special type to be associated with variables that provide debugger
3996 encodings for renaming declarations.
3998 2007-08-16 Gary Dismukes <dismukes@adacore.com>
3999 Ed Schonberg <schonberg@adacore.com>
4000 Javier Miranda <miranda@adacore.com>
4002 * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
4003 ancestor part given by an aggregate to test for an unchecked conversion,
4004 since this can occur in some cases when the ancestor part is a function
4005 call, and we don't want to fall into the recursive call to this
4006 procedure in that case.
4008 * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
4009 stream attributes on limited types to account for user-specified
4010 attributes as well as whether Input (resp. Output) becomes available
4011 due to Read (resp. Write) being available for the type. Change Boolean
4012 variable to the more accurate name
4013 Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
4014 double-"not" predicate at beginning of return statement to more
4015 understandable form.
4017 * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
4018 return has an associated N_Handled_Sequence_Of_Statements, then wrap it
4019 in a block statement and use that as the first statement of the
4020 expanded return rather than incorrectly using the handled sequence as
4021 the first statement.
4023 * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
4024 operation, generate an explicit freeze node for it rather than
4025 generating extra formals, to ensure that gigi has the proper order of
4026 elaboration for anonymous subtypes in the signature of the subprograms.
4027 (Build_In_Place_Formal): Move assertion to beginning of loop.
4028 (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
4029 applied to a function call (occurs for some cases of 'Input).
4030 (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
4031 applied to a function call (occurs for some cases of 'Input).
4033 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
4034 2005, generate an extended return statement enclosing the result object
4037 * freeze.adb (Freeze_Record_Type): Extend the current management of
4038 components that are access type with an allocator as default value: add
4039 missing support to the use of qualified expressions of the
4040 allocator (which also cause freezing of the designated type!)
4041 (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
4042 dispatching operation, since extra formals may be needed by calls to
4043 build-in-place functions (such as stream 'Input).
4045 * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
4046 formals for 'Constrained and accessibility level in the case of a
4047 predefined dispatching operation.
4049 * exp_util.adb (Insert_Actions): A protected body is a valid insertion
4050 point, no need to find the parent node.
4052 2007-08-16 Javier Miranda <miranda@adacore.com>
4054 * exp_attr.adb (Attribute_Priority): Add missing support for entries
4057 2007-08-16 Javier Miranda <miranda@adacore.com>
4059 * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
4060 is not really required and can introduce regression with the debugger.
4061 The original problem is fixed with the patch written for checks.adb.
4063 2007-08-16 Thomas Quinot <quinot@adacore.com>
4065 * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
4066 Range_Check on Allocated_Table.
4068 2007-08-16 Vincent Celier <celier@adacore.com>
4070 * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
4071 Including_Non_Switch set to False.
4072 (Gnatmake): For the compiler, call Test_If_Relative_Path with
4073 Including_Non_Switch set to False.
4075 * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
4076 parameter Including_Non_Switch, defaulted to True. When
4077 Including_Non_Switch is False, options that are not switches and
4078 appear as relative path are not converted to absolute paths.
4080 2007-08-16 Nicolas Roche <roche@adacore.com>
4082 * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
4085 * Make-lang.in: Update dependencies
4087 2007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
4089 * sem_ch10.adb (Has_With_Clause): If the name of the with clause
4090 currently inspected is a selected component, retrieve the entity of
4092 (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
4093 from the immediate ancestor of Main_Unit_Entity.
4094 (Install_Limited_Withed_Unit): Do not install the limited view of
4095 package P if P is reachable through an ancestor chain from package C
4096 and C also has a with clause for P in its body.
4097 (Has_Limited_With_Clause): New routine.
4098 (Has_With_Clause): New routine.
4100 2007-08-16 Ed Schonberg <schonberg@adacore.com>
4102 * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
4103 generic for an enclosing instance is a global reference, even though
4104 its scope is the enclosing instance.
4106 2007-08-16 Gary Dismukes <dismukes@adacore.com>
4107 Javier Miranda <miranda@adacore.com>
4109 * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
4110 initialize a limited object.
4111 (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
4113 Make sure Has_Complex_Representation is inherited by derived type.
4115 2007-08-16 Robert Dewar <dewar@adacore.com>
4117 * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
4120 2007-08-16 Ed Schonberg <schonberg@adacore.com>
4122 * sem_disp.adb (Check_Dispatching_Operation): If the operation
4123 implements an operation inherited from a progenitor interface, verify
4124 that they are subtype-conformant.
4126 2007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
4127 Bob Duff <duff@adacore.com>
4128 Nicolas Setton <setton@adacore.com>
4130 * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
4131 (Resolve): Alphabetize local variables. Add new variable From_Lib. When
4132 the statement which is being resolved comes from a predefined library
4133 unit, all non-predefined library interpretations are skipped.
4134 (Resolve_Op_Concat): If string concatenation was folded in the parser,
4135 but the "&" is user defined, give an error, because the folding would
4138 * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
4139 the parser has folded a long sequence of concatenations of string
4142 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
4143 and "JMP_BUF" variables as artificial.
4144 (N_String_Literal): Do not use alloca for very long string literals. Use
4145 xmalloc/free instead. Otherwise the stack might overflow.
4147 * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
4150 2007-08-16 Vincent Celier <celier@adacore.com>
4152 * vms_conv.adb (Process_Argument): Ensure that project related options
4153 are not put in the -cargs section when using GNAT COMPILE.
4155 2007-08-16 Robert Dewar <dewar@adacore.com>
4157 * gnat_ugn.texi: Add note on preprocessing (output file not written)
4159 2007-08-16 Thomas Quinot <quinot@adacore.com>
4161 * a-tags.adb: Minor reformatting.
4163 2007-08-16 Bob Duff <duff@adacore.com>
4165 * sem_type.ads, sem_ch4.adb: Minor reformatting.
4167 2007-08-14 Thomas Quinot <quinot@adacore.com>
4169 * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
4170 s-osinte-interix.ads, system-interix.ads: Removed.
4172 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
4174 * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
4175 calls to Check_Within_Time_Bounds.
4176 ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
4177 (Difference): Account for possible rounding of the resulting difference
4179 2007-08-14 Robert Dewar <dewar@adacore.com>
4181 * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
4182 par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
4183 s-osinte-solaris.adb, s-osinte-solaris.ads,
4184 s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
4186 * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
4187 switch -gnatyS. Enable -gnatyS in GNAT style check mode
4189 2007-08-14 Robert Dewar <dewar@adacore.com>
4190 Ed Schonberg <schonberg@adacore.com>
4192 * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
4193 Suppress unmodified in-out parameter warning in some cases
4194 This patch is a also fairly significant change to the way suppressible
4197 * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
4198 needed for access to concurrent record types generated by the expander.
4199 (Generate_Range_Check): When generating a temporary to capture the
4200 value of a conversion that requires a range check, set the type of the
4201 temporary before rewriting the node, so that the type is always
4202 properly placed for back-end use.
4203 (Apply_Float_Conversion_Check): Handle case where the conversion is
4205 (Get_Discriminal): Code reformatting. Climb the scope stack looking
4206 for a protected type in order to examine its discriminants.
4208 2007-08-14 Robert Dewar <dewar@adacore.com>
4209 Gary Dismukes <dismukes@adacore.com>
4210 Ed Schonberg <schonberg@adacore.com>
4211 Thomas Quinot <quinot@adacore.com>
4213 * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
4214 a-stwisu.adb, a-strsup.adb: Fix warnings for range
4215 tests optimized out.
4217 * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
4218 (Get_Allocator_Final_List): For the case of an anonymous access type
4219 that has a specified Associated_Final_Chain, do not go up to the
4221 (Expand_N_Type_Conversion): Test for the case of renamings of access
4222 parameters when deciding whether to apply a run-time accessibility
4224 (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
4225 aggregate code before allocator, and ahead of declaration for
4226 temporary, to prevent access before elaboration when the allocator is
4227 an actual for an access parameter.
4228 (Expand_N_Type_Conversion): On an access type conversion involving an
4229 access parameter, do not apply an accessibility check when the
4230 operand's original node was an attribute other than 'Access. We now
4231 create access conversions for the expansion of 'Unchecked_Access and
4232 'Unrestricted_Access in certain cases and clearly accessibility should
4233 not be checked for those.
4235 * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
4236 includes a type conversion of a packed component that has been expanded,
4237 recover the original expression for the object, and use this expression
4238 in the post-call assignment statement, so that the assignment is made
4239 to the object and not to a back-end temporary.
4240 (Freeze_Subprogram): In case of primitives of tagged types not defined
4241 at the library level force generation of code to register the primitive
4242 in the dispatch table. In addition some code reorganization has been
4243 done to leave the implementation clear.
4244 (Expand_Call): When expanding an inherited implicit conversion,
4245 preserve the type of the inherited function after the intrinsic
4246 operation has been expanded.
4248 * exp_ch2.ads, exp_ch2.adb
4249 (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
4250 of an entry formal appearing in an assignment statement does not assign
4252 (Expand_Current_Value): Instead of calling a routine to determine
4253 whether the prefix of an attribute reference should be optimized or
4254 not, prevent the optimization of such prefixes all together.
4256 * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
4257 component whose prefix is known to be of an access type is an implicit
4258 dereference and does not assign to the prefix.
4260 2007-08-14 Ed Schonberg <schonberg@adacore.com>
4261 Robert Dewar <dewar@adacore.com>
4263 * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
4264 itype is visited, make an entry into table to link associated node and
4266 Add comments and correct harmless error in Build_NCT_Hash_Tables
4267 (Array_Aggr_Subtype): Associate each itype created for an index type to
4268 the corresponding range construct, and not to the aggregate itself. to
4269 maintain a one-to-one correspondence between itype and its associated
4270 node, to prevent errors when complex expression is copied.
4271 Fix mishandling of multiple levels of parens
4273 * sem_aggr.adb: Create a limited view of an incomplete type, to make
4274 treatment of limited views uniform for all visible declarations in a
4275 limited_withed package.
4276 (New_Copy_Tree): If hash table is being used and itype is visited,
4277 make an entry into table to link associated node and new itype.
4278 (Resolve_Record_Aggregate): Do not add an others box association for a
4279 discriminated record component that has only discriminants, when there
4280 is a box association for the component itself.
4282 * par-ch4.adb: Fix mishandling of multiple levels of parens
4284 2007-08-14 Robert Dewar <dewar@adacore.com>
4286 * comperr.adb: Fix problem with suppressing warning messages from gigi
4288 * erroutc.ads, erroutc.adb, errout.ads,
4289 errout.adb (Write_Eol): Remove trailing spaces before writing the line
4290 (Write_Eol_Keep_Blanks): New procedure to write a line, including
4291 possible trailing spaces.
4292 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
4293 Fix problem with suppressing warning messages from back end
4294 Improve handling of deleted warnings
4297 Fix problem with suppressing warning messages from back end
4298 Handle setting of Static_Dispatch_Tables flag.
4301 Fix problem with suppressing warning messages from back end
4303 * exp_intr.adb: Improve handling of deleted warnings
4305 2007-08-14 Robert Dewar <dewar@adacore.com>
4307 * debug.adb: Improve -gnatdI to cover all cases of serialization
4308 Add documentation of dZ, d.t
4310 * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
4312 (Sprint_Node_Actual): Generate new output associated with implicit
4313 importation and implicit exportation of object declarations.
4315 2007-08-14 Ed Schonberg <schonberg@adacore.com>
4316 Robert Dewar <dewar@adacore.com>
4317 Javier Miranda <miranda@adacore.com>
4318 Gary Dismukes <dismukes@adacore.com>
4320 * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
4321 to make treatment of limited views uniform for all visible declarations
4322 in a limited_withed package.
4323 Improve warnings for in out parameters
4324 (Set_Related_Interaface/Related_Interface): Allow the use of this
4325 attribute with constants.
4326 (Write_Field26_Name): Handle attribute Related_Interface in constants.
4327 Warn on duplicate pragma Preelaborable_Initialialization
4329 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
4330 generation of a freezing node to ensure proper management of null
4331 excluding access types in the backend.
4332 (Create_Extra_Formals): Test base type of the formal when checking for
4333 the need to add an extra accessibility-level formal. Pass the entity E
4334 on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
4335 originally being done in a couple of cases), to ensure that the
4336 Extra_Formals list gets set on the entity E when the first entity is
4338 (Conforming_Types): Add missing calls to Base_Type to the code that
4339 handles anonymous access types. This is required to handle the
4340 general case because Process_Formals builds internal subtype entities
4341 to handle null-excluding access types.
4342 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
4343 functions that need it, even when not marked Requires_Overriding.
4344 Improve warnings for in out parameters
4345 (Analyze_Function_Return): Warn for disallowed null return
4346 Warn on return from procedure with unset out parameter
4347 Ensure consistent use of # in error messages
4348 (Check_Overriding_Indicator): Add in parameter Is_Primitive.
4349 (Analyze_Function_Return): Move call to Apply_Constraint_Check before
4350 the implicit conversion of the expression done for anonymous access
4351 types. This is required to generate the code of the null excluding
4352 check (if required).
4354 * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
4355 A formal parameter is never publicly referenceable outside of its body.
4356 (Check_References): For an unreferenced formal parameter in an accept
4357 statement, use the same warning circuitry as for subprogram formal
4359 (Warn_On_Unreferenced_Entity): New subprogram, taken from
4360 Output_Unreferenced_Messages, containing the part of that routine that
4361 is now reused for entry formals as described above.
4362 (Goto_Spec_Entity): New function
4363 (Check_References): Do not give IN OUT warning for dispatching operation
4364 Improve warnings for in out parameters
4365 (Test_Ref): Check that the entity is not undefinite before calling
4366 Scope_Within, in order to avoid infinite loops.
4367 Warn on return from procedure with unset out parameter
4368 Improved warnings for unused variables
4370 2007-08-14 Robert Dewar <dewar@adacore.com>
4371 Javier Miranda <miranda@adacore.com>
4372 Gary Dismukes <dismukes@adacore.com>
4374 * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
4375 (Expand_N_Attribute_Reference): Further unify the handling of the
4376 three forms of access attributes, using common code now for all three
4377 cases. Add a test for the case of applying an access attribute to
4378 an explicit dereference when the context is an access-to-interface
4379 type. In that case we need to apply the conversion to the prefix
4380 of the explicit dereference rather than the prefix of the attribute.
4381 (Attribute_Version, UET_Address): Set entity as internal to ensure
4382 proper dg output of implicit importation.
4383 (Expand_Access_To_Type): Removed.
4384 (Expand_N_Attribute_Reference): Merge the code from the three cases
4385 of access attributes, since the processing is largely identical for
4386 these cases. The substantive fix here is to process the case of a
4387 type name prefix (current instance case) before handling the case
4388 of interface prefixes.
4390 2007-08-14 Thomas Quinot <quinot@adacore.com>
4391 Ed Schonberg <schonberg@adacore.com>
4392 Javier Miranda <miranda@adacore.com>
4393 Robert Dewar <dewar@adacore.com>
4395 * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
4396 (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
4397 type that is an anonymous access to controlled object, establish
4398 an associated finalization chain to avoid corrupting the global
4399 finalization list when a dynamically allocated object designated
4400 by such a component is deallocated.
4401 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
4402 functions that need it, even when not marked Requires_Overriding.
4403 (Initialize_Tag): Replace call to has_discriminants by call to
4404 Is_Variable_Size_Record in the circuitry that handles the
4405 initialization of secondary tags.
4406 (Is_Variable_Size_Record): New implementation.
4407 (Expand_N_Object_Declaration): Suppress call to init proc if there is a
4408 Suppress_Initialization pragma for a derived type.
4409 (Is_Variable_Size_Record): New subprogram.
4410 (Build_Offset_To_Top_Functions): New implementation that simplifies the
4411 initial version of this routine and also fixes problems causing
4412 incomplete initialization of the table of interfaces.
4413 (Build_Init_Procedure): Improve the generation of code to initialize the
4414 the tag components of secondary dispatch tables.
4415 (Init_Secondary_Tags): New implementation that simplifies the previous
4416 version of this routine.
4417 (Make_DT): Add parameter to indicate when type has been frozen by an
4418 object declaration, for diagnostic purposes.
4419 (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
4420 diagnose attemps to freeze a subprogram when some untagged type of its
4421 profile is a private type whose full view has not been analyzed yet.
4422 (Freeze_Array_Type): Generate init proc for packed array if either
4423 Initialize or Normalize_Scalars is set.
4424 (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
4425 constructing the new profile, copy the null_exclusion indicator for each
4426 parameter, to ensure full conformance of the new body with the spec.
4428 * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
4429 Create wrappers for constructor functions that need it, even when not
4430 marked Requires_Overriding.
4431 (Covers): Handle properly designated types of anonymous access types,
4432 whose non-limited views are themselves incomplete types.
4433 (Add_Entry): Use an entity to store the abstract operation which hides
4435 (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
4436 (Collect_Interps): Use Empty as an actual for Abstract_Op in the
4437 initialization aggregate.
4438 (Function_Interp_May_Be_Hidden): Rename to
4439 Function_Interp_Has_Abstract_Op.
4440 (Has_Compatible_Type): Remove machinery that skips interpretations if
4441 they are labeled as potentially hidden by an abstract operator.
4442 (Has_Hidden_Interp): Rename to Has_Abstract_Op.
4443 (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
4444 (Write_Overloads): Output the abstract operator if present.
4445 (Add_Entry): Before inserting a new entry into the interpretation table
4446 for a node, determine whether the entry will be disabled by an abstract
4448 (Binary_Op_Interp_May_Be_Hidden): New routine.
4449 (Collect_Interps): Add value for flag May_Be_Hidden in initialization
4451 (Function_Interp_May_Be_Hidden): New routine.
4452 (Has_Compatible_Type): Do not consider interpretations hidden by
4453 abstract operators when trying to determine whether two types are
4455 (Has_Hidden_Interp): New routine.
4456 (Set_May_Be_Hidden_Interp): New routine.
4457 (Write_Overloads): Write the status of flag May_Be_Hidden.
4459 2007-08-14 Ed Schonberg <schonberg@adacore.com>
4460 Javier Miranda <miranda@adacore.com>
4462 * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
4463 types declared in the declarative part of a nested package body or in
4464 the proper body of a stub.
4465 (Set_All_DT_Position): Add missing check to avoid wrong assignation
4466 of the same dispatch table slot to renamed primitives.
4467 (Make_Select_Specific_Data_Table): Handle private types.
4468 (Tagged_Kind): Handle private types.
4469 (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
4470 output of implicit importation and exportation.
4471 (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
4472 first formal of the thunk is always associated with the controlling
4473 type. In addition perform the following code cleanup: remove formal
4474 Thunk_Alias which is no longer required, cleanup evaluation of the
4475 the controlling type, and update the documentation.
4476 Replace occurrence of Default_Prim_Op_Count by
4477 Max_Predef_Prims. Addition of compile-time check to verify
4478 that the value of Max_Predef_Prims is correct.
4479 (Check_Premature_Freezing): Apply check in Ada95 mode as well.
4480 (Make_DT): Add parameter to indicate when type has been frozen by an
4481 object declaration, for diagnostic purposes.
4482 (Build_Static_Dispatch_Tables): New subprogram that takes care of the
4483 construction of statically allocated dispatch tables.
4484 (Make_DT): In case of library-level tagged types export the declaration
4485 of the primary tag. Remove generation of tags (now done by Make_Tags).
4486 Additional modifications to handle non-static generation of dispatch
4487 tables. Take care of building tables for asynchronous interface types
4488 (Make_Tags): New subprogram that generates the entities associated with
4489 the primary and secondary tags of Typ and fills the contents of Access_
4490 Disp_Table. In case of library-level tagged types imports the forward
4491 declaration of the primary tag that will be declared later by Make_DT.
4492 (Expand_Interface_Conversion): In case of access types to interfaces
4493 replace an itype declaration by an explicit type declaration to avoid
4494 problems associated with the scope of such itype in transient blocks.
4496 2007-08-14 Robert Dewar <dewar@adacore.com>
4497 Ed Schonberg <schonberg@adacore.com>
4498 Javier Miranda <miranda@adacore.com>
4500 * exp_util.ads, exp_util.adb:
4501 This patch replaces a number of occurrences of explicit tests for N_Null
4502 with calls to Known_Null. This improves tracking of null values, since
4503 Known_Null also catches null constants, and variables currently known to
4504 be null, so we get better tracking.
4505 (Ensure_Defined): create an itype reference only in the scope of the
4507 (Side_Effect_Free): A selected component of an access type that
4508 denotes a component with a rep clause must be treated as not
4509 side-effect free, because if it is part of a linked structure its
4510 value may be affected by a renaming.
4511 (Expand_Subtype_From_Expr): For limited objects initialized with build
4512 in place function calls, do nothing; otherwise we prematurely introduce
4513 an N_Reference node in the expression initializing the object, which
4514 breaks the circuitry that detects and adds the additional arguments to
4515 the called function. Bug found working in the new patch for statically
4516 allocated dispatch tables.
4517 (Is_Library_Level_Tagged_Type): New subprogram.
4518 (Remove_Side_Effects): If the expression of an elementary type is an
4519 operator treat as a function call.
4520 (Make_Literal_Range): If the index type of the array is not integer, use
4521 attributes properly to compute the constraint on the resulting aggregate
4524 * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
4525 class-wide type whose base type is an incomplete private type, leave
4526 class-wide type unfrozen so that freeze nodes can be generated
4527 properly at a later point.
4528 (Freeze_Entity, array case): Handle case of pragma Pack and component
4529 size attributre clause for same array.
4531 2007-08-14 Vincent Celier <celier@adacore.com>
4533 * prj.ads, prj.adb: Update Project Manager to new attribute names for
4535 Allow all valid declarations in configuration project files
4536 (Reset): Initialize all tables and hash tables in the project tree data
4537 Major update of the Project Manager and of the project aware tools,
4538 including gprmake, so that the same sources in the GNAT repository
4539 can be used by gprbuild.
4540 (Slash_Id): Change type to be Path_Name_Type
4541 (Slash): Return a Path_Name_Type instead of a File_Name_Type
4543 * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
4545 Update Project Manager to new attribute names for ghprbuild
4546 Allow all valid declarations in configuration project files
4547 Major update of the Project Manager and of the project aware tools,
4548 including gprmake, so that the same sources in the GNAT repository
4549 can be used by gprbuild.
4552 Major update of the Project Manager and of the project aware tools,
4553 including gprmake, so that the same sources in the GNAT repository
4554 can be used by gprbuild.
4556 * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
4557 insensitive flag for attributes with optional index.
4558 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
4559 array attribute, put the index in lower case.
4560 Update Project Manager to new attribute names for ghprbuild
4561 Allow all valid declarations in configuration project files
4562 Major update of the Project Manager and of the project aware tools,
4563 including gprmake, so that the same sources in the GNAT repository
4564 can be used by gprbuild.
4566 * prj-env.ads, prj-env.adb:
4567 Major update of the Project Manager and of the project aware tools,
4568 including gprmake, so that the same sources in the GNAT repository
4569 can be used by gprbuild.
4570 (Get_Reference): Change type of parameter Path to Path_Name_Type
4572 * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
4573 removing '-' from the path to start with the first character of the
4575 Major update of the Project Manager and of the project aware tools,
4576 including gprmake, so that the same sources in the GNAT repository
4577 can be used by gprbuild.
4578 Major update of the Project Manager and of the project aware tools,
4579 including gprmake, so that the same sources in the GNAT repository
4580 can be used by gprbuild.
4582 * prj-nmsc.ads, prj-nmsc.adb:
4583 Update Project Manager to new attribute names for ghprbuild
4584 Allow all valid declarations in configuration project files
4585 (Search_Directories): Detect subunits that are specified with an
4586 attribute Body in package Naming. Do not replace a source/unit in the
4587 same project when the order of the source dirs are known. Detect
4588 duplicate sources/units in the same project when the order of the
4589 source dirs are not known.
4590 (Check_Ada_Name): Allow all identifiers that are not reserved words
4592 Major update of the Project Manager and of the project aware tools,
4593 including gprmake, so that the same sources in the GNAT repository
4594 can be used by gprbuild.
4595 (Look_For_Sources): If the list of sources is empty, set the object
4596 directory of non extending project to nil.
4597 Change type of path name variables to be Path_Name_Type
4598 (Locate_Directory): Make sure that on Windows '/' is converted to '\',
4599 otherwise creating missing directories will fail.
4601 * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
4602 prj-part.ads, prj-part.adb:
4603 Major update of the Project Manager and of the project aware tools,
4604 including gprmake, so that the same sources in the GNAT repository
4605 can be used by gprbuild.
4607 * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
4608 insensitive flag for attributes with optional index.
4609 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
4610 array attribute, put the index in lower case.
4611 (Parse_Variable_Reference): Allow the current project name to be used in
4612 the prefix of an attribute reference.
4614 * prj-util.ads, prj-util.adb
4615 (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
4616 defaulted to False. When True, always check against indexes in lower
4619 * snames.ads, snames.h, snames.adb:
4620 Update Project Manager to new attribute names for gprbuild
4621 Allow all valid declarations in configuration project files
4623 2007-08-14 Robert Dewar <dewar@adacore.com>
4624 Ed Schonberg <schonberg@adacore.com>
4626 * opt.ads: Warning for non-local exception propagation now off by
4628 New switch -gnatI to disable representation clauses
4629 Implement new pragma Implicit_Packing
4632 Warning for non-local exception propagation now off by default
4633 Add warning for unchecked conversion of pointers wi different
4635 New switch -gnatI to disable representation clauses
4637 * usage.adb: new switch -gnatyS
4639 * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
4640 note that aggregates of anonymous array types are not flagged.
4641 -gnatwc now includes membership tests optimized away
4642 -gnatw.x warnings are now off by default
4643 Added conditional compilation Appendix
4644 Add documentation of -gnatI
4645 Add documentation for new -gnatyS style check
4646 Update documentation about SAL and auto-init on Windows.
4649 Add documentation for pragma Check_Name and 'Enabled attribute
4650 Document that Eliminate on dispatching operation is ignored
4651 Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
4652 Document pragma Main
4653 Document pragma Implicit_Packing
4655 * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
4656 different conventions
4657 New switch -gnatI to disable representation clauses
4659 * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
4660 recognized, report the invalid characters including "-gnat" instead of
4661 just the first character in the switch.
4662 New switch -gnatI to disable representation clauses
4663 Set Warn_On_Object_Renames_Function true for -gnatg
4665 * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
4666 Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
4667 Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
4668 to switch -aP (add directory to project search dir).
4670 * par-prag.adb: Implement new pragma Implicit_Packing
4672 * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
4673 type as having a non-standard representation, to force expansion on
4674 conversion to related types.
4675 (Analyze_Pragma): Warn on misspelled pragma
4676 (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
4677 Ensure consistent use of # in error messages
4678 Implement pragma Implicit_Packing
4680 2007-08-14 Olivier Hainque <hainque@adacore.com>
4681 Eric Botcazou <ebotcazou@adacore.com>
4683 * targtyps.c (get_target_maximum_default_alignment): New function.
4685 that the compiler might choose by default for a type or object.
4686 (get_target_default_allocator_alignment): New function. Alignment known
4687 to be honored by the target default allocator.
4688 (get_target_maximum_allowed_alignment): New function. Maximum alignment
4689 we might accept for any type or object on the target.
4690 (get_target_maximum_alignment): Now synonym of maximum_default_alignment
4692 * gigi.h (get_target_maximum_default_alignment): Declare new function.
4693 (get_target_default_allocator_alignment): Likewise.
4694 (get_target_maximum_allowed_alignment): Likewise.
4697 * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
4698 result of a function call, first try to use a stabilized reference for
4699 a constant renaming too.
4700 (validate_alignment): Use target_maximum_allowed_alignment instead of
4701 MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
4702 (gnat_to_gnu_entity): Use common nodes directly.
4703 (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
4704 alignment and size for the object.
4705 (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
4706 and N_Procedure_Call_Statement.
4707 (takes_address): Rename to lvalue_required_p, add third parameter
4708 'aliased' and adjust recursive calls.
4709 <N_Indexed_Component>: Update 'aliased' from the array type.
4710 <N_Selected_Component>: New case.
4711 <N_Object_Renaming_Declaration>: New Likewise.
4712 (Identifier_to_gnu): Adjust for above changes.
4713 (maybe_stabilize_reference) <CONST_DECL>: New case.
4715 * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
4716 between type variants.
4717 (build_simple_component_ref): Likewise.
4718 (build_call_alloc_dealloc): Use target_default_allocator_alignment
4719 instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
4720 aligning type circuitry for allocations from the default storage pool.
4721 (build_allocator): Likewise.
4722 (build_simple_component_ref): Manually fold the reference for a
4723 constructor if the record type contains a template.
4725 * utils.c (value_zerop): Delete.
4726 (gnat_init_decl_processing): Emit debug info for common types.
4727 (rest_of_record_type_compilation): If a union contains a field
4728 with a non-constant qualifier, treat it as variable-sized.
4729 (finish_record_type): Give the stub TYPE_DECL a name.
4730 (rest_of_record_type_compilation): Likewise.
4731 (convert) <CONSTRUCTOR>: New case. Build a new constructor if
4732 types are equivalent array types.
4733 (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
4734 even if the type is not passed by reference.
4735 (static_ctors, static_dtors): Delete.
4736 (end_subprog_body): Do not record constructors and destructors.
4737 (build_global_cdtor): Delete.
4738 (gnat_write_global_declarations): Do not call build_global_cdtor.
4740 * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
4741 -fRTS=rtp is specified.
4742 If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
4745 * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
4746 of the personality function with SJLJ exceptions.
4748 * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
4749 the name of the personality function with SJLJ exceptions.
4751 2007-08-14 Robert Dewar <dewar@adacore.com>
4752 Ed Schonberg <schonberg@adacore.com>
4754 * par.ads, par.adb: Improve handling of extra right parens.
4755 (Par): Remove flag From_Limited_With_Clause.
4757 * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
4758 Improve handling of extra right parens.
4760 2007-08-14 Robert Dewar <dewar@adacore.com>
4762 * par-tchk.adb (TF_Semicolon): Improve error recovery
4764 2007-08-14 Robert Dewar <dewar@adacore.com>
4765 Ed Schonberg <schonberg@adacore.com>
4767 * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
4768 enumeration type, mark all literals as referenced.
4769 (Eval_Attribute, case 'Image): If the argument is an enumeration
4770 literal and names are available, constant-fold but mark nevertheless as
4772 Clean up function names.
4773 (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
4775 (Requires_Simple_Name_Prefix): Removed.
4777 2007-08-14 Robert Dewar <dewar@adacore.com>
4778 Ed Schonberg <schonberg@adacore.com>
4780 * sem_ch11.adb: Improved warnings for unused variables
4782 * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
4783 is a synchronized interface, the derived type is limited.
4784 (Analyze_Object_Declaration): Mark the potential coextensions in the
4785 definition and expression of an object declaration node.
4786 (Build_Derived_Type): For the completion of a private type declaration
4787 with a derived type declaration, chain the parent type's representation
4788 items to the last representation item of the derived type (not the
4789 first one) if they are not present already.
4790 (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
4791 object declaration of forward references to tags.
4792 (Access_Subprogram_Declaration): In Ada2005, anonymous access to
4793 subprogram types can appear as access discriminants of synchronized
4795 (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
4796 given in prefixed form as a selected component.
4797 (Process_Discriminants): If not all discriminants have defaults, place
4798 error message on a default that is present.
4799 (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
4800 extend a synchronized tagged type.
4801 Improved warnings for unused variables
4802 (Is_Visible_Component): Fix a visibility hole on a component inherited
4803 by a private extension when parent is itself declared as a private
4804 extension, and the derivation is in a child unit.
4805 (Find_Hidden_Interface): Move spec from the package body.
4807 2007-08-14 Robert Dewar <dewar@adacore.com>
4808 Ed Schonberg <schonberg@adacore.com>
4810 * sem_ch5.adb: Improve warnings on redundant assignments
4812 * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
4814 (Is_Synchronized_Tagged_Type): New subprogram that returns true
4815 in case of synchronized tagged types (AARM 3.9.4 (6/2)).
4816 (Safe_To_Capture_Value): Can now return True for constants, even if Cond
4817 is set to False. Improves handling of Known_[Not_]Null.
4818 (Wrong_Type): Special case address arithmetic attempt
4819 (Collect_Abstract_Interfaces): Add new formal to allow collecting
4820 abstract interfaces just using the partial view of private types.
4821 (Has_Abstract_Interfaces): Add new formal to allow checking types
4822 covering interfaces using the partial view of private types.
4823 (Is_Fully_Initialized_Type): Special VM case for uTag component. This
4824 component still needs to be defined in this case, but is never
4825 initialized as VMs are using other dispatching mechanisms.
4826 (Abstract_Interface_List): For a protected type, use base type to get
4828 Improve warnings on redundant assignments
4829 (Is_Variable): Handle properly an implicit dereference of a prefixed
4831 (Build_Actual_Subtype): If this is an actual subtype for an
4832 unconstrained formal parameter, use the sloc of the body for the new
4833 declaration, to prevent anomalises in the debugger.
4835 2007-08-14 Robert Dewar <dewar@adacore.com>
4837 * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
4838 dispatching operation
4840 2007-08-14 Ed Schonberg <schonberg@adacore.com>
4841 Gary Dismukes <dismukes@adacore.com>
4844 exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
4845 expanded aggregate code before allocator, and ahead of declaration for
4846 temporary, to prevent access before elaboration when the allocator is
4847 an actual for an access parameter.
4848 (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
4849 the TSD and the table of interfaces.
4850 (Convert_To_Assignments): Augment the test for delaying aggregate
4851 expansion for limited return statements to include the case of extended
4852 returns, to prevent creation of an unwanted transient scope.
4853 (Is_Static_Dispatch_Table_Aggregate): New subprogram.
4854 (Expand_Array_Aggregate): Handle aggregates associated with
4855 statically allocated dispatch tables.
4856 (Expand_Record_Aggregate): Handle aggregates associated with
4857 statically allocated dispatch tables.
4858 (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
4859 of anonymous access type.
4861 2007-08-14 Ed Schonberg <schonberg@adacore.com>
4863 * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
4864 is a variable that renames a slice, use the variable itself in the
4865 expannsion when the renamed expression itself may be modified between
4866 the declaration of the renaming and the array assignment.
4868 2007-08-14 Jerome Guitton <guitton@adacore.com>
4870 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
4871 s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
4872 s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
4873 New functions; dummy implementations.
4875 * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
4876 functions, used to implement the multi-tasks mode routines on VxWorks.
4878 * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
4880 binding to the VxWorks routines which have changed between VxWorks 5
4882 (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
4883 which are not callable from a RTP.
4885 * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
4886 implemented for the multi-tasks mode on VxWorks 5 and 6.
4888 * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
4890 * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
4893 2007-08-14 Vincent Celier <celier@adacore.com>
4895 * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
4896 gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
4897 mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
4898 mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
4899 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
4900 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
4901 mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
4903 (Major_Id_Name): New function.
4904 mlib-tgt.ads/mlib.tgt.adb:
4905 (Library_Major_Minor_Id_Supported): New function, default returns True
4906 Most mlib-tgt-*.adb that support shared libraries and symbolic links:
4907 (Build_Dynamic_Library): Add support for major/minor ids for shared libs
4908 Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
4909 Implementation of Library_Major_Minor_Id_Supported returns False
4911 (Clean_Library_Directory): If major/minor ids are supported, clean all
4913 Major update of the Project Manager and of the project aware tools,
4914 including gprmake, so that the same sources in the GNAT repository
4915 can be used by gprbuild.
4917 2007-08-14 Olivier Hainque <hainque@adacore.com>
4919 * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
4920 (GCC_ZCX_Support): Switch to True.
4922 * s-intman-solaris.adb (Notify_Exception): Call
4923 Adjust_Context_For_Raise before raising, as expected for signal
4924 handlers in general.
4926 * s-intman-posix.adb (Notify_Exception): Remove declaration of
4927 Adjust_Context_For_Raise, moved to the spec of this unit to be visible
4928 to other implementation bodies.
4930 * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
4931 be visible by multiple implementation bodies.
4933 * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
4934 only for conditions coming from hardware.
4935 [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
4936 adjustments to signal context prior to exception raise from signal
4938 (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
4940 Solaris section: (__gnat_adjust_context_for_raise): New function.
4941 Implementation of the machine context adjustments to perform prior to
4942 raise from a signal handler. Version for both sparc and x86.
4943 (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
4944 (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
4945 prior to raising as expected for any handler, before possible nested
4946 faults to make sure all the contexts in a chain have been adjusted by
4947 the time we propagate.
4949 2007-08-14 Pascal Obry <obry@adacore.com>
4951 * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
4952 (SYSTEM_INFO): New record.
4953 (SetThreadIdealProcessor): New imported routine needed for supporting
4954 task_info pragma on Windows.
4956 * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
4957 info can be applied to the current host.
4958 (Create_Task): Set the ideal processor if information is present.
4960 * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
4961 a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
4963 2007-08-14 Olivier Hainque <hainque@adacore.com>
4965 * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
4966 stack size and initial stack pointer value for a given task.
4967 (Enter_Task): Get the stack attributes of the task we are entering and
4968 let the stack checking engine know about them.
4970 * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
4971 Let the stack-checking engine know about the initial sp value and stack
4972 size associated with the current task.
4973 (Set_Stack_Info): If a stack base has been notified for the current
4974 task, honor it. Fallback to the previous less accurate method otherwise.
4976 * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
4978 2007-08-14 Ed Schonberg <schonberg@adacore.com>
4980 * sem_ch10.adb: Create a limited view of an incomplete type, to make
4981 treatment of limited views uniform for all visible declarations in a
4982 limited_withed package.
4983 Set flag indicating that a subprogram body for a child unit has a
4985 (Analyze_Compilation_Unit): If unit is a subprogram body that has no
4986 separate declaration, remove the unit name from visibility after
4987 compilation, so that environment is clean for subsequent compilations.
4988 (Install_Limited_Context_Clauses): Do not install a
4989 limited_private_with_clause unless the current unit is a body or a
4991 (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
4992 in the same fashion.
4993 (Install_Limited_Withed_Unit): Do not install a limited with clause if
4994 it applies to the declaration of the current package body.
4995 (Remove_Private_With_Clauses): If there is a regular with_clause for
4996 the unit, delete Private_With_Clause from context, to prevent improper
4997 hiding when processing subsequent nested packages and instantiations.
4999 2007-08-14 Jose Ruiz <ruiz@adacore.com>
5001 * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
5002 dir/file, device:/dir/file, and device:drive_letter:/dir/file as
5003 representing absolute path names.
5004 __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
5006 * cstreams.c (__gnat_full_name for VxWorks): Use
5007 __gnat_is_absolute_path to detect whether we need to add the current
5008 directory to normalize the path.
5010 2007-08-14 Javier Miranda <miranda@adacore.com>
5013 a-tags.adb (Displace): Associate a message with the raised CE
5015 (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
5016 To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
5017 To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
5019 (Default_Prim_Op_Count): Removed.
5020 (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
5021 Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
5022 Remove pragma Inline_Always.
5024 * rtsfind.ads (Default_Prim_Op_Count): Removed
5025 (Max_Predef_Prims): New entity
5026 (RE_Expanded_Name): Removed
5027 (RE_HT_Link): Removed
5028 (RE_Iface_Tag): Remmoved
5029 (RE_Ifaces_Table): Removed
5030 (RE_Interfaces_Array): Removed
5031 (RE_Interface_Data_Element): Removed
5032 (RE_Nb_Ifaces): Removed
5033 (RE_RC_Offset): Removed
5034 (RE_Static_Offset_To_Top): Removed
5036 * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
5038 (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
5039 Prim_Op_Count by Max_Predef_Prims.
5041 2007-08-14 Thomas Quinot <quinot@adacore.com>
5042 Vincent Celier <celier@adacore.com>
5044 * binde.adb (Elab_All_Links): Remove unnecessary call to
5045 Generic_Separately_Compiled (if a unit satisfies this predicate, there
5046 won't be an associated Afile).
5047 (Elab_All_Links): Fail if a referenced unit cannot be found
5050 Fix comments in bindgen regarding consistency checks done in Bcheck:
5051 the checks are made across units within a partition, not across several
5053 Fix generation of C binder file for VxWorks.
5055 * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
5056 Generic_May_Lack_ALI, more descriptive of the current use of the
5057 predicate, and update documentation.
5059 * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
5060 reorganization and documentation update for the case of predefined
5061 library generics (for which we do not reference an Afile).
5063 2007-08-14 Robert Dewar <dewar@adacore.com>
5065 * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
5066 s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
5067 s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
5068 s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
5069 s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
5070 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
5071 s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
5072 s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
5073 exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
5074 s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
5075 s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
5076 a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
5077 s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
5078 g-altcon.adb: Minor reformatting
5080 ada-tree.h: Delete empty line.
5082 ali.ads: Minor reformatting
5083 Clarification of comments.
5084 Minor spelling correction
5086 * exp_dbug.adb: Add Warnings Off to suppress new warning
5088 * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
5091 * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
5094 * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
5096 * a-textio.ads: Reorder the standard input/output/error declarations
5099 * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
5101 * par-ch2.adb: Recognize RM specially in errout
5102 Change 'R'M to RM in all error messages
5104 * scng.adb: Recognize RM specially in errout
5106 * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
5107 N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
5109 * s-direio.adb: Add missing routine header box.
5111 * sem_attr.ads: Add ??? comments
5113 * sem_eval.adb: Recognize RM specially in errout
5114 Change 'R'M to RM in all error messages
5116 * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
5118 * s-tasinf.ads: Fix minor comment typo.
5120 * a-cihama.adb: Minor comment addition
5122 * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
5125 * s-tasinf-tru64.ads: Fix minor comment typo.
5127 * itypes.ads: Comment update.
5129 * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
5132 * argv.c: Added protection against null gnat_argv and gnat_envp.
5134 * bcheck.adb (Check_Consistency): Use correct markup character ({) in
5135 warning message when Tolerate_Consistency_Errors is True.
5137 * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
5138 Any_Id, as this subprogram is only applicable to *type* entities (it
5139 sets RM_Size). Instead initialize just Esize and Alignment.
5141 2007-08-14 Bob Duff <duff@adacore.com>
5143 * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
5144 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
5145 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
5146 a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
5147 a-coorse.ads (Next): Applied pragma Inline.
5148 Make all Containers packages Remote_Types (unless they are already
5150 (Previous): applied pragma Inline
5151 (Elements_Type): is now a record instead of an array
5153 2007-08-14 Thomas Quinot <quinot@adacore.com>
5155 * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
5157 (Set_Item): When the new item is an element of the currently allocated
5158 table passed by reference, save a copy on the stack if we're going
5159 to reallocate. Also, in Table.Set_Item, make sure we test the proper
5160 variable to determine whether to call Set_Last.
5162 * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
5163 symbols-vms.adb, symbols-processing-vms-alpha.adb,
5164 symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
5165 some occurrences of the pattern
5167 T.Table (T.Last) := Value;
5168 with a cleaner call to
5171 2007-08-14 Ed Schonberg <schonberg@adacore.com>
5172 Gary Dismukes <dismukes@adacore.com>
5173 Thomas Quinot <quinot@adacore.com>
5175 * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
5176 derived type with interface progenitors use the analyzed formal as the
5177 parent of the actual, to create renamings for all the inherited
5178 operations in Derive_Subprograms.
5179 (Collect_Previous_Instances): new procedure within of
5180 Load_Parent_Of_Generic, to instantiate all bodies in the compilation
5181 unit being loaded, to ensure that the generation of global symbols is
5182 consistent in different compilation modes.
5183 (Is_Tagged_Ancestor): New function testing the ancestor relation that
5184 takes progenitor types into account.
5185 (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
5186 traversing over the primitives of the formal and actual types to locate
5187 any abstract subprograms of the actual type that correspond to a
5188 nonabstract subprogram of the formal type's ancestor type(s), and issue
5189 an error if such is found.
5190 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
5191 Instantiate_Package_Body, Instantiate_Subprogram_Body):
5192 Remove bogus guard around calls to Inherit_Context.
5193 (Reset_Entity): If the entity is the selector of a selected component
5194 that denotes a named number, propagate constant-folding to the generic
5195 template only if the named number is global to the generic unit.
5196 (Set_Instance_Env): Only reset the compilation switches when compiling
5197 a predefined or internal unit.
5199 2007-08-14 Ed Schonberg <schonberg@adacore.com>
5201 * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
5202 parameter to determine whether operation applies to the prefix.
5203 (Complete_Object_Operation): If actual has an access type and
5204 controlling formal is not an in_parameter, reject the actual if it is
5205 an access_to_constant type.
5206 (Try_Primitive_Operation): If the type of the prefix is a formal tagged
5207 type, the candidate operations are found in the scope of declaration of
5208 the type, because the type has no primitive subprograms.
5209 (Analyze_Selected_Component): If prefix is class-wide, and root type is
5210 a private extension, only examine visible components before trying to
5211 analyze as a prefixed call.
5212 Change Entity_List to Type_To_Use, for better readability.
5213 (Has_Fixed_Op): Use base type when checking whether the type of an
5214 operator has a user-defined multiplication/division
5215 (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
5216 user-defined operators are available for fixed-point types.
5218 2007-08-14 Thomas Quinot <quinot@adacore.com>
5219 Ed Schonberg <schonberg@adacore.com>
5221 * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
5222 formal At_Any_Place indicating, when True, that we want to test for
5223 availability of the stream attribute at any place (as opposed to the
5224 current visibility context only).
5225 (Missing_Read_Write_Attributes): A stream attribute is missing for the
5226 purpose of enforcing E.2.2(8) only if it is not available at any place.
5227 Take into account the Ada2005 pragma Has_Preelaborable_Initialization
5228 when checking the legality of an extension aggregate in a preelaborable
5229 package. Treat the literal null as a valid default expression in a
5230 component declaration for a type with preelaborable initialization.
5231 A limited interface is a legal progenitor for the designated type of a
5232 remote access to class-wide type.
5234 2007-08-14 Thomas Quinot <quinot@adacore.com>
5235 Ed Schonberg <schonberg@adacore.com>
5237 * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
5238 reference): Use correct entity as denoted entity for the selector of
5240 (Find_Direct_Name): Add comment about Generate_Reference incorrectly
5241 setting the Referenced_As_LHS flag for entities that are implicitly
5243 (Find_Type): If the type is an internally generated incomplete type,
5244 mark the full view as referenced, to prevent spurious warnings.
5245 (Find_Selected_Component, Has_Components): Handle properly non-limited
5246 views that are themselves incomplete types.
5247 Handle interfaces visible through limited-with clauses.
5248 (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
5249 subprogram generic actual for which we have generated a renaming.
5250 Warn when the renaming introduces a homonym of
5251 the renamed entity, and the renamed entity is directly visible.
5253 2007-08-14 Ed Schonberg <schonberg@adacore.com>
5254 Hristian Kirtchev <kirtchev@adacore.com>
5256 * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
5257 appear in the subtree to the current allocator if it is not a static
5259 (Resolve_Allocator): Perform cleanup if resolution has determined that
5260 the allocator is not a coextension.
5261 (Resolve): Skip an interpretation hidden by an abstract operator only
5262 when the type of the interpretation matches that of the context.
5263 (Resolve): When looping through all possible interpretations of a node,
5264 do not consider those that are hidden by abstract operators.
5265 (Resolve_Actuals): When verifying that an access to class-wide object
5266 is an actual for a controlling formal, ignore anonymous access to
5267 subprograms whose return type is an access to class_wide type.
5268 (Resolve_Slice): If the prefix of the slice is a selected component
5269 whose type depends on discriminants, build its actual subtype before
5270 applying range checks on the bounds of the slice.
5271 (Valid_Conversion): In an instance or inlined body, compare root types,
5272 to prevent anomalies between private and public views.
5273 (Resolve): Improve error message for ambiguous fixed multiplication
5274 expressions that involve universal_fixed multiplying operations.
5276 2007-08-14 Javier Miranda <miranda@adacore.com>
5277 Hristian Kirtchev <kirtchev@adacore.com>
5279 * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
5280 location to allow the correct generation of errors in case of
5281 restrictions applied to the expanded code.
5282 (Expand_Entry_Barrier): Remove all generated renamings for a barrier
5283 function if the condition does not reference them.
5284 (Expand_Entry_Body_Declarations): Mark the index constant as having a
5287 2007-08-14 Thomas Quinot <quinot@adacore.com>
5288 Pablo Oliveira <oliveira@adacore.com>
5290 * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
5291 typecode parameters for a union (in a variant record), remove
5292 extraneous layer of Any wrapping for member label.
5293 (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
5294 elabration statements, register the package with the name server
5295 at the beginning, not at the end, of the elaboration statements so
5296 that they can create remote access to subprogram values that designate
5297 remote subprograms from the package.
5299 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
5301 * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
5302 values to compute the number of seconds since the Unix Epoc in order to
5303 account for Daylight Savings Time. Perform special processing for dates
5304 that are earlier than the Unix Epoc to obtain a negative number.
5306 2007-08-14 Emmanuel Briot <briot@adacore.com>
5308 * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
5311 2007-08-14 Eric Botcazou <ebotcazou@adacore.com>
5313 * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
5314 binder-generated file is not in Ada.
5315 Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
5316 recorded in the ALI file.
5317 Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
5319 2007-08-14 Vincent Celier <celier@adacore.com>
5321 * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
5322 (Output_Source): Do nothing if parameter is No_Sdep_Id
5324 * make.adb (Gnatmake): Do not rebuild an archive simply because a
5325 shared library it imports has a later time stamp.
5326 (Check): Resolve the symbolic links in the path name of the object
5328 Check that the ALI file is in the correct object directory
5329 Check if a file name does not correspond to the mapping of units
5331 (Display_Version): New procedure
5332 (Initialize): Process switches --version and --help
5333 Use type Path_Name_Type for path name
5335 2007-08-14 Paul Hilfinger <hilfinger@adacore.com>
5337 * impunit.adb: Re-organize System.Random_Numbers and
5338 GNAT.Random_Numbers and add to builds.
5340 * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
5342 * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
5344 * a-assert.ads, a-assert.adb: New files.
5346 2007-08-14 Gary Dismukes <dismukes@adacore.com>
5348 * layout.adb (Layout_Type): In the case of access-to-subprogram types,
5349 if AAMP_On_Target is True, then the size of the type encompasses two
5350 addresses (a static link and a subprogram address), except in the case
5351 of library-level access types.
5353 2007-08-14 Vincent Celier <celier@adacore.com>
5355 * output.ads, output.adb (Write_Eol): Remove trailing spaces before
5357 (Write_Eol_Keep_Blanks): New procedure to write a line, including
5358 possible trailing spaces.
5359 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
5361 2007-08-14 Javier Miranda <miranda@adacore.com>
5363 * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
5364 null-excluding access types.
5366 2007-08-14 Javier Miranda <miranda@adacore.com>
5368 * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
5369 that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
5370 of private types add missing check on matching interfaces in the
5371 partial and full declarations.
5372 (Analyze_Protected_Type): Code cleanup.
5373 (Analyze_Task_Type): Code cleanup.
5375 2007-08-14 Javier Miranda <miranda@adacore.com>
5377 * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
5378 generated interface thunk.
5380 2007-08-14 Ed Schonberg <schonberg@adacore.com>
5382 * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
5383 obsolescent warning on application of 'Class to an incomplete type.
5385 * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
5386 prevent obsolescent warning on application of 'Class to an incomplete
5389 2007-08-14 Pascal Obry <obry@adacore.com>
5391 * s-fileio.adb (Is_Open): Add check for usability of the underlying
5394 2007-08-14 Cyrille Comar <comar@adacore.com>
5396 * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
5397 since it is potentially used in cases implying double finalization of
5400 2007-08-14 Jose Ruiz <ruiz@adacore.com>
5402 * s-tasini.adb (Get_Stack_Info): Move this function to
5403 System.Soft_Links.Tasking because it is common to the full and the
5404 restricted run times.
5405 (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
5406 in SSL.Tasking.Init_Tasking_Soft_Links.
5408 * s-solita.adb (Get_Stack_Info): Function moved from
5409 System.Tasking.Initialization because it is common to the full and the
5410 restricted run times.
5411 (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
5413 2007-08-14 Arnaud Charlet <charlet@adacore.com>
5415 * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
5416 s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
5417 (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
5420 * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
5423 2007-08-14 Gary Dismukes <dismukes@adacore.com>
5425 * s-veboop.adb (SU): New named number initialized to
5426 System.Storage_Unit.
5427 (True_Val): The initialization expression is revised to use SU (=
5428 Storage_Unit) rather than assuming 8 for the component size of an
5429 unpacked Boolean array.
5431 2007-08-14 Tristan Gingold <gingold@adacore.com>
5433 * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
5435 * tb-ivms.c: New file.
5437 * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
5439 2007-08-14 Geert Bosch <bosch@adacore.com>
5441 * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
5442 s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
5443 Add required linker pragmas for automatically linking with the gnalasup
5444 linear algebra support library, and the systems math library.
5445 Rename cdot to cdotu and zdot to zdotu.
5446 Update header comment to describe purpose of package.
5448 2007-08-14 Thomas Quinot <quinot@adacore.com>
5450 * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
5451 an explicitly specified Associated_Final_Chain, use that list.
5452 (Expand_N_Package_Body): Build dispatch tables of library level tagged
5454 (Expand_N_Package_Declaration): Build dispatch tables of library level
5455 tagged types. Minor code cleanup.
5457 2007-08-14 Vincent Celier <celier@adacore.com>
5459 * gnatchop.adb (Terminate_Program): Remove exception and use
5460 Types.Terminate_Program instead.
5462 * osint.ads, osint.adb (Current_Exit_Status): New global variable
5463 (Find_Program_Name): Added protection against empty name.
5464 (OS_Exit_Through_Exception): New procedure
5466 * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
5467 (OS_Exit_Default): New procedure that contains the previous
5468 implementation of procedure OS_Exit.
5469 (Final_Value): Remove obsolete Interix stuff.
5471 2007-08-14 Thomas Quinot <quinot@adacore.com>
5473 * g-socket.ads: Reorganize example code so that it also works on
5476 2007-08-14 Tristan Gingold <gingold@adacore.com>
5478 * g-trasym.ads: AIX now supports symbolic backtraces.
5480 2007-08-14 Ed Schonberg <schonberg@adacore.com>
5482 * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
5483 units being loaded to detect circularities. A circularity may be
5484 present even if the current chain of pending units to load starts from
5485 a limited_with_clause.
5487 * lib-load.ads: Change profile of Load_Unit to use a with_clause
5488 rather than a boolean flag, in order to detect circularities in
5491 * par-load.adb: Use current with_clause in calls to Load_Unit, rather
5492 than propagating the From_Limited_With flag, in order to handle
5493 properly circularities involving with_clauses.
5495 2007-08-14 Nicolas Setton <setton@adacore.com>
5497 * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
5500 2007-08-14 Arnaud Charlet <charlet@adacore.com>
5502 * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
5503 to build for libgnala.
5504 libgnat: Add rules to build libgnala.a
5505 (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
5506 target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
5507 Add s-osinte-vxworks-kernel.adb to the target pairs of the
5508 kernel run-time lib for VxWorks 6, which would provide a different
5509 implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
5510 x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
5511 running ZCX by default.
5512 Add g-sttsne-locking to LynxOS version.
5513 Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
5514 On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
5516 * system-darwin-x86.ads: New file.
5518 * Make-lang.in: Delete files before copying onto them, so if they are
5519 read-only, the copy won't fail.
5522 2007-08-14 Pascal Obry <obry@adacore.com>
5524 * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
5527 2007-08-14 Vincent Celier <celier@adacore.com>
5529 * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
5530 (Gcc): Initialize Gcc_Name at the first call
5532 2007-08-14 Ed Schonberg <schonberg@adacore.com>
5534 * sem_ch7.adb (Analyze_Package_Specification): Do not install private
5535 with_clauses of the enclosing unit when analyzing the package
5536 specification of a nested instance.
5538 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
5540 * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
5541 (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
5542 Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
5543 layout of N_Allocator.
5545 2007-08-14 Thomas Quinot <quinot@adacore.com>
5547 * rtsfind.adb (Check_RPC): Add PCS version check.
5549 * gnatvsn.ads, gnatvsn.adb: Add PCS version.
5550 (Gnat_Free_Software): New function.
5552 * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
5553 the PCS_Version value from s-parint, used to check that it is consistent
5554 with what exp_dist expects.
5556 * s-parint.ads (PCS_Version): New entity for checking consistency
5557 between exp_dist and PCS.
5559 * gen-soccon.c: (SO_REUSEPORT): New constant.
5561 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
5563 * a-calfor.adb (Image (Duration; Boolean)): Change type of local
5564 variable Sub_Second to Duration in order to accomodate a larger range
5565 of arithmetic operations.
5567 2007-08-14 Bob Duff <duff@adacore.com>
5569 * g-sttsne-locking.ads: Move comments from spec to body.
5570 * g-sttsne-locking.adb: Move comments from spec to body.
5571 * g-sttsne-vxworks.ads: Removed.
5572 * g-sttsne-vxworks.adb: Removed.
5574 2007-08-11 Ian Lance Taylor <iant@google.com>
5576 * misc.c (gnat_get_alias_set): Change return type to
5579 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5581 * decl.c, utils2.c: Fix whitespace in last change.
5583 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5585 * decl.c (compare_field_bitpos): Constify.
5586 * utils2.c (compare_elmt_bitpos): Likewise.
5588 2007-07-27 Aurelien Jarno <aurelien@aurel32.net>
5590 * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
5591 anonymous access type.
5592 (pthread_sigmask): Now take an access sigset_t.
5594 2007-07-05 Joel Sherrill <joel.sherrill@oarcorp.com>
5596 * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
5598 2007-06-21 Eric Botcazou <ebotcazou@adacore.com>
5600 PR tree-optimization/25737
5601 * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
5603 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
5605 * trans.c (Attribute_to_gnu): When subtracting an
5606 offset from a pointer, use POINTER_PLUS_EXPR with
5607 NEGATE_EXPR instead of MINUS_EXPR.
5608 (gnat_to_gnu): Likewise.
5609 * utils.c (convert): When converting between
5610 thin pointers, use POINTER_PLUS_EXPR and sizetype
5612 * utils2.c (known_alignment): POINTER_PLUS_EXPR
5613 have the same semantics as PLUS_EXPR for alignment.
5614 (build_binary_op): Add support for the semantics of
5615 POINTER_PLUS_EXPR's operands.
5616 When adding an offset to a pointer, use POINTER_PLUS_EXPR.
5618 2007-06-11 Rafael Avila de Espindola <espindola@google.com>
5620 * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
5621 of get_signed_or_unsigned_type.
5622 * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
5624 2007-06-11 Bob Duff <duff@adacore.com>
5625 Thomas Quinot <quinot@adacore.com>
5627 * g-stsifd-sockets.adb (Create): Work around strange behavior of
5628 'bind' on windows that causes 'connect' to fail intermittently, by
5629 retrying the 'bind'.
5630 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
5632 2007-06-10 Duncan Sands <baldrick@free.fr>
5634 * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
5635 than to void, for the fields when making a new fat pointer type.
5636 (gnat_substitute_in_type): Now substitute_in_type.
5637 * gigi.h (gnat_substitute_in_type): Likewise. Adjust recursive calls.
5638 * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
5639 * utils.c (update_pointer_to): Update fat pointers by updating the
5640 dummy node pointers used for the fields.
5642 2007-06-06 Thomas Quinot <quinot@adacore.com>
5643 Bob Duff <duff@adacore.com>
5645 * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
5646 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
5647 g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads: Add new
5648 constant Thread_Blocking_IO, always True by default, set False
5649 on a per-runtime basis.
5650 (Need_Netdb_Buffer): New constant.
5652 * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
5653 g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
5656 * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
5657 g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
5658 Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
5659 child package Task_Safe_NetDB
5660 (Host_Error_Messages): Add stub body.
5661 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
5663 * g-soccon-mingw.ads: Add Windows-specific constants.
5664 (Need_Netdb_Buffer): New constant.
5665 (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
5666 wrapper and import inet_addr(3) from the standard sockets library
5668 (In_Addr): Add alignment clause.
5669 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
5671 2007-06-06 Robert Dewar <dewar@adacore.com>
5673 * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
5674 s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
5675 s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
5676 s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
5677 s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
5678 s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
5679 a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
5680 a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
5681 a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
5682 g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
5683 g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
5684 i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
5685 s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
5686 s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
5687 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
5688 s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
5689 s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
5690 s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
5691 s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
5692 s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
5693 s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
5694 s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
5695 s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
5696 s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
5697 s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
5698 s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
5699 s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
5700 s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
5701 s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
5702 s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
5703 s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
5704 a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
5705 Unchecked_* by Ada.Unchecked_*
5707 2007-06-06 Robert Dewar <dewar@adacore.com>
5709 * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
5710 s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
5711 g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
5712 output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
5713 g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
5714 a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
5716 * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
5717 s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
5718 s-tasloc.adb, s-tasloc.ads: New files.
5720 2007-06-06 Bob Duff <duff@adacore.com>
5723 (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
5724 * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
5725 (Send_Signal, Close): Raise Invalid_Process if the process id is
5727 (Pattern_Matcher_Access): Is now a general access type to be able to
5730 2007-06-06 Thomas Quinot <quinot@adacore.com>
5731 Arnaud Charlet <charlet@adacore.com>
5733 * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
5734 (SIGEMT is now used instead of SIGTERM on AIX).
5736 * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
5737 (Time_Slice_Supported): Set to True.
5738 Use SIGEMT instead of SIGTERM as SIGADAABORT.
5740 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
5742 * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
5743 (Time, Time)): Use To_Relative_Time rather than manual calculation to
5744 express the bounds of Duration as Time. Raise Time_Error when the
5745 result is greater or equal to the higher bound of Duration (on the
5747 ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
5749 ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
5751 ("-" (Time, Time)): Reorder code.
5752 (All_Leap_Seconds): Removed.
5753 (Arithmetic_Operations.Add): Remove sign related kludge.
5754 (Arithmetic_Operations.Difference): Control the leaps seconds processing
5755 with flag Leap_Support.
5756 (Arithmetic_Operations.Subtract): Remove sign related kludge.
5757 (Check_Within_Time_Bounds): New procedure.
5758 (Clock): Control the leap seconds processing with flag Leap_Support.
5759 (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
5760 (Formatting_Operations.Split): Control the leap seconds processing with
5762 (Formatting_Operations.Time_Of): Control the leaps seconds processing
5763 with flag Leap_Support. Adjust the year, month and day (if applicable)
5764 when the value of day seconds designates a new day.
5765 (Split): Use parameter associations for better readability. Integrate
5767 (Time_Of): Use parameter associations for better readability. Integrate
5770 * a-calfor.adb (Split): Use parameter associations for better
5771 readability. Integrate flag Is_Ada_05.
5772 (Time_Of): Remove flag Leap_Checks. Use parameter associations for
5773 better readability. Integrate flag Is_Ada_05.
5775 2007-06-06 Arnaud Charlet <charlet@adacore.com>
5777 * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
5778 s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
5779 s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
5780 s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
5781 s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
5782 s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
5783 s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
5784 s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
5785 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
5786 s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
5787 s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
5788 time when entering this routine to detect a backward clock setting
5789 (manual setting or DST adjustment), to avoid waiting for a longer delay
5791 (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
5792 Remove handling of deferred priority change, and replace by setting the
5793 task priority directly, as required by AI-188.
5795 (Max_Task_Image_Length): New constant.
5796 Replace Warnings (Off) by Unreferenced pragma, cleaner.
5797 (Dynamic_Priority_Support): Removed, no longer needed.
5798 (Poll_Base_Priority_Change): Ditto.
5799 (Set_Ceiling): Add this procedure to change the ceiling priority
5800 associated to a lock. This is a dummy implementation because dynamic
5801 priority ceilings are not supported by the underlying system.
5803 * a-dynpri.adb (Set_Priority): Take into account case where Target is
5804 accepting a RV with its priority boosted.
5805 Remove handling of deferred priority change, and replace by setting the
5806 task priority directly, as required by AI-188.
5808 * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
5810 Remove handling of deferred priority change, and replace by setting the
5811 task priority directly, as required by AI-188.
5812 (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
5815 * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
5816 (Poll_Base_Priority_Change): Removed.
5817 Code clean up: use SSL.Current_Target_Exception.
5819 * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
5820 to run as this is a potentially dispatching point.
5821 (Call_Synchronous): Use Local_Defer_Abort.
5822 (Callable): Relax assertion.
5823 (Selective_Wait): Relax assertion in case abort is not allowed.
5824 Remove handling of deferred priority change, and replace by setting the
5825 task priority directly, as required by AI-188.
5827 * s-tasuti.adb (Make_Passive): Adjust assertions.
5828 Remove handling of deferred priority change, and replace by setting the
5829 task priority directly, as required by AI-188.
5831 2007-06-06 Arnaud Charlet <charlet@adacore.com>
5833 * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
5834 system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
5835 system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
5836 system-vxworks-mips.ads, system-vxworks-alpha.ads,
5837 system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
5838 system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
5839 system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
5840 system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
5841 system-solaris-sparcv9.ads, system-vms.ads, system.ads,
5842 system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
5843 system-linux-ia64.ads: Document mapping between Ada and OS priorities.
5844 This patch changes the largest non-binary modulus from 2**31-1 to
5846 (Compiler_System_Version): Removed, no longer used.
5847 Clean up system files by removing flags only used on a single target.
5848 Also remove obsolete flags, only used during bootstrap from system.ads
5849 (Address): Add a pragma Preelaborable_Initialization.
5851 * system-aix.ads: Ditto.
5852 (GCC_ZCX_Support): Set to true.
5853 Update priority range on AIX and map Ada priorities to target
5854 priorities appropriately for different scheduling policies.
5856 * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
5858 2007-06-06 Vincent Celier <celier@adacore.com>
5860 * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
5861 mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
5863 * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
5864 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
5865 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
5866 mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
5867 mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
5868 MLib.Tgt, containing the default versions of the exported subprograms.
5869 For each platform, create a specific version of the body of new child
5870 package MLib.Tgt.Specific that contains only the body of subprograms
5871 that are different from the default.
5872 (Archive_Builder_Append_Options): New function.
5874 2007-06-06 Matthew Gingell <gingell@adacore.com>
5876 * s-osinte-aix.adb: Map Ada priorities to target priorities
5877 appropriately for different scheduling policies.
5879 2007-06-06 Arnaud Charlet <charlet@adacore.com>
5881 * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
5883 Remove references to Unchecked_Conversion, and use Ada.xxx instead.
5884 Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
5886 2007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
5888 * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
5889 Noop on VMS, added for interface commonality.
5891 2007-06-06 Eric Botcazou <ebotcazou@adacore.com>
5892 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5893 Olivier Hainque <hainque@adacore.com>
5895 * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
5896 renamed expression of a full renaming at toplevel.
5897 (gnat_to_gnu_entity, case object): If not defining, do not look inside
5898 the values the constant is initialized to if it is an N_Allocator.
5899 (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
5900 TYPE_SIZE_UNIT of inner types after the stride is elaborated.
5901 (make_aligning_type): Accept an extra ROOM argument for storage to be
5902 made available before the aligned field, and an extra BASE_ALIGN
5903 argument for callers to pass the alignment guaranteed to be honored for
5904 the whole aligning object. Avoid call to finish_record_type, which only
5905 interferes with the sizes we want to set.
5906 (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
5907 make_aligning_type for super-aligned objects on stack.
5908 (components_to_record): Pass the adjusted size of the type when creating
5909 fields in the qualified union for the variant part.
5910 (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
5911 (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
5913 (maybe_pad_type): Set TYPE_USER_ALIGN.
5914 (make_aligning_type): Likewise.
5915 ALIGN argument is unsigned int.
5916 (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
5917 (gnat_to_gnu_param): Likewise, for parameters.
5918 (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
5919 if it is constant and stems from a function call.
5920 (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
5921 of the record is specified. Adjust accordingly.
5922 (adjust_packed): New static function.
5923 (gnat_to_gnu_field): Use it to adjust the packedness setting.
5924 (components_to_record): Likewise.
5925 (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
5926 side-effects if the object is deemed constant.
5927 (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
5928 type instead of merely finalizing it. Tidy.
5929 <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
5930 <E_Access_Type>: Likewise.
5931 (defer_debug_incomplete_list): Rename to defer_finalize_list.
5932 (defer_debug_level): Delete.
5933 (gnat_to_gnu_entity) <debug_deferred>: Likewise
5934 <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
5936 <E_Record_Type>: Do not explicitly defer finalizing the type.
5937 Adjust for write_record_type_debug_info renaming.
5938 <E_Subprogram_Type>: Likewise.
5939 Finalize deferred types right after deferred incomplete types are
5941 (rest_of_type_decl_compilation): New global function.
5942 (components_to_record): Rename defer_debug parameter to do_not_finalize.
5943 (components_to_record): Propagate the packedness to the fields of the
5944 qualified union type if there is a variant part.
5945 (gnat_to_gnu_entity) <E_Array_Type>: Use new function
5946 instead of inline code to adjust the XUT field offsets.
5947 (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
5948 <E_Record_Subtype>: Do not let finish_record_type compute the sizes
5949 and write the debug info if the type derives from a discriminated one.
5950 (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
5951 <E_Array_Subtype>: Likewise.
5952 <E_String_Literal_Subtype>: Likewise.
5953 (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
5954 an alignment clause.
5955 (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
5956 before giving warning.
5957 (prepend_one_attribute_to): New function, helper to prepend an attribute
5958 to an attribute list.
5959 (gnat_to_gnu_entity) <E_Procedure>: Use it.
5960 (prepend_attributes): Likewise.
5961 (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
5962 <E_Array_Type>: Declare the padding type for the element type, if any.
5963 <E_Array_Subtype>: Likewise.
5964 (defer_limited_with): New variable.
5965 (Gigi_Equivalent_Type): New function.
5966 (gnat_to_gnu_entity): Use it at start and use result throughout.
5967 (gnat_to_gnu_entity, case E_Access_Type): Rework to use
5968 Gigi_Equivalent_Type, support Limited_With, allow two levels of
5969 indirection, precompute if unconstrained array to simplify logic, and
5970 use defer_limited_with to defer elaboration of some types from limited
5972 (finalize_from_with_types): New function.
5974 2007-06-06 Gary Dismukes <dismukes@adacore.com>
5975 Eric Botcazou <ebotcazou@adacore.com>
5976 Tristan Gingold <gingold@adacore.com>
5977 Olivier Hainque <hainque@adacore.com>
5979 * trans.c (Identifier_to_gnu): Change test for deferred constant by
5980 adding guard that the entity is an E_Constant before testing presence
5981 of Full_view (and remove unnecessary test that entity is not a type).
5982 For a CONST_DECL used by reference, manually retrieve
5983 the DECL_INITIAL. Do not invoke fold in the other DECL_P cases either.
5984 (struct language_function): Move from utils.c to here.
5985 (struct parm_attr): New structure.
5986 (parm_attr, parm_attr vector, parm_attr GC vector): New types.
5987 (f_parm_attr_cache): New macro.
5988 (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
5989 expressions for the 'First, 'Last and 'Length attributes of the
5990 unconstrained array IN parameters.
5991 (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
5992 Allocate the information structure for the function earlier, as well
5993 as the language-specific part.
5994 If the parameter attributes cache has been populated, evaluate the
5995 cached expressions on entry.
5996 (takes_address): Add OPERAND_TYPE parameter. Handle N_Function_Call,
5997 N_Procedure_Call_Statement and N_Indexed_Component.
5998 (Pragma_to_gnu): Translate inspection_point to an asm statement
5999 containaing a comment and a reference to the object (either its address
6000 for BLKmode or its value).
6001 (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
6002 to go to DECL_INITIAL. Together with the size constraint relaxation
6003 in create_var_decl, enlarges the set of situations in which an
6004 identifier may be used as an initializer without implying elaboration
6006 (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
6007 DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
6009 (maybe_stabilize_reference): Remove lvalues_only parameter.
6010 (gnat_stabilize_reference): Adjust for above change.
6011 (gnat_to_gnu): Do not set location information on the result
6012 if it is a reference.
6013 (add_cleanup): Add gnat_node parameter and set the location of the
6015 (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
6016 (Exception_Handler_to_gnu_zcx): Likewise.
6017 (gigi): Remove the cgraph node if the elaboration procedure is empty.
6018 (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
6019 the former right after the latter.
6020 (start_stmt_group): Make global.
6021 (end_stmt_group): Likewise.
6022 (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
6024 (gnu_program_error_label_stack): Likewise.
6025 (gigi): Initialize them.
6026 (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
6027 (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
6029 (push_exception_label_stack): New function.
6030 (takes_address): New function.
6032 * utils.c (struct language_function): Move to trans.c from here.
6033 (unchecked_convert): Do not wrap up integer constants in
6035 (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
6036 the latter for aggregate types, unexpected by later passes, and relax an
6037 arbitrary size constraint on the former.
6038 (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
6039 to compare the sizes.
6040 (convert_vms_descriptor): When converting to a fat pointer type, be
6041 prepared for a S descriptor at runtime in spite of a SB specification.
6042 (shift_unc_components_for_thin_pointers): New function.
6043 (write_record_type_debug_info): For variable-sized fields, cap the
6044 alignment of the pointer to the computed alignment.
6045 (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
6046 If REP_LEVEL is 2, do not compute the sizes.
6047 (build_vms_descriptor): Adjust for new prototype of finish_record_type.
6048 (build_unc_object_type): Likewise.
6049 (declare_debug_type): New function.
6051 * ada-tree.def: USE_STMT: removed (not emitted anymore).
6053 * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
6054 no statement is expandable anymore.
6055 (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
6056 (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
6057 when the user requested it explicitely.
6058 (gnat_post_options): By default, set flag_eliminate_unused_debug_types
6060 (get_alias_set): Return alias set 0 for a type if
6061 TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
6063 * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
6064 (DECL_FUNCTION_STUB): New accessor macro.
6065 (SET_DECL_FUNCTION_STUB): New setter macro.
6067 * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
6069 * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
6072 2007-06-06 Jose Ruiz <ruiz@adacore.com>
6074 * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
6075 Rename to Abort_Task_Interrupt to be able to keep the same interface
6076 as the rest of the targets.
6078 * s-osinte-vxworks.ads s-osinte-vxworks.adb
6079 (To_VxWorks_Priority): Remove explicit "in" mode indicator
6081 * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
6084 2007-06-06 Robert Dewar <dewar@adacore.com>
6086 * a-chahan.ads: Remove obsolescent pragmas
6088 * a-chlat1.ads: Minor reformatting
6090 2007-06-06 Robert Dewar <dewar@adacore.com>
6092 * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
6095 * errout.adb: New Finalize/Compilation_Errors/Output_Messages
6098 * errout.ads (Finalize): Changed interface
6099 (Output_Messages): New procedure
6100 (Compilation_Errors): New Interface
6102 * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
6103 Finalize/Output_Messages interface for Errout
6104 (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
6107 2007-06-06 Thomas Quinot <quinot@adacore.com>
6108 Olivier Hainque <hainque@adacore.com>
6109 Robert Dewar <dewar@adacore.com>
6111 * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
6113 (Raise_Current_Excep): Call Debug_Raise_Exception just before
6114 propagation starts, to let debuggers know about the event in a reliable
6116 (Local_Raise): Moved to System.Exceptions
6117 More convenient to have this as a separate unit
6119 * s-except.adb, s-except.ads: New files.
6121 * a-exextr.adb (Unhandled_Exception): Delete - replaced by
6122 Debug_Unhandled_Exception in System.Exceptions where it belongs
6123 together with a couple of other debug helpers.
6124 (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
6125 the former Unhandled_Exception.
6127 * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
6128 (Warn_No_Exception_Propagation): New procedure
6129 (Warn_If_No_Propagation): Rewritten for new warning generation
6130 (Expand_Exception_Handlers): New warning generation
6131 (Expand_N_Raise_xxx_Error): Rewritten for new warnings
6132 (Add_Exception_Label): Use Special_Exception_Package_Used for test
6133 instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
6134 (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
6135 even if restriction is set (makes life easier in Check_Returns)
6136 (Expand_Local_Exception_Handlers): Follow renamed entity chain when
6137 checking exception identities.
6138 (Expand_Local_Exception_Handlers): Do not optimize when all others case
6139 (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
6140 block for handler (used by Check_Returns)
6141 (Expand_Local_Exception_Handlers): Local_Raise now takes an address
6142 (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
6143 remove all exception handlers when optimizing local raise statements.
6144 (Find_Local_Handler): Use Get_Renamed_Entity
6145 (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
6146 marked analyzed after expanding exception handlers, do not generate
6147 redundant cleanup actions, because they have been constructed already.
6149 2007-06-06 Thomas Quinot <quinot@adacore.com>
6151 * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
6152 presence of this categorization pragma is mandated by the language.
6153 (Limited_Controlled): Add missing pragma Preelaborable_Initialization
6156 2007-06-06 Vincent Celier <celier@adacore.com>
6157 Robert Dewar <dewar@adacore.com>
6159 * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
6160 butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
6161 err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
6162 fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
6163 lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
6164 makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
6165 par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
6166 prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
6167 prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
6168 sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
6169 uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
6171 Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
6172 package Namet. Make File_Name_Type and Unit_Name_Type types derived from
6173 Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
6174 Use variables of types File_Name_Type and Unit_Name_Type in error
6176 (Get_Name): Add parameter Ignore_Special, and set it reading file name
6177 (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
6179 Define flags Flag217-Flag230 with associated subprograms
6180 (Flag_Word5): New record type.
6181 (Flag_Word5_Ptr): New access type.
6182 (To_Flag_Word5): New unchecked conversion.
6183 (To_Flag_Word5_Ptr): Likewise.
6184 (Flag216): New function.
6185 (Set_Flag216): New procedure.
6187 2007-06-06 Arnaud Charlet <charlet@adacore.com>
6189 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
6192 * a-stwifi.ads, a-stzfix.ads: Minor reformatting
6194 2007-06-06 Javier Miranda <miranda@adacore.com>
6196 * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
6198 (Object_Specific_Data_Array): This is now internal to the package.
6199 (Object_Specific_Data): This is now internal to the package.
6200 (Select_Specific_Data_Element): This is now internal to the package.
6201 (Select_Specific_Data_Array): This is now internal to the package.
6202 (Select_Specific_Data): This is now internal to the package.
6203 (Offset_To_Top_Function_Ptr): This is now public.
6204 (To_Offset_To_Top_Function_Ptr): Removed.
6205 (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
6206 local to subprogram Offset_To_Top.
6207 (Predefined_DT): Removed.
6208 (Typeinfo_Ptr): Removed.
6209 (OSD): This function is now internal to this package.
6210 (SSD): This function is now internal to this package.
6211 (DT): New function that displaces the pointer to the table of primitives
6212 to get access to the enclosing wrapper record.
6213 (IW_Membership): Code cleanup.
6214 (Offset_To_Top): Code cleanup.
6215 (Predefined_DT): Removed.
6216 (Register_Interface_Tag): Removed.
6217 (Set_Interface_Table): Removed.
6218 (Set_Offset_Index): Removed.
6219 (Set_Offset_To_Top): Code cleanup.
6221 (Set_Signature): Removed.
6223 (Set_Tagged_Kind): Removed.
6224 (Typeinfo_Ptr): Removed.
6226 (Displace): Add missing check on null actual.
6228 * exp_disp.ads, exp_disp.adb
6229 (Select_Expansion_Utilities): Removed.
6230 (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
6231 (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
6232 the interface requires a new parameter.
6233 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
6234 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
6235 calls to subprograms Build_T, Build_S, etc. by the corresponding code.
6236 Done to remove package Select_Expansion_Utilities.
6237 (Make_DT): New implementation for statically allocated dispatch tables.
6238 (Make_Secondary_DT): Moved to the scope of Make_DT.
6239 (Register_Primitive): Code cleanup plus incoporate the use of the new
6240 function DT_Address_Attribute.
6241 (Expand_Interface_Thunk): The profile of this subprogram has been
6242 changed to return the Thunk_Id and the corresponding code.
6243 (Fill_DT_Entry): Removed. Its functionality is now provided by
6244 subprogram Register_Primitive.
6245 (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
6246 subprogram Register_Primitive.
6247 (Register_Primitive): New subprogram that incorporates the previous
6248 functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
6249 (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
6250 was only required to call Make_DT_Access_Action, which is now removed.
6251 (Ada_Actions): Removed
6252 (Action_Is_Proc): Removed
6253 (Action_Nb_Arg): Removed
6254 Replace all the calls to Make_DT_Access_Action by direct calls to
6255 Make_Procedure_Call_Statement or Make_Function_Call.
6256 (Set_DTC_Entity_Value): New subprogram.
6257 (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
6258 (Expand_Interface_Thunk): Add missing support for primitives that are
6259 functions with a controlling result (case in which there is no need
6260 to generate the thunk).
6262 * exp_atag.ads, exp_atag.adb
6263 (Build_DT): New subprogram that displaces the pointer to reference the
6264 base of the wrapper record.
6265 (Build_Typeinfo_Offset): Removed.
6266 (RTE_Tag_Node): Removed.
6267 (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
6268 (Build_Get_RC_Offset): Removed.
6269 (Build_Inherit_Predefined_Prims): Removed.
6270 (Build_Inherit_TSD: Removed.
6271 (Build_New_TSD): Removed.
6272 (Build_Set_External_Tag): Removed.
6273 (Build_Set_Predefined_Prim_Op_Address): Add documentation.
6274 (Build_Set_Prim_Op_Address): Add documentation.
6275 (Build_Set_TSD): Removed.
6277 * rtsfind.ads, rtsfind.adb
6278 (Load_Fail): If load fails and we are not in configurable run-time
6279 mode, then raise Unrecoverable_Error.
6280 (Text_IO_Kludge): Generate an error message if a run-time library is
6281 not available in a given run-time (ie. zfp run-time).
6282 (RTE_Record_Component): Add code to check that the component we search
6283 for is not found in two records in the given run-time package.
6284 (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
6285 (RE_DT_Predef_Prims_Offset): New entity
6286 (RE_Static_Offset_To_Top): New entity
6287 (RE_HT_Link): New entity.
6288 (System_Address_Image): Addition of this run-time package.
6289 (RE_Address_Image): New entity.
6290 (RE_Abstract_Interface): Removed.
6291 (RE_Default_Prim_Op_Count): Removed.
6292 (RE_DT_Entry_Size): Removed.
6293 (RE_DT_Min_Prologue_Size): Removed.
6294 (RE_DT_Prologue_Size): Removed.
6295 (RE_Ifaces_Table_Ptr): Removed.
6296 (RE_Interface_Data_Ptr): Removed.
6297 (RE_Type_Specific_Data): Removed.
6298 (RE_Primary_DT): Removed.
6299 (RE_Register_Interface_Tag): Removed.
6300 (RE_Set_Offset_Index): Removed.
6301 (RE_Set_OSD): Removed.
6302 (RE_Set_SSD): Removed.
6303 (RE_Set_Signature): Removed.
6304 (RE_Set_Tagged_Kind): Removed.
6305 (RE_Address_Array): New entity.
6306 (RE_DT): New entity.
6307 (RE_Iface_Tag): New entity.
6308 (RE_Interfaces_Table): New entity.
6309 (RE_No_Dispatch_Table): New entity.
6310 (RE_NDT_Prims_Ptr): New entity.
6311 (RE_NDT_TSD): New entity.
6312 (RE_Num_Prims): New entity.
6313 (RE_Offset_To_Top_Function_Ptr): New entity.
6314 (RE_OSD_Table): New entity.
6315 (RE_OSD_Num_Prims): New entity.
6316 (RE_Predef_Prims): New entity
6317 (RE_Predef_Prims_Table_Ptr): New entity.
6318 (RE_Primary_DT): New entity.
6319 (RE_Signature): New entity.
6320 (RE_SSD): New entity.
6321 (RE_TSD): New entity.
6322 (RE_Type_Specific_Data): New entity.
6323 (RE_Tag_Kind): New entity.
6325 2007-06-06 Thomas Quinot <quinot@adacore.com>
6327 * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
6328 C imported variable.
6329 (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
6332 2007-06-06 Robert Dewar <dewar@adacore.com>
6334 * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
6337 2007-06-06 Vincent Celier <celier@adacore.com>
6339 * a-tifiio.adb (Put, internal): For negative numbers, check that there
6340 is room for at least one digit and the minus sign.
6341 (Put.Put_Character): Never put a character outside of the range of
6344 2007-06-06 Olivier Hainque <hainque@adacore.com>
6345 Eric Botcazou <ebotcazou@adacore.com>
6347 * utils2.c (build_allocator): Provide the extra arguments to
6348 make_aligning_type for super-aligned objects allocated from the default
6349 pool. Leave enough room for a pointer before the aligning field, and
6350 store the system's allocator return value there.
6351 (build_call_alloc_dealloc): When releasing a super-aligned object,
6352 retrieve the system's allocator return value from where build_allocator
6353 has stored it, just ahead of the adjusted address we are passed.
6354 (build_call_raise): Handle properly the generation of line numbers when
6355 the node is marked No_Location.
6356 (compare_elmt_bitpos): Use tree_int_cst_compare. Stabilize the sort
6357 by using DECL_UID on ties.
6358 (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
6360 (build_call_raise): Handle converting exception into goto; support new
6362 (build_component_ref): Add new arg to build_call_raise.
6364 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
6366 * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
6367 "." in the case of nnn.xxx when nnn terminates with an underscore.
6368 Parse the remaining "#" or ":" in the case of nnn#.xxx#
6370 2007-06-06 Robert Dewar <dewar@adacore.com>
6372 * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
6374 2007-06-06 Arnaud Charlet <charlet@adacore.com>
6375 Vincent Celier <celier@adacore.com>
6376 Robert Dewar <dewar@adacore.com>
6378 * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
6380 (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
6381 ((destructor)) for adafinal, even when switch -a is used.
6382 Do not issue pragma Linker_Destructor for adafinal when switch -a is
6384 (Gen_Object_Files_Options): Add formatting of Linker Options, when
6385 Output_Linker_Option_List is set. Suppress this formatting when
6386 Zero_Formatting is set.
6387 Add case for CLI_Target.
6388 (System_Restrictions_Used): New flag, used to avoid generating with of
6389 System_Restrictions and initialization of the data unless there is
6390 some use of System.Restrictions in the partition.
6391 (Check_System_Restrictions_Used): New procedure
6393 * s-stalib.adb: Remove with of System.Restrictions. No longer needed
6394 since we only with this unit in the binder file if it is used elsewhere
6397 2007-06-06 Vincent Celier <celier@adacore.com>
6399 * bindusg.adb: Add line for @<response file>
6400 Add lines for new switches -R and -Z
6402 * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
6403 hierarchy in the list of files of the closure when -R is used
6404 (Gnatbind): Accept arguments starting with '@' to indicate response
6405 files and take the arguments from the response files.
6406 If List_Closure is set, display the referenced files
6408 2007-06-06 Javier Miranda <miranda@adacore.com>
6409 Robert Dewar <dewar@adacore.com>
6410 Ed Schonberg <schonberg@adacore.com>
6412 * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
6413 which the address-clause is applied to in-mode actuals (allowed by
6415 (Apply_Discriminant_Check): Do not generate a check if the type is
6416 constrained by a current instance.
6417 (Activate_Division_Check): New procedure
6418 (Activate_Overflow_Check): New procedure
6419 (Activate_Range_Check): New procedure
6420 Call these new Activate procedures instead of setting flags directly
6421 (Apply_Array_Size_Check): Removed, no longer needed.
6422 Code clean up: remove obsolete code related to GCC 2.
6423 (Get_E_Length): Protect against bomb in case scope is standard
6424 (Selected_Range_Checks): If the node to be checked is a conversion to
6425 an unconstrained array type, and the expression is a slice, use the
6426 bounds of the slice to construct the required constraint checks.
6427 Improve NOT NULL error messages
6428 (Apply_Constraint_Check): If the context is a null-excluding access
6429 type, diagnose properly the literal null.
6431 2007-06-06 Pascal Obry <obry@adacore.com>
6433 * clean.adb (Clean_Archive): Use untouched casing for the archive name
6434 and the corresponding .deps file.
6435 (Clean_Interface_Copy_Directory): Use untouched casing for the library
6436 src directory. Minor code-clean-up. Use untouched casing for files
6437 read into the library src dir.
6438 (Clean_Library_Directory): Idem.
6439 (Parse_Cmd_Line): Accept new switch -aP
6441 2007-06-06 Javier Miranda <miranda@adacore.com>
6442 Ed Schonberg <schonberg@adacore.com>
6443 Robert Dewar <dewar@adacore.com>
6444 Eric Botcazou <ebotcazou@adacore.com>
6445 Arnaud Charlet <charlet@adacore.com>
6447 * einfo.ads, einfo.adb (Available_View): New synthesized attribute
6448 applicable to types that have the With_Type flag set. Returns the
6449 non-limited view of the type, if available, otherwise the type itself.
6450 For class-wide types, there is no direct link in the tree, so we have
6451 to retrieve the class-wide type of the non-limited view of the Etype.
6452 New attributes Static_Initialization and Static_Elaboration_Desired.
6453 Remove the pragma Thread_Body, and the associated flag
6454 Is_Thread_Body in entities, and all related code.
6455 (Suppress_Value_Tracking_On_Call): New flag
6456 E_Exception has Esize and Alignment fields
6457 (Universal_Aliasing): New function.
6458 (Set_Universal_Aliasing): New procedure.
6459 (Write_Entity_Flags): Deal with Universal_Aliasing flag.
6460 (Check_Nested_Access): New procedure.
6461 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
6462 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
6463 (Related_Interface): New attribute. Present in dispatch table pointer
6464 components of records. Set to point to the entity of the corresponding
6466 (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
6467 (Original_Access_Type): Remove, not needed.
6468 (Root_Type): Handle properly subtypes of class-wide-types.
6471 * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
6472 class-wide types visible through limited-with clauses.
6473 (Try_Primitive_Operation): When examining all primitive operations of a
6474 tagged type, do not consider subprograms labeled as hidden unless they
6475 belong to a private generic type with a tagged parent.
6476 (Try_Object_Operation): Extensive rewriting, to handle properly various
6477 overloading cases, when several ancestors may have class-wide operations
6478 that are possible candidates, and when the overloaded functions return
6479 array types and have defaulted parameters so that the call may be
6480 interpreted as an indexing.
6481 (Analyze_Allocator): Remove Mark_Allocator and its invocation.
6482 (Process_Function_Call): use Next, rather than Next_Actual, to analyze
6483 successive actuals before analyzing the call itself.
6484 (Try_Primitive_Operation): A primitive operation is compatible with the
6485 prefix if the prefix has a synchronized type and the type of the formal
6486 is its corresponding record, as can be the case when the primitive
6487 operation is declared outside of the body of the type.
6488 (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
6489 perform homonym traversal, looking for class-wide operation matches
6490 (formerly done in statements of Try_Class_Wide_Operation). Matches on
6491 access parameters are now restricted to anonymous access types.
6492 (Mark_Allocator): An allocator with a discriminant association parent is
6494 (Try_One_Prefix_Interpretation): If the type of the object is
6495 incomplete, as can be happen when it is a limited view obtained through
6496 a limited_with_clause, the selected component is not part of a prefixed
6498 (Complete_Object_Operation): Diagnose properly an object that is not
6499 aliased when the corresponding controlling formal is an access
6501 (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
6502 ambiguous calls in prefixed notation, where two primitives differ only
6503 in that the controlling argument of one is an access parameter.
6505 * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
6506 whether a function that returns an unconstrained type can be inlined.
6507 (Process_Formals): Diagnose properly the illegal use of an incomplete
6508 type in the profile of an access_to_subprogram declaration.
6509 (Check_Synchronized_Overriding): Nothing check for concurrent types, the
6510 operations are attached to the corresponding record.
6511 (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
6512 When processing a primitive of a concurrent type which implements an
6513 interface change the type of all controlling formals to that of the
6514 corresponding record type.
6515 (Check_Synchronized_Overriding): Relax the conditional logic when trying
6516 to determine the tagged type to which a primitive belongs.
6517 (Check_Conventions): Capture condition to ignore a primitive operation
6518 (which is shared between the loop in Check_Conventions and the one in
6519 Check_Convention) in a new local function Skip_Check.
6520 (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
6521 confusion with Check_Conventions' own Prim_Op local variable.
6522 (Create_Extra_Formals): Test for a tagged result type rather than a
6523 controlling result when determining whether to add a BIP_Alloc_Form
6524 formal and a BIP_Final_List formal to the function.
6525 (Check_Conformance); For parameters that are anonymous access types,
6526 subtype conformance requires that the not null and the constant
6527 indicators must match
6528 (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
6529 to retrieve the appropriate type when processing a concurrent type
6530 declared within a generic. Minor comment reformatting. Change invocation
6531 of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
6533 (Analyze_Subprogram_Body): If the return type of a function is an
6534 anonymous access to the limited view of a class-wide type, and the
6535 non-limited view of the type is available, update the type of the
6536 function so that code can be generated.
6537 (Process_Formals): In case of access-subtype itype whose designated
6538 type is also an itype (situation that happens now with access to
6539 subprograms) we mark the access-type itype with the Has_Delayed_Freeze
6540 attribute to avoid backend problems.
6541 (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
6542 init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
6543 anonymous types' designated types are same before testing
6544 Subtypes_Statically_Match.
6545 (Create_Extra_Formals): Test for a named access parameter that is a
6546 controlling formal as an additional condition for adding an
6547 accessibility level formal. This can occur in the subp type created for
6548 dispatching calls in Expand_Dispatching_Call, and allows calling
6549 Create_Extra_Formals from that procedure rather than special-casing the
6550 extra formals there.
6551 (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
6552 when the function has a controlling result.
6553 (Check_Returns): Add much more knowledge of the optimization of local
6554 raise statements to gotos, to retain proper warnings in this case.
6555 (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
6556 nodes when looking for last statement.
6558 * sem_type.ads, sem_type.adb (Specific_Type): Add support for
6559 class-wide types visible through limited with clauses.
6560 (Add_One_Interp): If the operands are anonymous access types, the
6561 predefined operator on universal_access is immediately visibles
6562 (Find_Unique_Type): Handle anonymous access to subprogram types just as
6563 other anonymous access types.
6564 (Disambiguate): Take into account CIL convention.
6565 (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
6567 2007-06-06 Robert Dewar <dewar@adacore.com>
6569 * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
6570 sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
6571 elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
6572 Fix lower bound of tables.
6575 * nlists.adb: Ditto.
6576 (Prev_Node, Next_Node): Change index type to Int so that it properly
6577 covers the range First_Node_Id - 1 up.
6579 2007-06-06 Javier Miranda <miranda@adacore.com>
6580 Ed Schonberg <schonberg@adacore.com>
6581 Bob Duff <duff@adacore.com>
6582 Hristian Kirtchev <kirtchev@adacore.com>
6584 * exp_aggr.ads, exp_aggr.adb:
6585 (Build_Record_Aggr_Code): Add missing initialization of secondary tags
6586 in extension aggregates.
6587 (Flatten): Other conditions being met, an aggregate is static if the
6588 low bound given by component associations is different from the low
6589 bound of the base index type.
6590 (Packed_Array_Aggregate_Handled): If the component type is itself a
6591 packed array or record, the front-end must expand into assignments.
6592 (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
6593 Init_Pr, instead of Ancestor_Is_Expression.
6594 (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
6595 coextension chain root, either generate a list controller or use the
6596 already existing one.
6597 (Static_Array_Aggregate): New procedure to construct a positional
6598 aggregate that can be handled by the backend, when all bounds and
6599 components are compile-time known constants.
6600 (Expand_Record_Aggregate): Force conversion of aggregates of tagged
6601 types covering interface types into assignments.
6602 (Replace_Type): move to Build_Record_Aggr_Code.
6603 (Expand_Record_Aggr_Code): if the target of the aggregate is an
6604 interface type, convert to the definite type of the aggregate itself,
6605 so that needed components are visible.
6606 (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
6607 components and the context is an extended return statement do not
6608 create a transient block for it, to prevent premature finalization
6609 before the return is executed.
6610 (Gen_Assign): Do not generate a call to deep adjust routine if the
6611 component type is itself an array of controlled (sub)-components
6612 initialized with an inner aggregate.
6613 (Component_Check): New name for Static_Check. This name is now more
6614 appropriate, and documentation is added which was missing.
6615 (Component_Check): Add test for bit aligned component value
6616 (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
6617 Tagged_Comps, name is more appropriate given added function below.
6618 (Component_Not_OK_For_Backend): Check for bit aligned component ref.
6620 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
6621 Javier Miranda <miranda@adacore.com>
6622 Robert Dewar <dewar@adacore.com>
6624 * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
6625 Terminated: Add unchecked type conversion from System.Address to
6626 System.Tasking.Task_Id when calling the predefined primitive
6628 Disable new Ada 05 accessibility check for JVM.NET targets, which
6629 cannot be implemented in a practical way.
6630 (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
6631 the sources always references the tag of the actual object. Therefore,
6632 if 'Tag is applied in the sources to class-wide interface objects we
6633 generate code that displaces "this" to reference the base of the object.
6634 (Expand_N_Attribute_Reference, case Size): Return specified size if
6636 (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
6637 has code that displaces the pointer of the object to manage interface
6638 types. However this code must not be executed when the prefix is a
6639 subprogram. This bug caused the wrong expansion of the internally
6640 generated assignment that fills the dispatch table when the primitive
6641 is a function returning a class-wide interface type.
6642 (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
6643 Set_Attribute_Name for Name_Unaligned_Valid.
6645 2007-06-06 Ed Schonberg <schonberg@adacore.com>
6646 Gary Dismukes <dismukes@adacore.com>
6648 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
6649 If the initialization is the equivalent aggregate of the initialization
6650 procedure of the type, do not remove it.
6651 (Expand_N_Attribute_Definition_Clause): Exclude access variables
6652 initialized to null from having their expression reset to empty and
6653 note this exception in the comment.
6655 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
6656 Robert Dewar <dewar@adacore.com>
6657 Ed Schonberg <schonberg@adacore.com>
6658 Gary Dismukes <dismukes@adacore.com>
6660 * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
6661 Add "with" and "use" clauses for Sem_Attr.
6662 (Expand_Current_Value): Do not replace occurences of attribute
6663 references where the prefix must be a simple name.
6665 * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
6666 Namet. Add new arrays Attribute_Name_Modifies_Prefix and
6667 Attribute_Requires_Simple_Name_Prefix.
6668 (Name_Modifies_Prefix): Body of new function.
6669 (Requires_Simple_Name_Prefix): Body of new function.
6670 (Resolve_Attribute, case Access): Improve error message for case of
6671 mismatched conventions.
6672 (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
6674 (Analyze_Attribute, case 'Access): If the type of the prefix is a
6675 constrained subtype for a nominal unconstrained type, use its base type
6676 to check for conformance with the context.
6677 (Resolve_Attribute): Remove test of the access type being associated
6678 with a return statement from condition for performing accessibility
6679 checks on access attributes, since this case is now captured by
6680 Is_Local_Anonymous_Access.
6681 (Analyze_Access_Attribute): Set Address_Taken on entity
6682 (Analyze_Attribute, case Address): Set Address_Taken on entity
6683 (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
6684 validating an access attribute whose prefix is a current instance.
6685 (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
6686 applied to dispatching operations, if freezing is required then we set
6687 the attribute Has_Delayed_Freeze in the prefix's entity.
6688 (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
6689 current scope if access of local subprogram taken
6690 (Analyze_Access_Attribute): Check legality of self-reference even if the
6691 expression comes from source, as when a single component association in
6692 an aggregate has a box association.
6693 (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
6694 the prefix if it is a protected operation and the attribute is
6695 Unrestricted_Access.
6696 (Resolve_Attribute, case 'Access): Set the Etype of the attribute
6697 reference to the base type of the context, to force a constraint check
6698 when the context is an access subtype with an explicit constraint.
6699 (Analyze_Attribute, case 'Class): If the prefix is an interface and the
6700 node is rewritten as an interface conversion. leave unanalyzed after
6701 resolution, to ensure that type checking against the context will take
6704 2007-06-06 Ed Schonberg <schonberg@adacore.com>
6705 Javier Miranda <miranda@adacore.com>
6706 Robert Dewar <dewar@adacore.com>
6708 * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
6709 wrapper when the full view of the controlling type of an inherited
6710 function that dispatches on result implements interfaces.
6711 (Expand_N_Object_Declaration): In cases where the type of the
6712 declaration is anonymous access, create finalization list for it.
6713 (Expand_N_Object_Declaration): Generate a persistent_bss directive only
6714 if the object has no explicit initialization, to match description of
6715 functionality of pragam Persistent_BSS.
6716 (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
6717 new function to build static aggregates, to replace initialization call
6718 when static initialization is desired.
6719 (Freeze_Type): Generate a list controller for an access type whenever
6720 its designated type has controlled anonymous access discriminants.
6721 (Build_Equivalent_Aggregate): New procedure to compute a static
6722 aggregate to be used as default initialization for composite types,
6723 instead of a generating a call to the initialization procedure for the
6725 (Build_Initialization_Call): When available, replace a call to the
6726 initialization procedure with a copy of the equivalent static aggregate
6728 (Expand_N_Object_Declaration): Use New_Occurrence_Of in generated
6729 declarations for objects of a class-wide interface type, rather than
6730 just identifiers, to prevent visibility problems.
6731 (Expand_N_Object_Declaration): When expanding the declaration for an
6732 object of a class-wide interface type, preserve the homonym chain of
6733 the original entity before exchanging it with that of the generated
6734 renaming declaration.
6735 (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
6736 active, because there is no way to handle the exception.
6737 (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
6738 to do a minimum decoration of the Access_Disp_Table list.
6739 (Expand_Record_Controller): Avoid the addition of the controller between
6740 the component containing the tag of a secondary dispatch table and its
6741 adjacent component that stores the offset to the base of the object.
6742 This latter component is only generated when the parent type has
6743 discriminants ---documented in Add_Interface_Tag_Components).
6744 (Apply_Array_Size_Check): Removed, no longer needed.
6745 (Expand_N_Full_Type_Declaration): If the type has anonymous access
6746 components, create a Master_Entity for it only if it contains tasks.
6747 (Build_Init_Procedure): Suppress the tag assignment compiling under
6749 (Freeze_Record_Type): Remove code associated with creation of dispatch
6751 (Init_Secondary_Tags): Update type of actuals when generating calls to
6752 Ada.Tags.Set_Offset_To_Top
6753 (Stream_Operation_OK): Disable use of streams compiling under no
6755 (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
6756 if Has_Init_Expression set.
6757 (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
6758 Register_Primitive, which provides the same functionality.
6759 (Requires_Init_Proc): Return false in case of interface types.
6760 (Add_Secondary_Tables): Use the new attribute Related_Interface to
6762 (Predefined_Primitive_Freeze): Do not assume that an internal entity
6763 is always associated with a predefined primitive because the internal
6764 entities associated with interface types are not predefined primitives.
6765 Therefore, the call to Is_Internal is replaced by a call to the
6766 function Is_Predefined_Dispatching_Operation.
6767 (Make_Eq_If): When generating the list of comparisons for the
6768 components of a given variant, omit the controller component that is
6769 present if the variant has controlled components.
6771 2007-06-06 Javier Miranda <miranda@adacore.com>
6772 Hristian Kirtchev <kirtchev@adacore.com>
6773 Bob Duff <duff@adacore.com>
6775 * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
6776 handle the creation of finalization lists and calls for nested
6777 coextensions when the root of the chains is part of a return statement.
6778 (Inside_A_Return_Statement): New function inside Complete_Coextension_
6780 (Expand_Record_Equality): Skip components that are interface types.
6781 (Displace_Allocator_Pointer): Add missing support for interface subtypes
6782 (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
6783 with Rewrite_Coextension. Change the condition for detecting coextension
6785 (Is_Local_Access_Discriminant): Removed.
6786 (Rewrite_Coextension): New routine which rewrites a static coextension
6787 as a temporary and uses its unrestricted access in the construction of
6789 (Complete_Coextension_Finalization): New routine. Generate finalization
6790 attachment calls to all delayed coextensions.
6791 (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
6792 the allocator is not a coextension itself and has delayed coextensions.
6793 If the current allocator is controlled, but also a coextension, delay
6794 the generation of the finalization attachment call.
6795 Rename local variable "Node" to "Nod" in order to avoid confusion with
6797 (Expand_Allocator_Expression): Call Adjust for initialized allocators of
6798 limited types that are not inherently limited. Such an allocator is
6799 illegal, but is generated by the expander for a return statement, to
6800 copy the result onto the secondary stack. This is the only case where a
6801 limited object can be copied. Generate code to displace the pointer
6802 to the object if the qualified expression is a class-wide interface
6803 object. Such displacement was missing and hence the copy of the object
6805 (Apply_Accessibility_Check): Handle allocated objects initialized in
6807 (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
6808 and Expand_Allocator_Expression. Allocating class-wide interface objects
6809 this routine displaces the pointer to the allocated object to reference
6810 the component referencing the corresponding secondary dispatch table.
6811 Expand_Allocator_Expression): Add missing support to allocate class-wide
6812 interface objects initialized with a qualified expression.
6813 (Get_Allocator_Final_List): Test for an anonymous access type that is a
6814 function result type, and use the finalization list associated with the
6815 function scope in that case (such an anonymous type should not be
6816 treated like an access parameter's type).
6818 2007-06-06 Ed Schonberg <schonberg@adacore.com>
6819 Gary Dismukes <dismukes@adacore.com>
6820 Javier Miranda <miranda@adacore.com>
6822 * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
6823 controlled type, use Make_Handler_For_Ctrl_Operation to construct the
6824 required exception handler.
6825 (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
6826 properly the case of a function whose return type is a limited
6827 class-wide interface type. Modify the code of the accessibility
6828 check to handle class-wide interface objects. In this case we need to
6829 displace "this" to reference the primary dispatch table to get access
6830 to the TSD of the object (to evaluate its accessibility level).
6831 (Expand_N_Extended_Return_Statement): Test for a tagged result type
6832 rather than a controlling result as one of the conditions for
6833 generating tests of the implicit BIP_Alloc_Form formal. The
6834 initialization assignment is also handled according to whether the
6835 result is tagged instead of controlling.
6836 In the case where the init assignment is inserted in the "then" part of
6837 the allocation conditional, rewrite the target to be a dereference of
6838 the implicit BIP_Object_Access formal.
6839 If the returned value is unconstrained and created on the secondary
6840 stack, mark the enclosing block and function so that the secondary
6841 stack is not reclaimed on return.
6842 Treat returns from functions with controlling results similarly to
6843 returns from functions with unconstrained result subtypes.
6844 If the object returned is unconstrained, and an allocator must be
6845 created for it, analyze the allocator once the block for the extended
6846 return is installed, to ensure that finalizable components
6847 of the expression use the proper finalization list. Guard the call to
6848 Move_Final_List with a check that there is something to finalize.
6849 (Make_Tag_Ctrl_Assignment): Use "old" handling
6850 of controlled type assignment for virtual machines, since new code uses
6851 unsupported features (such as direct access to bytes in memory).
6853 2007-06-06 Gary Dismukes <dismukes@adacore.com>
6854 Ed Schonberg <schonberg@adacore.com>
6856 * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
6857 accessibility actual, check for the case of an aliased object that has
6858 been rewritten as an Access attribute, and assign Prev to Prev_Orig so
6859 we fall into processing for the attribute rather than the name of the
6861 (Expand_Inline_Call): If an actual is a literal, and the corresponding
6862 formal has its address taken in the body, create a temporary to capture
6863 value. If the return type is a limited interface, do not treat the
6864 return value as Controlled.
6865 (Is_In_Place_Function): If the return type is a limited interface,
6866 treat as returning in place. The actual returned object may not always
6867 be limited, but the caller has to assume that it is returned in place.
6868 (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
6869 context of an allocator, use the correct finalization chain (that is,
6870 the chain belonging to the access type, rather than the chain belonging
6871 to the current scope).
6872 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
6873 result type rather than a controlling result as a precondition for
6874 adding an allocation form actual to a build-in-place call.
6875 (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
6876 (Freeze_Subprogram): Code cleanup. Remove all the code that register the
6877 primitive in the dispatch tables. This work is now done by Make_DT when
6879 (Register_Predefined_DT_Entry): Removed.
6880 (Add_Return): If end label is not present, use sloc of last statement
6881 for generated return statement in procedure, for better gdb behavior
6883 (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
6884 object address nodes to ensure proper processing by routines like
6886 (Expand_Call): Fix generation of validity check for parameter
6887 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
6888 the allocation form parameter if the result subtype is constrained,
6889 except when the function has a controlling result.
6890 (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
6891 rather than Is_Controlled and Has_Controlled_Component, since we want to
6892 include class-wide result types in this treatment. Also test for a
6893 controlling result, since that also requires passing a finalization
6895 (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
6896 even when the result subtype is constrained, to handle calls involving
6897 controlling results.
6898 (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
6899 is now called even when the result subtype is constrained, to handle
6900 calls involving controlling results.
6901 (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
6902 on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
6903 now performs the test).
6904 (Make_Build_In_Place_Call_In_Object_Declaration):
6905 Add_Alloc_Form_Actual_* is now called even when the result subtype is
6906 constrained, to handle calls involving controlling results.
6907 (Add_Return): Accomodate rewritten pattern from local raise to goto
6908 transformation, so that we still recognize an transfer statement
6909 and do the right thing here in that case.
6910 (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
6911 and end of subprogram code.
6912 (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
6913 support for primitives that are functions (without formals) with a
6915 (Inherited_From_Formal): If the actual subtype has not generic parent
6916 type, it is not an actual for a formal derived type, and there is no
6917 operation to inherit from the formal.
6919 2007-06-06 Ed Schonberg <schonberg@adacore.com>
6920 Thomas Quinot <quinot@adacore.com>
6922 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
6923 inserted cleanup code appropriately for GDB use.
6924 (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
6925 exception handler for Deep_Adjust or Deep_Finalize.
6926 (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
6927 Raise_From_Controlled_Operation is available, use a call to that
6928 subprogram instead of a plain "raise Program_Error" node to raise
6929 Program_Error if an exception is propagated from an Adjust or Finalize
6931 (Insert_Actions_In_Scope_Around): If the statement to be wrapped
6932 appears in the optional statement list of a triggering alternative, the
6933 scope actions can be inserted directly there, and not in the list that
6934 includes the asynchronous select itself.
6936 2007-06-06 Ed Schonberg <schonberg@adacore.com>
6937 Robert Dewar <dewar@adacore.com>
6938 Hristian Kirtchev <kirtchev@adacore.com>
6940 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
6941 generated exception handler appropriately when debugging generated code.
6942 Deal properly with No_Exception_Propagation restriction mode.
6943 (Expand_N_Abort_Statement): Add an unchecked type conversion from
6944 System.Address to System.Tasking.Task_Id when processing the result of
6945 the predefined primitive _disp_get_task_id.
6946 (Expand_N_Asynchronous_Select): Clarify comment.
6947 (Expand_N_Protected_Type_Declaration): Minor code cleanup.
6948 (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
6949 (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
6950 (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
6951 privals and for generated call to Complete_Entry_Body, for better gdb
6953 (Copy_Result_Type): Utility to construct a parameter and result profile
6954 for protected functions whose return type is an anonymous access to
6956 (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
6958 (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
6959 point when the local-raise-to-goto transformation has taken place.
6961 2007-06-06 Javier Miranda <miranda@adacore.com>
6962 Nicolas Setton <setton@adacore.com>
6964 * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
6965 functionality when the backend is generating code.
6966 Otherwise any serious error
6967 reported by the backend calling the frontend routine Error_Msg
6968 changes the Compilation_Mode to Check_Semantics, disables the
6969 functionality of this routine and causes the generation of
6970 spureous additional errors.
6972 * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
6973 debugging information now generated by the compiler for fat-pointer
6975 Document the contents of DW_AT_producer in the GNAT Vendor extensions to
6977 Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
6979 2007-06-06 Thomas Quinot <quinot@adacore.com>
6981 * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
6982 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
6983 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
6984 For a remote call to a function with a classwide return type, apply an
6985 E.4(18) check to the returned value.
6986 (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
6987 stream attributes of the designated type of an RACW, as they are not
6988 dispatching primitive operations.
6990 2007-06-06 Geert Bosch <bosch@adacore.com>
6992 * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
6994 (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
6996 (Do_Divide_Fixed_Universal): Handle case of negative Frac.
6997 (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
6999 (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
7001 2007-06-06 Javier Miranda <miranda@adacore.com>
7003 * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
7004 attribute compiling package Ada.Tags under No_Run_Time_Mode.
7006 2007-06-06 Javier Miranda <miranda@adacore.com>
7008 * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
7009 deallocation of class-wide interface objects.
7010 (Expand_Dispatching_Constructor_Call): Take into account that if the
7011 result of the dispatching constructor is an interface type, the
7012 function returns a class-wide interface type; otherwise the returned
7013 object would be actual. The frontend previously accepted returning
7014 interface types because Expand_Interface_Actuals silently performed
7015 the management of the returned type "as if" it were a class-wide
7017 (Expand_Dispatching_Constructor_Call): Replace call to
7018 Make_DT_Access_Action by direct call to Make_Function_Call.
7020 2007-06-06 Robert Dewar <dewar@adacore.com>
7021 Ed Schonberg <schonberg@adacore.com>
7023 * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
7024 compute masking constant, since we now set Esize properly to the
7026 (Create_Packed_Array_Type): Set proper Esize value adjusted as required
7027 to match the alignment.
7028 (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
7029 packed arrays of 8 bits or less.
7031 * freeze.adb (Freeze_Entity): When freezing the formals of a
7032 subprogram, freeze the designated type of a parameter of an access type
7033 only if it is an access parameter.
7034 Increase size of C convention enumeration object
7035 (Freeze_Entity, array type case): Make sure Esize value is properly
7036 adjusted for the alignment if it is known.
7037 (Freeze_Entity, array type case): When checking bit packed arrays for
7038 the size being incorrect, check RM_Size, not Esize.
7039 (Freeze_Record_Type): Check for bad discriminated record convention
7040 (In_Exp_Body): Return true if the body is generated for a subprogram
7041 renaming, either an attribute renaming or a renaming as body.
7042 (Check_Itype): If the designated type of an anonymous access component
7043 is a non-protected subprogram type, indicate that it is frozen, to
7044 prevent out-of-scope freeze node at some subsequent call.
7045 (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
7046 only if the subprogram is neither imported nor exported, as well as the
7047 NCA descriptor class if the subprogram is exported.
7049 2007-06-06 Ed Schonberg <schonberg@adacore.com>
7050 Arnaud Charlet <charlet@adacore.com>
7051 Robert Dewar <dewar@adacore.com>
7052 Gary Dismukes <dismukes@adacore.com>
7054 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
7055 default initialization on an imported object, when there is no
7056 initialization call generated for it.
7057 (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
7060 * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
7061 Static_Elaboration_Desired.
7062 Remove pragma Thread_Body.
7063 Implement a new pragma No_Body
7064 Removes the Explicit_Overriding pragma
7065 Remove Optional_Overriding pragma
7066 (Prag): Deal with Universal_Aliasing.
7067 (Name_CIL, Name_CIL_Constructor, Convention_CIL,
7068 Pragma_CIL_Constructor): New names.
7070 * sem_cat.adb (Validate_Object_Declaration): An initialization that
7071 uses the equivalent aggregate of a type must be treated as an implicit
7073 (Get_Categorization): Check a unit for pragma Preelaborate only if it
7074 has none of the other categories.
7075 (Process_Import_Or_Interface_Pragma): Report an error for an attempt
7076 to apply Import to an object renaming declaration.
7078 * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
7079 from a C++ class should be declared as limited and that it will be
7080 considererd limited.
7081 (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
7082 should be declared as limited and that it will be considererd limited.
7083 (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
7084 (Analyze_Pragma, case Export): Diagnose export of enumeration literal
7085 (Analyze_Pragma): Deal with Universal_Aliasing.
7086 (Sig_Flags): Likewise.
7087 (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
7088 (Overflow_Checks_Unsuppressed): New flag.
7089 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
7090 (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
7091 case of JVM or .NET targets, and compiling user code.
7092 Add debugging convenience routine rv
7094 2007-06-06 Robert Dewar <dewar@adacore.com>
7096 * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
7098 (Build_Elementary_Input_Call): For floating-point use right type in the
7099 absence of strange size or stream size clauses.
7100 (Build_Elementary_Write_Call): Same fix
7101 (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
7102 set to value that does not match base type size.
7104 2007-06-06 Ed Schonberg <schonberg@adacore.com>
7106 * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
7107 object of a limited type can be initialized with a call to a function
7108 that returns in place. If the limited type has unknown discriminants,
7109 and the underlying type is a constrained composite type, build an actual
7110 subtype from the function call, as is done for private types.
7111 (Side_Effect_Free): An expression that is the renaming of an object or
7112 whose prefix is the renaming of a object, is not side-effect free
7113 because it may be assigned through the renaming and its value must be
7114 captured in a temporary.
7115 (Has_Controlled_Coextensions): New routine.
7116 (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
7117 as is done for other limited types.
7118 (Non_Limited_Designated_Type): new predicate.
7119 (Make_CW_Equivalent_Type): Modified to handle class-wide interface
7121 Remove all handling of with_type clauses.
7123 * par-ch10.adb: Remove all handling of with_type clauses.
7125 * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
7126 checksum if the main source could not be parsed.
7127 (Loat_Unit): When processing a child unit, determine properly whether
7128 the parent unit is a renaming when the parent is itself a child unit.
7129 Remove handling of with_type clauses.
7131 * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
7132 (Set_Is_Static_Coextension): New procedure.
7133 (Has_Local_Raise): New function
7134 (Set_Has_Local_Raise): New procedure
7135 (Renaming_Exception): New field
7136 (Has_Init_Expression): New flag
7137 (Delay_Finalize_Attach): Remove because flag is obsolete.
7138 (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
7139 Remove all handling of with_type clauses.
7140 (Exception_Junk): Can now be set in N_Block_Statement
7142 2007-06-06 Vincent Celier <celier@adacore.com>
7143 Robert Dewar <dewar@adacore.com>
7145 * frontend.adb (Frontend): Return immediately if the main source could
7146 not be parsed, because of preprocessing errors.
7148 * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
7149 (Gnat1drv): Exit with errors if the main source could not be parsed,
7150 because of preprocessing errors.
7151 (Check_Rep_Info): New procedure
7153 2007-06-06 Robert Dewar <dewar@adacore.com>
7155 * g-hesorg.ads, g-heasor.ads,
7156 g-busorg.ads, g-bubsor.ads: Update documentation
7157 GNAT.Heap/Bubble_Sort_G is now pure
7159 2007-06-06 Robert Dewar <dewar@adacore.com>
7161 * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
7163 2007-06-06 Robert Dewar <dewar@adacore.com>
7164 Ed Schonberg <schonberg@adacore.com>
7166 * g-comlin.ads, g-comlin.adb:
7167 Add new warning for renaming of function return objects
7169 * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
7170 (Tree_Read): Use size of object instead of type'object_size, since the
7171 latter is incorrect for packed array types.
7172 (Tree_Write): Same fix
7174 * opt.ads: Add new warning for renaming of function return objects
7175 (Generating_Code): New boolean variable used to indicate that the
7176 frontend as finished its work and has called the backend to process
7177 the tree and generate the object file.
7178 (GCC_Version): Is now private
7179 (Static_Dispatch_Tables): New constant declaration.
7180 (Overflow_Checks_Unsuppressed): New flag.
7181 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
7182 (List_Closure): New flag for gnatbind (-R)
7183 Zero_Formatting: New flag for gnatbind (-Z)
7184 (Special_Exception_Package_Used): New flag.
7185 (Warn_On_Unrepped_Components): New flag.
7187 * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
7188 unit is a compilation unit, rather than relying on its scope, so that
7189 Standard can be renamed.
7190 (Analyze_Object_Renaming): Add new warning for renaming of function
7192 Also reject attempt to rename function return object in Ada 83 mode.
7193 (Attribute_Renaming): In case of tagged types, add the body of the
7194 generated function to the freezing actions of the type.
7195 (Find_Type): A protected type is visible right after the reserved word
7196 "is" is encountered in its type declaration. Set the entity and type
7197 rather than emitting an error message.
7198 (New_Scope): Properly propagate Discard_Names to inner scopes
7199 (Check_Nested_Access): New procedure.
7200 (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
7201 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
7203 * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
7204 Add new warning for renaming of function return objects
7205 (Check_References): Suppress warnings for objects whose type or
7206 base type has Warnings suppressed.
7207 (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
7208 (Set_Warning_Switch): Include new -gnatwc in -gnatwa
7210 2007-06-06 Vincent Celier <celier@adacore.com>
7211 Emmanuel Briot <briot@adacore.com>
7212 Olivier Hainque <hainque@adacore.com>
7214 * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
7215 absolute value of Header.Block_Size when displaying the freed physical
7217 (Allocate): Compute Storage_Address using Integer_Address, not
7218 Storage_Offset, because the range of Storage_Offset may not be large
7220 (Configure): New parameter Low_Level_Traces
7221 (Allocate, Deallocation, Free_Physically): Added low-level traces
7222 (Configure): new parameter Errors_To_Stdout.
7223 (Output_File): new subprogram
7224 (Deallocate, Dereference): Send error messages to the proper stream
7225 (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
7226 documented. Previous code would send it to the current output file
7227 defined in GNAT.IO, which might not be stdout
7228 (Is_Valid): Adjust comment to mention that a positive reply means that
7229 Header_Of may be used to retrieve the allocation header associated with
7230 the subprogram Storage address argument. Return False early if this
7231 address argument is misaligned.
7233 2007-06-06 Vincent Celier <celier@adacore.com>
7235 * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
7237 (ASIS_Main): New global variable
7238 (Get_Closure): New procedure
7239 (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
7240 check, metric or pretty. Call Get_Closure in this case.
7241 (Check_Files): For GNAT LIST, check all sources of all projects when
7242 All_Projects is True.
7243 (GNATCmd): Accept -U for GNAT LIST
7245 2007-06-06 Vincent Celier <celier@adacore.com>
7247 * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
7249 Correct error message when invocation of the linker fails
7250 Add explicit size clause for the C imported variables
7251 Object_List_File_Supported and Using_GNU_Linker to emphasize that
7252 we expect char size.
7253 Read target parameters earlier, since this is needed to set
7254 Target_VM properly. Also do not use -static/shared-libgcc for non GCC
7257 2007-06-06 Vincent Celier <celier@adacore.com>
7260 Add 3 spaces before the default project directory when displaying
7261 the project search path.
7262 Add new command line switch '-l' to display license information.
7264 2007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
7266 * gmem.c: Add support for timestamps on memory operations.
7268 * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
7269 operations (not used currently, just foundation for future
7270 enhancements). Add possibility to perform full dump of gmem.out file.
7271 (Print_Back_Traces): Declare accesses to root arrays constants since
7272 they aren't modified.
7273 (Print_Back_Traces): allocate root arrays on the heap rather than stack.
7275 2007-06-06 Vincent Celier <celier@adacore.com>
7277 * gnatsym.adb: Update Copyright notice
7278 (Parse_Cmd_Line): Accept new switch -D
7279 (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
7282 * prj.ads (Policy): New policy Direct
7283 (Yes_No_Unknown): New enumeration type
7284 (Project_Data): New component Libgnarl_Needed
7286 * prj-nmsc.adb (Check_For_Source): When recording a source file make
7287 use the untouched pathname casing.
7288 (Get_Directories): Ensure that the Display_Exec_Directory is using the
7289 proper casing on non case-sensitive platforms like Windows.
7290 (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
7291 on all platforms, as it is not possible to know which one is allowed
7292 before processing the project files.
7293 (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
7294 specified when symbol policy is Direct. Check that when there is a
7295 symbol file defined (either by default or with attribute
7296 Library_Symbol_File) it is not the same as the reference symbol file.
7297 (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
7298 (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
7300 (Record_Ada_Source): Record a source that has been locally removed in an
7303 * symbols.ads (Policy): New policy Direct
7305 * symbols-vms.adb (Initialize): Take new policy Direct in case
7308 2007-06-06 Vincent Celier <celier@adacore.com>
7310 * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
7311 Correct obvious bug (return Dir; instead of return Directory;).
7312 (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
7314 2007-06-06 Thomas Quinot <quinot@adacore.com>
7316 * g-pehage.adb (Produce): Open output files in Binary mode, so that
7317 they have UNIX line endings (LF only) even on Windows, and thus pass
7318 all GNAT style checks.
7320 2007-06-06 Emmanuel Briot <briot@adacore.com>
7322 * g-regpat.adb (Quote): Fix improper quoting of '.'
7324 2007-06-06 Thomas Quinot <quinot@adacore.com>
7326 * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
7327 default, set False on a per-runtime basis.
7328 (Need_Netdb_Buffer): New constant.
7330 * g-socket.ads, g-socket.adb: Import new package
7331 GNAT.Sockets.Thin.Task_Safe_NetDB.
7332 (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
7333 binding to obtain proper message.
7334 (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
7335 Replace various occurrences of Arry (Arry'First)'Address with the
7336 equivalent Arry'Address (GNAT always follows implementation advice from
7338 (Get_Host_By_Address, Get_Host_By_Name,
7339 Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
7340 instead, rely on platform-specific task safe netdb operations provided
7343 * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
7344 parameter Process_Blocking_IO.
7345 (Host_Error_Messages): Add stub body.
7346 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
7347 (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
7348 Safe_Getservbyport): Move functions into new child package
7350 (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
7351 Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
7352 (In_Addr): Add alignment clause.
7354 2007-06-06 Robert Dewar <dewar@adacore.com>
7356 * g-trasym.ads, g-traceb.ads: Update list of supported targets
7357 Add note about symbolic traceback
7359 2007-06-06 Pascal Obry <obry@adacore.com>
7361 * hostparm.ads (Normalized_CWD): Use the host directory separator
7362 instead of the hardcoded forward slash which is not the proper
7363 character on Windows for example.
7366 2007-06-06 Vincent Celier <celier@adacore.com>
7367 Arnaud Charlet <charlet@adacore.com>
7369 * a-clrefi.adb, a-clrefi.ads: New files
7371 * impunit.adb: Add s-os_lib in the list of user visible units.
7372 (Non_Imp_File_Names_95): Add a-clrefi to this list
7373 Remove obsolete run-time entries.
7374 (Non_Imp_File_Names_05): Add Ada 2005 entries for:
7375 "a-exetim" -- Ada.Execution_Time
7376 "a-extiti" -- Ada.Execution_Time.Timers
7378 * mlib-prj.ads, mlib-prj.adb
7379 (Build_Library): Use untouched object dir and library dir. At the
7380 same time makes sure that the checks are done using the canonical
7381 form. Removes hard-coded directory separator and use the proper host
7383 (Process_Project): Do not look in object directory to check if libgnarl
7384 is needed for a library, if there is no object directory.
7385 (Build_Library): Scan the ALI files to decide if libgnarl is needed for
7387 (Build_Library): When invoking gnatbind, use a response file if the
7388 total size of the arguments is too large.
7390 * Makefile.rtl: (g-sttsne): New object file.
7391 Add entry for a-clrefi, s-utf_32, System.Exceptions
7393 * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
7394 (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
7395 (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
7396 Change g-string to s-string, g-os_lib to s-os_lib
7397 Change all g-utf_32 references to s-utf_32
7399 2007-06-06 Tristan Gingold <gingold@adacore.com>
7400 Olivier Hainque <hainque@adacore.com>
7402 * init.c: Do not adjust IP of an imported VMS exception of ia64.
7403 LIB$STOP is called to raise an exception and the IP of the exception
7404 is the instruction right after the call.
7405 (__gnat_adjust_context_for_raise, AIX): Implement.
7406 (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
7407 adjust_context_for_raise before Raise_From_Signal_Hanler.
7408 (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
7409 siginfo is passed to the handler, necessary to let the zcx propagation
7410 engine unwind past it.
7412 2007-06-06 Olivier Hainque <hainque@adacore.com>
7414 * initialize.c (__gnat_initialize for vxworks): Update documentation
7415 on the ZCX support, using different sets of crtstuff objects than with
7418 2007-06-06 Robert Dewar <dewar@adacore.com>
7420 * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
7422 (Layout_Type): Fix recomputation of size from alignment.
7424 2007-06-06 Ed Schonberg <schonberg@adacore.com>
7425 Javier Miranda <miranda@adacore.com>
7427 * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
7428 association in an instance.
7429 (Copy_Generic_Node): If the node is a string literal, no need to copy
7431 (Is_Generic_Formal): For a formal subprogram, the declaration is the
7432 grandparent of the entity.
7433 (Analyze_Formal_Interface_Type): Transform into a full type declaration,
7434 to simplify handling of formal interfaces that derive from other formal
7436 (Instantiate_Subprogram_Body): The defining unit name of the body of
7437 the instance should be a defining identifier.
7438 (Install_Formal_Packages): make global to the package, for use in
7439 instantiations of child units.
7440 (Analyze_Package_Instantiation): Do not attempt to set information on an
7441 enclosing master of an entry when expansion is disabled.
7442 (Instantiate_Type): If the actual is a tagged synchronized type and the
7443 generic ancestor is an interface, create a generic actual for the
7444 corresponding record.
7445 (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
7446 declaration, to ensure that the interface list is processed correctly.
7447 (Inline_Instance_Body): If enclosing scope is an instance body, remove
7448 its entities from visibiility as well.
7449 (Pre_Analyze_Actuals): if the actual is an allocator with constraints
7450 given with a named association, analyze the expression only, not the
7451 discriminant association itself.
7452 (Reset_Entity): If the analysis of a selected component is transformed
7453 into an expanded name in the prefix of a call with parameters, do not
7454 transform the original node into an expanded name, to prevent visibility
7455 errors in the case of nested generics.
7456 (Check_Private_View): For an array type, check whether the index types
7457 may need exchanging.
7459 2007-06-06 Arnaud Charlet <charlet@adacore.com>
7460 Vincent Celier <celier@adacore.com>
7462 * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
7463 since both are separated.
7464 Add support for imported CIL packages.
7465 Add further special handling of "value_type" for CIL.
7466 Add special handling of pragma Import for CIL.
7468 * make.ads, make.adb: When switch -eS is used, direct all outputs to
7469 standard output instead of standard error, except errors.
7470 (Absolute_Path): Use untouched casing for the parent directory.
7471 (Add_Library_Search_Dir): Use the untouched directory name.
7472 (Add_Source_Search_Dir): Idem.
7473 (Change_To_Object_Directory): Update output to use proper casing.
7474 (Create_Binder_Mapping_File): Use the untouched filename to set
7476 (Gnatmake): Use untouched library and executable directory names.
7477 (Insert_Project_Sources): Use untouched filename for spec and body.
7478 (Is_In_Object_Directory): Use untouched object directory.
7479 (Mark_Directory): Idem.
7480 (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
7481 contains the non-canonical filename in all cases.
7482 (Change_To_Object_Directory): In verbose mode, display the name of the
7483 object directory we're changing to.
7484 (Compile_Sources): Make sure, when a project file is used, to compile
7485 the body of the unit, when there is one, even when only the spec is
7486 recorded in an ALI file.
7487 (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
7489 (Report_Compilation_Failed): New procedure
7490 (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
7491 procedures moved from the spec to the body.
7492 (Extract_Failure): Removed, not used
7493 Replace explicit raises of exception Bind_Failed and Link_Failed with
7494 calls to Make_Failed with the proper message.
7495 Replace explicit raises of exception Compilation_Failed with calls to
7496 procedure Report_Compilation_Failed.
7497 (Initialize): Create mapping files unconditionally when using project
7500 * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
7501 Pragma_CIL_Constructor): New names.
7503 * targparm.ads, targparm.adb
7504 (Compiler_System_Version): Removed, no longer used.
7505 (Get_Target_Parameters): Relax checks on system.ads validity. Add
7506 handling of two new system flags: JVM and CLI.
7508 2007-06-06 Jose Ruiz <ruiz@adacore.com>
7509 Arnaud Charlet <charlet@adacore.com>
7511 * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
7512 time, use the default s-interr body that provides interrupt support
7514 (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
7515 a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
7516 g-soccon.ads, and s-taprop.adb for the marte run time.
7517 (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
7518 timers are supported on marte.
7519 (EH_MECHANISM for marte): Do not use ZCX.
7520 (THREADSLIB for marte): Use -lmarte.
7521 Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
7522 Add mlib-tgt-specific.o to gnatmake objects
7523 mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
7525 (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
7526 6, either kernel or rtp, use a specialized version of s-osinte.ads.
7528 2007-06-06 Pascal Obry <obry@adacore.com>
7530 * mkdir.c (__gnat_mkdir): Add support for UTF-8.
7532 2007-06-06 Vincent Celier <celier@adacore.com>
7534 * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
7535 separator, use instead the proper host directory separator.
7536 (Copy_ALI_Files): Make sure that an already existing ALI file in the
7537 ALI copy dir is writable, before doing the copy.
7539 * mlib-utl.ads, mlib-utl.adb:
7540 (Gcc): If length of command line is too long, put the list of object
7541 files in a response file, if this is supported by the platform.
7542 (Ar): If invocation of the archive builder is allowed to be done in
7543 chunks and building it in one shot would go above an OS dependent
7544 limit on the number of characters on the command line, build the archive
7547 2007-06-06 Vincent Celier <celier@adacore.com>
7549 * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
7550 of specified object file is not equal to base name of source.
7552 2007-06-06 Javier Miranda <miranda@adacore.com>
7553 Hristian Kirtchev <kirtchev@adacore.com>
7554 Ed Schonberg <schonberg@adacore.com>
7556 * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
7557 the full type declaration.
7558 (Analyze_Component_Declaration): Add local variable E to capture the
7559 initialization expression of the declaration. Replace the occurences of
7560 Expression (N) with E.
7561 (OK_For_Limited_Init_In_05): Allow initialization of class-wide
7562 limited interface object with a function call.
7563 (Array_Type_Declaration): If the declaration lacks subtype marks for
7564 indices, create a simple index list to prevent cascaded errors.
7565 (Is_Null_Extension): Ignore internal components created for secondary
7566 tags when checking whether a record extension is a null extension.
7567 (Check_Abstract_Interfaces): Add missing support for interface subtypes
7568 and generic formals.
7569 (Derived_Type_Declaration): Add missing support for interface subtypes
7570 and generic formals.
7571 (Analyze_Object_Declaration): If an initialization expression is
7572 present, traverse its subtree and mark all allocators as static
7574 (Add_Interface_Tag_Component): When looking for components that may be
7575 secondary tags, ignore pragmas that can appear within a record
7577 (Check_Abstract_Overriding): an inherited function that dispatches on
7578 result does not need to be overriden if the controlling type is a null
7580 (Mentions_T): Handle properly a 'class attribute in an anonymous access
7581 component declaration, when the prefix is an expanded name.
7582 (Inherit_Component): If the derivation is for a private extension,
7583 inherited components remain visible and their ekind should not be set
7585 (Find_Type_Of_Object): In the case of an access definition, always set
7586 Is_Local_Anonymous_Access. We were previously not marking the anonymous
7587 access type of a return object as a local anonymous type.
7588 (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
7589 range with character literal bounds.
7590 (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
7591 (Access_Subprogram_Declaration): Indicate that the type declaration
7592 depends on an incomplete type only if the incomplete type is declared
7594 (Analyze_Subtype_Declaration): Handle properly subtypes of
7595 synchronized types that are tagged, and that may appear as generic
7597 (Access_Subprogram_Declaration): An anonymous access to subprogram can
7598 appear as an access discriminant in a private type declaration.
7599 (Add_Interface_Tag_Components): Complete decoration of the component
7600 containing the tag of a secondary dispatch table and the component
7601 containing the offset to the base of the object (this latter component
7602 is only generated when the parent type has discriminants --as documented
7604 (Inherit_Components): Use the new decoration of the tag components to
7605 improve the condition that avoids inheriting the components associated
7606 with secondary tags of the parent.
7607 (Build_Discriminanted_Subtype): Indicate to the backend that the
7608 size of record types associated with dispatch tables is known at
7610 (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
7611 (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
7612 to include task, protected, and synchronized interfaces as limited
7614 (Process_Discriminants): Remove the setting of
7615 Is_Local_Anonymous_Access on the type of (anonymous) access
7616 discriminants of nonlimited types.
7617 (Analyze_Interface_Type_Declaration): Complete the decoration of the
7618 class-wide entity it is is already present. This situation occurs if
7619 the limited-view has been previously built.
7620 (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
7622 (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
7625 2007-06-06 Ed Schonberg <schonberg@adacore.com>
7627 * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
7628 of the type that specify the position of interface tags when the type
7629 inherits discriminated array components from the parent type.
7630 If a component is initialized with a box, check for the presence of a
7631 default expression in its declaration before using its default
7632 initialization procedure.
7633 (Resolve_Record_Aggregate): If a component is box-initialized, and the
7634 component type has a discriminants, create a partial aggregate for it
7635 by copying the discriminants of the component subtype.
7636 Reject attempt to initialize a discriminant with a box.
7637 (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
7638 associated with dispatch tables is known at compile time.
7639 (Get_Value): If an association in a record aggregate has a box
7640 association, and the corresponding record component has a default
7641 expression, always copy the default expression, even when the
7642 association has a single choice, in order to create a proper
7643 association for the expanded aggregate.
7645 2007-06-06 Ed Schonberg <schonberg@adacore.com>
7646 Robert Dewar <dewar@adacore.com>
7648 * par-ch12.adb (P_Generic_Associations): The source position of an
7649 Others association is that of the others keyword, not that of the token
7650 that follows the box.
7651 (P_Formal_Type_Definition): Handle formal access types that carry a
7654 * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
7655 multiple identifier are present, save Scan_State before scanning the
7656 colon, to ensure that separate trees are constructed for each
7658 (P_Identifier_Declarations): For object declaration, set new flag
7659 Has_Init_Expression if initialization expression present.
7660 (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
7661 Improve NOT NULL error messages
7663 2007-06-06 Robert Dewar <dewar@adacore.com>
7665 * par-ch4.adb: (P_Name): Recover from literal used as name
7667 2007-06-06 Vincent Celier <celier@adacore.com>
7669 * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
7671 In the "not" case, recursive call with Complemented set to True.
7672 Do not allow "or" or "and" operators when Complemented is True.
7674 2007-06-06 Vincent Celier <celier@adacore.com>
7676 * prj.adb (Project_Empty): Gives default value for new component
7679 * prj-attr.ads: Minor reformatting
7681 * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
7682 directory using the untouched casing.
7683 (For_All_Source_Dirs): Idem.
7685 * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
7686 directories specified with switches -aP.
7687 (Add_Search_Project_Directory): New procedure
7688 (Initialize_Project_Path): Put the directories in table
7689 Search_Directories in the project search path.
7690 (Initialize_Project_Path): For VMS, transform into canonical form the
7693 2007-06-06 Arnaud Charlet <charlet@adacore.com>
7695 * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
7696 true if configurable run-time or No_Run_Time is set.
7697 (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
7698 processing an unit which is not the one being compiled.
7700 2007-06-06 Arnaud Charlet <charlet@adacore.com>
7702 * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
7703 Replace UC by Ada.UC
7705 * s-bitops.adb: Get rid of System.Pure_Exceptions.
7706 Replace UC by Ada.UC
7708 2007-06-06 Robert Dewar <dewar@adacore.com>
7710 * scng.adb: (Check_End_Of_Line): Deal with very long lines
7712 2007-06-06 Robert Dewar <dewar@adacore.com>
7714 * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
7715 Remove no longer used nodes.
7717 2007-06-06 Javier Miranda <miranda@adacore.com>
7718 Ed Schonberg <schonberg@adacore.com>
7719 Robert Dewar <dewar@adacore.com>
7721 * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
7722 on obsolescent withed unit in case of limited-withed units.
7723 (Analyze_Compilation_Unit): Add guard to code that removed an
7724 instantiation from visibility, to prevent compiler aborts when
7725 instantiation is abandoned early on.
7726 (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
7727 current unit being analyzed, and Distinguish local incomplete types
7728 from limited views of types declared elsewhere.
7729 (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
7730 to state that the class-wide entity is shared by the limited-view
7732 (Analyze_With_Clause): Improve placement of flag for case of
7734 (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
7735 manner similar to GNAT.Current_Exception. This is a violation of
7736 restriction (No_Exception_Propagation), and also inhibits the
7737 optimization of local raise to goto.
7738 (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
7739 and if so set Most_Recent_Exception_Used flag in Opt, and also check
7740 for violation of restriction No_Exception_Propagation.
7742 2007-06-06 Javier Miranda <miranda@adacore.com>
7743 Hristian Kirtchev <kirtchev@adacore.com>
7744 Gary Dismukes <dismukes@adacore.com>
7746 * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
7747 use of entity Exception_Occurrence if it is not available in the
7750 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
7751 concurrent types are declared within an Ada 2005 generic, build their
7752 corresponding record types since they are needed for overriding-related
7754 (Analyze_Protected_Type): Rearrange and simplify code for testing that a
7755 protected type does not implement a task interface or a nonlimited
7757 (Analyze_Task_Type): Rearrange and simplify code for testing that a task
7758 type does not implement a protected interface or a nonlimited interface.
7759 (Single_Task_Declaration, Single_Protected_Declaration): use original
7760 entity for variable declaration, to ensure that debugging information
7761 is correcty generated.
7762 (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
7763 routines if the expander is not active.
7764 (Analyze_Task_Body): Mark all handlers to stop optimization of local
7765 raise, since special things happen for task exception handlers.
7767 * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
7768 concurrent types declared within a generic.
7769 (Check_Dispatching_Operation): Do not emit warning about late interface
7770 operations in the context of an instance.
7771 (Check_Dispatching_Call): Remove restriction against calling a
7772 dispatching operation with a limited controlling result.
7773 (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
7774 Register_Interface_DT_Entry by calls to Register_Primitive.
7775 (Check_Dispatching_Formals): Handle properly a function with a
7776 controlling access result.
7778 2007-06-06 Robert Dewar <dewar@adacore.com>
7779 Arnaud Charlet <charlet@adacore.com>
7781 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
7782 Check for restriction No_Implementation_Attributes if in Ada 95 mode.
7783 (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
7784 (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
7785 message when using a VM, since this attribute is not supported.
7786 (Analyze_Record_Representation_Clause): Give unrepped component warnings
7788 * usage.adb: Add new warning for renaming of function return objects
7789 Indicate that -gnatwp and -gnatwP concern front-end inlining
7790 Add line for -gnatyg
7791 Add usage information for -gnatw.c/C
7793 2007-06-06 Robert Dewar <dewar@adacore.com>
7794 Ed Schonberg <schonberg@adacore.com>
7797 (Find_Var): Do not consider function call in test for infinite loop
7798 warning if warnings set off for function entity.
7799 (One_Bound): Do not create a temporary for a loop bound if it is a
7801 (Analyze_Assignment): Traverse the right hand side of an assignment and
7802 mark all allocators as static coextensions.
7803 (Analyze_Assignment): Exempt assignments involving a dispatching call
7804 to a function with a controlling access result from the check requiring
7805 the target to be class-wide.
7807 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
7808 Ed Schonberg <schonberg@adacore.com>
7809 Robert Dewar <dewar@adacore.com>
7810 Javier Miranda <miranda@adacore.com>
7812 * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
7813 chain of coextensions when an allocator serves as the root of such a
7815 (Propagate_Coextensions): Remove the test for the root being an
7817 (Resolve_Allocator): Add condition to ensure that all future decoration
7818 occurs on an allocator node. Add processing and cleanup for static
7820 (Valid_Conversion): If the operand type is the limited view of a
7821 class-wide type, use the non-limited view is available to determine
7822 legality of operation.
7823 (Ambiguous_Character): move to spec, for use elsewhere.
7824 (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
7825 (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
7827 (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
7828 Do_Division_Check flag explicitly.
7829 (Resolve_Actuals): If the actual is of a synchronized type, and the
7830 formal is of the corresponding record type, this is a call to a
7831 primitive operation of the type, that is declared outside of the type;
7832 the actual must be unchecked-converted to the type of the actual
7833 (Resolve_Call): Kill all current values for any subprogram call if
7834 flag Suppress_Value_Tracking_On_Call is set.
7835 (Resolve_Type_Conversion): Generate error message the the operand
7836 or target of interface conversions come from a limited view.
7837 (Check_Infinite_Recursion): Ignore generated calls
7838 (Check_Allocator_Discrim_Accessibility): New procedure for checking
7839 that an expression that constrains an access discriminant in an
7840 allocator does not denote an object with a deeper level than the
7841 allocator's access type.
7842 (Resolve_Allocator): In the case of an allocator initialized by an
7843 aggregate of a discriminated type, check that associations for any
7844 access discriminants satisfy accessibility requirements by calling
7845 Check_Allocator_Discrim_Accessibility.
7846 (Resolve_Equality_Op): Handle comparisons of anonymous access to
7847 subprogram types in the same fashion as other anonymous access types.
7848 (Resolve_Concatenation_Arg): Remove initial character '\' in an error
7849 message that is not a continuation message.
7850 (Resolve_Type_Conversion): Add missing support for conversion to
7852 (Resolve_Actuals): Introduce a transient scope around the call if an
7853 actual is a call to a function returning a limited type, because the
7854 resulting value must be finalized after the call.
7855 (Resolve_Actuals): If the call was given in prefix notations, check
7856 whether an implicit 'Access reference or implicit dereference must be
7857 added to make the actual conform to the controlling formal.
7859 2007-06-06 Robert Dewar <dewar@adacore.com>
7860 Javier Miranda <miranda@adacore.com>
7862 * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
7863 (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
7864 overriding of an inherited private subprogram now there is no need to
7865 inherit its dispatching slot and reduce the size of the dispatch table.
7866 Set_All_DT_Position now ensures that the same slot is now assigned to
7867 both entities. This is required to statically build the dispatch table.
7868 (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
7869 of calling Set_All_DT_Position to re-evaluate the position of the
7870 entries in the dispatch table. Such reevaluation is not desired if
7871 the tagged type is already frozen.
7873 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
7874 Gary Dismukes <dismukes@adacore.com>
7875 Robert Dewar <dewar@adacore.com>
7876 Javier Miranda <miranda@adacore.com>
7878 * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
7879 reference acts as an lvalue when the attribute name modifies the prefix
7880 (Is_Coextension_Root): New routine.
7881 (Mark_Static_Coextensions): New routine.
7882 (Type_Access_Level): Revise code for checking the level of the
7883 anonymous access type of a return object.
7884 (Safe_To_Capture_Value): Not safe to capture if Address_Taken
7885 (Matches_Prefixed_View_Profile): Remove the no longer necessary
7886 retrieval of the corresponding controlling record type.
7887 (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
7888 concurrent types declared within a generic as well as class wide types.
7889 Emit a mode incompatibility error whenever a protected entry or routine
7890 override an interface routine whose first parameter is not of mode
7891 "out", "in out" or access to variable.
7892 (Overrides_Synchronized_Primitive): Rename to
7893 Find_Overridden_Synchronized_Primitive.
7894 (Collect_Interface_Components): New subprogram that collects all the
7895 components of a tagged record containing tags of secondary dispatch
7897 (Add_Global_Declaration): New procedure
7898 (Abstract_Interface_List): Handle properly the case of a subtype of a
7900 (Type_Access_Level): In the case of a type whose parent scope is a
7901 return statement, call Type_Access_Level recursively on the enclosing
7902 function's result type to determine the level of the return object's
7904 (Build_Elaboration_Entity): Build name of elaboration entity from the
7905 scope chain of the entity, rather than the unit name of the file name.
7906 (Check_Nested_Access): New procedure.
7907 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
7908 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
7909 (Get_Renamed_Entity): Utility routine for performing common operation
7910 of chasing the Renamed_Entity field of an entity.
7912 2007-06-06 Robert Dewar <dewar@adacore.com>
7914 * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
7916 (Check_A_Call): Add check for entry call which was causing blowup
7918 2007-06-06 Olivier Hainque <hainque@adacore.com>
7920 * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
7921 special code on ia64-vms to handle major incompatibilities between the
7922 GCC unwinding ABI and the VMS Condition Handling Facility, both calling
7923 this routine with a very different set of arguments and expectations on
7926 2007-06-06 Thomas Quinot <quinot@adacore.com>
7928 * socket.c (__gnat_close_signalling_fd): New function.
7929 (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
7930 __gnat_safe_getservbyname, __gnat_safe_getservbyport):
7931 New supporting functions for task safe Netdb operations.
7933 2007-06-06 Thomas Quinot <quinot@adacore.com>
7934 Olivier Hainque <hainque@adacore.com>
7936 * a-except-2005.ads, a-except-2005.adb
7937 (Raise_From_Controlled_Operation): New procedure in
7938 (private part of) Ada.Exceptions (standard runtime version). Used to
7939 provide informational exception message when Program_Error is raised as
7940 a result of an Adjust or Finalize operation propagating an exception.
7941 (Rmsg_28): Fix description for E.4(18) check.
7942 (Raise_Current_Excep): Call Debug_Raise_Exception just before
7943 propagation starts, to let debuggers know about the event in a reliable
7945 Take the address of E and dereference to make sure it is homed on stack
7946 and prevent the stores from being deleted, necessary for proper
7947 debugger behavior on "break exception" hits.
7948 (Local_Raise): Moved to System.Exceptions
7950 * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
7951 exception message from the current occurrence and raise Program_Error
7952 has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
7954 2007-06-06 Jose Ruiz <ruiz@adacore.com>
7955 Arnaud Charlet <charlet@adacore.com>
7957 * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
7960 * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
7961 priority associated to a lock.
7963 * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
7964 assertion to take into account case of no abort restriction.
7965 (Initialize_Protection_Entries): Add initialization for the field
7966 New_Ceiling associated to the protected object.
7967 (Unlock_Entries): Change the ceiling priority of the underlying lock, if
7970 * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
7971 since this function needs to be set consistently with Update_Exception.
7973 * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
7974 since this function needs to be set consistently with Update_Exception.
7976 * s-taskin.ads: Update comments on
7977 Interrupt_Server_Blocked_On_Event_Flag.
7978 (Unbind_Handler): Fix handling of server_task wakeup
7979 (Server_Task): Set self's state so that Unbind_Handler can take
7980 appropriate actions.
7981 (Common_ATCB): Now use a constant from System.Parameters to determine
7982 the max size of the Task_Image field.
7984 * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
7985 Initialize_Analyzer function.
7986 ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
7987 take into account case of no abort restriction.
7988 ([Vulnerable_]Complete_Master): Modify assertion.
7990 * s-tataat.adb (Finalize): Use the nestable versions of
7991 Defer/Undefer_Abort.
7993 * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
7995 * s-tpobop.ads: Update comments.
7997 * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
7998 of locking the object manually, to avoid inconsistencies between
7999 Lock/Unlock_Entry assertions.
8001 * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
8003 application and System.Parameters.No_Abort is True.
8004 Update comments on Interrupt_Server_Blocked_On_Event_Flag.
8005 (Unbind_Handler): Fix handling of server_task wakeup
8006 (Server_Task): Set self's state so that Unbind_Handler can take
8007 appropriate actions.
8009 2007-06-06 Thomas Quinot <quinot@adacore.com>
8011 * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
8012 declarations instead of an explicit null body, for conciseness.
8014 2007-06-06 Robert Dewar <dewar@adacore.com>
8016 * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
8017 illegal aggregate and the type is still Any_Composite.
8018 (Subtypes_Statically_Match): Fix problem of empty discriminant list
8020 2007-06-06 Ed Schonberg <schonberg@adacore.com>
8022 * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
8023 to prevent subsequent expansion.
8025 2007-06-06 Robert Dewar <dewar@adacore.com>
8027 * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
8029 2007-06-06 Ed Schonberg <schonberg@adacore.com>
8030 Robert Dewar <dewar@adacore.com>
8032 * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
8034 (Write_Itype): Handle case of string literal subtype, which
8035 comes up in this context.
8036 (Update_Itype): when debugging expanded code, update sloc of itypes
8037 associated with defining_identifiers and ranges, for gdb use.
8038 (Sprint_Node_Actual): Add static keyword to object or exception
8039 declaration output if Is_Statically_Allocated is True.
8040 (Sprint_End_Label): Set entity of end marker for a subprogram, package,
8041 or task body, so that the tree carries the proper Sloc information for
8043 (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
8045 2007-06-06 Arnaud Charlet <charlet@adacore.com>
8047 * s-secsta.adb (Chunk): Ensure this object has a static size known at
8048 compile time, to avoid dynamic memory allocation
8049 (Elaboration code): Only use dynamic memory allocation when needed.
8051 2007-06-06 Quentin Ochem <ochem@adacore.com>
8053 * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
8055 (Stack_Analyzer): Added field "Overflow_Guard"
8056 (Task_Result): Added field "Overflow_Guard".
8057 (Index_Str): New constant.
8058 (Task_Name_Str): New constant.
8059 (Actual_Size_Str): New constant.
8060 (Pattern_Array_Element_Size): New constant.
8061 (Get_Usage_Range): New subprogram.
8062 (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
8063 Now align the output.
8065 (Initialize): Added value for Overflow_Guard.
8066 (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
8067 Update the value of the overflow guard according to the actual
8068 beginning of the pattern array.
8069 (Initialize_Analyzer): Added parameter Overflow_Guard.
8070 Take this parameter into accound when computing the max size.
8071 (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
8072 (Report_Result): Removed extra useless procedure.
8073 Updated call to Output_Result.
8074 Moved full computation of the Task_Result here.
8076 2007-06-06 Thomas Quinot <quinot@adacore.com>
8078 * g-soccon-darwin.ads, gen-soccon.c: Add new constant
8079 Thread_Blocking_IO, always True by default, set False on a per-runtime
8081 Add Windows-specific constants
8082 Add new constant Need_Netdb_Buffer.
8083 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
8084 not, whether to use getXXXbyYYY_r.
8086 * gsocket.h: Add new constant Need_Netdb_Buffer.
8087 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
8088 not, whether to use getXXXbyYYY_r.
8090 2007-06-06 Eric Botcazou <ebotcazou@adacore.com>
8092 * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
8093 than their first call.
8094 Add type Dummy_Communication_Block used in the generation of the pre-
8095 defined dispatching primitive _disp_asynchronous_select.
8096 (Storage_Element): Put Pragma Universal_Aliasing on it.
8098 2007-06-06 Vincent Celier <celier@adacore.com>
8100 * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
8103 * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
8104 letter if it is not followed by a '/' or a '\'.
8105 (Windows): New Boolean function
8107 * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
8109 (Containing_Directory): On Windows, keep at least one '/' or '\' after a
8111 (Containing_Directory): Raise Use_Error when the directory is a root
8113 (Extension): When returning the result, use a conversion to Result_Type,
8114 not a qualification.
8116 2007-06-06 Robert Dewar <dewar@adacore.com>
8118 * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
8119 (Set_Style_Check_Options): Recognize new -gnatyg style switch
8121 * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
8122 Warn_On_Non_Local_Exception to False, to turn off warnings for
8123 No_Exception_Propagation in ZFP runtime.
8124 (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
8126 (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
8128 2007-06-06 Vincent Celier <celier@adacore.com>
8130 * switch-b.adb (Scan_Binder_Switches): Add processing for new
8133 * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
8134 (Scan_Make_Switches): Recognize new switch -aP
8136 2007-06-06 Matthew Gingell <gingell@adacore.com>
8137 Jose Ruiz <ruiz@adacore.com>
8139 * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
8140 VxWorks task descriptor in the Ada run time, call a C subprogram
8141 (__gnat_get_stack_info) that extracts the required information.
8143 * sysdep.c: Back out temporary lynxos workaround.
8144 (__gnat_get_stack_info): Add this procedure that passes to the Ada run
8145 time the stack information associated to the currently executing task.
8146 Only VxWorks systems require this function.
8148 2007-06-06 Eric Botcazou <ebotcazou@adacore.com>
8150 * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
8151 add the stack bias if the offset is computed from a frame address.
8152 (__gnat_backtrace): Adjust for above change.
8154 2007-06-06 Thomas Quinot <quinot@adacore.com>
8156 * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
8157 PE_Non_Transportable_Actual.
8158 (By_Descriptor_Last): New constant.
8159 (By_Copy_Return): Likewise.
8161 2007-06-06 Vincent Celier <celier@adacore.com>
8163 * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
8166 * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
8167 /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
8168 /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
8169 Add missing comment for /OPTIMIZE=SPACE
8170 Add entry for OPTIMIZE=SPACE
8171 Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
8172 Add documentation for new qualifiers corresponding to -gnatw.c/.C
8174 2007-06-06 Vincent Celier <celier@adacore.com>
8175 Robert Dewar <dewar@adacore.com>
8177 * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
8180 * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
8181 Document gnatbind switch -a
8182 (case Constructions): Document that variables declarations are allowed
8183 for previously declared variables.
8184 Fix external lib project example
8185 -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
8186 Indicate that "#if not X or Y then" is not allowed in input files to
8188 Document gnatw.x and gnatw.X warning flags
8189 Mention -Winline switch to activate warnings when back-end inlining is
8191 Add gnatcheck rule descriptions
8192 Describe how to use the GNAT driver to call a tool on a closure.
8193 Describe how to run project-wide checks or metrics.
8194 Document gnatbind's -R option
8195 Updated to account for Ada 2005 support
8197 * gnat_rm.texi (Case Construction): Allow variable declarations for
8198 previously declared variables.
8199 (Representation Clauses and Pragmas): Lift restriction on alignment
8200 clauses for record types.
8201 (Ada.Characters.*): Fix typo in reference to A.3.3(27).
8202 Document No_Exception_Propagation restriction
8203 Document No_Body pragma
8204 Updated to account for Ada 2005 support; corrected some typos
8205 (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
8207 * gnat-style.texi: Make it clear that we never use mode IN for
8208 procedures or functions
8210 * ug_words: Add entries for -gnatw.x and -gnatw.X
8211 Add entries for -gnatw.c/.C
8213 2007-06-06 Pascal Obry <obry@adacore.com>
8214 Vincent Celier <celier@adacore.com>
8216 * makegpr.adb (Add_Archive_Path): Use untouched object and library
8217 dirs and library name.
8218 (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
8220 (Build_Library): Idem.
8221 (Compile_Individual_Sources): Idem.
8222 (Compile_Link_With_Gnatmake): Idem.
8223 (Compile_Sources): Idem.
8224 (Get_Imported_Directories): Idem.
8225 (Link_Executables): Idem. Same change for the executable dir.
8226 (Check_Compilation_Needed): C_Source_Path new variable containing
8227 the canonical form of Source_Path to check against the source names
8228 in the dependency file.
8229 (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
8230 verbose mode, display the name of the object directory we're changing
8232 (Saved_Switches): New name of table X_Switches
8233 (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
8234 (Usage): New line for switch -aP
8235 (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
8236 testing if a directory should be added to the search path.
8238 2007-06-06 Javier Miranda <miranda@adacore.com>
8240 * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
8241 a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
8242 declaration after freezing point of all its associated tagged types;
8243 otherwise such types are frozen too early.
8245 2007-06-06 Robert Dewar <dewar@adacore.com>
8247 * a-reatim.adb: Documentation addition
8249 * g-cgideb.adb: Minor code reorganization
8251 * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
8252 mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
8253 s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
8255 * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
8256 function. Change name New_Scope to Push_Scope
8257 (Get_Debug_Flag_K): Remove unused obsolete function.
8259 * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
8262 * makeusg.adb: Update Copyright notice
8263 Add line for switch -aP
8265 * makeusg.adb: Fix wording of some usage messages
8267 * s-assert.adb (Raise_Assert_Failure): Add call to
8268 Debug_Raise_Assert_Failure.
8270 * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
8271 (2, Standard'Alignment) for compatibility with AAMP (where alignment
8272 is restricted to 1).
8274 * s-wchjis.adb: Remove use of System.Pure_Exceptions
8276 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
8277 node location to No_Location when we're not debugging the expanded
8280 2007-05-22 Alexandre Oliva <aoliva@redhat.com>
8282 * misc.c (enumerate_modes): Consider log2_b to always be one.
8284 2007-05-14 Rafael Avila de Espindola <espindola@google.com>
8286 * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
8288 2007-05-02 Pascal Obry <obry@adacore.com>
8290 * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
8291 to use Stream_IO.File_Type. This is needed to make use of the UTF-8
8292 encoding support of Stream_IO.
8295 * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
8296 filename and corresponding encoding to match the OS requirement.
8297 (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
8298 routine will fail on specific devices like CON: AUX: ...
8300 PR ada/29856: Add missing braces
8302 2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
8305 * ada-tree.h (lang_tree_node): Fix typo in chain_next.
8307 2007-04-21 Jan Hubicka <jh@suse.cz>
8309 * misc.c (gnat_expand_body): Don't call target for destructors,
8310 avoid redundant check on syntax errors.
8312 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
8314 * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
8315 instead of checking GIMPLE_STMT_P in chain_next.
8317 2007-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
8320 * system-linux-alpha.ads: Disable constant condition warning for the
8321 Default_Bit_Order variable.
8322 * system-linux-s390.ads: Likewise.
8323 * system-linux-s390x.ads: Likewise.
8324 * system-linux-sparc.ads: Likewise.
8326 2007-04-06 Javier Miranda <miranda@adacore.com>
8327 Matt Heaney <heaney@adacore.com>
8328 Robert Dewar <dewar@adacore.com>
8330 a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
8331 a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
8332 a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
8333 a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
8334 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
8335 a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
8336 a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
8337 a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
8338 a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
8339 a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
8340 a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
8341 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
8342 a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
8343 a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
8344 a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
8345 a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
8346 a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
8347 i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
8348 unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
8349 a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
8350 a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
8351 a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
8352 expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
8353 s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
8354 s-taprop-tru64.adb, s-taprop-irix.adb,
8355 s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
8356 s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
8357 s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
8358 s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
8359 s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
8360 a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
8361 a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
8362 g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
8363 s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
8364 s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
8365 s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
8366 s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
8367 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
8368 s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
8369 a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
8370 a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
8371 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
8372 a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
8373 a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
8374 a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
8376 Update documentation.
8379 2007-04-06 Robert Dewar <dewar@adacore.com>
8381 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
8382 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
8383 system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
8384 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
8385 system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
8386 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
8387 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
8388 system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
8389 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
8390 system-hpux-ia64.ads, targparm.adb,
8391 targparm.ads (Functions_Return_By_DSP_On_Target): Removed
8393 * system.ads: Move Functions_Return_By_DSP to obsolete section,
8394 kept for bootstrap purposes only.
8396 2007-04-06 Arnaud Charlet <charlet@adacore.com>
8398 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
8399 s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
8400 s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
8401 (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
8403 2007-04-06 Robert Dewar <dewar@adacore.com>
8405 * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
8406 (Local_Raise): New dummy procedure called when a raise is converted
8407 to a local goto. Used for debugger to detect that the exception
8410 * debug.adb: Document new d.g flag (expand local raise statements to
8411 gotos even if pragma Restriction (No_Exception_Propagation) is not set)
8413 * exp_sel.adb: Use Make_Implicit_Exception_Handler
8415 * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
8416 suppress warnings for unused handlers.
8417 (Warn_If_No_Propagation): Use new flag -gnatw.x to suppress
8418 warnings for raise statements not handled locally.
8419 (Get_RT_Exception_Entity): New function
8420 (Get_Local_Call_Entity): New function
8421 (Find_Local_Handler): New function
8422 (Warn_If_No_Propagation): New procedure
8423 (Expand_At_End_Handler): Call Make_Implicit_Handler
8424 (Expand_Exception_Handlers): Major additions to deal with local handlers
8425 (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
8426 Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
8429 * exp_ch11.ads (Get_RT_Exception_Entity): New function
8430 (Get_Local_Call_Entity): New function
8432 * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
8433 of restrictions that the binder will never suggest adding.
8435 * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
8438 * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
8439 be with'ed in the presence of pragma Restriction
8440 (No_Exception_Propagation).
8442 * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
8444 * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
8445 parameter, then the handler is not a suitable target for a local raise,
8446 and this is a violation of restriction No_Exception_Propagation.
8447 (Analyze_Handled_Statements): Analyze choice parameters in exception
8448 handlers before analyzing statement sequence (needed for proper
8449 detection of local raise statements).
8450 (Analyze_Raise_Statement): Reraise statement is a violation of the
8451 No_Exception_Propagation restriction.
8453 * s-rident.ads: Add new restriction No_Exception_Propagation
8455 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
8456 function, like Make_Exception_Handler but sets Local_Raise_Statements
8458 (Add_Unique_Serial_Number): Deal with case where this is called during
8459 processing of configuration pragmas.
8461 2007-04-06 Thomas Quinot <quinot@adacore.com>
8462 Pat Rogers <rogers@adacore.com>
8463 Pascal Obry <obry@adacore.com>
8465 * g-stsifd-sockets.adb: New file.
8467 * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
8468 g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
8469 g-socthi-vms.adb: Move signalling
8470 fd management to a nested package, so that they can conveniently be
8471 moved to a subunit that is shared across Windows, VMS, and VxWorks
8472 (Ada implementation) or completed with imported bodies from socket.c
8474 (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
8476 (Check_Selector): Use Read_Signalling_Fd to read and discard data from
8477 the signalling file descriptor.
8478 (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
8479 signalling file descriptor.
8480 (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
8481 instead of creating a pair of sockets for signalling here.
8483 * g-socthi.adb: Ditto.
8484 Set the runtime process to ignore SIGPIPEs on platforms that support
8485 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
8487 * g-socthi-mingw.adb: Ditto.
8488 (WS_Version): Use Windows 2.2.
8489 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
8491 * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
8492 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
8494 * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
8495 added GNAT byte swapping facility
8496 Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
8498 * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
8500 * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
8502 (__gnat_create_signalling_fds): New subprogram.
8503 Set the runtime process to ignore SIGPIPEs on platforms that support
8504 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
8506 2007-04-06 Hristian Kirtchev <kirtchev@adacore.com>
8507 Vincent Celier <celier@adacore.com>
8509 * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
8510 New version of Ada.Calendar which supports the new upper bound of Ada
8511 time (2399-12-31 86_399.999999999).
8512 The following modifications have been made to the package:
8513 - New representation of time as count of nanoseconds since the start of
8514 Ada time (1901-1-1 0.0).
8515 - Target independent Split and Time_Of routines which service both
8516 Ada 95 and Ada 2005 code.
8517 - Target independent interface to the Ada 2005 children of Calendar.
8518 - Integrated leap seconds into Ada 95 and Ada 2005 mode.
8519 - Handling of non-leap centenial years.
8520 - Updated clock function.
8521 - Updated arithmetic and comparison operators.
8523 * a-caldel.adb (To_Duration): Add call to target independent routine in
8524 Ada.Calendar to handle the conversion of time to duration.
8526 * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
8528 If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
8530 (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
8531 targets do not have a natural time zone, GMT is used as a default.
8532 (__gnat_get_task_options): New.
8534 * a-direct.adb (Modification_Time): Add with and use clauses for
8535 Ada.Calendar and Ada.
8536 Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
8537 since it is no longer needed.
8538 (Duration_To_Time): Removed.
8539 (OS_Time_To_Long_Integer): Removed.
8540 (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
8541 Formatting Time_Of routines which automatically handle time zones,
8542 buffer periods and leap seconds.
8544 * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
8545 target independent routines in Ada.Calendar.
8547 * a-calfor.ads, a-calfor.adb:
8548 Code cleanup and addition of validity checks in various routines.
8549 (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
8552 * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
8553 independent routine in Ada.Calendar.
8555 2007-04-06 Olivier Hainque <hainque@adacore.com>
8558 (convert_addresses): Adjust prototype and dummy definition to expect an
8559 extra file_name argument.
8561 * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
8562 filling the now expected file_name argument with the appropriate
8564 (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
8565 (tracebk): Array of void * instead of char *, corresponding to what
8566 convert_addresses expects.
8567 (exename): New static global, to hold the executable file name to be
8568 used in all convert_addresses invocations.
8569 (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
8571 (__gnat_gmem_a2l_initialize): Resolve exename.
8572 (__gnat_convert_addresses): Use exename as the convert_addresses
8575 * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
8576 "convert_addresses", now expecting a filename argument. Import the
8577 necessary entities to compute the filename to use and pass it to
8580 2007-04-06 Matt Gingell <gingell@adacore.com>
8582 * system-aix.ads: Back out previous change.
8583 (Functions_Return_By_DSP): Removed
8585 2007-04-06 Pascal Obry <obry@adacore.com>
8587 * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
8588 or the monotonic used by Ada.Real_Time) to compute the sleep duration
8591 2007-04-06 Jose Ruiz <ruiz@adacore.com>
8593 * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
8594 function. Its value changes in different VxWorks versions, and it is
8595 now handled by the function __gnat_get_task_options.
8597 * s-taprop-vxworks.adb (Create_Task): Call the function
8598 __gnat_get_task_options to get the required options for creating a task.
8600 2007-04-06 Pascal Obry <obry@adacore.com>
8601 Thomas Quinot <quinot@adacore.com>
8603 * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
8604 dealing with filename.
8605 (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
8606 filename from a standard string to a wide-string depending on the
8608 (__gnat_freopen): Idem.
8609 (__gnat_current_time): New function (wrapper for time(3) standard C
8612 * g-os_lib.ads (Current_Time): New function. Returns the current
8613 system time as an OS_Time value.
8615 * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
8616 (Monotonic_Clock): Same.
8618 2007-04-06 Quentin Ochem <ochem@adacore.com>
8620 * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
8622 (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
8624 2007-04-06 Jose Ruiz <ruiz@adacore.com>
8626 * a-retide.adb: Add elaboration code to ensure that the tasking run
8627 time is initialized when using delay operations even when no task is
8630 2007-04-06 Javier Miranda <miranda@adacore.com>
8632 * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
8633 component Num_Prim_Ops.
8634 (Set_Num_Prim_Ops): Removed.
8635 Remove all the assertions because all the routines of this
8636 package are inline always.
8637 (Get_Offset_Index): Add support to primary dispatch tables.
8638 Move the documentation about the dispatch table to a-tags.ads
8639 (Set_External_Tag): Removed
8640 (Inherit_TSD): Removed.
8641 (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
8643 (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
8644 Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
8645 of the TSD field "Table" because this field has been renamed to
8647 (Inherit_CPP_DT): Removed.
8648 (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
8649 Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
8650 declarations have been moved to a-tags.ads
8651 (Check_Size): Removed.
8652 (Expanded_Name): Updated to get access to the new field of TSD
8653 containing the address of the expanded name.
8654 (Get_Access_Level/Set_Access_Level): Removed.
8655 (Get_Predefined_Prim_Op_Address): Removed.
8656 (Set_Predefined_Prim_Op_Address): Removed.
8657 (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
8658 (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
8659 (Set_Expanded_Name): Removed.
8660 (Inherit_DT): Removed.
8661 (Inherit_CPP_DT): Removed.
8662 (Set_RC_Offset): Removed.
8664 (Base_Address): New function that displaces "this" to point to the base
8665 of the object (that is, to point to the primary tag of the object).
8667 2007-04-06 Ed Schonberg <schonberg@adacore.com>
8668 Javier Miranda <miranda@adacore.com>
8670 * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
8671 anonymous access component, do not create a master_id if type already
8672 has one, as may happen if the type is a subcomponent of a packed array
8674 (Build_Init_Procedure, Component_Needs_Simple_Initialization,
8675 Initialize_Tag): Remove code associated with the old CPP pragmas.
8676 CPP_Virtual and CPP_Vtable are no longer supported.
8677 (Build_Offset_To_Top_Internal): Add support for concurrent record types
8678 (Build_Offset_To_Top_Functions): Add support for concurrent record types
8679 (Freeze_Record_Type): Remove call to
8680 Init_Predefined_Interface_Primitives.
8681 (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
8682 code required to initialize the tags of the secondary dispatch tables.
8683 This leaves the algoritm more clear.
8684 (Init_Secondary_Tags): Add support for concurrent record types
8685 (Make_Predefined_Primitive_Specs): Code cleanup.
8686 (Predefined_Primitive_Bodies): Code cleanup.
8687 (Build_Master_Renaming): New local subprogram.
8688 (Expand_N_Full_Type_Declaration): Build the master_id associated with
8689 anonymous access to task type components.
8690 (Expand_N_Subtype_Indication): The bounds of a range constraint in a
8691 subtype indication are resolved during analysis, and must not be done
8693 (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
8695 2007-04-06 Geert Bosch <bosch@adacore.com>
8696 Ed Schonberg <schonberg@adacore.com>
8697 Javier Miranda <miranda@adacore.com>
8698 Bob Duff <duff@adacore.com>
8700 * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
8701 for conversion of a Float_Type'Truncation to integer.
8703 * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
8704 check if a node is an attribute that can be handled directly by the
8706 (Expand_N_Attribute_Reference): Suppress expansion of floating-point
8707 attributes that can be handled directly by the back end.
8708 (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
8709 use new predicate Is_Access_Protected_Subprogram_Type.
8710 (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
8711 and Unchecked_Union if it is generated as part of the default Output
8712 procedure for a type with default discriminants.
8713 (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
8714 if we are compiling under restriction No_Dispatching_Calls.
8715 (Constrained): Use Underlying_Type, in case the type is private without
8716 discriminants, but the full type has discriminants.
8717 (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
8718 call to Build_Get_Access_Level.
8719 (Expand_N_Attribute_Reference): The use of 'Address with class-wide
8720 interface objects requires a call to the run-time subprogram that
8721 returns the base address of the object.
8722 (Valid_Conversion): Improve error message on illegal attempt to store
8723 an anonymous access to subprogram value into a record component.
8725 * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
8727 (Simplify_Type_Conversion): New procedure that performs simplification
8728 of Int_Type (Float_Type'Truncation (X)).
8729 (Resolve_Type_Conversion): Call above procedure after resolving operand
8730 and before performing checks. This replaces the existing ineffective
8732 (Set_String_Literal_Subtype): When creating the internal static lower
8733 bound subtype for a string literal, use a newly created copy of the
8734 subtree representing the lower bound.
8735 (Resolve_Call): Exclude build-in-place function calls from transient
8736 scope treatment. Update comments to describe this exception.
8737 (Resolve_Equality_Op): In case of dispatching call check violation of
8738 restriction No_Dispatching_Calls.
8739 (Resolve_Call): If the call returns an array, the context imposes the
8740 component type of the array, and the function has one non-defaulted
8741 parameter, rewrite the call as the indexing of a call with a single
8742 parameter, to handle an Ada 2005 syntactic ambiguity for calls written
8744 (Resolve_Actuals): If an actual is an allocator for an access parameter,
8745 the master of the created object is the innermost enclosing statement.
8746 (Remove_Conversions): For a binary operator, check if type of second
8747 formal is numeric, to check if an abstract interpretation is present
8748 in the case of exponentiation as well.
8750 2007-04-06 Ed Schonberg <schonberg@adacore.com>
8751 Bob Duff <duff@adacore.com>
8753 * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
8754 copying a parameter list in a call, set properly the First_Named_Formal
8755 and Next_Named_Formal fields in the new list and in the enclosing call.
8756 (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
8757 names, to ease typing in the debugger. Improve comments.
8758 (Watch_Node): New variable, intended to be set in the debugger.
8759 (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
8760 called when the watched node is created.
8761 (New_Node_Debugging_Output): Combined version of local procedures
8762 New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
8763 with a parameter so that conditional breakpoints like "if Node = 12345"
8765 (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
8768 2007-04-06 Thomas Quinot <quinot@adacore.com>
8769 Ed Schonberg <schonberg@adacore.com>
8770 Gary Dismukes <dismukes@adacore.com>
8772 * checks.ads, checks.adb (Selected_Range_Checks): No range check is
8773 required for a conversion between two access-to-unconstrained-array
8775 (Expr_Known_Valid): Validity checks do not apply to discriminants, but
8776 to discriminant constraints on discriminant objects. This rule must
8777 apply as well to discriminants of protected types in private components.
8778 (Null_Exclusion_Static_Checks): If No_Initialization is set on an
8779 object of a null-excluding access type then don't require the
8780 the object declaration to have an expression and don't emit a
8783 2007-04-06 Arnaud Charlet <charlet@adacore.com>
8784 Eric Botcazou <botcazou@adacore.com>
8786 * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
8789 * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
8790 Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
8793 * fe.h (Compiler_Abort): Add third parameter.
8795 * misc.c (internal_error_function): Build third argument from current
8796 input location and pass it to Compiler_Abort.
8798 2007-04-06 Gary Dismukes <dismukes@adacore.com>
8800 * cstand.adb (Create_Standard): When the target's storage unit size is
8801 greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
8804 2007-04-06 Nicolas Roche <roche@adacore.com>
8806 * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
8807 absolute path can have the following form: device:/a/b. In this case
8808 '/' should be inserted between the path and the filename.
8810 2007-04-06 Olivier Hainque <hainque@adacore.com>
8811 Eric Botcazou <botcazou@adacore.com>
8813 * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
8814 VAR_DECL to a CONST_DECL we make for a public constant when we know the
8815 corresponding definition has created the so made visible variable.
8816 Handle anonymous access to protected subprogram.
8817 (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
8818 object with an address clause volatile. Re-enable original fix.
8819 <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
8821 (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
8822 associated with either the Equivalent or Root type, instead of the
8824 (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
8825 subtree for every field of a global record type.
8826 (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
8827 discriminants, invoke again variable_size on its newly computed sizes.
8829 2007-04-06 Robert Dewar <dewar@adacore.com>
8830 Thomas Quinot <quinot@adacore.com>
8831 Ed Schonberg <schonberg@adacore.com>
8832 Bob Duff <duff@adacore.com>
8834 * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
8835 (Next_Component_Or_Discriminant): New function and procedure
8836 (First_Index, First_Literal, Master_Id,
8837 Set_First_Index, Set_First_Literal, Set_Master_Id):
8838 Add missing Ekind assertions.
8839 (Is_Access_Protected_Subprogram_Type): New predicate.
8840 (Has_RACW): New entity flag, set on package entities to indicate that
8841 the package contains the declaration of a remote accecss-to-classwide
8843 (E_Return_Statement): This node type has the Finalization_Chain_Entity
8844 attribute, in case the result type has controlled parts.
8845 (Requires_Overriding): Add this new flag, because "requires
8846 overriding" is subtly different from "is abstract" (see AI-228).
8847 (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
8848 Is_Abstract_Type. Make sure these are called only when appropriate.
8849 (Has_Pragma_Unreferenced_Objects): New flag
8851 * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
8852 class-wide, the tag of the right-hand side must be an exact match, not
8853 an ancestor of that of the object on left-hand side.
8854 (Move_Activation_Chain): New procedure to create the call to
8855 System.Tasking.Stages.Move_Activation_Chain.
8856 (Expand_N_Extended_Return_Statement): Generate code to call
8857 System.Finalization_Implementation.Move_Final_List at the end of a
8858 return statement if the function's result type has controlled parts.
8859 Move asserts to Build_In_Place_Formal.
8860 (Move_Final_List): New function to create the call statement.
8861 (Expand_N_Assignment_Statement): In case of assignment to a class-wide
8862 tagged type, replace generation of call to the run-time subprogram
8863 CW_Membership by call to Build_CW_Membership.
8864 (Expand_N_Return_Statement): Replace generation of call to the run-time
8865 subprogram Get_Access_Level by call to Build_Get_Access_Level.
8866 (Expand_N_Simple_Function_Return): Replace generation of call to the
8867 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
8869 * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
8870 Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
8871 access to protected operations.
8872 (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
8873 master and chain actual parameters to a build-in-place function call
8875 (BIP_Formal_Suffix): Add new enumeration literals to complete the case
8877 (Make_Build_In_Place_Call_In_Allocator,
8878 Make_Build_In_Place_Call_In_Anonymous_Context,
8879 Make_Build_In_Place_Call_In_Assignment,
8880 Make_Build_In_Place_Call_In_Object_Declaration): Call
8881 Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
8882 (Expand_Inlined_Call): If the subprogram is a null procedure, or a
8883 stubbed procedure with a null body, replace the call with a null
8884 statement without using the full inlining machinery, for efficiency
8885 and to avoid invalid values in source file table entries.
8887 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
8888 renamings of calls to build-in-place functions.
8890 * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
8891 provides the functionality of RTE_Available to record components.
8892 (RTU_Entity): The function Entity has been renamed to RTU_Entity
8893 to avoid undesired overloading.
8894 (Entity): New subprogram that returns the entity for the referened
8895 unit. If this unit has not been loaded, it returns Empty.
8896 (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
8897 Remove no longer used entities.
8898 (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
8899 (RE_Type_Specific_Data): New entity.
8900 (RE_Move_Any_Value): New entity.
8901 (RE_TA_A, RE_Get_Any_Type): New entities.
8902 (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
8903 RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
8904 RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
8905 (Entity): New subprogram that returns the entity for the referened
8906 unit. If this unit has not been loaded, it returns Empty.
8907 (RTE): Addition of a new formal that extends the search to the scopes
8908 of the record types found in the chain of the package.
8910 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
8911 "abstract subprograms must be visible" message, whether or not the type
8912 is an interface; that is, remove the special case for interface types.
8913 (Analyze_Function_Return): Remove error message "return of task objects
8914 is not yet implemented" because this is now implemented.
8915 (Create_Extra_Formals): Add the extra master and activation chain
8916 formals in case the result type has tasks.
8917 Remove error message "return of limited controlled objects is not yet
8919 (Create_Extra_Formals): Add the extra caller's finalization list formal
8920 in case the result type has controlled parts.
8921 (Process_Formals): In case of access formal types there is no need
8922 to continue with the analysis of the formals if we already notified
8924 (Check_Overriding_Indicator): Add code to check overriding of predefined
8926 (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
8927 flags for formals that do not require them,.
8928 (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
8929 hidden entity is use visible or directly visible.
8930 (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
8931 Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
8932 Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
8933 New_Overloaded_Entity): Split Is_Abstract flag into
8934 Is_Abstract_Subprogram and Is_Abstract_Type.
8936 * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
8937 a return statement's finalization list to the caller's list, used for
8938 build-in-place functions with result type with controlled parts.
8939 Remove no longer used entities.
8941 * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
8942 longer needed, because the full type is now limited, and therefore a
8943 pass-by-reference type.
8944 (Foreign_Task_Level): New constant.
8946 * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
8947 move tasks from the activation chain belonging to a return statement to
8948 the one passed in by the caller, and update the master to the one
8949 passed in by the caller.
8950 (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
8951 of unactivated tasks, so we don't kill the ones that are being returned
8952 by a build-in-place function.
8953 (Create_Task): Ignore AI-280 for foreign threads.
8955 2007-04-06 Ed Schonberg <schonberg@adacore.com>
8956 Robert Dewar <dewar@adacore.com>
8957 Bob Duff <duff@adacore.com>
8958 Gary Dismukes <dismukes@adacore.com>
8960 * errout.adb (Unwind_Internal_Type): Use predicate
8961 Is_Access__Protected_Subprogram_Type.
8963 * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
8964 (Freeze_Entity, packed array case): Do not override explicitly set
8965 alignment and size clauses.
8966 (Freeze_Entity): An entity declared in an outer scope can be frozen if
8967 the enclosing subprogram is a child unit body that acts as a spec.
8968 (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
8969 (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
8970 Remove all code for DSP option
8972 * layout.adb (Layout_Record_Type): Use First/
8973 Next_Component_Or_Discriminant
8974 (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
8975 to handle properly the anonymous access case.
8977 * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
8978 for all access attributes, because overload resolution should work the
8979 same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
8980 causes the error message for the ambiguous "X'Access = Y'Access" and
8981 "X'Unrestricted_Access = Y'Access" and so forth to match.
8982 (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
8983 now that anonymous access to protected operations have their own kind.
8984 (Resolve_Attribute): In case of dispatching call check the violation of
8985 restriction No_Dispatching_Calls.
8986 (Check_Array_Type): Check new -gnatyA array index style option
8988 * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
8989 attempt to derive from a synchronized tagged type.
8990 (Analyze_Type_Declaration): If there is a incomplete tagged view of the
8991 type, inherit the class-wide type already created, because it may
8992 already have been used in a self-referential anonymous access component.
8993 (Mentions_T): Recognize self-referential anonymous access components
8994 that use (a subtype of) the class-wide type of the enclosing type.
8995 (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
8996 Derived_Type for Prev formal on call to
8997 Check_Anonymous_Access_Components rather than Empty.
8998 (Make_Incomplete_Type_Declaration): Add test for case where the type has
8999 a record extension in deciding whether to create a class-wide type,
9000 rather than just checking Tagged_Present.
9001 (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
9002 to stand-alone object declarations as well as component declarations.
9003 (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
9004 prevent accidental overwriting when enclosing package appears in
9005 a limited_with_clause.
9006 (Array_Type_Declaration): If the component type is an anonymous access,
9007 the associated_node for the itype is the type declaration itself.
9008 (Add_Interface_Tag_Components): Modified to support concurrent
9009 types with abstract interfaces.
9010 (Check_Abstract_Interfaces): New subprogram that verifies the ARM
9011 rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
9012 (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
9013 to complete the decoration of synchronized interface types. Add also
9014 a call to Check_Abstract_Interfaces to verify the ARM rules.
9015 (Derive_Interface_Subprograms): Modified to support concurrent types
9016 with abstract interfaces.
9017 (Analyze_Subtype_Indication): Resolve the range with the given subtype
9018 mark, rather than delaying the full resolution depending on context.
9019 (Analyze_Component_Declaration,Analyze_Interface_Declaration,
9020 Analyze_Object_Declaration,Analyze_Subtype_Declaration,
9021 Array_Type_Declaration,Build_Derived_Record_Type,
9022 Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
9023 Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
9024 Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
9025 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
9026 called only when appropriate.
9027 (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
9029 (Analyze_Subtype_Declaration): For an access subtype declaration, create
9030 an itype reference for the anonymous designated subtype, to prevent
9031 scope anonmalies in gigi.
9032 (Build_Itype_Reference): New utility, to simplify construction of such
9035 2007-04-06 Vincent Celier <celier@adacore.com>
9037 * errutil.adb (Initialize): Initialize warnings table, if all warnings
9038 are suppressed, supply an initial dummy entry covering all possible
9041 * make.adb (Scan_Make_Arg): Reject options that should start with "--"
9042 and start with only one, such as "-RTS=none".
9043 (Collect_Arguments): Do not check for sources outside of projects.
9044 Do not collect arguments if project is externally built.
9045 (Compile_Sources): Do nothing, not even check if the source is up to
9046 date, if its project is externally built.
9047 (Compile): When compiling a predefined source, add -gnatpg
9048 as the second switch, after -c.
9049 (Compile_Sources): Allow compilation of Annex J renames without -a
9050 (Is_In_Object_Directory): Check if the ALI file is in the object
9051 even if there is no project extension.
9052 (Create_Binder_Mapping_File): Only put a unit in the mapping file for
9053 gnatbind if the ALI file effectively exists.
9054 (Initialize): Add the directory where gnatmake is invoked in front of
9055 the path if it is invoked from a bin directory, even without directory
9056 information, so that the correct GNAT tools will be used when spawned
9057 without directory information.
9059 * makeusg.adb: Change switch -S to -eS
9060 Add lines for new switches -we, -wn and -ws
9061 Add line for new switch -p
9063 * prj-proc.adb (Process): Set Success to False when Warning_Mode is
9064 Treat_As_Error and there are warnings.
9066 * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
9067 -gnatww Change gnatmake switch -S to -eS
9068 (Scan_Make_Switches): Code reorganisation. Process separately multi
9069 character switches and single character switches.
9070 (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
9071 False when switch is not recognized by gnatmake.
9072 (Scan_Make_Switches): Set Setup_Projects True when -p or
9073 --create-missing-dirs is specified.
9075 * fname.adb (Is_Predefined_File_Name): Return True for annex J
9076 renamings Calendar, Machine_Code, Unchecked_Conversion and
9077 Unchecked_Deallocation only when Renamings_Included is True.
9079 * par.adb: Allow library units Calendar, Machine_Code,
9080 Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
9081 when -gnatg is not specified.
9082 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
9083 there is no need to generate always a record_definition_node in case
9084 of synchronized interface types.
9085 (SIS_Entry_Active): Initialize global variable to False
9086 (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
9087 indicate cases where AI-447 says "not null" is legal.
9089 * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
9091 * makegpr.adb (Check_Compilation_Needed): Take into account dependency
9092 files with with several lines starting with the object fileb name.
9093 (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
9095 (Initialize): Add the directory where gprmake is invoked in front of the
9096 path, if it is invoked from a bin directory or with directory
9097 information, so that the correct GNAT tools will be used when invoked
9099 (Check_Compilation_Needed): Process correctly backslashes on Windows.
9101 * vms_data.ads: Update switches/qualifiers
9103 2007-04-06 Ed Schonberg <schonberg@adacore.com>
9104 Thomas Quinot <quinot@adacore.com>
9107 If the array component is a discriminated record, the array aggregate
9108 is non-static even if the component is given by an aggregate with
9110 (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
9111 (Convert_Aggr_In_Allocator): If the allocator is for an access
9112 discriminant and the type is controlled. do not place on a finalization
9113 list at this point. The proper list will be determined from the
9115 (Build_Record_Aggr_Code): If aggregate has box-initialized components,
9116 initialize record controller if needed, before the components, to ensure
9117 that they are properly finalized.
9118 (Build_Record_Aggr_Code): For the case of an array component that has a
9119 corresponding array aggregate in the record aggregate, perform sliding
9122 2007-04-06 Javier Miranda <miranda@adacore.com>
9123 Gary Dismukes <dismukes@adacore.com>
9124 Ed Schonberg <schonberg@adacore.com>
9126 * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
9127 run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
9129 * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
9130 accessibility on class-wide allocators if the allocator occurs at the
9131 same scope level as the allocator's type. The check is guaranteed to
9132 succeed in that case, even when the expression originates from a
9133 parameter of the containing subprogram.
9134 (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
9135 under No_Dispatching_Calls restriction. During the semantic analysis
9136 we already notified such violation.
9137 (Tagged_Membership): Constant folding. There is no need to check
9138 the tag at run-time if the type of the right operand is non
9139 class-wide abstract.
9140 Replace call to Is_Ancestor by call to Is_Parent
9141 to support concurrent types with interface types.
9142 (Expand_N_Allocator): Add an assertion associated with the generation
9144 (Expand_N_Slice): Do not enable range check to nodes associated
9145 with the frontend expansion of the dispatch table.
9146 (Is_Local_Access_Discriminant): Subsidiary function to
9148 (Tagged_Membership): Replace generation of call to the run-time
9149 subprogram CW_Membership by call to Build_CW_Membership.
9150 (Expand_Allocator_Expression): Replace generation of call to the
9151 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
9153 * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
9154 initialize most the TSD components by means of an aggregate.
9155 Modify the declaration of the object containing the TSD
9156 because we now expand code that has a higher level of abstraction.
9157 The TSD has a discriminant containing the Inheritance Depth Level,
9158 value that is used in the membership test but also to fix the size
9159 of the table of ancestors.
9160 (Expand_Interface_Conversion): Insert function body at the closest place
9161 to the conversion expression, to prevent access-before-elaboration
9162 errors in the backend.
9163 Code improved to reduce the size of the dispatch table if
9164 compiling under restriction No_Dispatching_Calls plus code cleanup.
9165 Code reorganization plus removal of calls to Set_Num_Prim_Ops
9166 (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
9167 (Expand_Dispatching_Call): Minor code reorganization plus addition of
9168 code to return immediately if compiling under No_Dispatching_Calls
9170 (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
9171 CPP_Virtual and CPP_Vtable are no longer supported.
9172 (Expand_Interface_Conversion): Add missing support for interface type
9174 (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
9175 Is_Parent to support concurrent types with interfaces.
9176 (Init_Predefined_Interface_Primitives): Removed.
9177 (Make_Secondary_DT): Modified to support concurrent record types.
9178 (Set_All_DT_Position): Modified to support concurrent record types.
9179 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
9180 with Get_External_Tag, Inherit_TSD, Set_External_Tag.
9181 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
9183 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
9184 with Get_Access_Level, Get_Predefined_Prim_Op_Address,
9185 Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
9186 Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
9187 Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
9188 (Expand_Dispatching_Call): Replace generation of call to the run-time
9189 subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
9190 calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
9192 (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
9193 the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
9194 Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
9195 Build_Set_Prim_Op_Address.
9196 (Get_Remotely_Callable): Subprogram removed.
9197 (Init_Predefined_Interface_Primitives): Replace generation of call to
9198 the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
9201 * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
9202 First (Parameter_Associations ()) with the call to First_Actual that
9203 returns an actual parameter expression for both named and positional
9206 * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
9207 check violation of restriction No_Dispatching_Calls.
9208 (Check_Controlling_Type): A formal of a tagged incomplete type is a
9209 controlling argument.
9211 * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
9212 First/Next_Component_Or_Discriminant
9213 (Insert_Actions): Add entries for new N_Push and N_Pop nodes
9214 (Find_Implemented_Interface): Removed. All the calls to this subprogram
9215 specify Any_Limited_Interface, and this functionality is already
9216 provided by the function Has_Abstract_Interfaces.
9217 (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
9218 support concurrent types implementing interfaces.
9219 (Find_Implemented_Interface): Removed. All the calls to this subprogram
9220 specify kind Any_Limited_Interface, and this functionality is already
9221 provided by the function Has_Abstract_Interfaces.
9222 (Remove_Side_Effects): replace Controlled_Type by
9223 CW_Or_Controlled_Type whenever the issue is related to
9224 using or not the secondary stack.
9226 * par-ch12.adb (P_Formal_Type_Definition): Update calls to
9227 P_Interface_Type_Definition to fulfill the new interface (the formal
9228 Is_Synchronized is no longer required).
9230 * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
9231 Update dependencies.
9233 * exp_atag.ads, exp_atag.adb: New file
9235 2007-04-06 Ed Schonberg <schonberg@adacore.com>
9236 Bob Duff <duff@adacore.com>
9237 Cyrille Comar <comar@adacore.com>
9239 * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
9240 anonymous, use finalization list of enclosing dynamic scope.
9241 (Expand_N_Package_Declaration): For a library package declaration
9242 without a corresponding body, generate RACW subprogram bodies in the
9243 spec (just as we do for the task activation call).
9244 (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
9245 Is_Abstract_Type. Make sure these are called only when appropriate.
9246 Remove all code for DSP option
9247 (CW_Or_Controlled_Type): new subprogram.
9249 2007-04-06 Eric Botcazou <botcazou@adacore.com>
9250 Ed Schonberg <schonberg@adacore.com>
9251 Gary Dismukes <dismukes@adacore.com>
9253 * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
9254 parameter. If it is set to true, return a result capped according to
9255 the global upper bound for the index of an entry family.
9256 (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
9257 (Build_Find_Body_Index): Adjust for above change.
9258 (Entry_Index_Expression): Likewise.
9259 (Is_Potentially_Large_Family): New function extracted from...
9260 (Collect_Entry_Families): ...here. Call it to detect whether the family
9261 is potentially large.
9262 (Build_Entry_Count_Expression): If the family is potentially large, call
9263 Family_Size with 'Cap' set to true.
9264 (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
9265 a protected version of an operation declared in the private part of
9266 a protected object, because they may be invoked through a callback.
9267 (Set_Privals): If the type of a private component is an anonymous access
9268 type, do not create a new itype for each protected body.
9269 If the body of a protected operation creates
9270 controlled types (including allocators for class-widetypes), the
9271 body of the corresponding protected subprogram must include a
9273 (Build_Activation_Chain_Entity): Build the chain entity for extended
9275 (Type_Conformant_Parameters): Use common predicate Conforming_Types
9276 to determine whether operation overrides an inherited primitive.
9277 (Build_Wrapper_Spec): Add code to examine the parents while looking
9278 for a possible overriding candidate.
9279 (Build_Simple_Entry_Call): Set No_Initialization on the object used to
9280 hold an actual parameter value since its initialization is separated
9281 from the the declaration. Prevents errors on null-excluding access
9284 2007-04-06 Thomas Quinot <quinot@adacore.com>
9285 Pablo Oliveira <oliveira@adacore.com>
9287 * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
9288 Do an Unchecked_Conversion to handle the passage from the Underlying
9289 Type to the Base Type when calling Build_To_Any_Call and
9290 Build_From_Any_Call.
9291 (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
9292 E_Constant, depending upon Variable formal.
9293 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
9294 PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
9295 parameter that requires an extra constrained parameter, declare
9296 temporary for actual as a variable, not a constant.
9297 (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
9298 the unit being compiled is the one that contains the stub type.
9299 Change primitive operation name for the RACW associated with a RAS
9300 from Call to _Call so it cannot clash with any legal identifier.
9301 (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
9303 (Append_RACW_Bodies): New subprogram.
9304 (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
9305 Add_Receiving_Stubs_To_Declarations functions.
9306 When expanding a package body, this list correspond to the
9307 statements in the HSS at the end of the pacakge.
9308 When expanding a package spec, this list correspond to the
9310 (Add_Receiving_Stubs_To_Declarations): Append the function
9311 registering the receiving stubs at the end of the 'Stmts' list.
9312 (RCI_Package_Locator): Pass the new Version generic formal when
9313 instantiating a RCI_Locator package.
9314 (Build_From_Any_Function): To compute the High bound for an
9315 unconstrained array actual, we add the Low bound with the length.
9316 Thus we must convert the low bound and the length to an appropriate
9317 type before doing the sum.
9318 (Build_Subprogram_Receiving_Stubs, PolyORB):
9319 * Retrieve the extra formals parameters at the
9320 end of the parameter stream.
9321 * Use Move_Any_Value to write back out parameters
9322 after executing the request as it is more efficient
9323 than Copy_Any_Value.
9324 * Build the any containing Extra Formals with the
9325 appropriate typecode.
9326 (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
9327 empty Component_List.
9328 (Build_Actual_Object_Declaration): New subprogram. Build and insert into
9329 the tree the declaration for an object that serves as actual parameter
9330 in server-side stubs.
9331 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
9332 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
9333 Use Build_Actual_Object_Declaration to prepare the actuals.
9334 (Add_Parameter_To_NVList): Set the parameter mode to In for
9335 Extra Constrained Parameters.
9336 (Build_General_Calling_Stubs): Set the parameter type to boolean for
9337 Extra Constrained parameters.
9338 (Build_To_Any_Function, Build_From_Any_Function,
9339 Built_TypeCode_Function): When Typ is implicit, call the correct
9340 function with the first not implicit parent type.
9341 (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
9342 (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
9343 typecode from the Etype. Therefore we retrieve the correct typecode
9344 with a call to Get_Any_Type.
9345 (Copy_Specification): Do controlling formal type substitution based on
9346 Is_Controlling_Formal flag, instead of caller-provided object type.
9347 (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
9348 a RACW primitive operation, we might get a subprogram declaration for an
9349 ancestor of the RACW designated type (not for the designated type
9350 itself), in the case where this operation is inherited. In this case we
9351 have no easy means of determining the original tagged type for which
9352 the primitive was declared, so instead we now rely on
9353 Copy_Specification to use the Is_Controlling_Formal flag to determine
9354 which formals require type substitution.
9356 2007-04-06 Robert Dewar <dewar@adacore.com>
9357 Ed Schonberg <schonberg@adacore.com>
9359 * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
9360 GNAT.Current_Exception are not allowed if pragma Restrictions
9361 (No_Exception_Propagation) is set and in any case make the associated
9362 handler unsuitable as a target for a local raise statement.
9363 (Expand_Dispatching_Constructor_Call): Replace generation of call to the
9364 run-time subprogram CW_Membership by call to Build_CW_Membership.
9365 (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
9366 by a function call, a temporary must be created before expanding the
9367 Constructor_Call itself, to prevent out-of-order elaboration in the
9368 back-end when stack checking is enabled..
9370 2007-04-06 Ed Schonberg <schonberg@adacore.com>
9372 * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
9373 result are the bounds of the left operand, not the right.
9375 2007-04-06 Ed Schonberg <schonberg@adacore.com>
9378 (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
9379 discriminant defaults.
9380 (Build_Record_Or_Elementary_Output_Procedure): Ditto.
9381 (Make_Component_List_Attributes): Ditto.
9383 2007-04-06 Ed Schonberg <schonberg@adacore.com>
9384 Bob Duff <duff@adacore.com>
9386 * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
9387 an association with a box as providing a value even though the
9388 initialization procedure for the type is not available.
9389 (Resolve_Record_Aggregate): Check that a choice of an association with a
9390 box corresponds to a component of the type.
9391 (Resolve_Record_Aggregate): Split Is_Abstract flag into
9392 Is_Abstract_Subprogram and Is_Abstract_Type.
9394 * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
9397 * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
9398 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
9399 called only when appropriate.
9401 2007-04-06 Olivier Hainque <hainque@adacore.com>
9403 * g-alleve.ads (Low Level Vector type definitions): Map each to the
9404 associated vector view instead of all to the unsigned char view.
9406 * g-altcon.adb (Generic_Conversions): New internal generic package,
9407 offering facilities for all the Vector/View conversion routines
9408 implemented by this unit.
9409 (To_View/To_Vector - all versions): Reimplemented in a systematic
9410 manner, using the internal Generic_Conversions facilities.
9412 2007-04-06 Pascal Obry <obry@adacore.com>
9414 * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
9416 (Create): Free the source string before storing the new one.
9418 2007-04-06 Vincent Celier <celier@adacore.com>
9420 * g-debpoo.adb (Validity): New package with a complete new
9421 implementation of subprograms Is_Valid and Set_Valid.
9422 (Is_Valid): Move to local package Validity
9423 (Set_Valid): Move to local package Validity
9425 2007-04-06 Arnaud Charlet <charlet@adacore.com>
9426 Pablo Oliveira <oliveira@adacore.com>
9428 * g-expect.adb (Get_Command_Output): When expanding the output buffer
9429 we must ensure that there is enough place for the new data we are going
9432 2007-04-06 Thomas Quinot <quinot@adacore.com>
9434 * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
9437 2007-04-06 Jose Ruiz <ruiz@adacore.com>
9438 Vincent Celier <celier@adacore.com>
9440 * gnatcmd.adb (B_Start): Add prefix of binder generated file.
9441 (Stack_String): Add this String that contains the name of the Stack
9442 package in the project file.
9443 (Packages_To_Check_By_Stack): Add this list that contains the packages
9444 to be checked by gnatstack, which are the naming and the stack packages.
9445 (Check_Files): If no .ci files were specified for gnatstack we add all
9446 the .ci files belonging to the projects, including binder generated
9448 (Non_VMS_Usage): Document that gnatstack accept project file switches.
9449 (GNATCmd): Update the B_Start variable if we are in a VMS environment.
9450 Add gnatstack to the list of commands that use project file related
9451 switches, and get the single attribute Switches from the stack package
9452 in a project file when calling gnatstack. Parse the -U flag for
9453 processing files belonging to all projects in the project tree.
9454 Remove all processing for command Setup
9456 * prj-attr.adb: Add new package Stack with single attribute Switches
9458 * vms_conv.ads (Command_Type): Add command Stack.
9459 Move to body declarations that are only used in the body: types Item_Id,
9460 Translation_Type, Item_Ptr, Item and its subtypes.
9462 * vms_conv.adb: (Initialize): Add data for new command Stack.
9463 Add declarations moved from the spec: types Item_Id, Translation_Type,
9464 Item_Ptr, Item and its subtypes.
9465 (Cargs_Buffer): New table
9466 (Cargs): New Boolean global variable
9467 (Process_Buffer): New procedure to create arguments
9468 (Place): Put character in table Buffer or Cargs_Buffer depending on the
9470 (Process_Argument): Set Cargs when processing qualifiers for GNAT
9472 (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
9473 empty, for table Cargs_Buffer.
9474 (Initialize): Remove component Setup in Command_List
9476 2007-04-06 Vincent Celier <celier@adacore.com>
9478 * gprep.adb (Process_Files.Process_One_File): Use full file name when
9479 issuing pragma Source_Reference.
9481 2007-04-06 Emmanuel Briot <briot@adacore.com>
9483 * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
9484 [[:xdigit:]] character class.
9485 Also raise an exception when an invalid character class is used.
9487 2007-04-06 Pascal Obry <obry@adacore.com>
9489 * i-cstrea.ads: (fopen): Add encoding parameter.
9491 Change reference from a-sysdep.c to sysdep.c in comment.
9492 Update copyright notice.
9493 This set of patch add support for the encoding form parameter.
9495 * mingw32.h (S2WSU): New macro to convert from a string to a
9496 wide-string using the UTF-8 encoding. The S2WS macro supports now only
9497 standard 8bits encoding.
9498 (WS2SU): As above but converting from wide-sring to string.
9499 This is needed as it is necessary to have access to both versions in the
9500 runtime for the form parameter encoding support.
9501 This set of patch add support for the encoding form parameter.
9502 (S2WS): Improve implementation to handle cases where the filename is not
9503 UTF-8 encoded. In this case we default to using the current code page
9506 * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
9507 type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
9508 the constants defined in adaint.h.
9509 (fopen): Add encoding parameter.
9512 * s-ficobl.ads (AFCB): Add Encoding field to record the filename
9513 encoding. This is needed for the Reset routine (freopen low level-call).
9515 * s-fileio.adb (Open): Decode encoding form parameter and set the
9516 corresponding encoding value into AFCB structure.
9517 (Reset): Pass the encoding value to freopen.
9518 (Close): Move the call to Lock_Task to the beginning of the procedure.
9520 2007-04-06 Geert Bosch <bosch@adacore.com>
9521 Robert Dewar <dewar@adacore.com>
9523 * i-fortra.ads: Add Double_Complex type.
9525 * impunit.adb: (Is_Known_Unit): New function
9526 Add Gnat.Byte_Swapping
9528 Add new Ada 2005 units
9529 Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
9530 Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
9531 Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
9532 Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
9534 * impunit.ads (Is_Known_Unit): New function
9536 * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
9537 a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
9538 a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
9539 g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
9540 s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
9541 s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
9544 * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
9546 * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
9548 2007-04-06 Eric Botcazou <botcazou@adacore.com>
9549 Arnaud Charlet <charlet@adacore.com>
9551 * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
9552 __gnat_adjust_context_for_raise.
9553 (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
9554 implementation of floating point operations as native x86 targets.
9555 So the FPU should be initialized in the same way using finit. Fix
9556 floating point operations accuracy issues.
9557 (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
9558 member in struct sigaction, so as to avoid warning for incompatible
9561 2007-04-06 Serguei Rybin <rybin@adacore.com>
9563 * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
9564 switches from previously loaded tree
9566 2007-04-06 Thomas Quinot <quinot@adacore.com>
9568 * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
9569 cases where a given dependency has a body or not.
9570 (Write_With_File_Names): New subprogram, common code for the two cases
9573 2007-04-06 Ed Schonberg <schonberg@adacore.com>
9574 Javier Miranda <miranda@adacore.com>
9576 * lib-xref.ads, lib-xref.adb:
9577 Modify the loop that collects type references, to include interface
9578 types that the type implements. List each of these interfaces when
9579 building the entry for the type.
9580 (Generate_Definition): Initialize component Def and Typ of new entry
9581 in table Xrefs, to avoid to have these components unitialized.
9582 (Output_References): Split Is_Abstract flag into
9583 Is_Abstract_Subprogram and Is_Abstract_Type.
9584 (Generate_Reference): Add barrier to do not generate the warning
9585 associated with Ada 2005 entities with entities generated by the
9588 2007-04-06 Robert Dewar <dewar@adacore.com>
9589 Arnaud Charlet <charlet@adacore.com>
9590 Vincent Celier <celier@adacore.com>
9592 * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
9593 Update 'Exception Handling Control' chapter which was outdated.
9594 Minor fix to documentation of -gnatwq
9595 Remove section "Adapting the Run Time to a New C++ Compiler" because
9597 Add passage on need of -nostart-files in some non-ada-main cases.
9598 Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
9599 Update documentation about Interfacing with C++
9600 Add documentation for new gnatmake switch -p
9601 Add missing protocol part in URLs.
9603 Document pragma Compile_Time_Error
9604 Add documentation for Object_Size indicating that stand alone
9605 objects can have a larger size in some cases.
9606 Add node for GNAT.Byte_Swapping, GNAT.SHA1
9607 Update reference to the Ravenscar profile.
9608 Document pragma Unreferenced_Objects
9610 * gnat-style.texi: Fix typo
9612 2007-04-06 Vincent Celier <celier@adacore.com>
9614 * mlib.adb (Building_Library): Only output "building a library..." in
9617 * mlib-prj.adb (Build_Library): Only output lists of object and ALI
9618 files in verbose mode.
9620 * mlib-utl.adb (Ar): Only output the first object files when not in
9622 (Gcc): Do not display all the object files if not in verbose mode, only
9625 2007-04-06 Robert Dewar <dewar@adacore.com>
9627 * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
9628 it no longer destroys the contents of Name_Buffer or Name_Len and
9629 non-standard and invalid names are handled better.
9630 (Get_Decoded_Name_String): Improve performance by using
9631 Name_Has_No_Encodings flag in the name table.
9632 (Is_Valid_Name): New function to determine whether a Name_Id is valid.
9633 Used for debugging printouts.
9635 2007-04-06 Robert Dewar <dewar@adacore.com>
9636 Javier Miranda <miranda@adacore.com>
9637 Bob Duff <duff@adacore.com>
9639 * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
9640 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
9641 there is no need to generate always a record_definition_node in case
9642 of synchronized interface types.
9643 (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
9644 (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
9645 illegal in Ada 95, in cases where it is legal. Change the warnings to
9646 errors in other cases. Don't give the error unless the "not null"
9647 parses properly. Correct the source position at which the error occurs.
9648 (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
9649 P_Null_Exclusion, to suppress "not null" warnings.
9650 (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
9651 associated goto statements.
9653 * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
9656 * scans.ads (Type_Token_Location): New flag
9658 * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
9659 (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
9660 P_Null_Exclusion, to suppress "not null" warnings.
9662 2007-04-06 Robert Dewar <dewar@adacore.com>
9663 Javier Miranda <miranda@adacore.com>
9664 Bob Duff <duff@adacore.com>
9665 Vincent Celier <celier@adacore.com>
9667 * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
9668 (Extensions_Allowed): No longer sets Ada_Version
9669 Entry for pragma Unreferenced_Objects
9671 * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
9672 system.tasking if pragma priority used in a procedure
9673 (Analyze_Pragma, case Warning): Handle dot warning switches
9674 (Process_Compile_Time_Warning_Or_Error): New procedure
9675 (Analyze_Pragma): Add processing for Compile_Time_Error
9676 Add support for extra arguments External_Name and Link_Name.
9677 Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
9678 (Process_Import_Or_Interface): Add support for the use of pragma Import
9680 (Extensions_Allowed): No longer affects Ada_Version
9681 (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
9682 Is_Abstract_Type. Make sure these are called only when appropriate.
9683 Add processing for pragma Unreferenced_Objects
9685 * snames.h, snames.ads, snames.adb: Add entry for pragma
9687 Add new standard name Minimum_Binder_Options for new gprmake
9688 Add new standard names for gprmake: Archive_Suffix,
9689 Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
9690 Library_Support, Library_Version_Options,
9691 Shared_Library_Minimum_Options,
9692 Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
9693 Change Name_Call to Name_uCall so that it cannot clash with a legal
9695 Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
9696 Append C_Plus_Plus to convention identifiers as synonym for CPP
9697 Add new standard names Stack and Builder_Switches
9698 Add new standard names: Compiler_Minimum_Options, Global_Config_File,
9699 Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
9700 Run_Path_Option, Toolchain_Version.
9701 Entry for pragma Unreferenced_Objects
9703 * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
9704 switches, without repetition of "eD". Make sure that last character of
9705 -gnatep= switch is not taken as -gnat switch character.
9706 Complete rewrite of circuit for handling saving compilation options
9707 Occasioned by need to support dot switchs for -gnatw, but cleans up
9709 -gnatX does not affect Ada_Version
9710 Include -gnatyA in -gnatg style switches
9712 * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
9713 warnings on return objects.
9714 (Warn_On_Useless_Assignment): Exclude warnings on return objects
9715 (Set_Dot_Warning_Switch): New procedure
9716 (Check_References): Add missing case of test for
9717 Has_Pragma_Unreferenced_Objects
9718 (Output_Unreferenced_Messages): Implement effect of new pragma
9719 Unreferenced_Objects, remove special casing of limited controlled
9722 2007-04-06 Vincent Celier <celier@adacore.com>
9724 * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
9725 the default project path, initially done during elaboration of the
9727 If the prefix returned by Sdefault is null, get the prefix from a call
9728 to Executable_Prefix_Path.
9729 (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
9732 * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
9733 canonical directory name to open the directory from which files are
9735 (Record_Other_Sources): Idem.
9736 (Locate_Directory): Add the possibility to create automatically missing
9737 directories when Setup_Projects is True.
9738 Call Locate_Directory so that the directory will be created when
9739 Setup_Projects is True, for object dir, library dir, library ALI dir,
9740 library source copy dir and exec dir.
9742 * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
9745 2007-04-06 Robert Dewar <dewar@adacore.com>
9747 * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
9748 Use First/Next_Component_Or_Discriminant
9749 (Analyze_Record_Representation_Clause):
9750 Use First/Next_Component_Or_Discriminant
9751 (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
9752 (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
9753 definition if type is unconstrained.
9754 (Adjust_Record_For_Reverse_Bit_Order): New procedure
9755 (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
9756 Is_Abstract_Subprogram and Is_Abstract_Type.
9757 (Adjust_Record_For_Reverse_Bit_Order): New procedure
9759 * repinfo.adb (List_Record_Info): Use First/
9760 Next_Component_Or_Discriminant.
9762 * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
9765 * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
9766 Include -gnatyA in default switches
9768 * opt.ads: (Warn_On_Non_Local_Exception): New flag
9769 (Warn_On_Reverse_Bit_Order): New flag
9770 (Extensions_Allowed): Update the documentation.
9771 (Warn_On_Questionable_Missing_Parens): Now on by default
9773 * usage.adb: Add documentation of -gnatw.x/X switches
9774 Document new -gnatyA style switch
9775 -gnatq warnings are on by default
9777 2007-04-06 Ed Falis <falis@adacore.com>
9779 * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
9780 full word is no longer compared twice.
9782 2007-04-06 Ed Schonberg <schonberg@adacore.com>
9784 * sem_ch10.adb (Install_Limited_Context_Clauses.
9785 Expand_Limited_With_Clause): Use a new copy of selector name in the
9786 call to Make_With_Clause. This fixes the tree structure for ASIS
9787 purposes. Nothing is changed in the compiler behaviour.
9788 (Process_Body_Clauses): Handle properly use clauses whose prefix is
9790 (Install_Limited_With_Clauses): Do not install non-limited view when it
9791 is still incomplete.
9793 2007-04-06 Ed Schonberg <schonberg@adacore.com>
9794 Gary Dismukes <dismukes@adacore.com>
9796 * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
9797 when capturing size information, instead of base type, which for a
9798 formal array type will be the unconstrained type.
9799 (Analyze_Formal_Object_Declaration): Add check for illegal default
9800 expressions for a formal in object of a limited type.
9801 (Instantiate_Object): Ditto.
9802 (Check_Formal_Package_Instance): Skip entities that are formal objects,
9803 because they were defaulted in the formal package and no check applies
9805 (Check_Formal_Package_Instance): Extend conformance check to other
9806 discrete types beyond Integer.
9807 (Process_Default): Copy directly the unmatched formal. A generic copy
9808 has already been performed in Analyze_Formal_Package.
9809 (Analyze_Associations): If a formal subprogram has no match, check for
9810 partial parametrization before looking for a default, to prevent
9812 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
9813 not set the instantiation environment before analyzing the actuals.
9814 Fixes regression on 8515-003 with implementation of AI-133.
9815 Set_Instance_Env checks whether the generic unit is a predefined
9816 unit, in which case the instance must be analyzed with the latest Ada
9817 mode. This setting must take place after analysis of the actuals,
9818 because the actuals must be analyzed and frozen in the Ada mode extant
9819 outside of the current instantiation.
9820 (Save_Env, Restore_Env): Preserve and restore the configuration
9821 parameters so that predefined units can be compiled in the proper Ada
9823 (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
9824 Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
9825 and Is_Abstract_Type.
9826 (Analyze_Formal_Package): For better error recovery, Add exception
9827 handler to catch Instantion_Error, which can be raised in
9828 Analyze_Associations
9830 2007-04-06 Ed Schonberg <schonberg@adacore.com>
9831 Bob Duff <duff@adacore.com>
9832 Gary Dismukes <dismukes@adacore.com>
9834 * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
9835 prefix type is a discriminated subtype of the type of the formal.
9836 (Analyze_Allocator): Collect all coextensions regardless of the context.
9837 Whether they can be allocated statically is determined in exp_ch4.
9838 (Analyze_Selected_Component): If the prefix is a limited view and the
9839 non-limited view is available, use the non-limited one.
9840 (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
9841 therefore illegal), suggest a qualified expression rather than a type
9842 conversion, because a type conversion would be illegal in this context.
9843 (Anayze_Allocator): Trace recursively all nested allocators so that all
9844 coextensions are on the corresponding list for the root. Do no mark
9845 coextensions if the root allocator is within a declaration for a stack-
9846 allocated object, because the access discriminants will be allocated on
9848 (Analyze_Call): Remove restriction on calls to limited functions for the
9849 cases of generic actuals for formal objects, defaults for formal objects
9850 and defaults for record components.
9851 (Analyze_Allocator): Before analysis, chain coextensions on the proper
9852 element list. Their expansion is delayed until the enclosing allocator
9853 is processed and its finalization list constructed.
9854 (Try_Primitive_Operation): If the prefix is a concurrent type, looks
9855 for an operation with the given name among the primitive operations of
9856 the corresponding record type.
9857 (Analyze_Selected_Component): If the prefix is a task type that
9858 implements an interface, and there is no entry with the given name,
9859 check whether there is another primitive operation (e.g. a function)
9861 (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
9862 properly the indexing of a function call written in prefix form, where
9863 the function returns an array type, and all parameters of the function
9864 except the first have defaults.
9865 (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
9866 the original operands, rather than relocating them, for efficiency and
9867 to work properly when an operand is overloaded.
9868 (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
9869 Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
9870 (Analyze_Selected_Component): If the prefix is a private extension, only
9871 scan the visible components, not those of the full view.
9872 (Try_Primitive_Operation): If the operation is a procedure, collect all
9873 possible interpretations, as for a function, because in the presence of
9874 classwide parameters several primitive operations of the type can match
9875 the given arguments.
9877 2007-04-06 Ed Schonberg <schonberg@adacore.com>
9878 Robert Dewar <dewar@adacore.com>
9880 * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
9881 tag-indeterminate call to an abstract function, when the left-hand side
9883 (Analyze_Loop_Statement): Improve detection of infinite loops
9885 2007-04-06 Ed Schonberg <schonberg@adacore.com>
9886 Thomas Quinot <quinot@adacore.com>
9888 * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
9889 out of Analyze_Package_Declaration, because processing must be applied
9890 to package bodies as well, for deferred constants completed by pragmas.
9891 (Analyze_Package_Declaration): When the package declaration being
9892 analyzed does not require an explicit body, call Check_Completion.
9893 (May_Need_Implicit_Body): An implicit body is required when a package
9894 spec contains the declaration of a remote access-to-classwide type.
9895 (Analyze_Package_Body): If the package contains RACWs, append the
9896 pending subprogram bodies generated by exp_dist at the end of the body.
9897 (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
9898 Is_Abstract_Subprogram and Is_Abstract_Type.
9899 (Preserve_Full_Attributes): The full entity list is not an attribute
9900 that must be preserved from full to partial view.
9902 * sem_dist.adb (Add_RAS_Dereference_TSS):
9903 Change primitive name to _Call so it cannot clash with any legal
9904 identifier, and be special-cased in Check_Completion.
9905 Mark the full view of the designated type for the RACW associated with
9906 a RAS as Comes_From_Source to get proper view switching when installing
9907 private declarations.
9908 Provite a placeholder nested package body along with the nested spec
9909 to have a place for Append_RACW_Bodies to generate the calling stubs
9910 and stream attributes.
9912 2007-04-06 Ed Schonberg <schonberg@adacore.com>
9913 Robert Dewar <dewar@adacore.com>
9915 * sem_ch8.adb (Has_Components): If the argument is an incomplete type
9916 that is a limited view, check the non-limited view if available.
9917 (Undefined): Refine error message for missing with of Text_IO
9918 (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
9919 to distinguish real missing with cases.
9920 Fix format of all missing with messages
9921 (Analyze_Subprogram_Renaming): Emit proper error message on illegal
9922 renaming as body when renamed entity is abstract.
9924 2007-04-06 Ed Schonberg <schonberg@adacore.com>
9925 Javier Miranda <miranda@adacore.com>
9927 * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
9928 predicate recursive, to handle complex expressions on literals whose
9929 spurious ambiguity comes from the abstract interpretation of some
9931 (Interface_Present_In_Ancestor): Add support to concurrent record
9933 (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
9934 Is_Abstract_Subprogram and Is_Abstract_Type.
9936 2007-04-06 Ed Schonberg <schonberg@adacore.com>
9937 Javier Miranda <miranda@adacore.com>
9939 * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
9940 dereference of a local object R created as a reference to another
9941 object O, use the access level of O.
9942 (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
9943 rather than local Same_Formal_Type, to check whether protected operation
9944 overrides an inherited one.
9945 (Same_Formal_Type): New predicate, used when matching signatures of
9946 overriding synchronized operations, to handle the case when a formal
9947 has a type that is a generic actual.
9948 (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
9949 predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
9950 (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
9951 syntactic ambiguities involving indexing of function calls that return
9953 (Abstract_Interface_List): New subprogram that returns the list of
9954 abstract interfaces associated with a concurrent type or a
9955 concurrent record type.
9956 (Interface_Present_In_Parent): New subprogram used to check if a
9957 given type or some of its parents implement a given interface.
9958 (Collect_Abstract_Interfaces): Add support for concurrent types
9959 with interface types.
9960 (Has_Abstract_Interfaces): Add support for concurrent types with
9962 (Is_Parent): New subprogram that determines whether E1 is a parent
9963 of E2. For a concurrent type its parent is the first element of its
9964 list of interface types; for other types this function provides the
9965 same result than Is_Ancestor.
9966 (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
9967 (Collect_Synchronized_Interfaces): Removed because the subprogram
9968 Collect_Abstract_Interfaces provides this functionality.
9969 (Collect_Abstract_Interfaces): Minor update to give support to
9970 concurrent types and thus avoid undesired code duplication.
9971 (Get_Subprogram_Entity): Handle entry calls.
9972 (May_Be_Lvalue): Include actuals that appear as in-out parameters in
9974 (Enter_Name): Do not give -gnatwh hiding warning for record component
9975 entities, they never result in hiding.
9977 2007-04-06 Ed Schonberg <schonberg@adacore.com>
9978 Robert Dewar <dewar@adacore.com>
9980 * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
9981 to chain nested components that are allocators for access discriminants
9982 of the enclosing object.
9983 Add N_Push and N_Pop nodes
9984 New field Exception_Label added
9985 (Local_Raise_Statements): New field in N_Exception_Handler_Node
9986 (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
9987 (Is_Coextension): New flag for allocators, to mark allocators that
9988 correspond to access discriminants of dynamically allocated objects.
9989 (N_Block_Statement): Document the fact that the corresponding entity
9990 can be an E_Return_Statement.
9991 (Is_Coextension): New flag for allocators.
9992 Remove all code for DSP option
9994 * sprint.ads, sprint.adb: Display basic information for class_wide
9995 subtypes. Add handling of N_Push and N_Pop nodes
9997 2007-04-06 Arnaud Charlet <charlet@adacore.com>
9999 * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
10000 before propagating exception.
10002 2007-04-06 Olivier Hainque <hainque@adacore.com>
10004 * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
10005 an address always within the call instruction from a return address.
10007 2007-04-06 Olivier Hainque <hainque@adacore.com>
10008 Eric Botcazou <botcazou@adacore.com>
10010 * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
10011 expression with a COMPOUND_EXPR including the call instead of emitting
10012 the call directly here.
10013 (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
10014 high bound is constant and the slice is empty. Tidy.
10015 (tree_transform, case N_Op_Not): Handle properly the case where the
10016 operation applies to a private type whose full view is a modular type.
10017 (Case_Statement_To_gnu): If an alternative is an E_Constant with an
10018 Address_Clause, use the associated Expression as the GNAT tree
10019 representing the choice value to ensure the corresponding GCC tree is
10020 of the proper kind.
10021 (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
10022 instead of just the operands, as the base GCC stabilize_reference does.
10023 <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
10024 requested; otherwise fail.
10025 (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
10027 2007-04-06 Thomas Quinot <quinot@adacore.com>
10029 * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
10030 implementation of UI_Div.
10031 (UI_Div): Reimplement as a call to UI_Div_Rem.
10032 (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
10033 remainder, avoiding the cost of a multiplication and a subtraction.
10034 (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
10035 provides both quotient and remainder in a single computation.
10036 (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
10037 functions for uint.
10038 (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
10039 is undefined if the given n is not inversible.
10041 2007-04-06 Olivier Hainque <hainque@adacore.com>
10043 * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
10044 BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
10047 2007-04-06 Eric Botcazou <botcazou@adacore.com>
10048 Olivier Hainque <hainque@adacore.com>
10050 * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
10051 when updating the contents of the old pointer to an unconstrained array.
10052 (end_subprog_body): Set error_gnat_node to Empty.
10053 (write_record_type_debug_info): Do not be unduly sparing with our bytes.
10054 (unchecked_convert): For subtype to base type conversions, require that
10055 the source be a subtype if it is an integer type.
10056 (builtin_decls): New global, vector of available builtin functions.
10057 (gnat_pushdecl): Add global builtin function declaration nodes to the
10058 builtin_decls list.
10059 (gnat_install_builtins): Adjust comments.
10060 (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
10061 calling gnat_pushdecl, so that it knows when it handed a builtin
10062 function declaration node.
10063 (builtin_decl_for): Search the builtin_decls list.
10065 2007-04-06 Eric Botcazou <botcazou@adacore.com>
10067 * s-stchop-vxworks.adb:
10068 (Stack_Check): Raise Storage_Error if the argument has wrapped around.
10070 2007-04-06 Robert Dewar <dewar@adacore.com>
10071 Arnaud Charlet <charlet@adacore.com>
10073 * a-diroro.ads: Inserted the pragma Unimplemented_Unit
10075 * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
10077 Add mention of -Sev (set initialize_scalars option from environment
10078 variable at run time) in gnatbind usage message.
10080 * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
10082 * fname-uf.ads: Minor comment fix
10084 * osint.ads: Change pragma Elaborate to Elaborate_All
10086 * par-load.adb: Add documentation.
10088 * sem_cat.ads, sem_cat.adb: Minor code reorganization
10090 * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
10092 * s-secsta.ads: Extra comments
10094 * s-soflin.ads: Minor comment fixes
10096 * s-stratt.ads (Block_Stream_Ops_OK): Removed.
10098 * s-wchcon.ads: Minor comment addition
10100 * treepr.adb: Minor change in message
10101 (Print_Name,Print_Node): Make these debug printouts more robust: print
10102 "no such..." instead of crashing on bad input.
10104 2007-03-30 Rafael Avila de Espindola <espindola@google.com>
10106 * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
10107 instead of gnat_signed_or_unsigned_type.
10108 * utils.c (gnat_signed_or_unsigned_type): Remove.
10109 * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
10110 * gigi.h (gnat_signed_or_unsigned_type): Remove
10112 2007-03-09 Roger Sayle <roger@eyesopen.com>
10114 * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
10115 fold with the result of buildN.
10116 * decl.c (gnat_to_gnu_entity): Likewise.
10117 * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
10118 * utils.c (finish_record_type, merge_sizes, max_size, convert):
10120 * utils2.c (gnat_truthvalue_conversion, compare_arrays,
10121 nonbinary_modular_operation, build_binary_op, build_unary_op,
10122 build_cond_expr): Likewise.
10124 * utils.c (convert): Use fold_build1 when casting values to void.
10125 * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
10126 fold_convert instead of convert when appropriate.
10128 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
10130 * Make-lang.in: Add install-pdf target as copied from
10131 automake v1.10 rules.
10133 2007-02-28 Andreas Schwab <schwab@suse.de>
10135 * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
10136 $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
10137 (doc/gnat-style.info): Likewise.
10139 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
10141 * gnat-style.texi: Standardize title page.
10142 * gnat_rm.texi: Likewise.
10143 * gnat_ugn.texi: Likewise.
10145 2007-02-25 Mark Mitchell <mark@codesourcery.com>
10147 * decl.c (annotate_value): Adjust for refactoring of tree_map
10150 2007-02-24 Mark Mitchell <mark@codesourcery.com>
10152 * decl.c (annotate_value): Adjust for refactoring of tree_map
10155 2007-02-21 Ed Schonberg <schonberg@adacore.com>
10158 * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
10159 untagged derived type, add hidden components to keep discriminant
10160 layout consistent, when a given discriminant of the derived type
10161 constraints several discriminants of the parent type.
10163 2007-02-16 Eric Botcazou <ebotcazou@adacore.com>
10164 Sandra Loosemore <sandra@codesourcery.com>
10166 * trans.c (call_to_gnu): Use build_call_list instead of build3 to
10167 build the call expression.
10168 (gnat_stabilize_reference_1): Handle tcc_vl_exp.
10169 * utils.c (max_size) <tcc_exceptional>: Delete.
10170 <tcc_vl_exp>: New case.
10171 <tcc_expression>: Delete CALL_EXPR subcase.
10172 (build_global_cdtor): Use build_call_nary instead of build3.
10173 * utils2.c (build_call_1_expr): Likewise.
10174 (build_call_2_expr): Likewise.
10175 (build_call_0_expr): Likewise.
10176 (build_call_alloc_dealloc): Likewise.
10178 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
10180 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
10181 get_action_description_for): Replace _Unwind_Word with _uleb128_t
10182 and _Unwind_SWord with _sleb128_t.
10184 2007-02-06 Paolo Bonzini <bonzini@gnu.org>
10186 * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
10187 * decl.c: Include gt-ada-decl.h.
10188 (annotate_value_cache): New.
10189 (annotate_value): Use it instead of TREE_COMPLEXITY.
10191 2007-02-03 Kazu Hirata <kazu@codesourcery.com>
10193 * misc.c, utils2.c: Fix comment typos.
10195 2007-01-24 Roger Sayle <roger@eyesopen.com>
10197 * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
10198 TREE_CONSTANT_OVERFLOW.
10199 (allocatable_size_p, annotate_value): Likewise.
10200 * trans.c (gnat_to_gnu): Likewise.
10201 * utils.c (unchecked_convert): Likewise.
10202 * utils2.c (build_simple_component_ref): Likewise.
10204 2007-01-23 Richard Guenther <rguenther@suse.de>
10207 * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
10208 (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
10209 (gnatboot3): Likewise.
10210 (GNATBIND): Do not define.
10211 * Makefile.in (GNATBIND): Do not define.
10213 2007-01-08 Richard Guenther <rguenther@suse.de>
10215 * cuintp.c (build_cst_from_int): Use built_int_cst_type.
10216 * trans.c (gnat_to_gnu): Likewise.
10218 2006-12-07 Geoffrey Keating <geoffk@apple.com>
10220 * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
10221 * adaint.c: Likewise.
10223 2006-12-05 Aldy Hernandez <aldyh@redhat.com>
10225 Merge from gimple-tuples-branch:
10226 2006-11-02 Aldy Hernandez <aldyh@redhat.com>
10228 * ada-tree.h (lang_tree_node): Handle gimple tuples.
10229 * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
10230 GIMPLE_MODIFY_STMT.
10232 2006-12-02 Kazu Hirata <kazu@codesourcery.com>
10234 * Makefile.in, mingw32.h, trans.c: Fix comment typos.
10235 * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
10238 2006-11-17 Eric Botcazou <ebotcazou@adacore.com>
10241 * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
10242 if the initializer takes into account the padding.
10244 2006-11-11 Richard Guenther <rguenther@suse.de>
10246 * trans.c (maybe_stabilize_reference): Remove handling of
10247 FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
10249 2006-11-05 Arnaud Charlet <charlet@adacore.com>
10252 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
10253 (To_Target_Priority): New function.
10255 2006-10-31 Robert Dewar <dewar@adacore.com>
10257 * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
10258 a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
10259 s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
10260 a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
10261 a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
10262 a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
10263 a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
10264 a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
10265 a-szbzha.adb: Minor reformatting. Fix header.
10267 * a-numaux-x86.adb: Add parentheses for use of unary minus
10268 * a-ngcefu.adb: Supply missing parentheses for unary minus
10269 * a-ngcoty.adb: Add parens for use of unary minus
10270 * a-ngelfu.adb: Add missing parens for unary minus
10271 * a-tifiio.adb: Add parentheses for uses of unary minus
10273 2006-10-31 Robert Dewar <dewar@adacore.com>
10274 Bob Duff <duff@adacore.com>
10275 Ed Schonberg <schonberg@adacore.com>
10277 * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
10278 with multiplying operator.
10279 (Expected_Type_Is_Any_Real): New function to determine from the Parent
10280 pointer whether the context expects "any real type".
10281 (Resolve_Arithmetic_Op): Do not give an error on calls to the
10282 universal_fixed "*" and "/" operators when they are used in a context
10283 that expects any real type. Also set the type of the node to
10284 Universal_Real in this case, because downstream processing requires it
10285 (mainly static expression evaluation).
10286 Reword some continuation messages
10287 Add some \\ sequences to continuation messages
10288 (Resolve_Call): Refine infinite recursion case. The test has been
10289 sharpened to eliminate some false positives.
10290 Check for Current_Task usage now includes entry barrier, and is now a
10291 warning, not an error.
10292 (Resolve): If the call is ambiguous, indicate whether an interpretation
10293 is an inherited operation.
10294 (Check_Aggr): When resolving aggregates, skip associations with a box,
10295 which are priori correct, and will be replaced by an actual default
10296 expression in the course of expansion.
10297 (Resolve_Type_Conversion): Add missing support for conversion from
10298 a class-wide interface to a tagged type. Minor code cleanup.
10299 (Valid_Tagged_Converion): Add support for abstact interface type
10301 (Resolve_Selected_Component): Call Generate_Reference here rather than
10302 during analysis, and use May_Be_Lvalue to distinguish read/write.
10303 (Valid_Array_Conversion): New procedure, abstracted from
10304 Valid_Conversion, to incorporate accessibility checks for arrays of
10305 anonymous access types.
10306 (Valid_Conversion): For a conversion to a numeric type occurring in an
10307 instance or inlined body, no need to check that the operand type is
10308 numeric, since this has been checked during analysis of the template.
10309 Remove legacy test for scope name Unchecked_Conversion.
10311 * sem_res.ads: Minor reformatting
10313 * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
10314 (PE_Current_Task_In_Entry_Body): New exception code
10315 (SE_Restriction_Violation): Removed, not used
10317 * a-except.ads: Update comments.
10319 * types.h, types.ads: Add definition for Validity_Check
10320 (PE_Current_Task_In_Entry_Body): New exception code
10321 (SE_Restriction_Violation): Removed, not used
10323 2006-10-31 Thomas Quinot <quinot@adacore.com>
10325 * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
10328 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
10329 Jose Ruiz <ruiz@adacore.com>
10331 * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
10332 part of Ada.Calendar: all subprogram raise Unimplemented.
10333 (Split_W_Offset): Temp function body, raising Unimplemented
10335 * a-calend.ads, a-calend-vms.ads:
10336 Add imported variable Invalid_TZ_Offset used to designate targets unable
10337 to support time zones.
10338 (Unimplemented): Temporary function raised by the body of new
10340 (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
10341 unit provides handling of leap seconds and is used by the new Ada 2005
10342 packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
10343 (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
10344 version returns an extra value which is the offset to UTC.
10346 * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
10347 (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
10348 (Split_W_Offset): New function body.
10349 (Time_Of): When a date is close to UNIX epoch, compute the time for
10350 that date plus one day (that amount is later substracted after
10351 executing mktime) so there are no problems with time zone adjustments.
10353 * a-calend-mingw.adb: Remove Windows specific version no longer needed.
10355 * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
10356 a-catizo.ads, a-catizo.adb: New files.
10358 * impunit.adb: Add new Ada 2005 entries
10360 * sysdep.c: Add external variable __gnat_invalid_tz_offset.
10361 Rename all occurences of "__gnat_localtime_r" to
10362 "__gnat_localtime_tzoff".
10363 (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
10364 zone data and calculate the GMT offset.
10365 (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
10366 Use the field "tm_gmtoff" to extract the GMT offset.
10367 (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
10368 the external variable "timezone" to calculate the GMT offset.
10370 2006-10-31 Arnaud Charlet <charlet@adacore.com>
10371 Jose Ruiz <ruiz@adacore.com>
10373 * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
10374 s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
10375 s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
10376 s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
10377 System.Any_Priority to a POSIX priority on the target.
10379 * system-linux-ia64.ads:
10380 Extend range of Priority types on Linux to use the whole range made
10381 available by the system.
10383 * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
10384 function maps from System.Any_Priority to a POSIX priority on the
10386 (PTHREAD_PRIO_PROTECT): Set real value.
10387 (PTHREAD_PRIO_INHERIT): Now a function.
10388 (SIGCPUFAIL): New signal.
10389 (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
10390 are documented as reserved by the OS.
10392 * system-aix.ads: Use the full range of priorities provided by the
10395 * s-taprop-posix.adb: Call new function To_Target_Priority.
10396 (Set_Priority): Take into account Task_Dispatching_Policy and
10397 Priority_Specific_Dispatching pragmas when determining if Round Robin
10398 must be used for scheduling the task.
10400 * system-linux-x86_64.ads, system-linux-x86.ads,
10401 system-linux-ppc.ads: Extend range of Priority types on Linux to use
10402 the whole range made available by the system.
10404 * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
10405 s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
10406 s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
10407 when deallocating the TCB in order to avoid potential references to
10409 (Set_Priority): Take into account Task_Dispatching_Policy and
10410 Priority_Specific_Dispatching pragmas when determining if Round Robin
10411 or FIFO within priorities must be used for scheduling the task.
10413 * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
10414 the Thread field (to be used internally by the run-time system) and the
10415 kernel-level task id in the LWP field (to be used by the debugger).
10416 (Create_Task): Reorganize to unify the calls to taskSpawn into a single
10417 instance, and propagate the current task options to the spawned task.
10418 (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
10419 (Initialize): Set Round Robin dispatching when the corresponding pragma
10422 2006-10-31 Robert Dewar <dewar@adacore.com>
10424 * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
10425 system-linux-hppa.ads, system-hpux-ia64.ads,
10426 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
10427 system-vxworks-sparcv9.ads, system-solaris-x86.ads,
10428 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
10429 system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
10430 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
10431 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
10432 system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
10433 Default_Bit_Order) to kill constant condition warnings for references
10436 2006-10-31 Vincent Celier <celier@adacore.com>
10437 Eric Botcazou <ebotcazou@adacore.com>
10439 * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
10440 mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
10441 mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
10442 Ext_To, when building the library file name
10444 * mlib-tgt-vxworks.adb: ditto.
10445 (Get_Target_Suffix): Add support for x86 targets.
10447 * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
10449 * mlib-tgt-darwin.adb:
10450 Use Append_To, instead of Ext_To, when building the library file name
10451 (Flat_Namespace): New global variable.
10452 (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
10453 (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
10454 (Link_Shared_Libgcc): Delete.
10455 (Build_Dynamic_Library): Adjust for above changes.
10457 (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
10459 2006-10-31 Eric Botcazou <ebotcazou@adacore.com>
10461 * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
10462 (Initialize): Add type conversions required by above change.
10464 2006-10-31 Jose Ruiz <ruiz@adacore.com>
10466 * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
10467 (getpid): New body for this function that uses the underlying taskIdSelf
10468 function for VxWorks 5 and VxWorks 6 in kernel mode.
10469 (unsigned_int): New type, modular to allow logical bit operations.
10470 (taskOptionsGet): New imported function.
10472 * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
10473 field to be compliant with the type used by the corresponding operating
10476 2006-10-31 Pascal Obry <obry@adacore.com>
10477 Eric Botcazou <ebotcazou@adacore.com>
10478 Vincent Celier <celier@adacore.com>
10480 * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
10481 ASCII version of the registry API. This is needed as the GNAT runtime
10482 is now UNICODE by default.
10484 (get_gcc_version): Do not hardcode the return value.
10485 (__gnat_file_time_name): On Windows properly set the default returned
10486 value to -1 which corresponds to Invalid_Time.
10487 (__gnat_fopen): New routine. A simple wrapper on all plateforms
10488 except on Windows where it does conversion for unicode support.
10489 (__gnat_freopen): Idem.
10490 (__gnat_locate_exec_on_path): If environment variable PATH does not
10491 exist, return a NULL pointer
10493 * adaint.h: (__gnat_fopen): Declare.
10494 (__gnat_freopen): Likewise.
10496 * mingw32.h (_tfreopen): Define this macro here for older MingW
10498 Activate the unicode support on platforms using a MingW runtime
10499 version 3.9 or newer.
10501 * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
10502 This is needed for proper unicode support on Windows.
10505 2006-10-31 Eric Botcazou <ebotcazou@adacore.com>
10506 Nicolas Setton <setton@adacore.com>
10507 Olivier Hainque <hainque@adacore.com>
10508 Gary Dismukes <dismukes@adacore.com>
10510 * gigi.h: (tree_code_for_record_type): Declare.
10511 (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
10512 (get_global_renaming_pointers): Rename to
10513 invalidate_global_renaming_pointers.
10514 (static_ctors): Delete.
10515 (static_dtors): Likewise.
10516 (gnat_write_global_declarations): Declare.
10517 (create_var_decl): Adjust descriptive comment to indicate that the
10518 subprogram may return a CONST_DECL node.
10519 (create_true_var_decl): Declare new function, similar to
10520 create_var_decl but forcing the creation of a VAR_DECL node.
10521 (get_global_renaming_pointers): Declare.
10522 (add_global_renaming_pointer): Likewise.
10524 * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
10526 * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
10527 tree before setting TREE_ADDRESSABLE for by-reference return mechanism
10529 (gnat_to_gnu_entity): Remove From_With_Type from computation for
10531 <E_Access_Type>: Use the Non_Limited_View as the full view of the
10532 designated type if the pointer comes from a limited_with clause. Make
10533 incomplete designated type if it is in the main unit and has a freeze
10535 <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
10536 Underlying_Full_View similarly. Return earlier if the full view already
10537 has an associated tree.
10538 (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
10539 (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
10540 (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
10541 reference type built for objects with an address clause.
10542 Use create_true_var_decl with const_flag set for
10543 DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
10545 (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
10546 for Character and Wide_Character types. This info is read by the
10547 dwarf-2 writer, and is needed to be able to use the command "ptype
10548 character" in the debugger.
10549 (gnat_to_gnu_entity): When generating a type representing
10550 a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
10551 so that debug writers can distinguish it from ordinary integers.
10552 (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
10553 addition to TREE_READONLY to assert the constantness of variables for
10554 elaboration purposes.
10555 (gnat_to_gnu_entity, subprogram cases): Change loops on formal
10556 parameters to call new Einfo function First_Formal_With_Extras.
10557 (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
10558 protected type with its corresponding discriminant, to obtain a usable
10560 (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
10561 for a multiple elaboration of the "equivalent" type.
10562 (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
10563 into record_global_renaming_pointer.
10564 (gnat_to_gnu_entity) <E_Array_Type>: Do not force
10565 TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
10566 <E_Array_Subtype>: Likewise.
10567 (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
10568 incomplete subtypes and incomplete subtypes of incomplete types visible
10569 through a limited with clause.
10570 (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
10571 the base index type for the maximum size of the array only if they are
10573 (gnat_to_gnu_entity, renaming object case): Do not wrap up the
10574 expression into a SAVE_EXPR if stabilization failed.
10576 * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
10577 a result decl into DECL_BY_REFERENCE on this decl, now what is expected
10578 by lower level compilation passes.
10579 (gnat_genericize): New function, lowering a function body to GENERIC.
10580 Turn the type of RESULT_DECL into a real reference type if the decl
10581 has been marked DECL_BY_REFERENCE, and adjust references to the latter
10583 (gnat_genericize_r): New function. Tree walking callback for
10585 (convert_from_reference, is_byref_result): New functions. Helpers for
10587 (create_type_decl): Call gnat_pushdecl before calling
10588 rest_of_decl_compilation, to make sure that field TYPE_NAME of
10589 type_decl is properly set before calling the debug information writers.
10590 (write_record_type_debug_info): The heuristics which compute the
10591 alignment of a field in a variant record might not be accurate. Add a
10592 safety test to make sure no alignment is set to a smaller value than
10593 the alignment of the field type.
10594 (make_dummy_type): Use the Non_Limited_View as the underlying type if
10595 the type comes from a limited_with clause. Do not loop on the full view.
10596 (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
10597 (dummy_node_table): New global variable, moved from decl.c.
10598 (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
10599 (save_gnu_tree): Use above macros.
10600 (get_gnu_tree): Likewise.
10601 (present_gnu_tree): Likewise.
10602 (init_dummy_type): New function, moved from decl.c. Use above macros.
10603 (make_dummy_type): Likewise.
10604 (tree_code_for_record_type): New function extracted from make_dummy_type
10605 (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
10606 (static_ctors): Change it to a vector, make static.
10607 (static_dtors): Likewise.
10608 (end_subprog_body): Adjust for above change.
10609 (build_global_cdtor): Moved from trans.c.
10610 (gnat_write_global_declarations): Emit global constructor and
10611 destructor, and call cgraph_optimize before emitting debug info for
10612 global declarations.
10613 (global_decls): New global variable.
10614 (gnat_pushdecl): Store the global declarations in global_decls, for
10616 (gnat_write_global_declarations): Emit debug information for global
10618 (create_var_decl_1): Former create_var_decl, with an extra argument to
10619 state whether the creation of a CONST_DECL is allowed.
10620 (create_var_decl): Behavior unchanged. Now a wrapper around
10621 create_var_decl_1 allowing CONST_DECL creation.
10622 (create_true_var_decl): New function, similar to create_var_decl but
10623 forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
10624 (create_field_decl): Do not always mark the field as addressable
10625 if its type is an aggregate.
10626 (global_renaming_pointers): New static variable.
10627 (add_global_renaming_pointer): New function.
10628 (get_global_renaming_pointers): Likewise.
10630 * misc.c (gnat_dwarf_name): New function.
10631 (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
10632 (gnat_post_options): Add comment about structural alias analysis.
10633 (gnat_parse_file): Do not call cgraph_optimize here.
10634 (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
10636 * trans.c (process_freeze_entity): Don't abort if we already have a
10637 non dummy GCC tree for a Concurrent_Record_Type, as it might
10638 legitimately have been elaborated while processing the associated
10639 Concurrent_Type prior to this explicit freeze node.
10640 (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
10641 exception handler volatile if it is of variable size.
10642 (process_type): Remove bypass for types coming from a limited_with
10644 (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
10645 actual, convert the corresponding gnu_actual to the real destination
10646 type when necessary.
10647 (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
10648 originally TREE_READONLY but whose elaboration cannot be performed
10650 Part of fix for F504-021.
10651 (tree_transform, subprogram cases): Change loops on formal parameters to
10652 call new Einfo function First_Formal_With_Extras.
10653 (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
10654 stemming from type conversion for the lhs.
10655 (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
10656 number of bits per unit for components of records.
10657 (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
10658 (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
10659 with At_End_Proc after the SJLJ EH cleanup.
10660 (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
10662 (elaborate_all_entities): Do not retest type_annotate_only.
10663 (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
10664 result type of an abstract subprogram, which may be an itype associated
10665 with an anonymous access result (related to AI-318-02).
10666 (build_global_cdtor): Move to utils.c.
10667 (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
10668 this choice is not a null tree nor an integer constant.
10669 (gigi): Run unshare_save_expr via walk_tree_without_duplicates
10670 on the body of elaboration routines instead of mark_unvisited.
10671 (add_stmt): Do not mark the tree.
10672 (add_decl_expr): Tweak comment.
10673 (mark_unvisited): Delete.
10674 (unshare_save_expr): New static function.
10675 (call_to_gnu): Issue an error when making a temporary around a
10676 procedure call because of non-addressable actual parameter if the
10677 type of the formal is by_reference.
10678 (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
10679 after building the elaboration routine.
10681 2006-10-31 Bob Duff <duff@adacore.com>
10683 * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
10684 as finalization-started, so we can raise Program_Error on 'new'.
10686 * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
10687 collection has already started.
10689 * s-finimp.ads (Collection_Finalization_Started): Added new special
10690 flag value for indicating that a collection's finalization has started.
10692 * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
10693 create a task whose master has already waited for dependent tasks.
10695 2006-10-31 Robert Dewar <dewar@adacore.com>
10697 * lib.adb, lib.ads: (In_Predefined_Unit): New functions
10699 * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
10700 a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
10701 a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
10702 a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
10703 a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
10704 a-except-2005.ads: Add pragma Preelaborable_Warning
10706 2006-10-31 Robert Dewar <dewar@adacore.com>
10707 Jose Ruiz <ruiz@adacore.com>
10709 * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
10711 * ali.adb (Get_Name): Properly handle scanning of wide character names
10712 encoded with brackets notation.
10713 (Known_ALI_Lines): Add S lines to this list.
10714 (Scan_ALI): Acquire S (priority specific dispatching) lines.
10715 New flag Elaborate_All_Desirable in unit table
10717 * ali.ads (Priority_Specific_Dispatching): Add this range of
10718 identifiers to be used for Priority_Specific_Dispatching table entries.
10719 (ALIs_Record): Add First_Specific_Dispatching and
10720 Last_Specific_Dispatching that point to the first and last entries
10721 respectively in the priority specific dispatching table for this unit.
10722 (Specific_Dispatching): Add this table for storing each S (priority
10723 specific dispatching) line encountered in the input ALI file.
10724 New flag Elaborate_All_Desirable in unit table
10726 * bcheck.adb: (Check_Configuration_Consistency): Add call to
10727 Check_Consistent_Dispatching_Policy.
10728 (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
10729 verifying that the use of Priority_Specific_Dispatching,
10730 Task_Dispatching_Policy, and Locking_Policy is consistent across the
10733 * bindgen.adb: (Public_Version_Warning): function removed.
10734 (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
10735 required information from ALI files in order to initialize the table
10736 containing the specific dispatching policy.
10737 (Gen_Adainit_Ada): Generate the variables required for priority specific
10738 dispatching entries (__gl_priority_specific_dispatching and
10739 __gl_num_specific_dispatching).
10740 (Gen_Adainit_C): Generate the variables required for priority specific
10741 dispatching entries (__gl_priority_specific_dispatching and
10742 __gl_num_specific_dispatching).
10743 (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
10745 (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
10746 (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
10748 (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
10749 a call to gnat_set_globals.
10750 Generate a string containing settings from
10751 Priority_Specific_Dispatching pragma entries.
10752 (Gen_Object_Files_Options): Do not include the runtime libraries when
10753 pragma No_Run_Time is specified.
10755 * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
10756 consistency with s-intman-posix.adb.
10757 (__gnat_error_handler, case FreeBSD): Account for the fact that the
10758 handler is installed with SA_SIGINFO.
10759 (__gnat_adjust_context_for_raise, FreeBSD case): New function for
10760 FreeBSD ZCX support, copied from Linux version.
10761 Add MaRTE-specific definitions for the linux target. Redefine sigaction,
10762 sigfillset, and sigemptyset so the routines defined by MaRTE.
10763 (__gl_priority_specific_dispatching): Add this variable that stores the
10764 string containing priority specific dispatching policies in the
10766 (__gl_num_specific_dispatching): Add this variable that indicates the
10767 highest priority for which a priority specific dispatching pragma
10769 (__gnat_get_specific_dispatching): Add this routine that returns the
10770 priority specific dispatching policy, as set by a
10771 Priority_Specific_Dispatching pragma appearing anywhere in the current
10772 partition. The input argument is the priority number, and the result
10773 is the upper case first character of the policy name.
10774 (__gnat_set_globals): Now a dummy function.
10775 (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
10776 mechargs instead of sigargs, as the latter can be retrieved from the
10777 former and sigargs is not what we want on ia64.
10778 (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
10780 (__gnat_adjust_context_for_raise, ia64-vms): New function.
10781 (tasking_error): Remove unused symbol.
10782 (_abort_signal): Move this symbol to the IRIX specific part since this
10783 is the only target that uses this definition.
10784 (Check_Abort_Status): Move this symbol to the IRIX specific part since
10785 this is the only target that uses this definition.
10786 (Lock_Task): Remove unused symbol.
10787 (Unlock_Task): Remove unused symbol.
10789 * lib-writ.adb (Write_ALI): Output new S lines for
10790 Priority_Specific_Dispatching pragmas.
10791 Implement new flag BD for elaborate body desirable
10793 * lib-writ.ads: Document S lines for Priority Specific Dispatching.
10794 (Specific_Dispatching): Add this table for storing the entries
10795 corresponding to Priority_Specific_Dispatching pragmas.
10796 Document new BD flag for elaborate body desirable
10798 * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
10801 2006-10-31 Javier Miranda <miranda@adacore.com>
10803 * a-tags.ads, a-tags.adb:
10804 (Predefined_DT): New function that improves readability of the code.
10805 (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
10806 Inherit_DT): Use the new function Predefined_DT to improve code
10808 (Register_Interface_Tag): Update assertion.
10809 (Set_Interface_Table): Update assertion.
10810 (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
10811 determining progenitor interfaces in Tags.
10812 (Inherit_CPP_DT): New subprogram.
10814 * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
10815 analysis of the thunk code.
10816 (Expand_Interface_Conversion): Handle run-time conversion of
10817 access to class wide types.
10818 (Expand_Dispatching_Call): When generating the profile for the
10819 subprogram itype for a dispatching operation, properly terminate the
10820 formal parameters chaind list (set the Next_Entity of the last formal
10822 (Collect_All_Interfaces): Removed. This routine has been moved to
10823 sem_util and renamed as Collect_All_Abstract_Interfaces.
10824 (Set_All_DT_Position): Hidden entities associated with abstract
10825 interface primitives are not taken into account in the check for
10826 3.9.3(10); this check is done with the aliased entity.
10827 (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
10828 interfacing with CPP by default.
10829 (Expand_Interface_Conversion): Add missing support for static conversion
10830 from an interface to a tagged type.
10831 (Collect_All_Interfaces): Add new out formal containing the list of
10832 abstract interface types to cleanup the subprogram Make_DT.
10833 (Make_DT): Update the code to generate the table of interfaces in case
10834 of abstract interface types.
10835 (Is_Predefined_Dispatching_Alias): New function that returns true if
10836 a primitive is not a predefined dispatching primitive but it is an
10837 alias of a predefined dispatching primitive.
10838 (Make_DT): If the ancestor of the type is a CPP_Class and we are
10839 compiling under full ABI compatibility mode we avoid the generation of
10840 calls to run-time services that fill the dispatch tables because under
10841 this mode we currently inherit the dispatch tables in the IP subprogram.
10842 (Write_DT): Emit an "is null" indication for a null procedure primitive.
10843 (Expand_Interface_Conversion): Use an address as the type of the formal
10844 of the internally built function that handles the case in which the
10845 target type is an access type.
10847 2006-10-31 Robert Dewar <dewar@adacore.com>
10849 * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
10851 2006-10-31 Robert Dewar <dewar@adacore.com>
10853 * bindusg.ads, bindusg.adb:
10854 Change to package and rename procedure as Display, which
10855 now ensures that it only outputs usage information once.
10857 2006-10-31 Jose Ruiz <ruiz@adacore.com>
10859 * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
10862 * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
10865 2006-10-31 Robert Dewar <dewar@adacore.com>
10866 Ed Schonberg <schonberg@adacore.com>
10868 * treepr.adb: Use new subtype N_Membership_Test
10870 * checks.ads, checks.adb: Add definition for Validity_Check
10871 (Range_Or_Validity_Checks_Suppressed): New function
10872 (Ensure_Valid): Test Validity_Check suppressed
10873 (Insert_Valid_Check): Test Validity_Check suppressed
10874 (Insert_Valid_Check): Preserve Do_Range_Check flag
10875 (Validity_Check_Range): New procedure
10876 (Expr_Known_Valid): Result of membership test is always valid
10877 (Selected_Range_Checks): Range checks cannot be applied to discriminants
10878 by themselves. Disabling those checks must also be done for task types,
10879 where discriminants may be used for the bounds of entry families.
10880 (Apply_Address_Clause_Check): Remove side-effects if address expression
10881 is non-static and is not the name of a declared constant.
10882 (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
10883 Code cleanup and new error messages.
10884 (Enable_Range_Check): Test for some cases of suppressed checks
10885 (Generate_Index_Checks): Suppress index checks if index checks are
10886 suppressed for array object or array type.
10887 (Apply_Selected_Length_Checks): Give warning for compile-time detected
10888 length check failure, even if checks are off.
10889 (Ensure_Valid): Do not generate a check on an indexed component whose
10890 prefix is a packed boolean array.
10891 * checks.adb: (Alignment_Checks_Suppressed): New function
10892 (Apply_Address_Clause_Check): New procedure, this is a completely
10893 rewritten replacement for Apply_Alignment_Check
10894 (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
10895 we request a discriminal value only in case of discriminants.
10896 (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
10897 assignments where the target subtype is unconstrained and the target
10898 object is a parameter or dereference (other aliased cases are known
10899 to be unconstrained).
10901 2006-10-31 Robert Dewar <dewar@adacore.com>
10903 * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
10904 prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
10905 vms_conv.adb: Fix bad table increment values (much too small)
10907 * table.adb (Realloc): Make sure we get at least some new elements
10908 Defends against silly small values for table increment
10910 2006-10-31 Robert Dewar <dewar@adacore.com>
10911 Ed Schonberg <schonberg@adacore.com>
10912 Bob Duff <duff@adacore.com>
10914 * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
10915 entities. Move other fields around to make this possible
10916 (Is_Derived_Type): Add missing call to Is_Type.
10917 (Extra_Formals): New function for subprograms, entries, subprogram
10919 (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
10920 (First_Formal_With_Extras): New function for subprogs, entries, subp
10922 (Write_Field28_Name): New procedure for node display of "Extra_Formals".
10923 Add node information for E_Return_Statement.
10924 (Elaborate_Body_Desirable): New flag
10925 (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
10926 to be Is_Inherently_Limited_Type, because return-by-reference has
10927 no meaning in Ada 2005.
10928 (E_Return_Statement): New entity kind.
10929 (Return_Applies_To): Field of E_Return_Statement.
10930 (Is_Return_Object): New flag in object entities.
10931 (Is_Dynamic_Scope): Make it True for E_Return_Statement.
10932 (Must_Have_Preelab_Init): New flag
10933 (Known_To_Have_Preelab_Init): New flag
10934 (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
10935 (Is_Visible_Formal): New flag on entities in formal packages.
10936 (Low_Bound_Known): New flag
10937 (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
10939 (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
10940 output when Id is an incomplete subtype.
10942 2006-10-31 Robert Dewar <dewar@adacore.com>
10944 * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
10945 Avoid abbreviation Creat
10946 (Finalize): List all sources in extended mail source if -gnatl
10948 Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
10949 (Finalize): Implement new -gnatl=xxx switch to output listing to file
10950 (Set_Specific_Warning_On): New procedure
10951 (Set_Specific_Warning_Off): New procedure
10952 Add implementation of new insertion \\
10953 (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
10954 (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
10956 (Error_Msg_Internal): Make sure that we set Last_Killed to
10957 True when a message from another package is suppressed.
10958 Implement insertion character ~ (insert string)
10959 (First_Node): Minor adjustments to get better placement.
10962 Implement new -gnatl=xxx switch to output listing to file
10965 Implement new -gnatl=xxx switch to output listing to file
10967 * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
10968 (Commands_To_Stdout): New flag
10969 Implement new -gnatl=xxx switch to output listing to file
10970 New switch Dump_Source_Text
10971 (Warn_On_Deleted_Code): New warning flag for -gnatwt
10972 Define Error_Msg_Line_Length
10973 (Warn_On_Assumed_Low_Bound): New switch
10975 * osint.ads, osint.adb
10976 (Normalize_Directory_Name): Fix bug.
10977 Implement new -gnatl=xxx switch to output listing to file
10978 (Concat): Removed, replaced by real concatenation
10979 Make use of concatenation now allowed in compiler
10980 (Executable_Prefix.Get_Install_Dir): First get the full path, so that
10981 we find the 'lib' or 'bin' directory even when the tool has been
10982 invoked with a relative path.
10983 (Executable_Name): New function taking string parameters.
10985 * osint-c.ads, osint-c.adb:
10986 Implement new -gnatl=xxx switch to output listing to file
10988 * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
10991 Implement new -gnatl=xxx switch to output listing to file
10992 Recognize new -gnatL switch
10993 (no longer keep in old warning about old style usage)
10994 Use concatenation to simplify code
10995 Recognize -gnatjnn switch
10996 (Scan_Front_End_Switches): Clean up handling of -gnatW
10997 (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
10999 2006-10-31 Robert Dewar <dewar@adacore.com>
11001 * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
11002 (Set_Specific_Warning_Off): New procedure
11003 (Warning_Specifically_Suppressed): New function
11004 (Validate_Specific_Warnings): New procedure
11005 (Output_Msg_Text): Complete rewrite to support -gnatjnn
11007 * err_vars.ads: Implement insertion character ~ (insert string)
11009 2006-10-31 Bob Duff <duff@adacore.com>
11010 Ed Schonberg <schonberg@adacore.com>
11012 * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
11013 the parent part is a build-in-place function call, generate assignments.
11014 (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
11015 are build-in-place function calls.
11016 (Replace_Self_Reference): New subsidiary of
11017 Make_OK_Assignment_Statement, to replace an access attribute that is a
11018 self-reference into an access to the appropriate component of the
11019 target object. Generalizes previous mechanism to handle self-references
11020 nested at any level.
11021 (Is_Self_Referential_Init): Remove, not needed.
11022 (Is_Self_Referential_Init): New predicate to simplify handling of self
11023 referential components in record aggregates.
11024 (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
11025 check for presence of entity before checking for self-reference.
11026 (Has_Default_Init_Comps): Return True if a component association is a
11027 self-reference to the enclosing type, which can only come from a
11028 default initialization.
11029 (Make_OK_Assignment_Statement): If the expression is of the form
11030 Typ'Acc, where Acc is an access attribute, the expression comes from a
11031 default initialized self-referential component.
11032 (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
11033 that has been derived from several abstract interfaces we must also
11034 initialize the tags of the secondary dispatch tables.
11036 2006-10-31 Ed Schonberg <schonberg@adacore.com>
11037 Thomas Quinot <quinot@adacore.com>
11038 Javier Miranda <miranda@adacore.com>
11039 Robert Dewar <dewar@adacore.com>
11042 (Expand_Access_To_Protected_Op): If the context indicates that an access
11043 to a local operation may be transfered outside of the object, create an
11044 access to the wrapper operation that must be used in an external call.
11045 (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
11046 target, pass the Valid attribute applied to a floating-point prefix on
11047 to the back end without expansion.
11048 (Storage_Size): Use the new run-time function Storage_Size to retrieve
11049 the allocated storage when it is specified by a per-object expression.
11050 (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
11051 Nothing to do here, the attribute has been rewritten during semantic
11053 (Expand_Attribute_Reference): Handle expansion of the new Priority
11055 (Find_Fat_Info): Handle case of universal real
11056 (Expand_Access_To_Protected_Op): Fix use of access to protected
11057 subprogram from inside the body of a protected entry.
11058 (Expand_Access_To_Protected_Op): Common procedure for the expansion of
11059 'Access and 'Unrestricted_Access, to transform the attribute reference
11060 into a fat pointer.
11061 (Is_Constrained_Aliased_View): New predicate to help determine whether a
11062 subcomponent's enclosing variable is aliased with a constrained subtype.
11063 (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
11064 test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
11065 an aliased prefix must be known to be constrained in order to use True
11066 for the attribute value, and now it's possible for some aliased views
11067 to be unconstrained.
11069 2006-10-31 Robert Dewar <dewar@adacore.com>
11071 * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
11072 (Expand_Entity_Reference): Correct error of not handling subprogram
11073 formals in current_value processing.
11075 2006-10-31 Javier Miranda <miranda@adacore.com>
11076 Robert Dewar <dewar@adacore.com>
11077 Ed Schonberg <schonberg@adacore.com>
11078 Gary Dismukes <dismukes@adacore.com>
11080 * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
11081 register in the final list objects containing class-wide interfaces;
11082 otherwise we incorrectly register the tag of the interface in the final
11084 (Make_Controlling_Function_Wrappers): Add missing barrier to do not
11085 generate the wrapper if the parent primitive is abstract. This is
11086 required to report the correct error message.
11087 (Expand_N_Subtype_Indication): Do validity checks on range
11088 (Clean_Task_Names): If an initialization procedure includes a call to
11089 initialize a task (sub)component, indicate that the procedure will use
11090 the secondary stack.
11091 (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
11092 compatibility for interfacing with CPP by default.
11093 (Expand_N_Object_Declaration): Only build an Adjust call when the
11094 object's type is a nonlimited controlled type.
11095 * exp_ch3.adb: Add with and use of Exp_Ch6.
11096 (Expand_N_Object_Declaration): Check for object initialization that is a
11097 call to build-in-place function and apply Make_Build_In_Place_Call_In_
11098 Object_Declaration to the call.
11099 (Freeze_Type): When the designated type of an RACW was not frozen at the
11100 point where the RACW was declared, validate the primitive operations
11101 with respect to E.2.2(14) when it finally is frozen.
11102 (Build_Initialization_Call,Expand_Record_Controller): Rename
11103 Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
11104 return-by-reference has no meaning in Ada 2005.
11105 (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
11106 to register tag of the immediate ancestor interfaces in the
11107 run-time structure.
11108 (Init_Secondary_Tags): Moved to the specification to allow the
11109 initialization of extension aggregates with abstract interfaces.
11110 (Build_Master_Renaming): Make public, for use by function declarations
11111 whose return type is an anonymous access type.
11112 (Freeze_Record_Type): Replace call to Insert_List_Before by call to
11113 Insert_List_Before_And_Analyze after the generation of the specs
11114 associated with null procedures.
11115 (Expand_Tagged_Root): Update documentation in its specification.
11116 (Init_Secondary_Tags): Update documentation.
11117 (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
11118 tibility mode and the immediate ancestor is a CPP_Pragma tagged type
11119 then generate code to inherit the contents of the dispatch table
11120 directly from the ancestor.
11121 (Expand_Record_Controller): Insert controller component after tags of
11122 implemented interfaces.
11123 (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
11124 create null procedure overridings when null procedures are inherited
11126 (Make_Null_Procedure_Specs): New procedure to generate null procedure
11127 declarations for overriding null primitives inherited from interfaces.
11128 (Is_Null_Interface_Procedure): New function in
11129 Make_Null_Procedure_Specs.
11130 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
11131 immediate ancestor of a tagged type is an abstract interface type we
11132 must generate the specification of the predefined primitives associated
11133 with controlled types (because the dispatch table of the ancestor is
11134 null and hence these entries cannot be inherited). This is required to
11135 elaborate well the dispatch table.
11137 2006-10-31 Javier Miranda <miranda@adacore.com>
11138 Ed Schonberg <schonberg@adacore.com>
11139 Bob Duff <duff@adacore.com>
11140 Gary Dismukes <dismukes@adacore.com>
11141 Robert Dewar <dewar@adacore.com>
11143 * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
11145 (Expand_N_In): Do validity checks on range
11146 (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
11147 (Expand_N_Allocator): For "new T", if the object is constrained by
11148 discriminant defaults, allocate the right amount of memory, rather than
11149 the maximum for type T.
11150 (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
11151 when the allocator is initialized by a build-in-place call, since the
11152 allocator is already rewritten as a reference to the function result,
11153 and this prevents an unwanted duplication of the function call.
11154 Add with and use of Exp_Ch6.
11155 (Expand_Allocator_Expresssion): Check for an allocator whose expression
11156 is a call to build-in-place function and apply
11157 Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
11158 untagged designated types).
11159 (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
11160 optimization if source or target is biased.
11161 (Expand_N_Allocator): Add comments for case of an allocator within a
11162 function that returns an anonymous access type designating tasks.
11163 (Expand_N_Allocator): apply discriminant checks for access
11164 discriminants of anonymous access types (AI-402, AI-416)
11166 2006-10-31 Bob Duff <duff@adacore.com>
11167 Robert Dewar <dewar@adacore.com>
11168 Gary Dismukes <dismukes@adacore.com>
11169 Ed Schonberg <schonberg@adacore.com>
11171 * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
11173 * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
11174 (Expand_N_Assignment_Statement): Call
11175 Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
11176 build-in-place function call. Currently, this can happen only for
11177 assignments that come from aggregates.
11178 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
11179 in order to alleviate the upward compatibility introduced by AI-318.
11180 (Expand_N_Extended_Return_Statement): Add support for handling the
11181 return object as a build-in-place result.
11182 (Expand_Non_Function_Return): Implement simple return statements nested
11183 within an extended return.
11184 (Enable_New_Return_Processing): Turn on the new processing of return
11186 (Expand_Non_Function_Return): For a return within an extended return,
11187 don't raise Program_Error, because Sem_Ch6 now gives a warning.
11188 (Expand_N_Extended_Return_Statement): Implement AI-318
11189 (Expand_Simple_Function_Return): Ditto.
11190 (Expand_N_If_Statement): Handle new -gnatwt warning
11191 (Expand_N_Case_Statement): Handle new -gnatwt warning
11192 (Expand_N_Assignment): Handle assignment to the Priority attribute of
11193 a protected object.
11194 (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
11195 validity checking of assignments to elementary record components.
11196 (Expand_N_Return_Statement): return Class Wide types on the secondary
11197 stack independantly of their controlled status since with HIE runtimes,
11198 class wide types are not potentially controlled anymore.
11200 * expander.adb (Expand): Add case for new N_Extended_Return_Statement
11203 * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
11204 Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
11205 it expects a block, procedure, or task. The return statement will get
11206 turned into a block, and Expand_Cleanup_Actions will happen then.
11208 2006-10-31 Robert Dewar <dewar@adacore.com>
11209 Ed Schonberg <schonberg@adacore.com>
11210 Bob Duff <duff@adacore.com>
11211 Gary Dismukes <dismukes@adacore.com>
11213 * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
11215 (Expand_Inlined_Call): Tagged types are by-reference types, and
11216 therefore should be replaced by a renaming declaration in the expanded
11217 body, as is done for limited types.
11218 (Expand_Call): If this is a call to a function with dispatching access
11219 result, propagate tag from context.
11220 (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
11222 (Make_Build_In_Place_Call_In_Assignment): New procedure to do
11223 build-in-place when the right-hand side of an assignment is a
11224 build-in-place function call.
11225 (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
11226 of the explicit dereference of the allocator to the result subtype of
11227 the build-in-place function. This is needed to satisfy type checking
11228 in cases where the caller's return object is created by an allocator for
11229 a class-wide access type and the type named in the allocator is a
11231 (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
11232 conversion of the reference to the declared object to the result subtype
11233 of the build-in-place function. This is needed to satisfy type checking
11234 in cases where the declared object has a class-wide type. Also, in the
11235 class-wide case, change the type of the object entity to the specific
11236 result subtype of the function, to avoid passing a class-wide object
11237 without explicit initialization to the back end.
11238 (Register_Interface_DT_Entry): Moved outside the body of
11239 Freeze_Subprogram because this routine is now public; it is called from
11240 Check_Dispatching_Overriding to handle late overriding of abstract
11241 interface primitives.
11242 (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
11243 adding an implicit access actual on a call to a build-in-place function.
11244 (Expand_Actuals): Test for an actual parameter that is a call to a
11245 build-in-place function and apply
11246 Make_Build_In_Place_Call_In_Anonymous_Context to the call.
11247 (Is_Build_In_Place_Function): New function to determine whether an
11248 entity is a function whose calls should be handled as build-in-place.
11249 (Is_Build_In_Place_Function_Call): New function to determine whether an
11250 expression is a function call that should handled as build-in-place.
11251 (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
11252 calls to build-in-place functions as the initialization of an allocator.
11253 (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
11254 handling calls to build-in-place functions in contexts that do not
11255 involve init of a separate object (for example, actuals of subprogram
11257 (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
11258 handling calls to build-in-place functions as the initialization of an
11259 object declaration.
11260 (Detect_Infinite_Recursion): Add explicit parameter Process to
11261 instantiation of Traverse_Body to avoid unreferenced warning.
11262 (Check_Overriding_Inherited_Interfaces): Removed.
11263 (Register_Interface_DT_Entry): Code cleanup.
11264 (Register_Predefined_DT_Entry): Code cleanup.
11265 (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
11266 inlined statements if within a transient scope.
11267 (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
11268 formal parameters with occurrences of actuals in inlined body, establish
11269 visibility on the proper view of the actual's subtype for the body's
11271 (Freeze_Subprogram): Do nothing if we are compiling under full ABI
11272 compatibility mode and we have an imported CPP subprogram because
11273 for now we assume that imported CPP primitives correspond with
11274 objects whose constructor is in the CPP side (and therefore we
11275 don't need to generate code to register them in the dispatch table).
11276 (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
11277 aligned selected component.
11278 (Add_Call_By_Copy_Node): Add missing code to handle the case in which
11279 the actual of an in-mode parameter is a type conversion.
11280 (Expand_Actuals): If the call does not come from source and the actual
11281 is potentially misaligned, let gigi handle it rather than rejecting the
11282 (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
11283 Class Wide types as returning by reference independantly of their
11284 controlled status since with HIE runtimes class wide types are not
11285 potentially controlled anymore.
11287 2006-10-31 Ed Schonberg <schonberg@adacore.com>
11289 * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
11290 references that are private components of the protected object.
11291 (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
11292 (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
11293 instantiation to deal with warnings.
11294 (Initialize_Protection): If expression for priority is non-static, use
11295 System_Priority as its expected type, in case the expression has not
11298 2006-10-31 Robert Dewar <dewar@adacore.com>
11300 * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
11301 initialization of Homonym_Len.
11302 (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
11303 names from fully qualified name. Fixes problem of duplicate
11304 external names differing only in the presence of such a block name.
11306 2006-10-31 Thomas Quinot <quinot@adacore.com>
11307 Pablo Oliveira <oliveira@adacore.com>
11309 * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
11310 subprogram Ids, even if they are not yet assigned.
11311 (Build_Subprogram_Id): It is now this function that will take care of
11312 calling Assign_Subprogram_Ids if necessary.
11313 (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
11314 should be done only once they are assigned.
11315 (Build_From_Any_Function, case of tagged types): Add missing call to
11317 (Corresponding_Stub_Type): New subprogram. Returns the associated stub
11318 type for an RACW type.
11319 (Add_RACW_Features): When processing an RACW declaration for which the
11320 designated type is already frozen, enforce E.2.2(14) rules immediately.
11321 (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
11322 special reordering of controlling formals.
11324 * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
11325 associated stub type for an RACW type.
11327 2006-10-31 Ed Schonberg <schonberg@adacore.com>
11329 * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
11330 fixed-point operations in an integer context, i.e. as operands of a
11331 conversion to an integer type, indicate that result must be rounded.
11333 2006-10-31 Robert Dewar <dewar@adacore.com>
11335 * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
11336 cases, pass the encoding method, since it is now required by the run
11339 * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
11340 assumption that Str'First = 1.
11341 (Value_Wide_Character): Takes EM (encoding method) parameter and passes
11342 it on to the Value_Wide_Wide_Character call.
11343 (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
11344 properly handles a string of the form quote-encoded_wide_char-quote.
11346 * s-wchcnv.adb: Minor reformatting
11348 2006-10-31 Javier Miranda <miranda@adacore.com>
11350 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
11351 run-time membership test to ensure that the constructed object
11352 implements the target abstract interface.
11354 2006-10-31 Robert Dewar <dewar@adacore.com>
11356 * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
11357 Machine_Attribute pragma internally to implement the user pragma.
11358 Add processing for pragma Interface so that it is now completely
11359 equivalent to pragma Import.
11361 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
11362 so that it can be applied to all entities, including record components
11363 and enumeration literals.
11364 (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
11365 priority ranges are correct, verify compatibility against task
11366 dispatching and locking policies, and if everything is correct an entry
11367 is added to the table containing priority specific dispatching entries
11368 for this compilation unit.
11369 (Delay_Config_Pragma_Analyze): Delay processing
11370 Priority_Specific_Dispatching pragmas because when processing the
11371 pragma we need to access run-time data, such as the range of
11372 System.Any_Priority.
11373 (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
11374 Allow pragma Unreferenced as a context item
11375 Add pragma Preelaborable_Initialization
11376 (Analyze_Pragma, case Interface): Interface is extended so that it is
11377 now syntactically and semantically equivalent to Import.
11378 (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
11379 insertion characters.
11380 Add handling for Pragma_Wide_Character_Encoding
11381 (Process_Restrictions_Restriction_Warnings): Ensure that a warning
11382 never supercedes a real restriction, and that a real restriction
11383 always supercedes a warning.
11384 (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
11387 2006-10-31 Bob Duff <duff@adacore.com>
11388 Ed Schonberg <schonberg@adacore.com>
11389 Robert Dewar <dewar@adacore.com>
11391 * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
11392 Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
11393 Is_Inherently_Limited_Type, because return-by-reference has no meaning
11395 (Find_Node_To_Be_Wrapped): Use new method of determining the result
11396 type of the function containing a return statement, because the
11397 Return_Type field was removed. We now use the Return_Applies_To field.
11399 * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
11400 (Build_Task_Image_Decl): If procedure is not called from an
11401 initialization procedure, indicate that function that builds task name
11402 uses the sec. stack. Otherwise the enclosing initialization procedure
11403 will carry the indication.
11404 (Insert_Actions): Remove N_Return_Object_Declaration. We now use
11405 N_Object_Declaration instead.
11406 (Kill_Dead_Code): New interface to implement -gnatwt warning for
11407 conditional dead code killed, and change implementation accordingly.
11408 (Insert_Actions): Add N_Return_Object_Declaration case.
11409 Correct comment to mention N_Extension_Aggregate node.
11410 (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
11411 attempts to save information for global variables which cannot be
11413 (Get_Current_Value_Condition): Handle conditions the other way round
11414 (constant on left). Also handle right operand of AND and AND THEN
11415 (Set_Current_Value_Condition): Corresponding changes
11416 (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
11417 (Get_Current_Value_Condition): Handle simple boolean operands
11418 (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
11419 (Get_Current_Value_Condition): If the variable reference is within an
11420 if-statement, does not appear in the list of then_statments, and does
11421 not come from source, treat it as being at unknown location.
11422 (Get_Current_Value_Condition): Enhance to allow while statements to be
11423 processed as well as if statements.
11424 (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
11426 (OK_To_Do_Constant_Replacement): Allow constant replacement within body
11427 of loop. This is safe now that we fixed Kill_Current_Values.
11428 (OK_To_Do_Constant_Replacement): Check whether current scope is
11429 Standard, before examining outer scopes.
11431 2006-10-31 Vincent Celier <celier@adacore.com>
11433 * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
11434 When True, apply VMS treatment to children of packages A, G, I and S.
11437 * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
11439 2006-10-31 Robert Dewar <dewar@adacore.com>
11440 Ed Schonberg <schonberg@adacore.com>
11442 * freeze.adb: Add handling of Last_Assignment field
11443 (Warn_Overlay): Supply missing continuation marks in error msgs
11444 (Freeze_Entity): Add check for Preelaborable_Initialization
11446 * g-comlin.adb: Add Warnings (Off) to prevent new warning
11448 * g-expect.adb: Add Warnings (Off) to prevent new warning
11450 * lib-xref.adb: Add handling of Last_Assignment field
11451 (Generate_Reference): Centralize handling of pragma Obsolescent here
11452 (Generate_Reference): Accept an implicit reference generated for a
11453 default in an instance.
11454 (Generate_Reference): Accept a reference for a node that is not in the
11455 main unit, if it is the generic body corresponding to an subprogram
11458 * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
11460 * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
11462 (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
11464 (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
11465 use clauses, to avoid messages on packages used to qualify, and also
11466 to avoid messages from obsolescent units.
11467 (Warn_On_Useless_Assignments): Don't generate messages for imported
11468 and exported variables.
11469 (Warn_On_Useless_Assignments): New procedure
11470 (Output_Obsolescent_Entity_Warnings): New procedure
11471 (Check_Code_Statement): New procedure
11473 * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
11474 Change name Is_Ada_2005 to Is_Ada_2005_Only
11475 (Last_Assignment): New field for useless assignment warning
11477 2006-10-31 Olivier Hainque <hainque@adacore.com>
11479 * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
11480 closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
11482 2006-10-31 Bob Duff <duff@adacore.com>
11483 Robert Dewar <dewar@adacore.com>
11484 Ed Schonberg <schonberg@adacore.com>
11486 * g-awk.adb (Default_Session, Current_Session): Compile this file in
11487 Ada 95 mode, because it violates the new rules for AI-318.
11489 * g-awk.ads: Use overloaded subprograms in every case where we used to
11490 have a default of Current_Session. This makes the code closer to be
11491 correct for both Ada 95 and 2005.
11493 * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
11494 code, relying on the fact that the compiler generates a warning
11495 instead of an error in -gnatg mode.
11497 * lib-xref.ads (Xref_Entity_Letters): Add entry for new
11498 E_Return_Statement entity kind.
11499 Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
11501 * par.adb (P_Interface_Type_Definition): Addition of one formal to
11502 report an error if the reserved word abstract has been previously found.
11503 (SS_End_Type): Add E_Return for new extended_return_statement syntax.
11505 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
11506 parenthesized range attribute usage
11507 (P_Expression_No_Right_Paren): Add missing comment about error recovery.
11509 * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
11510 in the syntax for extended_return_statement. This is not in the latest
11511 RM, but the ARG is expected to issue an AI allowing this.
11512 (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
11513 N_Return_Object_Declaration. We now use N_Object_Declaration instead.
11514 (P_Return_Object_Declaration, P_Return_Subtype_Indication,
11515 P_Return_Statement): Parse the new syntax for extended_return_statement.
11517 * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
11518 Output_End_Missing): Add error-recovery code for the new
11519 extended_return_statement syntax; that is, the new E_Return entry on
11522 * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
11523 limited to nonlimited, because otherwise we violate the new Ada 2005
11524 rules about returning limited types in function Create_AST_Handler in
11527 * sem.adb (Analyze): Add cases for new node kinds
11528 N_Extended_Return_Statement and N_Return_Object_Declaration.
11530 * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
11531 type is in the same category as type of context before applying check,
11532 to prevent anomalies in instantiations.
11533 (Resolve_Aggregate): Remove test for limited components in aggregates.
11534 It's unnecessary in Ada 95, because if it has limited components, then
11535 it must be limited. It's wrong in Ada 2005, because limited aggregates
11537 (Resolve_Record_Aggregate): Move check for limited types later, because
11538 OK_For_Limited_Init requires its argument to have been resolved.
11539 (Get_Value): When copying the component default expression for a
11540 defaulted association in an aggregate, use the sloc of the aggregate
11541 and not that of the original expression, to prevent spurious
11542 elaboration errors, when the expression includes function calls.
11543 (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
11544 were missing. We also didn't handle qualified expressions. Now also
11545 allow function calls. Use new common routine OK_For_Limited_Init.
11546 (Resolve_Extension_Aggregate): Minor fix to bad error message (started
11547 with space can upper case letter).
11549 * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
11550 Has_Static_Discriminants flag
11551 (Record_Type_Declaration): Diagnose an attempt to declare an interface
11552 type with discriminants.
11553 (Process_Range_Expr_In_Decl): Do validity checks on range
11554 (Build_Discriminant_Constraints): Use updated form of
11555 Denotes_Discriminant.
11556 (Process_Subtype): If the subtype is a private subtype whose full view
11557 is a concurrent subtype, introduce an itype reference to prevent scope
11559 (Build_Derived_Record_Type, Collect_Interface_Primitives,
11560 Record_Type_Declaration): The functionality of the subprograms
11561 Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
11562 is now performed by a single routine.
11563 (Build_Derived_Record_Type): If the type definition includes an explicit
11564 indication of limitedness, then the type must be marked as limited here
11565 to ensure that any access discriminants will not be treated as having
11566 a local anonymous access type.
11567 (Check_Abstract_Overriding): Issue a detailed error message when an
11568 abstract subprogram was not overridden due to incorrect mode of its
11570 (Analyze_Private_Extension_Declaration): Add support for the analysis of
11571 synchronized private extension declarations. Verify that the ancestor is
11572 a limited or synchronized interface or in the generic case, the ancestor
11573 is a tagged limited type or synchronized interface and all progenitors
11574 are either limited or synchronized interfaces.
11575 Derived_Type_Declaration): Check for presence of private extension when
11576 dealing with synchronized formal derived types.
11577 Process_Full_View): Enchance the check done on the usage of "limited" by
11578 testing whether the private view is synchronized.
11579 Verify that a synchronized private view is completed by a protected or
11581 (OK_For_Limited_Init_In_05): New function.
11582 (Analyze_Object_Declaration): Move check for limited types later,
11583 because OK_For_Limited_Init requires its argument to have been resolved.
11584 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
11585 in order to alleviate the upward compatibility introduced by AI-318.
11586 (Constrain_Corresponding_Record): If the constraint is for a component
11587 subtype, mark the itype as frozen, to avoid out-of-scope references to
11588 discriminants in the back-end.
11589 (Collect_Implemented_Interfaces): Protect the recursive algorithm of
11590 this subprogram against wrong sources.
11591 (Get_Discr_Value, Is_Discriminant): Handle properly references to a
11592 discriminant of limited type completed with a protected type, when the
11593 discriminant is used to constrain a private component of the type, and
11594 expansion is disabled.
11595 (Find_Type_Of_Object): Do not treat a return subtype that is an
11596 anonymous subtype as a local_anonymous_type, because its accessibility
11597 level is the return type of the enclosing function.
11598 (Check_Initialization): In -gnatg mode, turn the error "cannot
11599 initialize entities of limited type" into a warning.
11600 (OK_For_Limited_Init): Return true for generated nodes, since it
11601 sometimes violates the legality rules.
11602 (Make_Incomplete_Declaration): If the type for which an incomplete
11603 declaration is created happens to be the currently visible entity,
11604 preserve the homonym chain when removing it from visibility.
11605 (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
11606 inherited subprograms.
11607 (Access_Definition): If this is an access to function that is the return
11608 type of an access_to_function definition, context is a type declaration
11609 and the scope of the anonymous type is the current one.
11610 (Analyze_Subtype_Declaration): Add the defining identifier of a regular
11611 incomplete subtype to the set of private dependents of the original
11613 (Constrain_Discriminated_Type): Emit an error message whenever an
11614 incomplete subtype is being constrained.
11615 (Process_Incomplete_Dependents): Transform an incomplete subtype into a
11616 corresponding subtype of the full view of the original incomplete type.
11617 (Check_Incomplete): Properly detect invalid usage of incomplete types
11620 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
11622 * g-catiio.ads, g-catiio.adb (Value): New function.
11623 Given an input String, try and parse a valid Time value.
11625 2006-10-31 Vincent Celier <celier@adacore.com>
11627 * g-debpoo.adb (Is_Valid): Correctly compute Offset using
11628 Integer_Address arithmetic, as in Set_Valid.
11630 2006-10-31 Arnaud Charlet <charlet@adacore.com>
11631 Robert Dewar <dewar@adacore.com>
11633 * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
11634 handling executable extension manually and duplicating code.
11636 * make.adb: Implement new -S switch
11637 (Gnatmake): Use new function Osint.Executable_Name instead
11638 of handling executable extension manually.
11640 * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
11641 is specified, the executable name ends with this suffix.
11642 Take advantage of Osint.Executable_Name instead of duplicating code.
11644 * switch-m.adb: Recognize new gnatmake -S switch
11646 * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
11648 (Get_Target_Parameters): Set Executable_Extension_On_Target if
11651 * makeusg.adb: Add line for gnatmake -S switch
11653 2006-10-31 Vincent Celier <celier@adacore.com>
11655 * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
11656 call it with -static-libgcc, as there are some platforms, such as
11657 Darwin, where one of these two switches is compulsory to link.
11659 2006-10-31 Vincent Celier <celier@adacore.com>
11661 * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
11662 instead of ADA_PROJECT_PATH, for the project path.
11663 (Gnatls): When displaying the project path directories, use host dir
11666 * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
11667 names in the project path, as absolute paths may correspond to
11668 multi-valued VMS logical names.
11670 2006-10-31 Vincent Celier <celier@adacore.com>
11672 * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
11673 absolute path name.
11674 (Locate_Regular_File): Ditto
11675 (Change_Dir): Remove, no longer used
11676 (Normalize_Pathname): Do not use Change_Dir to get the drive letter
11677 on Windows. Get it calling Get_Current_Dir.
11678 (OpenVMS): Remove imported boolean, no longer needed.
11679 (Normalize_Pathname)[VMS]: Do not resolve directory names.
11680 (Pid_To_Integer): New function to convert a Process_Id to Integer
11682 2006-10-31 Thomas Quinot <quinot@adacore.com>
11684 * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
11685 sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
11687 (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
11690 2006-10-31 Robert Dewar <dewar@adacore.com>
11692 * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
11693 initial letter o as a zero.
11695 2006-10-31 Robert Dewar <dewar@adacore.com>
11697 * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
11699 2006-10-31 Robert Dewar <dewar@adacore.com>
11701 * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
11703 (Layout_Variant_Record): Retrieve the discriminants from the entity
11704 rather than from the type definition, because in the case of a full
11705 type for a private type we need to take the discriminants from the
11707 (Layout_Component_List): When applying the Max operator to variants with
11708 a nonstatic size, check whether either operand is static and scale that
11709 operand from bits to storage units before applying Max.
11710 (Layout_Type): In VMS, if a C-convention access type has no explicit
11711 size clause (and does not inherit one in the case of a derived type),
11712 then the size is reset to 32 from 64.
11714 2006-10-31 Vincent Celier <celier@adacore.com>
11716 * lib-load.adb (Load_Unit): Skip the test for a unit not found when
11717 its file has already been loaded, according to the unit being loaded,
11718 not to the current value of Multiple_Unit_Index.
11720 2006-10-31 Thomas Quinot <quinot@adacore.com>
11721 Eric Botcazou <ebotcazou@adacore.com>
11722 Arnaud Charlet <charlet@adacore.com>
11724 * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
11725 (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
11727 (a-except.o): Pass it to the compiler.
11728 (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
11729 (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
11730 a-calend-mingw.adb version.
11732 * Makefile.rtl: Added s-dsaser.
11733 Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
11734 (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
11735 Ada.Dispatching.Round_Robin.
11736 Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
11738 * Make-lang.in: Remove all references to gt-ada-decl.h.
11739 Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
11741 Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
11742 Update dependencies.
11744 * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
11746 2006-10-31 Vincent Celier <celier@adacore.com>
11748 * mlib-utl.adb (Initialized): Remove, no longer used
11749 (Initialize): Remove, no longer used
11750 (Ar): If Ar_Exec is null, get the location of the archive builder and,
11751 if there is one, the archive indexer. Fail if the archive builder cannot
11753 (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
11756 2006-10-31 Ed Schonberg <schonberg@adacore.com>
11758 * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
11759 Process_Body_Clauses): If the context of a body includes a use clause
11760 for P.Q then a with_clause for P in the same body is not redundant,
11761 even if the spec also has a with_clause on P.
11762 Add missing continuation mark to error msg
11763 (Build_Limited_Views): A limited view of a type is tagged if its
11764 declaration includes a record extension.
11765 (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
11766 node, even if the subunit has errors. This avoids malfunction by
11767 Lib.Check_Same_Extended_Unit in the presence of syntax errors.
11768 (Analyze_Compilation_Unit): Add circuit to make sure we get proper
11769 generation of obsolescent messages for with statements (cannot do
11770 this too early, or we cannot implement avoiding the messages in the
11771 case of obsolescent units withing obsolescent units).
11772 (Install_Siblings): If the with_clause is on a remote descendant of
11773 an ancestor of the current compilation unit, find whether there is
11774 a sibling child unit that is immediately visible.
11775 (Remove_Private_With_Clauses): New procedure, invoked after completing
11776 the analysis of the private part of a nested package, to remove from
11777 visibility the private with_clauses of the enclosing package
11779 (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
11780 now centralized in Generate_Reference.
11781 (Install_Limited_Context_Clauses): Remove superfluous error
11782 message associated with unlimited view visible through use
11783 and renamings. In addition, at the point in which the error
11784 is reported, we add the backslash to the text of the error
11785 to ensure that it is reported as a single error message.
11786 Use new // insertion for some continuation messages
11787 (Expand_Limited_With_Clause): Use copy of name rather than name itself,
11788 to create implicit with_clause for parent unit mentioned in original
11789 limited_with_clause.
11790 (Install_Limited_With_Unit): Set entity of parent identifiers if the
11791 unit is a child unit. For ASIS queries.
11792 (Analyze_Subunit): If the subunit appears within a child unit, make all
11793 ancestor child units directly visible again.
11795 2006-10-31 Robert Dewar <dewar@adacore.com>
11797 * par-ch10.adb (P_Context_Clause): Minor error message fix
11799 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
11800 Javier Miranda <miranda@adacore.com>
11802 * par-ch12.adb: Grammar update and cleanup.
11803 (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
11804 support for synchronized derived type definitions.
11805 Add the new actual Abstract_Present to every call to
11806 P_Interface_Type_Definition.
11807 (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
11808 a formal object declaration with an access definition or a subtype mark
11809 with a null exclusion.
11810 (P_Generic_Association): Handle association with box, and others_choice
11811 with box, to support Ada 2005 partially parametrized formal packages.
11813 2006-10-31 Robert Dewar <dewar@adacore.com>
11814 Javier Miranda <miranda@adacore.com>
11816 * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
11817 (P_Type_Declaration): Remove barrier against the reserved word "limited"
11818 after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
11819 (P_Type_Declaration): Minor code cleanup. Add support for synchronized
11820 private extensions.
11821 (P_Type_Declaration): Add the new actual Abstract_Present to every call
11822 to P_Interface_Type_Definition.
11823 (P_Interface_Type_Definition): Addition of one formal to report an error
11824 if the reserved word abstract has been previously found.
11825 (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
11826 object renaming declaration with an access definition or subtype mark
11827 with a possible null exclusion.
11829 * par-ch9.adb: Minor error msg fix
11831 * par-load.adb: Add missing continuation mark to error msg
11833 * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
11835 2006-10-31 Vincent Celier <celier@adacore.com>
11837 * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
11838 unknown attribute in unknown package or in package that does not need
11840 (Parse_Package_Declaration): Do not issue warning for unknown package in
11843 2006-10-31 Vincent Celier <celier@adacore.com>
11845 * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
11846 (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
11849 2006-10-31 Vincent Celier <celier@adacore.com>
11851 * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
11852 on VMS, change "__" to '.' before checking the name.
11853 (Record_Ada_Source): Always add the source file name in the list of
11854 of sources, even if it is not the first time, as it is for another
11856 (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
11857 dot, instead of replacing only the first '_'.
11859 * prj-part.adb (Parse): Convert project file path to canonical form
11861 * prj-proc.adb (Recursive_Process): Make sure that, when a project is
11862 extended, the project id of the project extending it is recorded in its
11863 data, even when it has already been processed as an imported project.
11865 2006-10-31 Robert Dewar <dewar@adacore.com>
11867 * repinfo.adb (List_Entities): Don't list entities from renaming
11870 2006-10-31 Arnaud Charlet <charlet@adacore.com>
11871 Robert Dewar <dewar@adacore.com>
11873 * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
11874 only a restriction warning is active for the given restriction. This is
11875 desirable because we do not want to modify code in the case where only
11877 (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
11878 causes overriding of real restrictions.
11879 Take advantage of new No_Restrictions constant.
11881 * raise.h: (__gnat_set_globals): Change profile.
11883 2006-10-31 Arnaud Charlet <charlet@adacore.com>
11885 * rtsfind.adb: Remove s-polint from comment as it exists no more.
11888 Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
11889 Move all the entities in obsolete package System.PolyORB_Interface to
11890 System.Partition_Interface.
11891 (RE_Storage_Size): New function in System.Tasking.
11892 (RE_Get_Ceiling): New entity.
11893 (RE_Set_Ceiling): New entity.
11894 (RO_PE_Get_Ceiling): New entity.
11895 (RO_RE_Set_Ceiling): New entity.
11896 (Inherit_CPP_DT): New entity
11898 2006-10-31 Robert Dewar <dewar@adacore.com>
11900 * scng.adb (Scan, case of numeric literal): Better msg for identifier
11901 starting with a digit.
11903 2006-10-31 Ed Schonberg <schonberg@adacore.com>
11904 Thomas Quinot <quinot@adacore.com>
11905 Javier Miranda <miranda@adacore.com>
11906 Gary Dismukes <dismukes@adacore.com>
11908 * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
11909 properly an attempt to apply Unchecked_Access to a protected operation.
11910 (OK_Self_Reference): New subprogram to check the legality of an access
11911 attribute whose prefix is the type of an enclosing aggregate.
11912 Generalizes previous mechanism to handle attribute references nested
11913 arbitrarily deep within the aggregate.
11914 (Analyze_Access_Attribute): An access attribute whose prefix is a type
11915 can appear in an aggregate if this is a default-initialized aggregate
11916 for a self-referential type.
11917 (Resolve_Attribute, case Access): Ditto.
11918 Add support for new implementation defined attribute Stub_Type.
11919 (Eval_Attribute, case Attribute_Stub_Type): New case.
11920 (Analyze_Attribute, case Attribute_Stub_Type): New case.
11921 (Stream_Attribute_Available): Implement using new subprogram from
11922 sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
11923 Has_Specified_Stream_Attribute flag.
11924 Disallow Storage_Size and Storage_Pool for access to subprogram
11925 (Resolve_Attribute, case 'Access et al): Take into account anonymous
11926 access types of return subtypes in extended return statements. Remove
11927 accessibility checks on anonymous access types when Unchecked_Access is
11929 (Analyze_Attribute): Add support for the use of 'Class to convert
11930 a class-wide interface to a tagged type.
11931 Add support for the attribute Priority.
11932 (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
11933 whether the designated type is discriminated with a constrained partial
11934 view and require static matching in that case.
11935 Add local variable Des_Btyp. The Designated_Type
11936 of an access to incomplete subtype is either its non-limited view if
11937 coming from a limited with or its etype if regular incomplete subtype.
11939 * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
11940 Fix predicate to identify and allow cases of (expander-generated)
11941 references to tag of designated object of a RACW.
11942 (Validate_Static_Object_Name): In Ada 2005, a formal object is
11943 non-static, and therefore cannot appear as a primary in a preelaborable
11945 (Has_Stream_Attribute_Definition): New subprogram, abstracted from
11946 Has_Read_Write_Attributes.
11947 (Has_Read_Write_Attributes): Reimplement in termes of
11948 Has_Stream_Attribute_Definition.
11949 (Missing_Read_Write_Attributes): When checking component types in a
11950 record, unconditionally call Missing_Read_Write_Attributes recursively
11951 (remove guard checking for Is_Record_Type / Is_Access_Type).
11953 2006-10-31 Robert Dewar <dewar@adacore.com>
11955 * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
11956 useless assignments here and conditionalize it on absence of exception
11958 (Analyze_Exception_Handlers): Small code reorganization of error
11959 detection code, for new handling of formal packages.
11961 2006-10-31 Ed Schonberg <schonberg@adacore.com>
11962 Hristian Kirtchev <kirtchev@adacore.com>
11964 * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
11965 that has been constant-folded, preserve information of original tree,
11967 (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
11968 generated private extension declaration if the formal derived type is
11969 synchronized. Carry synchronized present over to the generated private
11971 (Validate_Derived_Type_Instance): Ensure that the actual of a
11972 synchronized formal derived type is a synchronized tagged type.
11973 (Instantiate_Formal_Package): When creating the instantiation used to
11974 validate the actual package of a formal declared without a box, check
11975 whether the formal itself depends on a prior actual.
11976 (Instantiate_Formal_Subprogram): Create new entities for the defining
11977 identifiers of the formals in the renaming declaration, for ASIS use.
11978 (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
11979 a renaming declaration or a subtype declaration for an actual in an
11980 instance, capture location information of declaration in generic, for
11982 (Instantiate_Formal_Package): Add comments on needed additional tests.
11983 AI-317 (partial parametrization) is fully implemented.
11984 (Validate_Private_Type_Instance): Add check for actual which
11985 must have preelaborable initialization
11986 Use new // insertion for some continuation messages
11987 (Analyze_Formal_Object_Declaration): Change usage of Expression to
11988 Default_Expression. Add type retrieval when the declaration has an
11989 access definition. Update premature usage of incomplete type check.
11990 (Check_Access_Definition): New subsidiary routine. Check whether the
11991 current compilation version is Ada 05 and the supplied node has an
11993 (Instantiate object): Alphabetize local variables. Handle the creation
11994 of new renaming declarations with respect to the kind of definition
11995 used - either an access definition or a subtype mark. Guard against
11996 unnecessary error message in the context of anonymous access types after
11997 they have been resolved. Add check for required null exclusion in a
11998 formal object declaration.
11999 (Switch_View): A private subtype of a non-private type needs to be
12000 switched (the base type can have been switched without its private
12001 dependents because of the last branch of Check_Private_View.
12002 (Check_Private_View): Do not recompute Base_Type (T), instead use cached
12004 (Instantiate_Type): Emit an error message whenever a class-wide type of
12005 a tagged incomplete type is used as a generic actual.
12006 (Find_Actual_Type): Extend routine to handle a component type in a child
12007 unit that is imported from a formal package in a parent.
12008 (Validate_Derived_Type_Instance): Check that analyzed formal and actual
12009 agree on constrainedness, rather than checking against ultimate ancestor
12010 (Instantiate_Subprogram_Body): Create a cross-reference link to the
12011 generic body, for navigation purposes.
12013 2006-10-31 Robert Dewar <dewar@adacore.com>
12014 Thomas Quinot <quinot@adacore.com>
12016 * sem_ch13.adb: Storage pool cannot be given for access to subprogram
12018 (New_Stream_Subprogram): When processing an attribute definition clause
12019 for a stream-oriented subprogram, record an entity node occurring at
12020 the point of clause to use for checking the visibility of the clause,
12021 as defined by 8.3(23) as amended by AI-195.
12022 (New_Stream_Subprogram): New procedure, factoring behaviour from both
12023 New_Stream_Function and New_Stream_Procedure.
12024 (New_Stream_Function, New_Stream_Procedure): Removed.
12025 (Analyze_Attribute_Definition_Clause, case Address): Check new
12026 Alignment_Check check
12028 2006-10-31 Ed Schonberg <schonberg@adacore.com>
12029 Javier Miranda <miranda@adacore.com>
12030 Robert Dewar <dewar@adacore.com>
12032 * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
12033 generate the same errors compiling under -gnatc.
12034 (Try_Object_Operation): If no candidate interpretation succeeds, but
12035 there is at least one primitive operation with the right name, report
12036 error in call rather than on a malformed selected component.
12037 (Analyze_Selected_Component): If the prefix is an incomplete type from
12038 a limited view, and the full view is available, use the full view to
12039 determine whether this is a prefixed call to a primitive operation.
12040 (Operator_Check): Verify that a candidate interpretation is a binary
12041 operation before checking the type of its second formal.
12042 (Analyze_Call): Add additional warnings for function call contexts not
12044 (Analyze_Allocator): Move the check for "initialization not allowed for
12045 limited types" after analyzing the expression. This is necessary,
12046 because OK_For_Limited_Init looks at the structure of the expression.
12047 Before analysis, we don't necessarily know what sort of expression it
12048 is. For example, we don't know whether F(X) is a function call or an
12049 indexed component; the former is legal in Ada 2005; the latter is not.
12050 (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
12051 were missing. We also didn't handle qualified expressions. Now also
12052 allow function calls. Use new common routine OK_For_Limited_Init.
12053 (Analyze_Type_Conversion): Do not perform some legality checks in an
12054 instance, because the error message will be redundant or spurious.
12055 (Analyze_Overloaded_Selected_Component): Do not do style check when
12056 setting an entity, since we do not know it is the right entity yet.
12057 (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
12058 (Analyze_Overloaded_Selected_Component): Same change
12059 (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
12060 since regular incomplete subtypes are transformed into corresponding
12061 subtypes of their full views.
12062 (Complete_Object_Operation): Treat name of transformed subprogram call
12063 as coming from source, for browsing purposes.
12064 (Try_Primitive_Operation): If formal is an access parameter, compare
12065 with base type of object to determine whether it is a primitive
12067 (Operator_Check): If no interpretation of the operator matches, check
12068 whether a use clause on any candidate might make the operation legal.
12069 (Try_Class_Wide_Operation): Check whether the first parameter is an
12070 access type whose designated type is class-wide.
12072 2006-10-31 Robert Dewar <dewar@adacore.com>
12073 Ed Schonberg <schonberg@adacore.com>
12074 Gary Dismukes <dismukes@adacore.com>
12076 * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
12077 warn on infinite loops.
12078 Add \\ to some continuation messages
12079 (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
12080 (Process_Bounds): If the bounds are integer literals that result from
12081 constant-folding, and they carry a user-defined type, preserve that type
12082 rather than treating this as an integer range.
12083 (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
12084 (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
12085 (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
12086 left hand side of assignment.
12087 (Analyze_Assignment): Add suport to manage assigments to the attribute
12088 priority of a protected object.
12089 (Check_Possible_Current_Value_Condition): Allow fully qualified names
12090 not just identifiers.
12091 (Check_Possible_Current_Value_Condition): Acquire left operand of AND
12092 or AND THEN for possible tracking.
12093 (Analyze_Iteration_Scheme): Check for setting Current_Value for the
12094 case of while loops so we can track values in the loop body.
12096 2006-10-31 Ed Schonberg <schonberg@adacore.com>
12097 Hristian Kirtchev <kirtchev@adacore.com>
12098 Bob Duff <duff@adacore.com>
12100 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
12101 procedure cannot be a protected operation (it is a basic_declaration,
12102 not a subprogram_declaration).
12103 (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
12104 Subp. Add logic for entry processing.
12105 (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
12106 Determine whether an entry or subprogram of a protected or task type
12107 override an inherited primitive of an implemented interface.
12108 (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
12109 Update the actual used in calls to Check_Overriding_Indicator.
12110 (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
12111 generate the proper reference to the parent unit, for cross-reference.
12112 (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
12114 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
12115 (Add_Extra_Formal): Revise procedure to allow passing in associated
12116 entity, scope, and name suffix, and handle setting of the new
12117 Extra_Formals field.
12118 (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
12119 pass new parameters. Add support for adding the new extra access formal
12120 for functions whose calls are treated as build-in-place.
12121 (Analyze_A_Return_Statement): Correct casing in error message.
12122 Move Pop_Scope to after Analyze_Function_Return, because an extended
12123 return statement really is a full-fledged scope. Otherwise, visibility
12124 doesn't work right. Correct use of "\" for continuation messages.
12125 (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
12126 evilly trying to call Analyze_Object_Declaration directly. Otherwise,
12127 the node doesn't get properly marked as analyzed.
12128 (Analyze_Subprogram_Body): If subprogram is a function that returns
12129 an anonymous access type that denotes a task, build a Master Entity
12131 (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
12132 proper usage of null exclusion in a result definition.
12133 (Process_Formals): Code cleanup and new error message.
12134 (Process_Formals): Detect incorrect application of null exclusion to
12136 (Conforming_Types): Handle conformance between [sub]types and itypes
12137 generated for entities that have null exclusions applied to them.
12138 (Maybe_Primitive_Operation): Add an additional type retrieval when the
12139 base type is an access subtype. This case arrises with null exclusions.
12140 (New_Overloaded_Entity): Do not remove the overriden entity from the
12141 homonym chain if it corresponds with an abstract interface primitive.
12142 (Process_Formals): Replace membership test agains Incomplete_Kind with a
12143 call to the synthesized predicate Is_Incomplete_Type.
12144 (Analyze_Subprogram_Body): Check wrong placement of abstract interface
12146 (Analyze_Subprogram_Declaration): Check that abstract interface
12147 primitives are abstract or null.
12148 (Analyze_Subprogram_Specification): Remove previous check for abstract
12149 interfaces because it was not complete.
12150 (Has_Interface_Formals): Removed.
12152 2006-10-31 Ed Schonberg <schonberg@adacore.com>
12153 Javier Miranda <miranda@adacore.com>
12155 * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
12156 of Analyze_Package_Body, to create Itype references for anonymous
12157 access types created in the package declaration, whose designated types
12158 may have only a limited view.
12159 (Analyze_Package_Specification): For the private part of a nested
12160 package, install private_with_clauses of enclosing compilation unit if
12161 we are in its visible part.
12162 (Declare_Inherited_Private_Subprograms): Complete barrier
12163 to ensure that the primitive operation has an alias to some parent
12164 primitive. This is now required because, after the changes done for the
12165 implementation of abstract interfaces, the contents of the list of
12166 primitives has entities whose alias attribute references entities of
12167 such list of primitives.
12168 (Analyze_Package_Specification): Simplify code that handles parent units
12169 of instances and formal packages.
12170 (Uninstall_Declarations): Check the convention consistency among
12171 primitive overriding operations of a tagged record type.
12173 2006-10-31 Robert Dewar <dewar@adacore.com>
12174 Hristian Kirtchev <kirtchev@adacore.com>
12175 Javier Miranda <miranda@adacore.com>
12176 Ed Schonberg <schonberg@adacore.com>
12178 * sem_ch8.adb: Minor error msg rewording
12179 (Undefined): When checking for misspellings, invert arguments (to get
12180 expected and found set right)
12181 (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
12182 (Analyze_Generic_Renaming): Same fix
12183 (Use_One_Package): Do not take into account the internal entities of
12184 abstract interfaces during the analysis of entities that are marked
12185 as potentially use-visible.
12186 (Find_Type): Handle the case of an attribute reference for
12187 implementation defined attribute Stub_Type (simply let the analysis of
12188 the attribute reference rewrite it).
12189 (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
12190 type that appears in a Use_Type clause.
12191 (Analyze_Object_Renaming): Add support for renaming of the Priority
12193 (Find_Type): In Ada 2005, a task type can be used within its own body,
12194 when it appears in an access definition.
12195 (Analyze_Object_Renaming): Remove warning on null_exclusion.
12196 (Analyze_Object_Renaming): Introduce checks for required null exclusion
12197 in a formal object declaration or in a subtype declaration.
12198 (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
12199 (Check_Null_Exclusion): New local routine to
12200 Analyze_Subprogram_Renaming. Check whether the formals and return
12201 profile of a renamed subprogram have required null exclusions when
12202 their counterparts of the renaming already impose them.
12203 (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
12204 Determine whether an entity is inside a generic scope.
12205 (In_Open_Scope): First pass of documentation update.
12206 (Find_Expanded_Name): Add support for shadow entities associated with
12207 limited withed packages. This is required to handle nested packages.
12208 (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
12209 that makes a renaming of a limited withed package illegal.
12211 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
12212 Ed Schonberg <schonberg@adacore.com>
12214 * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
12215 Check_Overriding_Indicator.
12216 (Analyze_Task_Definition): Ditto.
12217 (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
12218 (Check_Overriding_Indicator): To find overridden interface operation,
12219 examine only homonyms that have an explicit subprogram declaration, not
12220 inherited operations created by an unrelated type derivation.
12221 (Check_Overriding_Indicator): When checking for the presence of "null"
12222 in a procedure, ensure that the queried node is a procedure
12224 (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
12225 type when the formal is an access to variable.
12226 (Analyze_Protected_Type): Add check for Preelaborable_Initialization
12227 (Analyze_Task_Type): Same addition
12228 (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
12229 provide navigation capabilities for entries.
12231 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
12232 Ed Schonberg <schonberg@adacore.com>
12233 Javier Miranda <miranda@adacore.com>
12234 Gary Dismukes <dismukes@adacore.com>
12236 * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
12237 inherited from an interface ancestor by another interface in the
12238 context of an instance as 'late'.
12239 (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
12240 of a call to a function that dispatches on access result.
12241 (Check_Dispatching_Operation): In case of late overriding of a primitive
12242 that covers abstract interface subprograms we register it in all the
12243 secondary dispatch tables associated with abstract interfaces.
12244 (Check_Dispatching_Call): Add check that a dispatching call is not made
12245 to a function with a controlling result of a limited type. This is a
12246 current implementation restriction.
12247 (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
12248 (Check_Dispatching_Operation): Do no emit a warning if the controlling
12249 argument is an interface type that is a generic formal.
12250 (Is_Interface_Subprogram): Removed.
12251 (Check_Dispatching_Operation): If the subprogram is not a dispatching
12252 operation, check the formals to handle the case in which it is
12253 associated with an abstract interface type.
12255 2006-10-31 Robert Dewar <dewar@adacore.com>
12256 Ed Schonberg <schonberg@adacore.com>
12258 * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
12259 Add new calls to this procedure during traversal
12260 (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
12261 another unit if expansion is disabled.
12263 2006-10-31 Robert Dewar <dewar@adacore.com>
12265 * sem_eval.adb (Compile_Time_Compare): Make use of information from
12266 Current_Value in the conditional case, to evaluate additional
12267 comparisons at compile time.
12269 2006-10-31 Ed Schonberg <schonberg@adacore.com>
12270 Hristian Kirtchev <kirtchev@adacore.com>
12271 Javier Miranda <miranda@adacore.com>
12273 * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
12274 subprogram type to provide better diagnostics in case of ambiguity.
12275 (Covers): Handle coverage of formal and actual anonymous access types in
12276 the context of generic instantiation.
12277 (Covers/Interface_Present_In_Ancestors): Use the base type to manage
12278 abstract interface types; this is required to handle concurrent types
12279 with discriminants and abstract interface types.
12280 (Covers): Include type coverage of both regular incomplete subtypes and
12281 incomplete subtypes of incomplete type visibles through a limited with
12284 2006-10-31 Robert Dewar <dewar@adacore.com>
12285 Hristian Kirtchev <kirtchev@adacore.com>
12286 Ed Schonberg <schonberg@adacore.com>
12288 * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
12289 messages for entities in packages which are not used.
12290 (Collect_Synchronized_Interfaces): New procedure.
12291 (Overrides_Synchronized_Primitive): New function.
12292 (Denotes_Discriminant): Extend predicate to apply to task types.
12293 Add missing continuation marks in error msgs
12294 (Unqualify): New function for removing zero or more levels of
12295 qualification from an expression. There are numerous places where this
12296 ought to be used, but we currently only deal properly with zero or one
12298 (In_Instance); The analysis of the actuals in the instantiation of a
12299 child unit is not within an instantiation, even though the parent
12300 instance is on the scope stack.
12301 (Safe_To_Capture_Value): Exclude the case of variables that are
12303 (Check_Obsolescent): Removed
12304 (Is_Aliased_View): A reference to an enclosing instance in an aggregate
12305 is an aliased view, even when rewritten as a reference to the target
12306 object in an assignment.
12307 (Get_Subprogram_Entity): New function
12308 (Known_To_Be_Assigned): New function
12309 (Type_Access_Level): Compute properly the access level of a return
12310 subtype that is an anonymous access type.
12311 (Explain_Limited_Type): Correct use of "\" for continuation messages.
12312 (Is_Transfer): The new extended_return_statement causes a transfer of
12314 (Has_Preelaborable_Initialization): New function
12315 (Has_Null_Exclusion): New function. Given a node N, determine whether it
12316 has a null exclusion depending on its Nkind.
12317 Change Is_Lvalue to May_Be_Lvalue
12318 (May_Be_Lvalue): Extensive additional code to deal with subprogram
12319 arguments (IN parameters are not Lvalues, IN OUT parameters are).
12320 (Safe_To_Capture_Value): Extend functionality so it can be used for
12321 the current value condition case.
12322 (Has_Compatible_Alignment): New function
12323 (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
12324 objects to handle the Ada 2005 case, where aliasedness no longer implies
12325 that the object is constrained. In particular, for dereferenced names,
12326 the designated object must be assumed to be unconstrained.
12327 (Kill_Current_Values): Properly deal with the case where we encounter
12328 a loop in the scope chain.
12329 (Safe_To_Capture_Value): Do not let a loop stop us from capturing
12331 (Compile_Time_Constraint_Error): Improve error message in error case
12333 * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
12334 associated with entities of abstract interface primitives.
12335 Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
12337 2006-10-31 Robert Dewar <dewar@adacore.com>
12339 * s-osinte-tru64.adb:
12340 Mark Asm statements Volatile to prevent warnings (seems a
12341 reasonable change anyway)
12344 * s-mastop-irix.adb: Add Volatile to Asm statements
12345 Suppresses warning, and seems appropriate in any case
12347 * s-osinte-vms.adb: Add Volatile to Asm statement
12349 * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
12351 * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
12353 Add call to Check_Code_Statement
12355 2006-10-31 Robert Dewar <dewar@adacore.com>
12356 Ed Schonberg <schonberg@adacore.com>
12357 Bob Duff <duff@adacore.com>
12359 * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
12360 Synchronized_Present): Add Formal_Derived_Type_Definition and
12361 Private_Extension_Declaration to the list of assertions.
12362 (Is_Entry_Barrier_Function): New flag
12363 (Has_Self_Reference): New flag on aggregates, to indicate that they
12364 contain a reference to the enclosing type, inserted through a default
12366 (Next_Rep_Item): Move from Node4 to Node5.
12367 (Entity): Add this field for N_Attribute_Definition_Clause.
12368 (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
12369 (N_Return_Object_Declaration): Remove this node kind. We now use
12370 N_Object_Declaration instead.
12371 (Actual_Designated_Subtype): Move to a different place to make room in
12372 N_Extended_Return_Statement.
12373 (Procedure_To_Call): Move to a different place to make room in
12374 N_Extended_Return_Statement.
12375 (Return_Type): Removed this field to make room in return statements
12377 (Return_Statement_Entity): New field in return statements, in part to
12378 replace Return_Type, and in part to support the fact that return
12379 statements are now pushed on the scope stack during semantic analysis.
12380 (Return_Object_Declarations): New field to support extended return
12382 (N_Extended_Return_Statement): New node for extended_return_statement
12384 (N_Return_Object_Declaration): New node for part of
12385 extended_return_statement nonterminal. Needed because all the necessary
12386 fields won't fit in N_Extended_Return_Statement.
12387 Generic_associations now carry the Box_Present flag, to indicate a
12388 default for an actual in a partially parametrized formal package.
12390 * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
12391 (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
12392 and for the new predefined dispatching policies: EDF_Across_Priorities,
12393 Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
12394 Introduce new name Stub_Type for implementation defined attribute.
12395 Add pragma Preelaborable_Initialization
12396 Add entry for Priority attribute.
12397 Add Pragma_Wide_Character_Encoding
12398 (Get_Convention_Name): Given a convention id, this function returns the
12399 corresponding name id from the names table.
12401 2006-10-31 Ed Schonberg <schonberg@adacore.com>
12402 Robert Dewar <dewar@adacore.com>
12403 Bob Duff <duff@adacore.com>
12405 * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
12406 print null exclusion twice in the case of an access definition,
12407 Implement new -gnatL switch
12408 Remove N_Return_Object_Declaration. We now use
12409 N_Object_Declaration instead. Implement the case for
12410 N_Extended_Return_Statement. Alphabetize the cases.
12411 Add cases for new nodes N_Extended_Return_Statement and
12412 N_Return_Object_Declaration. The code is not yet written.
12413 Update the output for N_Formal_Object_Declaration
12414 and N_Object_Renaming_Declaration.
12415 (Write_Itype): Account for the case of a modular integer subtype whose
12416 base type is private.
12418 2006-10-31 Arnaud Charlet <charlet@adacore.com>
12420 * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
12421 Remove elaboration code, now done in the binder.
12423 * s-rident.ads: Make this unit Preelaborate.
12424 (No_Restrictions): New constant used to clean up code and follow
12425 preelaborate constraints.
12428 Add System.Restrictions dependence, referenced directly from the
12429 binder generated file.
12431 2006-10-31 Gary Dismukes <dismukes@adacore.com>
12433 * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
12434 True when AAMP extended floating-point is in use (48-bit). Change type
12435 ByteLF to ByteLLF, add new array type ByteLF and condition the size of
12436 the two byte array types on AFloat. Change type of IV_Ilf overlay
12437 variable from Byte8 to ByteLF. Add appropriate initializations of
12438 floating-point overlays for AAMP cases.
12440 2006-10-31 Javier Miranda <miranda@adacore.com>
12442 * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
12443 (Get_Ceiling): New subprogram that returns
12444 the ceiling priority of the protected object.
12445 (Set_Ceiling): New subprogram that sets the new ceiling priority of
12446 the protected object.
12448 * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
12450 * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
12452 2006-10-31 Jose Ruiz <ruiz@adacore.com>
12454 * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
12455 requeuing to the same protected object to give higher priority tasks
12456 the opportunity to execute.
12458 2006-10-31 Robert Dewar <dewar@adacore.com>
12460 * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
12461 add more precise check for the character sequence that follows '[' to
12462 avoid possible confusion in case if '[' is the last character of a
12464 (Scan_Wide): Always allow brackets encoding
12466 2006-10-31 Olivier Hainque <hainque@adacore.com>
12468 * s-stchop.ads: make this unit preelaborate. This is desirable in
12469 general and made mandatory by the use of this unit by s-taprop which
12470 is itself preelaborate.
12472 * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
12473 Td_Events component.
12475 2006-10-31 Vincent Celier <celier@adacore.com>
12477 * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
12480 2006-10-31 Vincent Celier <celier@adacore.com>
12482 * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
12484 2006-10-31 Vincent Celier <celier@adacore.com>
12486 * makegpr.adb (Check_Compilation_Needed): Take into account path names
12488 (Check_Compilation_Needed): When checking a C or C++ source, do not
12489 resolve symbolic links.
12490 (Display_Command): New Boolean parameter Ellipse, defaulted to False.
12491 When not in verbose mode and Ellipse is True, display "..." for the
12492 first argument with Display set to False.
12493 (Build_Global_Archive): Always set Display True for the first object
12494 file. Call Display_Command with Ellipse set to True.
12496 2006-10-31 Matt Heaney <heaney@adacore.com>
12498 * a-crbtgo.ads: Commented each subprogram
12500 * a-crbtgo.adb: Added reference to book from which algorithms were
12503 * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
12504 indicate which child.
12505 (Generic_Conditional_Insert): changed parameter name from "Success" to
12507 (Generic_Unconditional_Insert_With_Hint): improved algorithm
12509 * a-coorse.adb (Replace_Element): changed parameter name in call to
12510 conditional insert operation.
12512 * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
12514 * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
12517 * a-ciorse.adb (Replace_Element): changed parameter name in call to
12518 conditional insert operation.
12520 * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
12523 * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
12524 instead of mode inout.
12526 * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
12528 (Generic_Read): preserve existing buckets array if possible
12529 (Generic_Write): don't send buckets array length anymore
12531 * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
12532 instead of mode inout.
12534 * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
12535 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
12537 * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
12538 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
12539 (Replace_Element): local operation is now an instantiation
12541 * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
12542 check current length.
12543 (Generic_Replace_Element): new operation
12545 2006-10-31 Doug Rupp <rupp@adacore.com>
12547 * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
12548 Call TBK$SYMBOLIZE without omitting parameters.
12550 2006-10-31 Vincent Celier <celier@adacore.com>
12552 * symbols-processing-vms-ia64.adb,
12553 symbols-processing-vms-alpha.adb (Process): Do not include symbols
12554 that come from generic instantiations in bodies.
12556 2006-10-31 Pat Rogers <rogers@adacore.com>
12558 * a-rttiev.ads, a-rttiev.adb:
12559 This is a significant redesign primarily for the sake of automatic
12560 timer task termination but also to fix a design flaw.
12561 Therefore we are now using an RTS lock, instead of a protected
12562 object, to provide mutual exclusion to the queue of pending events
12563 and the type Timing_Event is no longer a protected type.
12565 2006-10-31 Robert Dewar <dewar@adacore.com>
12566 Cyrille Comar <comar@adacore.com>
12567 Ben Brosgol <brosgol@adacore.com>
12569 * debug.adb: Update flags documentation
12571 * gnat_ugn.texi: Add documentation for new -gnatwq switch
12572 Clean up documentation for several other warning switches
12573 Clarify how task stack size can be specified with various
12574 versions of Windows.
12575 Add note that -gnatVo includes ranges including loops
12576 Add documentation for -gnatL switch
12577 Add note on elaboration warning for initializing variables
12578 Add documentation for new -gnatwt warning switch
12579 Document new form of pragma Warnings (On|Off, string)
12580 Add comment on use of pragma Warnings to control warnings
12581 Add documentation for -gnatjnn switch
12582 Modify section on interfacing with C for VMS 64-bit.
12583 Add doc for -gnatVe/E
12584 Add documentation of new warning flags -gnatww/-gnatwW
12585 Add warnings about address clause overlays to list of warnings
12586 (Exception Handling Control): Document that the option --RTS must be
12587 used consistently for gcc and gnatbind.
12588 Clarify that inlining is not always possible
12589 Update documentation on pragma Unchecked_Union.
12592 Add documentation for new extended version of pragma Obsolescent
12593 Add documentation for implementation defined attribute 'Stub_Type.
12594 Add note on use of Volatile in asm statements
12595 Add documentation on use of pragma Unreferenced in context clause
12596 Document new form of pragma Warnings (On|Off, pattern)
12597 Document pragma Wide_Character_Encoding
12598 Add note that pragma Restrictions (No_Elaboration_Code) is only fully
12599 enforced if code generation is active.
12600 Add section on pragma Suppress to document GNAT specific check
12602 Clarify difference between No_Dispatching_Calls & No_Dispatch.
12603 Add documentation for pragma Restrictions (No_Elaboration_Code)
12606 Add comments on layout of subprogram local variables in the
12607 presence of nested subprograms.
12609 * ug_words: Resync.
12611 * elists.ads: Minor reformatting
12612 Node returns Node_Or_Entity_Id (doc change only)
12614 * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
12616 * g-arrspl.ads (Create): Update comments.
12618 * sem.ads: Add details on the handling of the scope stack.
12620 * usage.adb: Update documentation.
12622 * validsw.ads, validsw.adb:
12623 Add definition of Validity_Check_Components and implement -gnatVe/E
12625 * vms_data.ads: Add missing VMS qualifiers.
12627 * s-addope.ads: Add documentation on overflow and divide by zero
12629 2006-10-31 Robert Dewar <dewar@adacore.com>
12630 Thomas Quinot <quinot@adacore.com>
12631 Arnaud Charlet <charlet@adacore.com>
12633 * fmap.adb: Put routines in alpha order
12635 * g-boumai.ads: Remove redundant 'in' keywords
12637 * g-cgi.adb: Minor reformatting
12639 * g-cgi.ads: Remove redundant 'in' keywords
12641 * get_targ.adb: Put routines in alpha order
12643 * prj-attr.ads: Minor reformatting
12645 * s-atacco.ads: Minor reformatting
12647 * scn.adb: Put routines in alpha order
12649 * sinput-l.adb: Minor comment fix
12651 * sinput-p.adb: Minor comment fix
12653 * s-maccod.ads: Minor reformatting
12655 * s-memory.adb: Minor reformatting
12657 * s-htable.adb: Fix typo in comment.
12659 * s-secsta.adb: Minor comment update.
12661 * s-soflin.adb: Minor reformatting
12664 Add comment about odd qualification in Storage_Offset declaration
12667 Remove unnecessary 'in' keywords for formal parameters.
12669 * treeprs.adt: Minor reformatting
12671 * urealp.adb: Put routines in alpha order
12673 * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
12676 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
12678 * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
12680 * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
12681 workaround as on other platforms.
12683 * g-eacodu-vms.adb: Remove redundant 'in' keywords
12684 * g-expect-vms.adb: Remove redundant 'in' keywords
12686 * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
12687 clear error message if the list-of-files file cannot be opened.
12689 * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
12690 equality operator is always visible.
12692 * lang.opt: Woverlength-strings: New option.
12695 Update copyright, since nmake.ads and nmake.adb have changed.
12697 * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
12698 (Binder_Output_Time_Stamps_Set): removed.
12699 (Old_Binder_Output_Time_Stamp): idem.
12700 (New_Binder_Output_Time_Stamp): idem.
12701 (Recording_Time_From_Last_Bind): idem.
12702 (Recording_Time_From_Last_Bind): Make constant.
12704 * output.ads, output.adb (Write_Str): Allow LF characters
12705 (Write_Spaces): New procedure
12707 * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
12709 * inline.adb: Minor reformatting
12711 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
12713 * s-mastop-vms.adb: Remove redundant 'in' keywords
12715 * s-osprim-vms.adb: Remove redundant 'in' keywords
12717 * s-trafor-default.adb: Remove redundant 'in' keywords
12719 * 9drpc.adb: Remove redundant 'in' keywords
12721 * s-osinte-mingw.ads: Minor reformatting
12723 * s-inmaop-posix.adb: Minor reformatting
12725 * a-direio.ads: Remove quotes from Compile_Time_Warning message
12727 * a-exexda.adb: Minor code reorganization
12729 * a-filico.adb: Minor reformatting
12731 * a-finali.adb: Minor reformatting
12733 * a-nudira.ads: Remove quote from Compile_Time_Warning message
12735 * a-numeri.ads: Minor reformatting
12737 * a-sequio.ads: Remove quotes from Compile_Time_Warning message
12739 * exp_pakd.ads: Fix obsolete comment
12741 * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
12742 a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
12743 Probably not a bug, but certainly neater and more efficient.
12745 * a-tienio.adb: Minor reformatting
12747 * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
12748 Avoid assuming low bound of string is 1.
12750 * gnatbind.adb: Change Bindusg to package and rename procedure as
12751 Display, which now ensures that it only outputs usage information once.
12752 (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
12754 * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
12757 * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
12759 (Match): Add pragma Assert to ensure that Matches'First is zero
12761 * g-regpat.ads (Match): Document that Matches lower bound must be zero
12763 * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
12764 documented preconditions (also kills warnings about bad indexes).
12766 * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
12768 (Build_Import_Library): Ditto;
12770 * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
12772 * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
12774 * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
12775 lower bound of choice table is 1.
12777 * sem_case.ads (Analyze_Choices): Document that lower bound of
12780 * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
12783 * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
12784 and add appropriate Assert pragma to suppress warnings.
12786 * atree.h, atree.ads, atree.adb
12787 Change Elist24 to Elist25
12788 Add definitions of Field28 and Node28
12789 (Traverse_Field): Use new syntactic parent table in sinfo.
12791 * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
12793 * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
12795 * exp_tss.adb: Put routines in alpha order
12797 * fe.h: Remove redundant declarations.
12799 2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
12801 * utils.c (builtin_function): Rename to gnat_builtin_function.
12802 Move common code to add_builtin_function.
12803 * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
12804 gnat_builtin_function.
12805 * gigi.h (builtin_function): Rename to gnat_builtin_function.
12806 Change the signature.
12808 2006-10-16 Brooks Moses <bmoses@stanford.edu>
12810 * Makefile.in: Add TEXI2PDF definition.
12811 * Make-lang.in: Add "ada.pdf" target.
12813 2006-10-03 Kazu Hirata <kazu@codesourcery.com>
12815 * decl.c, utils.c: Fix comment typos.
12816 * utils.c: Fix a typo.
12818 2006-09-28 Eric Botcazou <ebotcazou@adacore.com>
12820 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
12821 on "pure" Ada subprograms if SJLJ exceptions are used.
12822 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
12823 on the declaration node of JMPBUF_SAVE.
12824 * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
12825 of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
12826 * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
12828 2006-08-20 Laurent Guerby <laurent@guerby.net>
12831 g-socket.adb (Bind_Socket): Call Set_Address.
12833 2006-09-15 Eric Botcazou <ebotcazou@adacore.com>
12836 * decl.c (same_discriminant_p): New static function.
12837 (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
12838 subtype and we have discriminants, fix up the COMPONENT_REFs
12839 for the discriminants to make them reference the corresponding
12840 fields of the parent subtype after it has been built.
12842 2006-09-15 Roger Sayle <roger@eyesopen.com>
12845 * utils.c (max_size): Perform constant folding of (A ? B : C) - D
12846 into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
12848 2006-09-13 Olivier Hainque <hainque@adacore.com>
12851 * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
12852 of a SAVE_EXPR, just make the operand addressable/not-readonly and
12853 let the common gimplifier code make and propagate a temporary copy.
12854 (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
12855 out/in-out actuals and defer setting the addressable/readonly bits
12858 2006-09-13 Eric Botcazou <ebotcazou@adacore.com>
12861 * decl.c (components_to_record): Defer emitting debug info for the
12862 record type associated with the variant until after we are sure to
12865 2006-09-13 Eric Botcazou <ebotcazou@adacore.com>
12868 * gigi.h (gnat_internal_attribute_table): Declare.
12869 * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
12870 * utils.c (gnat_internal_attribute_table): New global variable.
12871 (builtin_function): Always call decl_attributes on the builtin.
12872 (handle_const_attribute): New static function.
12873 (handle_nothrow_attribute): Likewise.
12875 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
12877 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
12879 2006-06-23 Olivier Hainque <hainque@adacore.com>
12881 * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
12882 not been able to get a constant upper bound from TYPE_SIZE_UNIT.
12884 2006-06-20 James A. Morrison <phython@gcc.gnu.org>
12885 Eric Botcazou <ebotcazou@adacore.com>
12888 * Make-lang.in: Add check-gnat to lang_checks. Rename existing
12889 check-gnat into check-acats.
12891 2006-06-17 Karl Berry <karl@gnu.org>
12893 * gnat-style.texi (@dircategory): Use "Software development"
12894 instead of "Programming", following the Free Software Directory.
12896 2006-06-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12899 * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
12901 2006-06-06 Laurent Guerby <laurent@guerby.net>
12904 mlib-utl.adb: Use Program_Name.
12906 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
12908 * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
12909 sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
12910 trans.c, utils.c: Fix comment typos. Follow spelling
12912 * gnat_rm.texi, gnat_ugn.texi, : Fix typos. Follow spelling
12915 2006-05-19 Nicolas Setton <setton@adacore.com>
12917 * misc.c (gnat_dwarf_name): New function.
12918 (LANG_HOOKS_DWARF_NAME): Define to it.
12920 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
12922 * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
12923 (ada/misc.o): Likewise.
12924 (ada/utils.o): Likewise.
12926 2006-04-08 Aurelien Jarno <aurel32@debian.org>
12928 * Makefile.in: Add Ada support for GNU/kFreeBSD.
12929 * s-osinte-kfreebsd-gnu.ads: New file.
12931 2006-03-29 Carlos O'Donell <carlos@codesourcery.com>
12933 * Make-lang.in: Rename docdir to gcc_docdir.
12935 2006-03-04 Eric Botcazou <ebotcazou@adacore.com>
12937 * gigi.h (get_ada_base_type): Delete.
12938 * utils2.c (get_ada_base_type): Likewise.
12939 * trans.c (convert_with_check): Operate in the real base type.
12941 2006-03-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12943 * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
12945 2006-03-02 Richard Sandiford <richard@codesourcery.com>
12947 * utils.c (create_var_decl): Use have_global_bss_p when deciding
12948 whether to make the decl common.
12950 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
12952 * Make-lang.in (Ada): Remove.
12953 (.PHONY): Remove Ada
12955 2006-02-17 Ed Schonberg <schonberg@adacore.com>
12957 * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
12958 aggregate, check the interpretations of the other operand to find one
12959 that may be a boolean array.
12961 (Analyze_Selected_Component): Fix flow-of-control typo in case where
12962 the prefix is a private extension.
12964 2006-02-17 Eric Botcazou <botcazou@adacore.com>
12967 * utils2.c (find_common_type): If both input types are BLKmode and
12968 have the same constant size, keep using the first one.
12970 * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
12972 * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
12974 * misc.c (gnat_handle_option): New case for -Woverlength-strings.
12976 2006-02-17 Jose Ruiz <ruiz@adacore.com>
12978 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
12979 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
12980 s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
12981 s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
12982 Abort_Defer/Undefer pairs to avoid the possibility of a task being
12983 aborted while owning a lock.
12985 2006-02-17 Javier Miranda <miranda@adacore.com>
12986 Robert Dewar <dewar@adacore.com>
12988 * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
12989 through an access to class-wide interface we force the displacement of
12990 the pointer to the allocated object to reference the corresponding
12991 secondary dispatch table.
12992 (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
12993 if Long_Shifts are supported on the target, even if 64 bit divides
12994 are not supported (configurable run time mode).
12995 (Expand_N_Type_Conversion): Do validity check if validity checks on
12996 operands are enabled.
12997 (Expand_N_Qualified_Expression): Do validity check if validity checks
12998 on operands are enabled.
13000 2006-02-17 Ed Schonberg <schonberg@adacore.com>
13002 * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
13003 must be materialized when the renamed expression is an explicit
13006 2006-02-17 Ed Schonberg <schonberg@adacore.com>
13008 * freeze.adb (Statically_Discriminated_Components): Return false if
13009 the bounds of the type of the discriminant are not static expressions.
13011 * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
13012 the bounds of the discriminant type are not static.
13014 2006-02-17 Robert Dewar <dewar@adacore.com>
13016 * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
13017 then we close To if it is valid.
13019 2006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
13021 * init.c (facility_resignal_table): new array
13022 (__gnat_default_resignal_p): enhance default predicate to resignal if
13023 VMS condition has one of the predefined facility codes.
13025 2006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
13027 * Makefile.in: Use VMS64 specialized versions of several units in
13028 Interfaces.C hierarchy to be compatible with HP C default size choices.
13029 Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
13031 2006-02-17 Ed Schonberg <schonberg@adacore.com>
13033 * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
13034 instantiation, the corresponding entity is the related_instance of the
13035 wrapper package created for the instance.
13037 2006-02-17 Ed Schonberg <schonberg@adacore.com>
13039 * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
13040 the current instance is nested within another instance in a child unit.
13042 2006-02-17 Javier Miranda <miranda@adacore.com>
13043 Ed Schonberg <schonberg@adacore.com>
13045 * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
13046 type we cannot inherit the primitive operations; we inherit the
13047 Corresponding_Record_Type (which has the list of primitive operations).
13048 (Check_Anonymous_Access_Types): When creating anonymous access types for
13049 access components, use Rewrite in order to preserve the tree structure,
13051 (Analyze_Object_Declaration): For limited types with access
13052 discriminants with defaults initialized by an aggregate, obtain
13053 subtype from aggregate as for other mutable types.
13054 (Derived_Type_Declaration): If the derived type is a limited interface,
13055 set the corresponding flag (Is_Limited_Record is not sufficient).
13057 2006-02-17 Ed Schonberg <schonberg@adacore.com>
13059 * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
13060 to inline a function that returns an unconstrained type, the return
13061 expression must be the first variable declared in the body of the
13064 2006-02-17 Javier Miranda <miranda@adacore.com>
13066 * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
13067 abstract interface type, the static analysis is not enough to know if
13068 the interface is implemented or not by the source tagged type. Hence
13069 we must pass the work to the expander to generate the required code to
13070 evaluate the conversion at run-time.
13071 (Resolve_Equality_Op): Do not apply previous
13072 transformation if expansion is disasbled, to prevent anomalies when
13073 locating global references in a generic unit.
13075 2006-02-17 Vincent Celier <celier@adacore.com>
13077 * snames.ads, snames.adb: New standard names for new project attributes:
13078 archive_builder, archive_indexer, compiler_pic_option,
13079 config_body_file_name, config_body_file_name_pattern,
13080 config_file_switches, config_file_unique, config_spec_file_name,
13081 config_spec_file_name_pattern, default_builder_switches,
13082 default_global_compiler_switches, default_language,
13083 dependency_file_kind, global_compiler_switches, include_path,
13084 include_path_file, language_kind, linker_executable_option,
13085 linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
13086 roots, runtime_project.
13088 2006-02-17 Matthew Heaney <heaney@adacore.com>
13090 * a-convec.ads, a-convec.adb:
13091 (operator "&"): handle potential overflow for large index types
13092 (Insert): removed Contraint_Error when using large index types
13093 (Insert_Space): removed Constraint_Error for large index types
13094 (Length): moved constraint check from Length to Insert
13096 * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
13097 as not null access.
13098 Explicit raise statements now include an exception message.
13099 (operator "&"): handle potential overflow for large index types
13100 (Insert): removed Contraint_Error when using large index types
13101 (Insert_Space): removed Constraint_Error for large index types
13102 (Length): moved constraint check from Length to Insert
13104 2006-02-17 Robert Dewar <dewar@adacore.com>
13106 * s-wchcnv.adb: Document handling of [ on output (we do not change
13107 this to ["5B"] and the new comments say why not.
13110 Add note for -gnatVo that this now includes the cases of type
13111 conversions and qualified expressions.
13112 Add comments on handling of brackets encoding for Text_IO
13114 2006-02-17 Ramon Fernandez <fernandez@adacore.com>
13115 Thomas Quinot <quinot@adacore.com>
13116 Robert Dewar <dewar@adacore.com>
13117 Javier Miranda <miranda@adacore.com>
13119 * expander.adb: Fix typo in comment
13121 * exp_pakd.adb: Fix typo
13122 Minor comment reformatting.
13124 * g-dyntab.adb: Minor reformatting
13126 * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
13127 aliased subprograms to look for the abstract interface subprogram.
13129 2006-02-16 Eric Botcazou <ebotcazou@adacore.com>
13131 * env.c (__gnat_setenv): Use size_t.
13132 (__gnat_unsetenv): Likewise.
13133 (__gnat_clearenv): Likewise.
13135 2006-02-16 Arnaud Charlet <charlet@adacore.com>
13137 * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
13139 2006-02-13 Arnaud Charlet <charlet@adacore.com>
13141 * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
13142 g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
13143 i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
13144 s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
13145 s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
13146 s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
13147 s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
13148 s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
13149 s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
13152 2006-02-13 Jose Ruiz <ruiz@adacore.com>
13154 * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
13155 protection against race conditions is not needed.
13156 (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
13158 (Set_Specific_Handler): Add mutual exclusive access to the specific
13160 (Specific_Handler): Add mutual exclusive access for retrieving the
13163 * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
13166 * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
13167 Fall_Back_Handler and Specific_Handler.
13169 * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
13170 termination handlers.
13171 Set two different owerflow depending on the maximal stack size.
13173 * s-solita.adb (Task_Termination_Handler_T): Document why explicit
13174 protection against race conditions is not needed when executing the
13175 task termination handler.
13177 2006-02-13 Robert Dewar <dewar@adacore.com>
13179 * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
13180 a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
13181 a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
13182 a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
13183 a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
13184 a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
13185 a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
13186 a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
13187 a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
13188 a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
13189 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
13190 a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
13191 a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
13192 a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
13193 a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
13194 a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
13195 a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
13196 a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
13197 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
13198 a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
13199 g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
13200 g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
13201 mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
13202 prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
13203 s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
13204 s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
13205 s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
13206 s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
13207 s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
13208 s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
13209 a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
13210 fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
13211 par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
13212 system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
13215 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
13217 * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
13218 s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
13219 s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
13220 s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
13221 a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
13222 s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
13223 a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
13224 s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
13225 s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
13227 2006-02-13 Arnaud Charlet <charlet@adacore.com>
13229 * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
13230 s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
13231 s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
13232 s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
13233 s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
13234 s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
13235 replaced by anonymous access type.
13236 (pthread_sigmask): Now take an access sigset_t
13238 * s-osinte-hpux.ads: Ditto.
13239 (pthread_mutex_t, pthread_cond_t): Update definitions to support
13240 properly 32 and 64 bit ABIs.
13242 2006-02-13 Pascal Obry <obry@adacore.com>
13244 * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
13245 s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
13246 s-taprop-linux.adb, s-taprop-solaris.adb,
13247 s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
13248 adjustement is already done when calling this routine.
13250 2006-02-13 Pascal Obry <obry@adacore.com>
13252 * system-mingw.ads (Underlying_Priorities): Update the priority mapping
13253 table to take advantage of the 16 priority levels available on Windows
13254 2000 and XP. On NT4 there are only 7 priority levels, this is properly
13255 supported by this new mapping.
13257 2006-02-13 Nicolas Setton <setton@adacore.com>
13259 * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
13260 (get_encoding): New subprogram. Extracts the encodings from an encoded
13263 2006-02-13 Pascal Obry <obry@adacore.com>
13264 Nicolas Roche <roche@adacore.com>
13265 Arnaud Charlet <charlet@adacore.com>
13267 * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
13269 (__gnat_try_lock): Add unicode support by using a specific section on
13271 (__gnat_get_current_dir): Idem.
13272 (__gnat_open_read): Idem.
13273 (__gnat_open_rw): Idem.
13274 (__gnat_open_create): Idem.
13275 (__gnat_create_output_file): Idem.
13276 (__gnat_open_append): Idem.
13277 (__gnat_open_new): Idem.
13278 (__gnat_file_time_name): Idem.
13279 (__gnat_set_file_time_name): Idem.
13280 (__gnat_stat): Idem.
13281 (win32_no_block_spawn): Idem.
13282 (__gnat_locate_exec_on_path): Idem.
13283 (__gnat_opendir): New routine.
13284 (__gnat_closedir): Idem.
13285 (__gnat_readdir): Add new parameter length (pointer to int). Update
13286 implementation to use it and add specific Win32 code for Unicode
13288 (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
13289 (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
13290 (convert_addresses): Do not define this dummy routine on VMS.
13292 * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
13293 runtime Unicode support will be activated.
13294 (S2WS): String to Wide-String conversion. This version just copy a
13295 string in non Unicode version.
13296 (WS2S): Wide-String to String conversion. This version just copy a
13297 string in non Unicode version.
13299 * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
13300 (Open): Now import __gnat_opendir from adaint.c.
13301 (Read): Change the implementation to support unicode characters. It is
13302 not possible to use strlen() on Windows as this version supports only
13303 standard ASCII characters. So the length of the directory entry is now
13304 returned from the imported __gnat_readdir routine.
13305 Update copyright notice.
13307 * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
13308 (opendir): Moved to adaint.c.
13310 * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
13311 (Get_Directory): Fix wrong indexing.
13312 (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
13313 __gnat_getenv from env.c
13314 (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
13317 * env.h, env.c: New file.
13319 * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
13320 adaint.c by __gnat_getenv from env.c
13322 * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
13323 adaint.c by __gnat_getenv from env.c
13325 * Make-lang.in: Add env.o in the list of C object needed by gnat1
13327 Update dependencies.
13329 2006-02-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13330 Olivier Hainque <hainque@adacore.com>
13331 Eric Botcazou <ebotcazou@adacore.com>
13333 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
13335 * gigi.h (value_factor_p): Add prototype and description, now public.
13337 * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
13338 promotion for field with rep clause if the associated size was proven
13340 Expand comments describing attempts to use a packable type.
13341 (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
13342 E_Floating_Point_Subtype>: Inherit alias set of what we are making a
13343 subtype of to ensure conflicts amongst all subtypes in a hierarchy,
13344 necessary since these are not different types and pointers may
13345 actually designate any subtype in this hierarchy.
13346 (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
13347 discriminants but put them into record only if not Unchecked_Union;
13348 pass flag to components_to_record showing Unchecked_Union.
13349 (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
13350 components before variants; don't set TYPE_UNCHECKED_UNION_P.
13351 (components_to_record): New argument UNCHECKED_UNION.
13352 Remove special case code for Unchecked_Union and instead use main code
13353 with small changes.
13356 (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
13357 variable with the expression being built, only its inner field.
13359 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
13360 emit_sequence_entry_statements.
13361 (emit_sequence_entry_statements, body_with_handlers_p): Delete.
13362 (establish_gnat_vms_condition_handler): Move before
13363 Subprogram_Body_to_gnu.
13364 (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
13365 for a subprogram if it has a foreign convention or is exported.
13366 (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
13367 substituted for a CONST_DECL.
13368 (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
13369 Etype to assoc_to_constructor.
13370 (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
13371 discriminants of Unchecked_Union.
13372 (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
13373 don't need cluttering preprocessor directives.
13374 (establish_gnat_vms_condition_handler): New function. Establish the GNAT
13375 condition handler as current in the compiled function.
13376 (body_with_handlers_p): New function. Tell whether a given sequence of
13377 statements node is attached to a package or subprogram body and involves
13378 exception handlers possibly nested within inner block statements.
13379 (emit_sequence_entry_statements): New function, to emit special
13380 statements on entry of sequences when necessary. Establish GNAT
13381 condition handler in the proper cases for VMS.
13382 (Handled_Sequence_Of_Statements_to_gnu): Start block code with
13383 emit_sequence_entry_statements.
13385 * utils2.c (find_common_type): If both input types are BLKmode and
13386 have a constant size, use the smaller one.
13387 (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
13390 * utils.c (value_factor_p): Make public, to allow uses from other gigi
13392 (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
13393 (convert, case UNION_TYPE): Remove special treatment for unchecked
13397 (update_pointer_to): Update variants of pointer types to unconstrained
13398 arrays by attaching the list of fields of the main variant.
13400 2006-02-13 Arnaud Charlet <charlet@adacore.com>
13401 Robert Dewar <dewar@adacore.com>
13403 * a-exexpr.adb, a-exexpr-gcc.adb
13404 (Process_Raise_Exception): Removed, merged with Propagate_Exception.
13405 (Propagate_Exception): Now take extra From_Signal_Handler parameter.
13406 Remove code unused for exception propagation for the compiler itself
13407 from a-except.adb and update to still share separate packages.
13409 * a-except.ads, a-except.adb: Ditto.
13410 Add comments that this version is now used only by the compiler and
13411 other basic tools. The full version that includes the Ada 2005 stuff
13412 is in separate files a-except-2005.ads/adb. The reason is that we do
13413 not want to cause bootstrap problems with compilers not recognizing
13415 Add exception reason code PE_Implicit_Return
13416 Add new exception reason code (Null Exception_Id)
13418 * a-except-2005.adb, a-except-2005.ads: New files.
13420 * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
13422 * s-wchcon.adb: New file.
13424 * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
13425 (traceback.o deps): Likewise.
13426 (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
13427 Activate build of GMEM instrumentation library on VMS targets.
13428 (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
13429 Use a-except-2005.ads/adb for all run-time library builds unless
13430 specified otherwise.
13431 [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
13432 s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
13433 Use s-parame.adb on all native platforms.
13434 Use s-parame-vxworks.adb on all vxworks platforms.
13435 Add env.c env.h in LIBGNAT_SRCS
13436 Add env.o in LIBGNAT_OBJS
13437 (GNATMAKE_OBJS): Remove ctrl_c.o object.
13438 (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
13439 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
13440 supports VxWorks 6 RTPs.
13441 (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
13442 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
13444 * types.h, types.ads (Terminate_Program): New exception
13445 Add comment on modifying multiple versions of a-except.adb when the
13446 table of exception reasons is modified.
13447 Add exception reason code PE_Implicit_Return
13448 Add new exception reason code (Null Exception_Id)
13450 * clean.adb (Initialize): Get the target parameters before checking
13451 if target is OpenVMS. Move the OpenVMS specific code here from package
13452 body elaboration code.
13454 2006-02-13 Thomas Quinot <quinot@adacore.com>
13455 Vincent Celier <celier@adacore.com>
13456 Robert Dewar <dewar@adacore.com>
13458 * ali-util.adb (Get_File_Checksum): Update to account for change in
13459 profile of Initialize_Scanner.
13461 * gprep.adb (Gnatprep): Update to account for change in profile of
13462 Initialize_Scanner.
13463 (Process_One_File): Same.
13465 * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
13466 common code between Get_Code_Unit and Get_Source_Unit. Reimplement
13467 that behaviour using the new Unit information recorded in the source
13468 files table, rather than going through all units every time.
13469 (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
13470 (Get_Source_Unit): Same.
13472 * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
13473 change in profile of Initialize_Scanner.
13474 (Prepare_To_Preprocess): Same.
13476 * lib.ads: Fix typo in comment (templace -> template).
13478 * prj-part.adb (Parse_Single_Project): Update to account for change in
13479 profile of Initialize_Scanner.
13481 * scn.adb (Initialize_Scanner): Account for change in profile of
13482 Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
13483 Also record the association of the given Source_File_Index to the
13484 corresponding Unit_Number_Type.
13486 * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
13488 (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
13489 Remove Unit formal for generic scanner: this formal
13490 is only relevant to Scn (the scanner instance used to parse Ada source
13491 files), not to other instances. Update comment accordingly.
13492 (Scan): Use new function Snames.Is_Keyword_Name.
13494 * sinfo-cn.adb: Fix typo in comment.
13496 * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
13499 * sinput.ads (Source_File_Record): New component Unit, used to capture
13500 the unit identifier (if any) associated to a source file.
13502 * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
13503 Unit in Source_File_Record.
13505 * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
13506 in profile of Initialize_Scanner.
13508 * scans.adb (Initialize_Ada_Keywords): New procedure
13510 * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
13511 Ada keywords in the Namet table, without the need to call
13512 Initialize_Scanner.
13514 * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
13515 (Is_Keyword_Name): New function
13517 * snames.ads: Add subtype Configuration_Pragma_Names
13518 Add pragma Ada_2005 (synonym for Ada_05)
13519 (Is_Keyword_Name): New function
13521 * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
13523 2006-02-13 Arnaud Charlet <charlet@adacore.com>
13525 * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
13528 * a-stwima.adb (To_Set): Add extra check when N = 0.
13530 * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
13532 2006-02-13 Arnaud Charlet <charlet@adacore.com>
13534 * s-parame-mingw.adb, s-parame-linux.adb,
13535 s-parame-solaris.adb: Removed, replaced by s-parame.adb
13537 * s-parame-vxworks.ads: Fix typo.
13539 * s-parame-vxworks.adb: New file.
13541 * s-parame.adb: Version now used by all native platforms.
13542 (Default_Stack_Size): Use 2 megs for default stack size and use
13543 __gl_default_stack_size when available.
13544 (Minimum_Stack_Size): Use 12K.
13546 * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
13547 (Create_Task): Refine implementation taking advantage of the XP stack
13548 size support. On XP, we now create the thread using the flag
13549 STACK_SIZE_PARAM_IS_A_RESERVATION.
13551 * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
13553 * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
13554 XP and 0 on older Windows versions.
13556 * interfac-vms.ads: Removed, no longer used.
13558 2006-02-13 Matthew Heaney <heaney@adacore.com>
13560 * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
13561 a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
13562 a-cohase.adb: All explicit raise statements now include an exception
13565 * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
13566 (Update_Element_Preserving_Key): renamed op to just Update_Element.
13567 Explicit raise statements now include an exception message
13569 * a-cihase.ads, a-cohase.ads: Removed comment.
13571 * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
13572 a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
13573 a-szbzha.adb, a-szfzha.ads: New files.
13575 2006-02-13 Matthew Heaney <heaney@adacore.com>
13577 * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
13580 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
13582 * lang.opt: Wvariadic-macros: New option.
13583 Wold-style-definition: Likewise.
13584 Wmissing-format-attribute: Likewise.
13586 * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
13587 -Wold-style-definition and -Wmissing-format-attribute.
13589 2006-02-13 Robert Dewar <dewar@adacore.com>
13591 * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
13593 * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
13595 2006-02-13 Nicolas Roche <roche@adacore.com>
13597 * a-envvar.adb, a-envvar.ads: New files.
13599 2006-02-13 Douglas Rupp <rupp@adacore.com>
13601 * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
13603 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
13605 2006-02-13 Pat Rogers <rogers@adacore.com>
13607 * a-rttiev.adb, a-rttiev.ads: New files.
13609 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
13611 * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
13612 a-wwboio.ads, a-zzboio.adb, a-zzboio.ads: New files.
13614 * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
13616 2006-02-13 Robert Dewar <dewar@adacore.com>
13618 * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
13619 sem_case.adb: Minor code reorganization (not Present should be No)
13621 2006-02-13 Geert Bosch <bosch@adacore.com>
13622 Gary Dismukes <dismukes@adacore.com>
13624 * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
13625 0, since the lower bound of the actual string may be greater than one.
13628 * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
13629 layout is requested.
13631 2006-02-13 Vincent Celier <celier@adacore.com>
13633 * back_end.adb (Scan_Compiler_Arguments): Check if
13634 Search_Directory_Present is True and, if it is, add the argument in
13635 the source search directory path.
13637 * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
13638 Search_Directory_Present to True.
13640 2006-02-13 Joel Brobecker <brobecke@adacore.com>
13642 * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
13643 volatile, to tell the compiler to preserve this variable at any level
13645 (Gen_Versions_Ada): Temporarily work around codegen bug.
13647 2006-02-13 Vincent Celier <celier@adacore.com>
13649 * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
13650 gcc to link with option -shared-libgcc.
13651 (Gnatlink): Remove duplicate switches -shared-libgcc
13653 2006-02-13 Robert Dewar <dewar@adacore.com>
13655 * gnatvsn.ads (Current_Year): New constant, used to easily update
13656 copyright on all GNAT tools.
13658 * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
13661 2006-02-13 Robert Dewar <dewar@adacore.com>
13663 * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
13664 after hyphen (small aesthetic change useful for a range of numbers
13666 Suppress range checks for a couple of assignments which otherwise
13667 cause validity checks with validity checking turned on.
13669 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
13670 Improvement in error message for object.
13671 (Rep_Item_Too_Late): Remove '!' in warning message.
13673 2006-02-13 Robert Dewar <dewar@adacore.com>
13674 Eric Botcazou <ebotcazou@adacore.com>
13676 * err_vars.ads: Suppress range checks for a couple of assignments
13677 which otherwise cause validity checks with validity checking turned on.
13680 * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
13681 Make message unconditional if it is a warning.
13682 (Error_Msg_NEL): Always output warning messages.
13683 Suppress range checks for a couple of assignments which otherwise
13684 cause validity checks with validity checking turned on.
13686 * errout.ads (Message Insertion Characters): Document that '!' is
13687 implied by '?' in error messages.
13689 * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
13690 (Gnat1drv): Use a goto to end of main subprogram instead of
13691 Exit_Program (E_Success) so that finalization can occur normally.
13693 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
13695 * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
13698 2006-02-13 Vincent Celier <celier@adacore.com>
13700 * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
13701 Unchecked_Conversion functions.
13702 (Modification_Time): Use direct conversion of OS_Time to Calendar time
13703 when OpenVMS returns False.
13705 * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
13706 a-dirval.adb (OpenVMS): New Boolean function
13708 2006-02-13 Ed Schonberg <schonberg@adacore.com>
13709 Thomas Quinot <quinot@adacore.com>
13711 * checks.adb (Build_Discriminant_Checks): If the expression being
13712 checks is an aggregate retrieve the values of its discriminants to
13713 generate the check, rather than creating a temporary and a reference
13715 (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
13716 (Install_Null_Excluding_Check): Ditto
13717 (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
13718 not for the renamed object, so that the actual itype is attached in the
13721 2006-02-13 Robert Dewar <dewar@adacore.com>
13722 Vincent Celier <celier@adacore.com>
13724 * debug.adb: Eliminate numeric switches for binder/gnatmake
13726 * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
13727 switches for the compiler.
13728 (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
13729 (Scan_Make_Switches): When failing with an illegal switch, output an
13730 error message with the full switch.
13731 Eliminate numeric switches for binder/gnatmake
13733 * switch.ads, switch.adb (Bad_Switch): New procedure
13735 * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
13736 Remove 0-9 as debug flag character possibilities
13737 -d is now controlling the primary stack size when its value is a
13738 positive. Also add checks against invalid values, and support for kb,
13739 mb. Ditto for -D switch.
13741 2006-02-13 Robert Dewar <dewar@adacore.com>
13742 Serguei Rybin <rybin@adacore.com>
13744 * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
13745 save/restore routines.
13746 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
13747 were not always properly handled previously.
13748 Since we are changing the tree format anyway, also get rid of the
13749 junk obsolete Immediate_Errors flag.
13750 (Tree_Read): Change the way of reading Tree_Version_String - now we
13751 read the version string from the tree even if its length is not the
13752 same as the length of the version string computed from Gnatvsn.
13753 (Search_Directory_Present): New Boolean flag for the compiler.
13754 Define Tree_Version_String as a dynamic string.
13755 (Default_Stack_Size): new variable, used to handle switch -d.
13758 For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
13759 only for main unit.
13760 Add pragma Ada_2005 (synonym for Ada_05)
13761 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
13762 were not always properly handled previously.
13764 * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
13765 explicit Ada_95 to Ada_2005.
13767 2006-02-13 Javier Miranda <miranda@adacore.com>
13768 Robert Dewar <dewar@adacore.com>
13769 Ed Schonberg <schonberg@adacore.com>
13771 * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
13772 against errors in the source program: a private types for which the
13773 corresponding full type declaration is missing and pragma CPP_Virtual
13775 (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
13776 (Is_Known_Null): New flag
13777 (Has_Pragma_Pure): New flag
13778 (No_Return): Present in all entities, set only for procedures
13779 (Is_Limited_Type): A type whose ancestor is an interface is limited if
13780 explicitly declared limited.
13781 (DT_Offset_To_Top_Func): New attribute that is present in E_Component
13782 entities. Only used for component marked Is_Tag. If present it stores
13783 the Offset_To_Top function used to provide this value in tagged types
13784 whose ancestor has discriminants.
13786 * exp_ch2.adb: Update status of new Is_Known_Null flag
13788 * sem_ch7.adb: Maintain status of new Is_Known_Null flag
13790 * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
13791 the categorization sense if Is_Pure was set by pragma Pure_Function.
13793 2006-02-13 Quentin Ochem <ochem@adacore.com>
13794 Olivier Hainque <hainque@adacore.com>
13796 * bindusg.adb: Updated documentation for -d and -D switches.
13798 * raise.h (__gnat_set_globals): added new parameter for
13799 Default_Stack_Size.
13801 * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
13802 (__gnat_handle_vms_condition): Adjust context before raise.
13803 (__gnat_install_handler): Restore the global vector setup for GCC
13804 versions before 3.4, as the frame based circtuitry is not available
13806 (__gnat_set_globals): added a parameter default_stack_size
13807 (__gl_default_stack_size): new variable.
13809 2006-02-13 Ed Schonberg <schonberg@adacore.com>
13811 * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
13812 "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
13813 does not exist in the Ada RM.
13814 (Compatible_Int_Bounds): Determine whether two integer range bounds
13815 are of equal length and have the same start and end values.
13816 (Is_Int_Range_Bounds): Determine whether a node is an integer range.
13817 (Build_Record_Aggr_Code): Perform proper sliding of a nested array
13818 aggregate when it is part of an object declaration.
13819 (Build_Record_Aggr_Code) If the aggregate ttype is a derived type that
13820 constrains discriminants of its parent, add explicitly the discriminant
13821 constraints of the ancestor by retrieving them from the
13822 stored_constraint of the parent.
13824 2006-02-13 Robert Dewar <dewar@adacore.com>
13826 * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
13827 attribute Mechanism_Code is applied to renamed subprogram, modify
13828 prefix to point to base subprogram.
13829 Max/Min attributes now violate Restriction No_Implicit_Conditionals
13831 * sinfo.ads: Document that Mechanism_Code cannot be applied to
13832 renamed subprograms so that the front-end must replace the prefix
13835 2006-02-13 Javier Miranda <miranda@adacore.com>
13836 Gary Dismukes <dismukes@adacore.com>
13838 * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
13839 availability of RE_Interface_Tag.
13840 (Build_Initialization_Call): Fix wrong access to the discriminant value.
13841 (Freeze_Record_Type): Do not generate the tables associated with
13842 timed and conditional dispatching calls through synchronized
13843 interfaces if compiling under No_Dispatching_Calls restriction.
13844 When compiling for Ada 2005, for a nonabstract
13845 type with a null extension, call Make_Controlling_Function_Wrappers
13846 and insert the wrapper function declarations and bodies (the latter
13847 being appended as freeze actions).
13848 (Predefined_Primitive_Bodies): Do not generate the bodies of the
13849 predefined primitives associated with timed and conditional
13850 dispatching calls through synchronized interfaces if we are
13851 compiling under No_Dispatching_Calls.
13852 (Build_Init_Procedure): Use RTE_Available to check if a run-time
13853 service is available before generating a call.
13854 (Make_Controlling_Function_Wrappers): New procedure.
13855 (Expand_N_Full_Type_Declaration): Create a class-wide master for
13856 access-to-limited-interfaces because they can be used to reference
13857 tasks that implement such limited interface.
13858 (Build_Offset_To_Top_Functions): Build the tree corresponding to the
13859 procedure spec and body of the Offset_To_Top function that is generated
13860 when the parent of a type with discriminants has secondary dispatch
13862 (Init_Secondary_Tags): Handle the case in which the parent of the type
13863 containing secondary dispatch tables has discriminants to generate the
13864 correct arguments to call Set_Offset_To_Top.
13865 (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
13867 * a-tags.ads, a-tags.adb: (Check_Index): Removed.
13868 Add Wide_[Wide_]Expanded_Name.
13869 (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
13870 the same functionality of Get_Prim_Op_Address but applied to predefined
13871 primitive operations because the pointers to the predefined primitives
13872 are now saved in a separate table.
13873 (Parent_Size): Modified to get access to the separate table of primitive
13874 operations or the parent type.
13875 (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
13876 functionality of Set_Prim_Op_Address but applied to predefined primitive
13878 (Set_Signature): New subprogram used to store the signature of a DT.
13879 (Displace): If the Offset_To_Top value is not static then call the
13880 function generated by the expander to get such value; otherwise use
13881 the value stored in the table of interfaces.
13882 (Offset_To_Top): The type of the actual has been changed to Address to
13883 give the correct support to tagged types with discriminants. In this
13884 case this value is stored just immediately after the tag field.
13885 (Set_Offset_To_Top): Two new formals have been added to indicate if the
13886 offset_to_top value is static and hence pass this value to the run-time
13887 to store it in the table of interfaces, or else if this value is dynamic
13888 and then pass to the run-time the address of a function that is
13889 generated by the expander to provide this value for each object of the
13892 * rtsfind.ads (Default_Prin_Op_Count): Removed.
13893 (Default_Prim_Op_Count): New entity
13894 (Get_Predefined_Prim_Op_Address): New entity
13895 (Set_Predefined_Prim_Op_Address): New entity
13896 (RE_Set_Signature): New entity
13898 2006-02-13 Thomas Quinot <quinot@adacore.com>
13899 Ed Schonberg <schonberg@adacore.com>
13901 * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
13902 Make_Adjust_Call done for a newly-allocated object.
13904 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
13905 in a subprogram are wrapped in a cleanup block, indicate that the
13906 subprogram contains an inner block with an exception handler.
13907 (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
13908 Adjust call is for a newly-allocated object. In that case we must not
13909 assume that the finalization list chain pointers are correct (since they
13910 come from a bit-for-bit copy of the original object's pointers) so if
13911 the attach level would otherwise be zero (no change), we set it to 4
13912 instead to cause the pointers to be reset to null.
13914 * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
13915 reset chain pointers to null.
13917 2006-02-13 Ed Schonberg <schonberg@adacore.com>
13919 * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
13920 string, and the context requires a loop for the assignment (e.g.
13921 because the left-hand side is packed), generate a unique name for the
13922 temporary that holds the string, to prevent spurious name clashes.
13924 2006-02-13 Ed Schonberg <schonberg@adacore.com>
13925 Javier Miranda <miranda@adacore.com>
13926 Robert Dewar <dewar@adacore.com>
13927 Gary Dismukes <dismukes@adacore.com>
13929 * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
13930 return unconstrained arrays.
13932 (Expand_Call): An indirect call through an access parameter of a
13933 protected operation is not a protected call.
13934 Add circuit to raise CE in Ada 2005 mode following call
13935 to Raise_Exception.
13936 (Register_DT_Entry): Do nothing if
13937 the run-time does not give support to abstract interfaces.
13938 (Freeze_Subprogram): In case of dispatching operations, do not generate
13939 code to register the operation in the dispatch table if the source
13940 is compiled with No_Dispatching_Calls.
13941 (Register_Predefined_DT_Entry): Generate code that calls the new
13942 run-time subprogram Set_Predefined_Prim_Op_Address instead of
13943 Set_Prim_Op_Address.
13945 * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
13946 on array assignments if the right-hand side is a function call that has
13947 been inlined. Check is performed on the assignment in the block.
13948 (Process_Bounds): If bounds and range are overloaded, apply preference
13949 rule for root operations to disambiguate, and diagnose true ambiguity.
13950 (Analyze_Assignment): Propagate the tag for a class-wide assignment with
13951 a tag-indeterminate right-hand side even when Expander_Active is True.
13952 Needed to ensure that dispatching calls to T'Input are allowed and
13953 get the tag of the target class-wide object.
13955 * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
13956 an inherited primitive operation that already overrides several
13957 abstract interface primitives. For transitivity, the new entity must
13958 also override all the abstract interface primitives covered by the
13959 inherited overriden primitive.
13960 Emit warning if new entity differs from homograph in same scope only in
13961 that one has an access parameter and the other one has a parameter of
13962 a general access type with the same designated type, at the same
13963 position in the signature.
13964 (Make_Inequality_Operator): Use source locations of parameters and
13965 subtype marks from corresponding equality operator when creating the
13966 tree structure for the implicit declaration of "/=". This does not
13967 change anything in behaviour except that the decoration of the
13968 components of the subtree created for "/=" allows ASIS to get the
13969 string images of the corresponding identifiers.
13970 (Analyze_Return_Statement): Remove '!' in warning message.
13971 (Check_Statement_Sequence): Likewise.
13972 (Analyze_Subprogram_Body): For an access parameter whose designated type
13973 is an incomplete type imported through a limited_with clause, use the
13974 type of the corresponding formal in the body.
13975 (Check_Returns): Implicit return in No_Return procedure now raises
13976 Program_Error with a compile time warning, instead of beging illegal.
13977 (Has_Single_Return): Function returning unconstrained type cannot be
13978 inlined if expression in unique return statement is not an identifier.
13979 (Build_Body_To_Inline): It is possible to inline a function call that
13980 returns an unconstrained type if all return statements in the function
13981 return the same local variable. Subsidiary procedure Has_Single_Return
13982 verifies that the body conforms to this restriction.
13984 * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
13985 same type, and one of them is of an anonymous access type, convert
13986 the other operand to it, so that this is a valid binary operation for
13988 (Resolve_Type_Conversion): Handle subtypes of protected types and
13989 task types when accessing to the corresponding record type.
13990 (Resolve_Allocator): Add '\' in 2-line warning message.
13991 Remove '!' in warning message.
13992 (Resolve_Call): Add '\' in 2-line warning message.
13993 (Valid_Conversion): Likewise.
13994 (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
13995 resulting type may be an access type with an implicit dereference.
13996 Obtain the proper component from the designated type.
13997 (Make_Call_Into_Operator): Handle properly a call to predefined equality
13998 given by an expanded name with prefix Standard, when the operands are
13999 of an anonymous access type.
14000 (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
14001 Explicit_Dereference and Resolve_Selected_Component, to verify that the
14002 prefix of the expression is not of an incomplete type. Allows full
14003 diagnoses of all semantic errors.
14004 (Resolve_Actuals): If the actual is an allocator whose directly
14005 designated type is a class-wide interface we build an anonymous
14006 access type to use it as the type of the allocator. Later, when
14007 the subprogram call is expanded, if the interface has a secondary
14008 dispatch table the expander will add a type conversion to force
14009 the displacement of the pointer.
14010 (Resolve_Call): If a function that returns an unconstrained type is
14011 marked Inlined_Always and inlined, the call will be inlined and does
14012 not require the creation of a transient scope.
14013 (Check_Direct_Boolean_Op): Removed
14014 (Resolve_Comparison_Op): Remove call to above
14015 (Resolve_Equality_Op): Remove call to above
14016 (Resolve_Logical_Op): Inline above, since this is only call.
14017 (Valid_Conversion): Handle properly conversions between arrays of
14018 convertible anonymous access types.
14021 (Set_Literal_String_Subtype): If the lower bound is not static, wrap
14022 the literal in an unchecked conversion, because GCC 4.x needs a static
14023 value for a string bound.
14025 2006-02-13 Ed Schonberg <schonberg@adacore.com>
14026 Hristian Kirtchev <kirtchev@adacore.com>
14028 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
14029 components of the corresponding record, take into account component
14030 definitions that are access definitions.
14031 (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
14032 procedure is not considered a dispatching call and will be expanded
14035 2006-02-13 Javier Miranda <miranda@adacore.com>
14037 * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
14038 controlling argument of the dispatching call is an abstract interface
14039 class-wide type then we use it directly.
14040 Check No_Dispatching_Calls restriction.
14041 (Default_Prim_Op_Position): Remove the code that looks for the last
14042 entity in the list of aliased subprograms. This code was wrong in
14044 (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
14045 when the source is compiled with the No_Dispatching_Calls restriction.
14046 (Init_Predefined_Interface_Primitives): No need to inherit primitives
14047 if we are compiling with restriction No_Dispatching_Calls.
14048 (Make_Disp_XXX): Addition of assertion to avoid the use of all these
14049 subprograms if we are compiling under No_Dispatching_Calls restriction.
14050 (Make_DT): Generate a dispatch table with a single dummy entry if
14051 we are compiling with the No_Dispatching_Calls restriction. In
14052 addition, in this case we don't generate code that calls to the
14053 following run-time subprograms: Set_Type_Kind, Inherit_DT.
14054 (Make_Select_Specific_Data_Table): Add assertion to avoid the use
14055 of this subprogram if compiling with the No_Dispatching_Calls
14057 (Expand_Type_Conversion): Instead of using the actual parameter,
14058 the argument passed as parameter to the conversion function was
14059 erroneously referenced by the expander.
14060 (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
14061 Set_Predefined_Primitive_Op_Address and Set_Signature.
14062 (Expand_Dispatching_Call): Generate call to
14063 Get_Predefined_Prim_Op_Address for predefined primitives.
14064 (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
14065 predefined primitives.
14066 (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
14067 primitives we reserve one dummy entry to ensure that the tag does not
14068 point to some memory that is associated with some other object. In
14069 addition, remove all the old code that generated the assignments
14070 associated with the signature of the dispatch table and replace them
14071 by a call to the new subprogram Set_Signature.
14072 (Set_All_DT_Position): Change the algorithm because now we have a
14073 separate dispatch table associated with predefined primitive operations.
14074 (Expand_Interface_Conversion): In case of non-static offset_to_top
14075 add explicit dereference to get access to the object after the call
14076 to displace the pointer to the object.
14077 (Expand_Interface_Thunk): Modify the generation of the actual used
14078 in the calls to the run-time function Offset_To_Top to fulfil its
14080 (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
14082 2006-02-13 Ed Schonberg <schonberg@adacore.com>
14084 * exp_dist.adb (Copy_Specification): For access parameters, copy
14085 Null_Exclusion flag, which will have been set for stream subprograms
14088 2006-02-13 Pascal Obry <obry@adacore.com>
14090 * expect.c (__gnat_expect_portable_execvp): New implementation. The
14091 previous implementation was using the C runtime spawnve routine but
14092 the corresponding wait was using directly the Win32 API. This was
14093 causing some times a lock when waiting for an event using
14094 WaitForSingleObject in __gnat_waitpid. This new implementation uses
14095 the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
14096 API fixes this problem.
14098 2006-02-13 Robert Dewar <dewar@adacore.com>
14100 * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
14103 2006-02-13 Thomas Quinot <quinot@adacore.com>
14105 * exp_pakd.ads: Fix typos in comments.
14107 * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
14108 array reference that is an explicit dereference, mark the converted
14109 (packed) array reference as analyzed to prevent a forthcoming
14110 reanalysis from resetting its type to the original (non-packed) array
14113 2006-02-13 Ed Schonberg <schonberg@adacore.com>
14114 Javier Miranda <miranda@adacore.com>
14115 Eric Botcazou <ebotcazou@adacore.com>
14117 * exp_util.ads, exp_util.adb (Find_Prim_Op,
14118 Is_Predefined_Primitive_Operation): When
14119 searching for the predefined equality operator, verify that operands
14120 have the same type.
14121 (Is_Predefined_Dispatching_Operation): Remove the code that looks
14122 for the last entity in the list of aliased subprograms. This code
14123 was wrong in case of renamings.
14124 (Set_Renamed_Subprogram): New procedure
14125 (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
14126 Exp_Type constant computed when entering this subprogram.
14127 (Known_Null): New function
14128 (OK_To_Do_Constant_Replacement): New function
14129 (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
14130 (Side_Effect_Free): An attribute reference 'Input is not free of
14131 side effect, unlike other attributes that are functions. (from code
14133 (Remove_Side_Effects): Expressions that involve packed arrays or records
14134 are copied at the point of reference, and therefore must be marked as
14135 renamings of objects.
14136 (Is_Predefined_Dispatching_Operation): Return false if the operation is
14137 not a dispatching operation.
14140 (Remove_Side_Effects): Lift enclosing type conversion nodes for
14141 elementary types in all cases.
14143 2006-02-13 Javier Miranda <miranda@adacore.com>
14145 * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
14146 task types when accessing to the corresponding record type.
14147 Remove '!' in warning message.
14149 2006-02-13 Olivier Hainque <hainque@adacore.com>
14151 * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
14152 to avoid useless and space inefficient overalignments on targets where
14153 Max_Alignment is larger than 16.
14155 2006-02-13 Pascal Obry <obry@adacore.com>
14157 * g-catiio.adb (Sec_Number): New type used to compute the number of
14158 seconds since 1-1-1970.
14159 (Image) [Natural]: The parameter was an Integer, as we can't deal with
14160 negative numbers (years, months...) it is better to have a Natural here.
14162 (Image) [Number]: Change parameter from Long_Integer to Number.
14163 (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
14164 overflow for dates past year 2038.
14166 2006-02-13 Matthew Heaney <heaney@adacore.com>
14168 * g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
14171 2006-02-13 Arnaud Charlet <charlet@adacore.com>
14173 * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
14175 (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
14176 finalization can occur normally.
14178 2006-02-13 Vincent Celier <celier@adacore.com>
14180 * gnatcmd.adb (Rules_Switches): New table
14181 (Add_To_Rules_Switches): New procedure
14182 (GNATCmd): For command CHECK, put all options following "-rules" in the
14183 Rules_Switches table. Append these -rules switches after the -cargs
14186 2006-02-13 Robert Dewar <dewar@adacore.com>
14188 * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
14189 These two cases were generating incorrect output, and if this unit
14190 was built with checks on, generated a discriminant mismatch constraint
14193 2006-02-13 Ed Schonberg <schonberg@adacore.com>
14194 Robert Dewar <dewar@adacore.com>
14196 * lib-xref.adb (Get_Type_Reference): For a private type whose full
14197 view is an array type, indicate the component type as well, for
14198 navigation purposes.
14199 (Generate_Reference): Don't consider array ref on LHS to be a case
14200 of violating pragma Unreferenced.
14201 Do not give Ada 2005 warning except on real reference.
14203 2006-02-13 Vincent Celier <celier@adacore.com>
14205 * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
14206 main source, add switch -mdebug-main=_ada_ so that the executable can
14207 be debugged by the standard VMS debugger.
14208 (Gnatmake): Set No_Main_Subprogram to True when there is no main
14209 subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
14210 Exit the Multi_Main_Loop when Unique_Compile is True after compilation
14211 of the last source, as the binding and linking phases are never
14213 Set all executable obsolete when rebuilding a library.
14215 * makeutl.adb (Linker_Options_Switches): Do not process empty linker
14218 2006-02-13 Javier Miranda <miranda@adacore.com>
14221 * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
14222 code to improve the error message reported when the program has
14223 declarations of abstract interface types and it is not compiled with
14224 the -gnat05 switch.
14225 (P_Access_Definition): Reorganize the code to improve the error
14226 message reported when the new Ada 2005 syntax for anonymous
14227 access types is used and the program is not compiled with the
14230 2006-02-13 Robert Dewar <dewar@adacore.com>
14232 * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
14233 stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
14236 2006-02-13 Javier Miranda <miranda@adacore.com>
14238 * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
14239 against source containing syntax errors.
14241 2006-02-13 Vincent Celier <celier@adacore.com>
14243 * prj.adb (Reset): Initialize the first element of table Namings with
14244 the standard naming data.
14246 2006-02-13 Vincent Celier <celier@adacore.com>
14248 * prj.ads (Error_Warning): New enumeration type
14250 * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
14251 unknown, use the location of the project to report the error.
14252 (When_No_Sources): New global variable
14253 (Report_No_Ada_Sources): New procedure
14254 (Check): New parameter When_No_Sources. Set value of global variable
14256 (Find_Sources): Call Report_No_Ada_Sources when appropriate
14257 (Get_Sources_From_File): Ditto
14258 (Warn_If_Not_Sources): Better warning messages indicating the unit name
14261 * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
14262 Call Prj.Proc.Process with parameter When_No_Sources.
14264 * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
14265 Call Recursive_Check with parameter When_No_Sources.
14266 (Recursive_Check): New parameter When_No_Sources. Call itself and
14267 Prj.Nmsc.Check with parameter When_No_Sources.
14268 (Process): New parameter When_No_Sources. Call Check with parameter
14270 (Copy_Package_Declarations): New procedure to copy renamed parameters
14271 and setting the location of the declared attributes to the location
14272 of the renamed package.
14273 (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
14276 2006-02-13 Vincent Celier <celier@adacore.com>
14278 * prj-makr.adb (Make): Preserve the comments from the original project
14280 When removing nodes (attributes Source_Dirs, Source_Files,
14281 Source_List_File and package Naming), save the comments and attach the
14282 saved comments to the newly created nodes.
14283 Do not add a with clause for the naming package if one already exists.
14285 2006-02-13 Javier Miranda <miranda@adacore.com>
14286 Gary Dismukes <dismukes@adacore.com>
14287 Robert Dewar <dewar@adacore.com>
14289 * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
14291 * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
14292 aliased entities to look for the overriden abstract interface
14294 (Is_Interface_Subprogram): Complete documentation.
14295 (Check_Dispatching_Operation): Do not generate code to register the
14296 operation in the dispatch table if the source is compiled with
14297 restriction No_Dispatching_Calls.
14298 (Override_Dispatching_Operation): Check for illegal attempt to override
14299 No_Return procedure with procedure that is not No_Return
14300 (Check_Dispatching_Call): Suppress the check for an abstract operation
14301 when the original node of an actual is a tag-indeterminate attribute
14302 call, since the attribute, which must be 'Input, can never be abstract.
14303 (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
14304 call to the Input attribute (even when rewritten).
14305 (Propagate_Tag): Augment comment to indicate the possibility of a call
14306 to an Input attribute.
14308 * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
14309 calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
14311 * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
14312 No_Wide_Characters is no longer partition-wide
14313 No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
14316 2006-02-13 Douglas Rupp <rupp@adacore.com>
14318 * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
14320 2006-02-13 Javier Miranda <miranda@adacore.com>
14322 * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
14323 handles default-initialized components to keep separate the management
14324 of this feature but also avoid the unrequired resolution and
14325 expansion of components that do not have partially initialized
14327 (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
14328 (Check_Bounds): Likewise.
14329 (Check_Length): Likewise.
14331 2006-02-13 Javier Miranda <miranda@adacore.com>
14332 Ed Schonberg <schonberg@adacore.com>
14334 * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
14335 abstract interface type call analyze_and_resolve to expand the type
14336 conversion into the corresponding displacement of the
14337 reference to the base of the object.
14338 (Eval_Attribute, case Width): For systems where IEEE extended precision
14339 is supported, the maximum exponent occupies 4 decimal digits.
14340 (Accessibility_Message): Add '\' in 2-line warning message.
14341 (Resolve_Attribute): Likewise.
14342 (case Attribute_Access): Significantly revise checks
14343 for illegal access-to-subprogram Access attributes to properly enforce
14344 the rules of 3.10.2(32/2).
14345 Diagnose use of current instance with an illegal attribute.
14347 * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
14349 (Enclosing_Generic_Unit): New function to return a node's innermost
14350 enclosing generic declaration node.
14351 (Compile_Time_Constraint_Error): Remove '!' in warning messages.
14352 (Type_Access_Level): The accessibility level of anonymous acccess types
14353 associated with discriminants is that of the current instance of the
14354 type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
14355 (Compile_Time_Constraint_Error): Handle case of conditional expression.
14356 (Kill_Current_Values_For_Entity): New function
14357 (Enter_Name): Change formal type to Entity_Id
14359 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
14360 Ed Schonberg <schonberg@adacore.com>
14361 Gary Dismukes <dismukes@adacore.com>
14363 * sem_ch10.adb (Check_Redundant_Withs): New procedure in
14364 Analyze_Compilation_Unit.
14365 Detect and warn on redundant with clauses detected in a package spec
14366 and/or body when -gnatwr is used.
14367 (Analyze_Context): Analyze config pragmas before other items
14368 (Install_Context_Items): Don't analyze config pragmas here
14369 (Install_Limited_Withed_Unit): Set limited entity of package in
14370 with_clause so that cross-reference information or warning messages on
14371 unused packages can be properly generated
14372 (Is_Visible_Through_Renamings): Return false if the limited_with_clause
14373 has Error_Posted set. Prevent infinite loops in illegal programs.
14374 (Check_Private_Child_Unit): Move test for a nonprivate with clause down
14375 to the point of the error test requiring the current unit to be private.
14376 This ensures that private with clauses are not exempted from the basic
14377 checking for being a descendant of the same library unit parent as a
14378 withed private descendant unit.
14379 (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
14380 handle private with clauses properly, as well as to account for cases
14381 where the withed unit is a public descendant of a private ancestor
14382 (in which case the current unit must be a descendant of the private
14383 ancestor's parent). The spec comments were updated accordingly. Also,
14384 the old error message in this subprogram was replaced with error
14385 messages that mirror the errors tested and reported by
14386 Check_Private_Child_Unit.
14387 Parameter and variable names improved for readability.
14388 (Install_Limited_Context_Clauses): Remove test for a withed unit being
14389 private as the precondition for calling
14390 Check_Private_Limited_Withed_Unit since that subprogram has been
14391 revised to test public units as well as private units.
14393 2006-02-13 Thomas Quinot <quinot@adacore.com>
14394 Robert Dewar <dewar@adacore.com>
14395 Ed Schonberg <schonberg@adacore.com>
14396 Javier Miranda <miranda@adacore.com>
14398 * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
14399 that Scope_Stack.First = 1.
14400 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
14401 were not always properly handled previously.
14402 (Formal_Entity): Complete rewrite, to handle properly some complex case
14403 with multiple levels of parametrization by formal packages.
14404 (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
14405 to the corresponding derived type declaration for proper semantics.
14407 * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
14408 (Check_Component): Enforce restriction on components of
14409 unchecked_unions: a component in a variant cannot contain tasks or
14411 (Unchecked_Union): Allow nested variants and multiple discriminants, to
14413 Add pragma Ada_2005 (synonym for Ada_05)
14414 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
14415 were not always properly handled previously.
14416 Document that pragma Propagate_Exceptions has no effect
14417 (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
14418 (Set_Convention_From_Pragma): Check that if a convention is
14419 specified for a dispatching operation, then it must be
14420 consistent with the existing convention for the operation.
14421 (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
14422 longer required to specify an vtable-ptr component in the record. For
14423 compatibility reasons we leave the support for the previous definition.
14424 (Analyze_Pragma, case No_Return): Allow multiple arguments
14426 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
14427 non-overrideen inherited operation with a controlling result as
14428 illegal only its implicit declaration comes from the derived type
14429 declaration of its result's type.
14430 (Check_Possible_Deferred_Completion): Relocate the object definition
14431 node of the subtype indication of a deferred constant completion rather
14432 than directly analyzing it. The analysis of the generated subtype will
14433 correctly decorate the GNAT tree.
14434 (Record_Type_Declaration): Check whether this is a declaration for a
14435 limited derived record before analyzing components.
14436 (Analyze_Component_Declaration): Diagnose record types not explicitly
14437 declared limited when a component has a limited type.
14438 (Build_Derived_Record_Type): Code reorganization to check if some of
14439 the inherited subprograms of a tagged type cover interface primitives.
14440 This check was missing in case of a full-type associated with a private
14442 (Constant_Redeclaration): Check that the subtypes of the partial and the
14443 full view of a constrained deferred constant statically match.
14444 (Mentions_T): A reference to the current type in an anonymous access
14445 component declaration must be an entity name.
14446 (Make_Incomplete_Type_Declaration): If type is tagged, set type of
14447 class_wide type to refer to full type, not to the incomplete one.
14448 (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
14449 available. Required to give support to the certified run-time.
14450 (Analyze_Component_Declaration): In case of anonymous access components
14451 perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
14452 (Process_Discriminants): For an access discriminant, use the
14453 discriminant specification as the associated_node_for_itype, to
14454 simplify accessibility checks.
14456 2006-02-13 Ed Schonberg <schonberg@adacore.com>
14457 Javier Miranda <miranda@adacore.com>
14459 * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
14460 abstract interpretations on an operator, remove interpretations that
14461 yield Address or a type derived from it, if one of the operands is an
14463 (Try_Object_Operation.Try_Primitive_Operation,
14464 Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
14465 location when creating the new reference to a primitive or class-wide
14466 operation as a part of rewriting a subprogram call.
14467 (Try_Primitive_Operations): If context requires a function, collect all
14468 interpretations after the first match, because there may be primitive
14469 operations of the same type with the same profile and different return
14470 types. From code reading.
14471 (Try_Primitive_Operation): Use the node kind to choose the proper
14472 operation when a function and a procedure have the same parameter
14474 (Complete_Object_Operation): If formal is an access parameter and prefix
14475 is an object, rewrite as an Access reference, to match signature of
14476 primitive operation.
14477 (Find_Equality_Type, Find_One_Interp): Handle properly equality given
14478 by an expanded name with prefix Standard, when the operands are of an
14479 anonymous access type.
14480 (Remove_Abstract_Operations): If the operation is abstract because it is
14481 inherited by a user-defined type derived from Address, remove it as
14482 well from the set of candidate interpretations of an overloaded node.
14483 (Analyze_Membership_Op): Membership test not applicable to cpp-class
14486 2006-02-13 Bob Duff <duff@adacore.com>
14488 * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
14489 redundant use clauses.
14490 In particular, if the scope of two use clauses overlaps, but one is not
14491 entirely included in the other, we should not warn. This can happen
14492 with nested packages.
14493 (Analyze_Subprogram_Renaming): Protect the compiler against previously
14494 reported errors. The bug was reported when the compiler was built
14495 with assertions enabled.
14496 (Find_Type): If the node is a 'Class reference and the prefix is a
14497 synchronized type without a corresponding record, return the type
14500 2006-02-13 Javier Miranda <miranda@adacore.com>
14502 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
14503 if this is the full-declaration associated with a private declaration
14504 that implement interfaces, then the private type declaration must be
14506 (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
14507 as aliased. The use of the 'access attribute is not available for such
14508 object (for this purpose the object should be explicitly marked as
14509 aliased, but being an anonymous type this is not possible).
14511 2006-02-13 Ed Schonberg <schonberg@adacore.com>
14512 Robert Dewar <dewar@adacore.com>
14514 * sem_elab.adb (Same_Elaboration_Scope): A package that is a
14515 compilation unit is an elaboration scope.
14516 (Add_Task_Proc): Add '\' in 2-line warning message.
14517 (Activate_All_Desirable): Deal with case of unit with'ed by parent
14519 2006-02-13 Ed Schonberg <schonberg@adacore.com>
14520 Javier Miranda <miranda@adacore.com>
14522 * sem_type.adb (Write_Overloads): Improve display of candidate
14524 (Add_One_Interp): Do not add to the list of interpretations aliased
14525 entities corresponding with an abstract interface type that is an
14526 immediate ancestor of a tagged type; otherwise we have a dummy
14527 conflict between this entity and the aliased entity.
14528 (Disambiguate): The predefined equality on universal_access is not
14529 usable if there is a user-defined equality with the proper signature,
14530 declared in the same declarative part as the designated type.
14531 (Find_Unique_Type): The universal_access equality operator defined under
14532 AI-230 does not cover pool specific access types.
14533 (Covers): If one of the types is a generic actual subtype, check whether
14534 it matches the partial view of the other type.
14536 2006-02-13 Thomas Quinot <quinot@adacore.com>
14538 * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
14539 line. This is necessary to allow In_Extended_Main_Unit to provide
14540 correct results for itypes while writing out expanded source.
14541 (Close_File): No need to update the source_index_table here since it's
14542 now done for each line.
14544 2006-02-13 Ed Schonberg <schonberg@adacore.com>
14545 Robert Dewar <dewar@adacore.com>
14547 * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
14548 preserve the source unit where the itype is declared, and prevent a
14550 (Note_Implicit_Run_Time_Call): New procedure
14551 (Write_Itype): Handle missing cases (E_Class_Wide_Type and
14554 * sprint.ads: Document use of $ for implicit run time routine call
14556 2006-02-13 Quentin Ochem <ochem@adacore.com>
14558 * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
14561 2006-02-13 Bob Duff <duff@adacore.com>
14563 * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
14564 Scan_Unsigned, so we do not scan leading blanks and sign twice.
14565 Integer'Value("- 5") and Integer'Value("-+5") now correctly
14566 raise Constraint_Error.
14568 * s-vallli.adb (Scan_Long_Long_Integer): Call
14569 Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
14570 do not scan leading blanks and sign twice.
14571 Integer'Value("- 5") and Integer'Value("-+5") now correctly
14572 raise Constraint_Error.
14574 * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
14575 Scan_Long_Long_Unsigned): Split out most of the processing from
14576 Scan_Long_Long_Unsigned out into
14577 Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
14578 This prevents scanning leading blanks and sign twice.
14579 Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
14582 * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
14583 out most of the processing from Scan_Unsigned out into
14584 Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
14585 This prevents scanning leading blanks and sign twice.
14587 * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
14588 use with Modular'Value attribute.
14589 (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
14592 2006-02-13 Robert Dewar <dewar@adacore.com>
14594 * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
14596 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
14598 * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
14599 (PPC VxWorks): Likewise.
14600 (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
14601 (forced_callee): Make non-inlinable and non-pure.
14602 (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
14604 2006-02-13 Arnaud Charlet <charlet@adacore.com>
14605 Ben Brosgol <brosgol@adacore.com>
14606 Robert Dewar <dewar@adacore.com>
14608 * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
14610 Document that gnatbind -M option is for cross environments only.
14611 Added description of using gnatmem to trace gnat rtl allocs and deallocs
14612 Add note on use of $ to label implicit run time calls
14613 Add documentation for -gnatyI (check mode IN)
14614 Updated chapter on compatibility with HP Ada
14615 VMS-oriented edits.
14616 Ran spell and corrected errors
14617 Add documentation for gnatbind -d and rework documentation of -D
14619 Add subprogram/data elimination section.
14620 Minor editing of annex A.
14621 Add section for gnatcheck.
14622 Add documentation for restriction No_Dispatching_Calls
14623 Add documentation for pragma Ada_2005
14624 Remove mention of obsolete pragma Propagate_Exceptions
14625 Document that pragma Unreferenced can appear after DO in ACCEPT
14626 Clarify Pure_Function for library level units
14627 Mention Max/Min in connection with No_Implicit_Conditionals
14628 No_Wide_Characters restriction is no longer partition-wide
14629 Add a nice example for Universal_Literal_String attribute
14630 Document that pragma No_Return can take multiple arguments
14632 * ug_words: Added entry for gnatcheck
14634 * g-ctrl_c.ads (Install_Handler): Enhance comments
14636 * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
14638 * g-trasym.ads: Add documentation on how to do off line symbolic
14639 traceback computation.
14641 * s-fatgen.adb: Add comments for Unaligned_Valid
14643 * stand.ads: Fix typo in comment
14645 2006-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
14647 * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
14649 2006-02-06 Roger Sayle <roger@eyesopen.com>
14651 * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
14653 2006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14656 * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
14657 implementation that calls __main.
14659 2006-01-25 Peter O'Gorman <peter@pogma.com>
14662 * Makefile.in (GCC_LINK): Remove quotes.
14663 (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
14666 (powerpc-darwin): Pass -shared-libgcc when building shared library.
14668 2006-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14671 * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
14673 2005-12-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14675 * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
14677 2005-12-12 Arnaud Charlet <charlet@adacore.com>
14679 * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
14682 2005-12-12 Arnaud Charlet <charlet@adacore.com>
14684 * Make-lang.in: Update dependencies
14686 2005-12-12 Arnaud Charlet <charlet@adacore.com>
14688 * Make-lang.in: Add rule for ada/exp_sel.o
14690 2005-12-12 Arnaud Charlet <charlet@adacore.com>
14692 * Makefile.in (mingw section): Remove EH_MECHANISM setting.
14694 2005-12-09 Arnaud Charlet <charlet@adacore.com>
14696 * gnatvsn.ads (Library_Version): Bump to version 4.2
14697 (ASIS_Version_Number): Bumped.
14699 2005-12-09 Doug Rupp <rupp@adacore.com>
14701 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
14702 Ada bind file prefix on VMS from b$ to b__.
14703 (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
14706 * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
14707 Targparm.OpenVMS_On_Target.
14708 (Object_Suffix): Initialize with target object suffix.
14709 (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
14711 * butil.adb: Change some Hostparm.OpenVMS checks to
14712 Targparm.OpenVMS_On_Target.
14714 * clean.adb: Change some Hostparm.OpenVMS checks to
14715 Targparm.OpenVMS_On_Target.
14716 (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
14717 ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
14718 Ada bind file prefix on VMS from b$ to b__.
14720 * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
14721 --GCC so that Get_Target_Parameters can find system.ads.
14722 (Gnatlink): Call Get_Target_Parameters in mainline.
14723 Initialize standard packages for Targparm.
14724 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
14725 (Process_Args): Also Check for object files with target object
14727 (Make_Binder_File_Names): Create with target object extension.
14728 (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
14731 * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
14732 Targparm.OpenVMS_On_Target.
14733 ({declaration},Build_Library,Check_Library): Change Ada bind file
14734 prefix on VMS from b$ to b__.
14736 * osint-b.adb: Change some Hostparm.OpenVMS checks to
14737 Targparm.OpenVMS_On_Target.
14738 (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
14741 * targext.c: New file.
14743 * Makefile.in: add support for vxworks653 builds
14744 (../../vxaddr2line): gnatlink with targext.o.
14745 (TOOLS_LIBS): Move targext.o to precede libgnat.
14746 (init.o, initialize.o): Minor clean up in dependencies.
14747 (GNATLINK_OBJS): Add targparm.o, snames.o
14748 Add rules fo building targext.o and linking it explicitly with all
14750 Also add targext.o to gnatlib.
14752 * Make-lang.in: Add rules for building targext.o and linking it in
14753 with gnat1 and gnatbind.
14754 Add entry for exp_sel.o.
14756 * osint.adb Change some Hostparm.OpenVMS checks to
14757 Targparm.OpenVMS_On_Target.
14758 (Object_File_Name): Use target object suffix.
14760 * osint.ads (Object_Suffix): Remove, no longer used.
14761 (Target_Object_Suffix): Initialize with target object suffix.
14763 * rident.ads: Add special exception to license.
14765 * targparm.adb (Get_Target_Parameters): Set the value of
14766 Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
14768 (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
14770 * targparm.ads: Add special exception to license.
14772 * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
14774 (Copy_File): Make sure from file is closed if error on to file
14775 (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
14777 * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
14778 (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
14780 * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
14781 target object suffix.
14783 2005-12-09 Jose Ruiz <ruiz@adacore.com>
14784 Quentin Ochem <ochem@adacore.com>
14785 Florian Villoing <villoing@adacore.com>
14787 * a-taster.ads, a-taster.adb: New files.
14789 * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
14790 link to the version that does nothing. This way the task termination
14791 routine is not executed twice for the environment task when finishing
14792 because of an unhandled exception.
14794 * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
14795 handler because of an unhandled exception.
14797 * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
14798 System.Tasking.Utilities instead of that in System.Tasking.Stages.
14800 * s-finimp.adb (initialization code): Modify the soft link for the
14801 finalization of the global list instead of Adafinal.
14803 * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
14804 non-tasking version of the soft link for task termination. We do
14805 nothing since if we are using the non-tasking version it
14806 means that the task termination functionality is not used.
14807 (Null_Finalize_Global_List): Add this null version for the procedure
14808 in charge of finalizing the global list for controlled objects.
14809 (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
14810 instead for handling run-time termination in a more flexible way.
14811 (Adafinal_NT): This new procedure will take care of finalizing the
14812 global list for controlled objects if needed, but no tasking
14815 * s-tarest.adb (Task_Lock): Do not try to lock again the
14816 Global_Task_Lock if we already own it. Otherwise, we get blocked in
14817 some run-time operations.
14818 (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
14819 until all nested locks have been released.
14820 (Task_Wrapper): Call the fall-back task termination handler. It
14821 applies to all tasks but the environment task.
14822 (Finalize_Global_Tasks): Add the call for the task termination
14823 procedure for the environment task.
14824 (Task_Wrapper): suppress warnings around declaration of
14825 Secondary_Stack_Address.
14827 * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
14828 moved to the Common_ATCB record.
14829 (Task_Lock): Global_Task_Lock_Nesting has been moved to the
14830 Common_ATCB record.
14831 (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
14832 Common_ATCB record.
14834 * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
14835 Fall_Back_Handler, and Specific_Handler.
14837 * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
14838 defined in Ada.Task_Termination, to avoid circular dependencies.
14839 (Termination_Handler): Redefine this type here, alredy defined in
14840 Ada.Task_Termination, for avoiding circular dependencies.
14841 (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
14842 for storing task termination handlers. In addition,
14843 Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
14844 Common_ATCB because it is used by both the regular and the restricted
14846 (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
14847 Common_ATCB because it is used by both the regular and the restricted
14849 (Common_ATCB): Added a dynamic task analyzer field.
14851 * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
14852 potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
14853 (Task_Wrapper): Call the task termination handler. It applies to all
14854 tasks but the environment task.
14855 (Finalize_Global_Tasks): Call the task termination procedure for the
14856 environment task. The call to Finalize_Global_List is now performed
14857 using the soft links mechanism.
14858 (Task_Wrapper): added dynamic stack analysis.
14860 * s-tasuti.adb (Abort_Tasks): The code in charge of checking
14861 potentially blocking operations has been moved from
14862 System.Tasking.Stages.Abort_Tasks to this procedure. There can be
14863 direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
14864 through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
14865 this run-time check.
14867 * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
14868 of task termination procedure.
14869 (Init_Tasking_Soft_Links): Install the task-safe version of the soft
14870 link for the task termination procedure.
14872 * bindusg.adb: (Bindusg): Added documentation for -u option.
14874 * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
14875 (Get_Main_C): Add handling of dynamic stack analysis.
14876 (Gen_Output_File_C): Add external functions for dynamic stack analysis.
14878 * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
14879 (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
14880 (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
14882 * opt.ads: Added flags used by dynamic stack measurement.
14883 (Max_Line_Length): Remove (not used anymore)
14885 * s-io.ads, s-io.adb (Standard_Error): new subprogram
14886 (Standart_Output): new subprogram
14887 (Set_Output): new subprogram
14888 (Put): now uses the value of Current_Out to know if the output has to be
14889 send to stderr or stdout.
14891 * s-stausa.ads: Complete implementation.
14893 * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
14895 * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
14896 list of Ada 05 files.
14897 (GNAT Library Units): Add AltiVec files.
14899 * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
14900 g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
14901 g-alvety.ads, g-alvevi.ads: New files providing altivec API.
14903 2005-12-09 Nicolas Setton <setton@adacore.com>
14905 * adaint.c (__gnat_locate_regular_file): Return immediately if
14906 file_name is empty.
14908 2005-12-09 Javier Miranda <miranda@adacore.com>
14909 Hristian Kirtchev <kirtchev@adacore.com>
14911 * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
14912 to the specification because the frontend generates code that uses this
14914 (Set_Interface_Table): Add missing assertion.
14915 Update documentation describing the run-time structure.
14916 (Displace): New subprogram that displaces the pointer to the object
14917 to reference one of its secondary dispatch tables.
14918 (IW_Membership): Modified to use the new table of interfaces.
14919 (Inherit_TSD): Modified to use the new table of interfaces.
14920 (Register_Interface_Tag): Use the additional formal to fill the
14921 contents of the new table of interfaces.
14922 (Set_Interface_Table): New subprogram that stores in the TSD the
14923 pointer to the table of interfaces.
14924 (Set_Offset_To_Top): Use the additional formal to save copy of
14925 the offset value in the table of interfaces.
14926 Update structure of GNAT Primary and Secondary dispatch table diagram.
14927 Add comment section on GNAT dispatch table prologue.
14928 (Offset_To_Signature): Update the constant value of the Signature field.
14929 (Dispatch_Table): Update comment on hidden fields in the prologue.
14930 (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
14931 Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
14932 the type of formal parameter T to Tag, introduce additional assertions.
14933 (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
14935 (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
14937 * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
14938 in all the calls to Expand_Interface_Thunk. Instead of referencing the
14939 record component containing the tag of the secondary dispatch table we
14940 have to use the Offset_To_Top run-time function to get this information;
14941 otherwise if the pointer to the base of the object has been displace
14942 we get a wrong value if we use the 'position attribute.
14944 * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
14945 all the calls to Expand_Interface_Thunk.
14946 (Make_Secondary_DT): Secondary dispatch tables do not have a table of
14947 interfaces; hence the call to Set_Interface_Table was clearly wrong.
14948 (Collect_All_Interfaces): Modify the internal subprogram Collect to
14949 ensure that the interfaces implemented by the ancestors are placed
14950 at the header of the generated list.
14951 (Expand_Interface_Conversion): Handle the case in which the displacement
14952 associated with the interface conversion is not statically known. In
14953 this case we generate a call to the new run-time subprogram Displace.
14954 (Make_DT): Generate and fill the new table of interfaces.
14955 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
14956 Get_Tagged_Kind and Set_Tagged_Kind.
14957 (Tagged_Kind): New function that determines the tagged kind of a type
14958 with respect to limitedness and concurrency and returns a reference to
14960 (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
14961 Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
14962 primary dispatch table for a type.
14963 (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
14964 secondary dispatch table respectively of a tagged type.
14966 * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
14967 (Expand_Interface_Conversion): New subprogram to indicate if the
14968 displacement of the type conversion is statically known.
14969 (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
14971 * rtsfind.ads (RE_Offset_To_Top): New entity
14972 (RTU_Id): Add Ada_Task_Termination to the list so that it is made
14973 accessible to users.
14974 (Re_Displace): New entity
14975 (RE_Interface_Data): New entity
14976 (RE_Set_Interface_Data): New_Entity
14977 (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
14978 Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
14979 RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
14980 RE_TK_Tagged, RE_TK_Task.
14982 * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
14983 Init_Secondary_Tags_Internal to allow its use with interface types and
14984 also to generate the code for the new additional actual required
14985 by Set_Offset_To_Top.
14986 (Build_Init_Statements): In case of components associated with abstract
14987 interface types there is no need to generate a call to its IP.
14988 (Freeze_Record_Type): Generate Select Specific Data tables only for
14990 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
14991 the bodies and specifications of the predefined primitive operations
14992 dealing with dispatching selects and abort, 'Callable, 'Terminated only
14993 for concurrent types.
14995 * exp_sel.ads, exp_sel.adb: New files.
14997 * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
14998 Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
14999 properly protected objects and attach handler in the case of the
15000 restricted profile.
15001 Move embeded package Select_Expansion_Utilities into a separate external
15003 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
15004 Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
15005 (Build_K, Build_S_Assignment): New subprograms, part of the select
15006 expansion utilities.
15007 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
15008 Expand_N_Timed_Entry_Call): Optimize expansion of select statements
15009 where the trigger is a dispatching procedure of a limited tagged type.
15011 2005-12-09 Olivier Hainque <hainque@adacore.com>
15013 * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
15014 pointer initialization values. Make a SAVE_EXPR instead. Add comments
15015 about the use and expansion of SAVE_EXPRs in the various possible
15016 renaming handling cases.
15017 (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
15018 abusing DECL_FCONTEXT.
15020 2005-12-09 Matthew Heaney <heaney@adacore.com>
15022 * a-convec.adb (Merge): Added assertions to check whether vector params
15025 * a-coinve.adb (Merge): Added assertions to check whether vector params
15028 * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
15030 (Cursor'Read): raises PE
15032 * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
15033 to its default value.
15035 * a-cihama.adb: Manually check whether cursor's key and elem are
15038 * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
15039 (Merge): Assert that target and source lists are in order
15040 (Swap): Declare non-const temporaries, to pass to Splice
15042 * a-cdlili.ads: (Splice): Changed param name and param mode
15044 * a-cdlili.adb: (Splice): Changed param name and param mode
15045 (Merge): Assert that target and source lists are in order
15046 (Swap): Declare non-const temporaries, to pass to Splice
15048 * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
15049 (Write): declare Stream param as not null
15051 * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
15052 an exception message.
15054 2005-12-09 Thomas Quinot <quinot@adacore.com>
15055 Robert Dewar <dewar@adacore.com>
15057 * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
15058 which is the absolute maximum length we can support.
15060 * frontend.adb: For the processing of configuration pragma files,
15061 remove references to Opt.Max_Line_Length, which is not checked anymore.
15063 * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
15066 * scn.adb, scng.adb:
15067 Always check line length against the absolute supported maximum,
15068 Hostparm.Max_Line_Length.
15070 * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
15071 value for the maximum line length is Max_Line_Length (not
15072 Column_Number'Last).
15073 Minor error msg update
15074 (Set_Style_Check_Options): New interface returning error msg
15075 Minor code reorganization (processing for 'M' was out of alpha order)
15077 * switch-c.adb: New interface for Set_Style_Check_Options
15079 * stylesw.ads (Set_Style_Check_Options): New interface returning error
15082 2005-12-09 Javier Miranda <miranda@adacore.com>
15084 * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
15085 with IP subprogram were only supported if there were limited types.
15087 * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
15088 records with IP subprogram were only supported if there were limited
15091 2005-12-09 Olivier Hainque <hainque@adacore.com>
15092 Eric Botcazou <ebotcazou@adacore.com>
15094 * trans.c (tree_transform, emit_check): Adjust calls to
15095 build_call_raise, passing the now expected GNAT_NODE argument.
15097 * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
15098 source line information than what the current global locus indicates
15101 * utils2.c (build_simple_component_ref): Return 0 if the offset of the
15102 field has overflowed.
15103 (build_call_raise): Add a GNAT_NODE argument to convey better source
15104 line information than what the current global locus indicates when
15106 (build_component_ref): Adjust call to build_call_raise.
15108 2005-12-09 Pascal Obry <obry@adacore.com>
15110 * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
15111 the iterator is quitting iteration on parent directory.
15113 2005-12-09 Javier Miranda <miranda@adacore.com>
15115 * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
15116 and the assignment to a class-wide object, before the assignment we
15117 generate a run-time check to ensure that the tag of the Target is
15118 covered by the tag of the source.
15120 2005-12-09 Robert Dewar <dewar@adacore.com>
15122 * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
15123 parameter in call to Image_Wide_Character.
15125 * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
15126 parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
15127 (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
15128 annoying FFFE/FFFF inconsistency.
15130 2005-12-09 Robert Dewar <dewar@adacore.com>
15131 Javier Miranda <miranda@adacore.com>
15132 Ed Schonberg <schonberg@adacore.com>
15134 * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
15135 of type conversion.
15136 (Find_Interface): New subprogram that given a tagged type and one of its
15137 component associated with the secondary table of an abstract interface
15138 type, return the entity associated with such abstract interface type.
15139 (Make_Subtype_From_Expr): If type has unknown discriminants, always use
15140 base type to create anonymous subtype, because entity may be a locally
15141 declared subtype or generic actual.
15142 (Find_Interface): New subprogram that given a tagged type and one of its
15143 component associated with the secondary table of an abstract interface
15144 type, return the entity associated with such abstract interface type.
15146 * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
15147 conversion cannot be handled at compile time. In this case we pass this
15148 information to the expander to generate the appropriate code.
15150 2005-12-09 Robert Dewar <dewar@adacore.com>
15151 Ed Schonberg <schonberg@adacore.com>
15152 Gary Dismukes <dismukes@adacore.com>
15153 Javier Miranda <miranda@adacore.com>
15154 Hristian Kirtchev <kirtchev@adacore.com>
15156 * einfo.adb (Itype_Printed): New flag
15157 (Is_Limited_Type): Derived types do not inherit limitedness from
15158 interface progenitors.
15159 (Is_Return_By_Reference_Type): Predicate does not apply to limited
15162 * einfo.ads (Itype_Printed): New flag
15163 Move Is_Wrapper_Package to proper section
15164 Add missing Inline for Is_Volatile
15166 * output.ads, output.adb (Write_Erase_Char): New procedure
15167 (Save/Restore_Output_Buffer): New procedures
15168 (Save/Restore_Output_Buffer): New procedures
15170 * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
15171 Add missing support for anonymous access type
15172 (Write_Id): Insert calls to Write_Itype
15173 (Write_Itype): New procedure to output itypes
15175 * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
15176 use of "limited" in declaration.
15178 * sinfo.ads, sinfo.adb:
15179 Formal derived types can carry an explicit "limited" indication.
15181 * sem_ch3.adb: Add with and use of Targparm.
15182 (Create_Component): If Frontend_Layout_On_Target is True and the
15183 copied component does not have a known static Esize, then reset
15184 the size and positional fields of the new component.
15185 (Analyze_Component_Declaration): A limited component is
15186 legal within a protected type that implements an interface.
15187 (Collect_Interfaces): Do not add to the list the interfaces that
15188 are implemented by the ancestors.
15189 (Derived_Type_Declaration): If the parent of the full-view is an
15190 interface perform a transformation of the tree to ensure that it has
15191 the same parent than the partial-view. This simplifies the job of the
15192 expander in order to generate the correct object layout, and it is
15193 needed because the list of interfaces of the full-view can be given in
15195 (Process_Full_View): The parent of the full-view does not need to be
15196 a descendant of the parent of the partial view if both parents are
15198 (Analyze_Private_Extension_Declaration): If declaration has an explicit
15199 "limited" the parent must be a limited type.
15200 (Build_Derived_Record_Type): A derived type that is explicitly limited
15201 must have limited ancestor and progenitors.
15202 (Build_Derived_Type): Ditto.
15203 (Process_Full_View): Verify that explicit uses of "limited" in partial
15204 and full declarations are consistent.
15205 (Find_Ancestor_Interface): Remove function.
15206 (Collect_Implemented_Interfaces): New procedure used to gather all
15207 implemented interfaces by a type.
15208 (Contain_Interface): New function used to check whether an interface is
15210 (Find_Hidden_Interface): New function used to determine whether two
15211 lists of interfaces constitute a set equality. If not, the first
15212 differing interface is returned.
15213 (Process_Full_View): Improve the check for the "no hidden interface"
15214 rule as defined by AI-396.
15216 2005-12-09 Robert Dewar <dewar@adacore.com>
15218 * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
15219 types, not on record subtypes.
15220 (Freeze_Entity): Code cleanup. Add barrier to the loop
15221 that generates the references for primitive operations. This allows to
15222 remove an unnecessary exception handler.
15223 Code reformatting and comment clean ups.
15225 2005-12-09 Vincent Celier <celier@adacore.com>
15227 * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
15228 If GNAT CHECK is called with a project file, but with no
15229 source on the command line, call gnatcheck with all the compilable
15230 sources of the project.
15231 Take into account the new command Check, for gnatcheck. Treat as for
15232 other ASIS tools: take into account project, specific package Check and
15234 For ASIS tools, add the switches in package Compiler for
15235 the invocation of the compiler.
15237 * prj-attr.adb: Add package Check and its attributes
15239 * vms_conv.ads (Command_Type): New command Check, for gnatcheck
15241 * vms_conv.adb (Initialize): Change Params of command Check to
15243 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
15244 Add data for new command Check
15246 * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
15248 Add qualifiers for Check command options
15249 (Command_Type): New command Check
15251 2005-12-09 Thomas Quinot <quinot@adacore.com>
15253 * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
15254 command line switch overruns the output buffer.
15256 2005-12-09 Robert Dewar <dewar@adacore.com>
15258 * sem_prag.adb: Processing for new pragma Complete_Representation
15259 (Analyze_Pragma, case Debug): Implement two argument form.
15261 * par-prag.adb: Entry for new pragma Complete_Representation
15262 (Prag, case Debug): Recognize two argument form of pragma Debug
15263 New interface for Set_Style_Check_Options.
15265 * sem_ch13.adb: Implement new pragma Complete_Representation.
15267 * snames.adb, snames.ads, snames.h: Entry for new pragma
15268 Complete_Representation.
15270 2005-12-09 Gary Dismukes <dismukes@adacore.com>
15272 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
15273 available user-specified stream attributes on limited parameters to
15274 also test the type directly rather than only its underlying type (for
15275 Ada 95) and, in the case of Ada 2005, to check that the user-specified
15276 attributes are visible at the point of the subprogram declaration.
15277 For Ada 2005, the error message is modified to indicate that the
15278 type's stream attributes must be visible (again, only for -gnat05).
15280 2005-12-09 Ed Schonberg <schonberg@adacore.com>
15282 * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
15283 anonymous access types.
15285 * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
15286 matching of anonymous access types and anonymous access to subprogram
15287 types. 'R'M 4.9.1 (2/2).
15289 2005-12-09 Ed Schonberg <schonberg@adacore.com>
15291 * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
15292 rule prematurely when operands are universal, remaining ambiguities
15293 will be removed during resolution.
15296 * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
15297 that are Ada 2005 functions.
15298 (Has_Abstract_Interpretation): Subsidiary to
15299 Remove_Conversions, to remove ambiguities caused by abstract operations
15300 on numeric types when operands are universal.
15302 2005-12-09 Robert Dewar <dewar@adacore.com>
15304 * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
15305 for case where spec is categorized.
15307 2005-12-09 Javier Miranda <miranda@adacore.com>
15309 * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
15310 types use the corresponding record type. This was not needed before
15311 the implementation of Ada 2005 synchronized types because
15312 concurrent types were never tagged types in Ada 95.
15314 2005-12-09 Ed Schonberg <schonberg@adacore.com>
15316 * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
15317 first subtype of the type of the expression to verify that it is a
15320 2005-12-09 Robert Dewar <dewar@adacore.com>
15322 * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
15325 2005-12-09 Quentin Ochem <ochem@adacore.com>
15326 Robert Dewar <dewar@adacore.com>
15327 Ed Falis <falis@adacore.com>
15328 Florian Villoing <villoing@adacore.com>
15329 Thomas Quinot <quinot@adacore.com>
15330 Arnaud Charlet <charlet@adacore.com>
15332 * gnat_ugn.texi: Created section "Stack Related Tools"
15333 Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
15334 "Stack Related Tools"
15335 Added subsection "Static Stack Usage Analysis"
15336 Added subsection "Dynamic Stack Usage Analysis"
15337 Include documentation of itypes in sprint listing (-gnatG)
15338 Documented gnatbind -D switch (default sec stack size for fixed sec
15340 Added Interrupt_State and Persistent_BSS to list of configuration
15342 Add missing doc for maximum value of nnn in -gnatyMnnn
15344 * gnat_rm.texi: Document the AltiVec binding.
15345 Add documentation for pragma Complete_Representation
15346 Shortened an overly long line (> 79 chars)
15347 Clarify documentation of unchecked conversion in implementation
15349 Document two argument form of pragma Debug
15351 * types.ads (Column_Number): Update documentation.
15353 * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
15354 library level Finalize_Storage_Only objects (these are not attached to
15355 any finalization list).
15357 * system-mingw.ads: (Underlying_Priorities): Update comment.
15359 2005-12-09 Robert Dewar <dewar@adacore.com>
15361 * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
15362 i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
15363 inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
15364 i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
15365 krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
15366 lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
15367 interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
15368 s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
15371 2005-12-09 Robert Dewar <dewar@adacore.com>
15373 * s-vaflop-vms-alpha.adb: (Ne_F): New function
15374 (Ne_G): New function
15376 * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
15377 for tag assignment.
15378 (Rewrite_Comparison): Handle case where operation is not a comparison
15379 and ignore, and also handle type conversion case.
15381 2005-12-09 Thomas Quinot <quinot@adacore.com>
15383 * exp_aggr.ads: Fix typo in comment.
15384 ???-mark Convert_Aggr_In_Assignment as needing documentation.
15386 2005-12-09 Gary Dismukes <dismukes@adacore.com>
15388 * layout.adb: Replace various uses of byte by storage unit throughout.
15389 (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
15390 static size, convert to storage units before returning, to conform to
15393 2005-12-09 Matthew Gingell <gingell@adacore.com>
15395 * g-exctra.ads: Fix typo in comment.
15397 2005-12-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
15399 * utils.c: Minor reformatting.
15401 2005-12-09 Robert Dewar <dewar@adacore.com>
15404 Further comment fixes to make the status of the default file clear
15406 * s-bitops.adb: Clarify comment for Bits_Array
15408 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
15410 * Make-lang.in (ada.install-normal): Remove.
15412 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
15414 * Make-lang.in: Remove all dependencies on s-gtype.
15416 2005-12-05 Richard Guenther <rguenther@suse.de>
15418 * utils.c (convert): Use fold_convert where appropriate.
15420 2005-12-05 Paolo Bonzini <bonzini@gnu.org>
15422 * Makefile.in (gnatlib): Fix regex, using \. instead of . when
15425 2005-12-02 Richard Guenther <rguenther@suse.de>
15427 * trans.c (gnat_gimplify_expr): Use buildN instead of build.
15429 2005-12-01 Roger Sayle <roger@eyesopen.com>
15431 * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
15434 2005-11-23 Laurent Guerby <laurent@guerby.net>
15436 * mlib-prj.adb (Build_Library): Initialize Delete.
15438 2005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
15440 * socket.c: Add extern int h_errno for rtems since networking header
15441 files are not available at this point in a tool bootstrap. Newlib
15442 only has basic C library header files.
15444 2005-11-19 Richard Guenther <rguenther@suse.de>
15445 Roger Sayle <roger@eyesopen.com>
15448 * misc.c (internal_error_function): Don't use vsprintf to format
15449 the error message text, instead use pp_format_text and the new
15450 pretty printer APIs. This allows handling of %qs, %w, etc.
15452 2005-11-18 Laurent Guerby <laurent@guerby.net>
15455 * Makefile.in: Use s-auxdec-empty for RTEMS.
15457 2005-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
15460 * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
15461 a temporary if taking the address of something that is neither
15462 reference, declaration, or constant, since the gimplifier
15463 can't handle that case.
15465 2005-11-17 Laurent Guerby <laurent@guerby.net>
15468 * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
15470 2005-11-16 Richard Guenther <rguenther@suse.de>
15472 * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
15474 2005-11-16 Joel Sherrill <joel.sherrill@oarcorp.com>
15477 * raise-gcc.c: Add missing stdarg.h include.
15479 2005-11-16 Richard Guenther <rguenther@suse.de>
15481 * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
15482 (ada/misc.o): Likewise.
15484 2005-11-14 Thomas Quinot <quinot@adacore.com>
15486 * g-soccon.ads: Minor reformatting. Update comments.
15488 * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
15489 gain visibility on the declaration of struct timeval.
15491 * g-soccon-freebsd.ads,
15492 g-soccon-darwin.ads,
15493 g-soccon-tru64.ads,
15497 g-soccon-solaris.ads,
15499 g-soccon-mingw.ads,
15500 g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
15502 * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
15503 g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
15504 g-soccon-linux-x86.ads: New files.
15506 * g-socthi-mingw.adb:
15507 (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
15509 * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
15510 (time_t, suseconds_t): New types constructed to match the tv_sec
15511 and tv_usec fields of C struct timeval.
15512 (Timeval): Construct structure in terms of the new types.
15513 (Host_Errno): New function (imported from socket.c), returns last hosts
15516 * g-socthi-vxworks.adb: Add error handling circuitry.
15518 * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
15519 components of struct timeval.
15520 (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
15521 (Check_Selector): In error conditions, clear internal socket sets to
15522 avoid a memory leak.
15523 (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
15524 Send_Timeout, Receive_Timeout.
15526 * g-socthi.ads (time_t, suseconds_t): New types constructed to match
15527 the tv_sec and tv_usec fields of C struct timeval.
15528 (Timeval): Construct structure in terms of the new types.
15529 (Host_Errno): New function (imported from socket.c), returns last hosts
15532 * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
15533 hosts database last error code.
15535 * gen-soccon.c: Complete value expansion should not be performed on
15536 TARGET, as it has the form of a math expression, and some components
15537 may be platform-defined macros.
15538 For VxWorks, generate the OK and ERROR values.
15539 New constants giving the sizes of the components of C struct timeval.
15541 2005-11-14 Robert Dewar <dewar@adacore.com>
15542 Ed Schonberg <schonberg@adacore.com>
15545 * types.ads: Include All_Checks in Suppress_Array
15547 * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
15548 not(a=b), since we no longer do this rewriting, and hence it is not
15550 (Elaboration_Checks_Suppressed): Add special casing to
15551 deal with different cases of static and dynamic elaboration checks (all
15552 checks does not count in the first case, but does in the second).
15553 (Expr_Known_Valid): Do not assume that the result of any arbitrary
15554 function call is valid, since this is not the case.
15555 (Ensure_Valid): Do not apply validity check to a real literal
15556 in a universal or fixed context
15558 * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
15559 elementary types using the operator in standard. It is cleaner not to
15560 modify the programmers intent, especially in the case of floating-point.
15561 (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
15562 it did not matter because we always rewrote a/=b to not(a=b).
15563 (Expand_Allocator_Expression): For an allocator expression whose nominal
15564 subtype is an unconstrained packed type, convert the expression to its
15565 actual constrained subtype.
15566 Implement warning for <= or >= where < or > not possible
15567 Fix to Vax_Float tests (too early in many routines, causing premature
15568 Vax_Float expansions.
15570 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
15571 to be used with packages and generic packages as well as with
15573 (Suppress): Set All_Checks, but not Elaboration_Check, for case
15574 of pragma Suppress (All_Checks)
15575 (Analyze_Pragma, case Warnings): Implement first argument allowed to be
15576 a string literal for precise control over warnings.
15577 Avoid raise of pragma in case of unrecognized pragma and just return
15580 * sem_prag.ads: Minor reformatting
15582 * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
15583 with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
15584 Switch. Do not handle any exception.
15585 Include -gnatwx as part of -gnatg (warn on redundant parens)
15586 Allow optional = after -gnatm
15587 (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
15588 longer sets Elaboration_Checks.
15589 Code to set warning mode moved to Sem_Warn
15590 so that it can be shared by pragma processing.
15592 * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
15595 * s-taprop-solaris.adb:
15596 Change some <= to =, to avoid new warning
15598 * a-exexda.adb, prj-proc.adb:
15599 Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
15600 Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
15602 2005-11-14 Robert Dewar <dewar@adacore.com>
15604 * exp_vfpt.adb: Handle /= case
15605 (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
15606 so that we do not get duplicate scaling for fixed point conversions.
15608 * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
15610 2005-11-14 Matthew Gingell <gingell@adacore.com>
15612 * system-lynxos-ppc.ads, system-lynxos-x86.ads:
15613 Increase default priority on Lynx from 15 to 17, and meet the Ada
15614 requirement that Default_Priority be ((Priority'First +
15615 Priority'Last) / 2) by increasing the range of Interrupt_Priority.
15617 2005-11-14 Vincent Celier <celier@adacore.com>
15619 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
15620 mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
15621 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
15622 mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
15623 mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
15624 mlib-tgt-lynxos.adb (DLL_Prefix): New function
15626 2005-11-14 Doug Rupp <rupp@adacore.com>
15628 * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
15631 2005-11-14 Arnaud Charlet <charlet@adacore.com>
15633 * s-traces-default.adb, s-trafor-default.ads,
15634 s-tratas-default.adb: Fix compilation errors.
15636 2005-11-14 Jose Ruiz <ruiz@adacore.com>
15638 * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
15639 raising the exception so the memory used is freed.
15641 2005-11-14 Arnaud Charlet <charlet@adacore.com>
15643 * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
15644 (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
15645 (convert_address): Update comments and list of platforms using this.
15647 * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
15650 2005-11-14 Pascal Obry <obry@adacore.com>
15651 Vincent Celier <celier@adacore.com>
15653 * gnatdll.adb (Parse_Command_Line): Remove redundant use of
15656 * memroot.adb: Remove redundant with/use clause on
15657 System.Storage_Elements.
15659 2005-11-14 Arnaud Charlet <charlet@adacore.com>
15661 * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
15662 (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
15663 related code to a-exexpr.adb
15664 (Save_Occurrence_And_Private): Move GCC EH related code to
15666 (Raise_Current_Excep): Add new variable Id with pragma
15667 volatile, to ensure that the variable lives on stack.
15669 * a-exexpr-gcc.adb, raise-gcc.c: New file.
15671 * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
15673 Move GCC EH related code to a-exexpr-gcc.adb
15675 * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
15677 Split the Linux version of g-soccon into separate variants for 32 and 64
15679 (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
15680 vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
15681 install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
15682 of host variable $(RANLIB_FLAGS).
15683 (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
15684 Code clean up: remove unused/obsolete targets.
15685 (EH_MECHANISM): New variable introduced to differenciate between the
15686 two EH mechanisms statically.
15687 (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
15688 (LIBGNAT_OBJS): Add raise-gcc.o
15689 (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
15690 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
15691 supports VxWorks 6 RTPs.
15692 (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
15693 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
15695 * raise.c: Move all GCC EH-related routines to raise-gcc.c
15697 2005-11-14 Jose Ruiz <ruiz@adacore.com>
15699 * s-tassta.adb (Create_Task): Move the code in charge of resetting the
15700 deferral level, when abort is not allowed, to a later stage (the
15702 (Task_Wrapper): If Abort is not allowed, reset the deferral level since
15703 it will not get changed by the generated code. It was previously done
15706 2005-11-14 Thomas Quinot <quinot@adacore.com>
15707 Olivier Hainque <hainque@adacore.com>
15708 Eric Botcazou <ebotcazou@adacore.com>
15711 Factor common code to build a storage type for an unconstrained object
15712 from a fat or thin pointer type and a constrained object type.
15713 (annotate_value): Handle BIT_AND_EXPR.
15714 (annotate_rep): Don't restrict the back annotation of inherited
15715 components to the type_annotate_only case.
15716 (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
15717 we are not defining the type.
15718 <E_Record_Type>: Likewise.
15719 (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
15720 to get advantage of the new maybe_stabilize_reference interface, to
15721 ensure that what we reference is indeed stabilized instead of relying
15722 on assumptions on what the stabilizer does.
15723 (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
15724 type imported through a limited_with clause, use its non-limited view.
15725 (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
15727 (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
15728 of #if sections + explicit comparisons of convention identifiers.
15729 (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
15730 before early-returning for certain types when code generation is
15732 (gnat_to_gnu_entity) <object>: Adjust comment attached to the
15733 nullification of gnu_expr we do for objects with address clause and
15734 that we are not defining.
15735 (elaborate_expression_1): Do not create constants when creating
15736 variables needed by the debug info: the dwarf2 writer considers that
15737 CONST_DECLs is used only to represent enumeration constants, and emits
15739 (gnat_to_gnu_entity) <object>: When turning a non-definition of an
15740 object with an address clause into an indirect reference, drop the
15741 initializing expression.
15743 (STACK_CHECK_BUILTIN): Delete.
15744 (STACK_CHECK_PROBE_INTERVAL): Likewise.
15745 (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
15746 (STACK_CHECK_MAX_VAR_SIZE): Likewise.
15747 (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
15748 corresponding to the renamed object as ignored for debugging purposes.
15750 * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
15751 related): For a prefix that is a dereference of a fat or thin pointer,
15752 if there is an actual subtype provided by the front-end, use that
15753 subtype to build an actual type with bounds template.
15754 (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
15755 is provided by the front-end, use that subtype to compute the size of
15756 the deallocated object.
15757 (gnat_to_gnu): When adding a statement into an elaboration procedure,
15758 check for a potential violation of a No_Elaboration_Code restriction.
15759 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
15760 with extra arguments to control whether to recurse through non-values
15761 and to let the caller know if the stabilization has succeeded.
15762 (gnat_stabilize_reference): Now a simple wrapper around
15763 maybe_stabilize, for common uses without restriction on lvalues and
15764 without need to check for the success indication.
15765 (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
15766 pass false instead of 0 as the FORCE argument which is a bool.
15767 (Identifier_to_gnu): Remove checks ensuring that an renamed object
15768 attached to a renaming pointer has been properly stabilized, as no such
15769 object is attached otherwise.
15770 (call_to_gnu): Invoke create_var_decl to create the temporary when the
15771 function uses the "target pointer" return mechanism.
15772 Reinstate conversion of the actual to the type of the formal
15773 parameter before any other specific treatment based on the passing
15774 mechanism. This turns out to be necessary in order for PLACEHOLDER
15775 substitution to work properly when the latter type is unconstrained.
15777 * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
15779 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
15780 with extra arguments to control whether to recurse through non-values
15781 and to let the caller know if the stabilization has succeeded.
15783 * utils2.c (gnat_build_constructor): Only sort the fields for possible
15784 static output of record constructor if all the components are constant.
15785 (gnat_build_constructor): For a record type, sort the list of field
15786 initializers in increasing bit position order.
15787 Factor common code to build a storage type for an unconstrained object
15788 from a fat or thin pointer type and a constrained object type.
15789 (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
15790 types variants, and process special cases of VIEW_CONVERT expressions
15791 as their NOP_EXPR counterpart to ensure we get to the
15792 CORRESPONDING_VARs associated with CONST_DECls.
15793 (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
15794 on the right-hand side.
15796 * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
15798 (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
15799 are converting back to its original type.
15800 (convert) <JM input>: Fallthrough regular conversion code instead of
15801 extracting the object if converting to a type variant.
15802 (create_var_decl): When a variable has an initializer requiring code
15803 generation and we are at the top level, check for a potential violation
15804 of a No_Elaboration_Code restriction.
15805 (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
15806 SIZE and SIZE_UNIT which we need for later back-annotations.
15807 * utils.c: (convert) <STRING_CST>: Remove obsolete code.
15808 <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
15809 is an unchecked union.
15810 (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
15811 (convert) <VIEW_CONVERT_EXPR>: When the types have the same
15812 main variant, just replace the VIEW_CONVERT_EXPR.
15813 <UNION_TYPE>: Revert 2005-03-02 change.
15815 * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
15817 * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
15819 2005-11-14 Matthew Heaney <heaney@adacore.com>
15821 * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads,
15822 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb,
15823 a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads,
15824 a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb,
15825 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
15826 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb:
15827 Compiles against the spec for ordered maps described in sections
15828 A.18.6 of the most recent (August 2005) AI-302 draft.
15830 2005-11-14 Olivier Hainque <hainque@adacore.com>
15832 * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
15833 to ensure bias adjustments take place when need be and to prevent
15834 occurrences of intermediate overflows.
15836 2005-11-14 Matthew Gingell <gingell@adacore.com>
15837 Olivier Hainque <hainque@adacore.com>
15839 * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
15842 * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
15843 tracebacks on ia64 HP-UX and provide explanatory comment.
15844 Enable backtraces on ia64 GNU/Linux.
15845 (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
15846 base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
15848 2005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
15849 Javier Miranda <miranda@adacore.com>
15851 * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
15852 exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
15853 exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
15854 einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
15856 * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
15857 properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
15860 * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
15861 subprogram that generates the external name associated with a
15862 secondary dispatch table.
15863 (Get_Secondary_DT_External_Name): New subprogram that generates the
15864 external name associated with a secondary dispatch table.
15866 2005-11-14 Emmanuel Briot <briot@adacore.com>
15868 * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
15869 line in the ALI file to include both an instantiation reference, and a
15872 2005-11-14 Vincent Celier <celier@adacore.com>
15874 * clean.adb (Check_Project): Look for Ada code in extending project,
15875 even if Ada is not specified as a language.
15876 Use new function DLL_Prefix for DLL_Name
15877 (Clean_Interface_Copy_Directory): New procedure
15878 (Clean_Library_Directory): New procedure
15879 (Clean_Directory): Remove procedure, no longer used
15880 (Clean_Project): Do not delete any file in an externally built project
15882 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
15883 directory of an extending project, even when there are no Ada source
15885 (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
15886 (Set_Ada_Paths.Add.Recursive_Add): Ditto
15888 * mlib-prj.adb (Check_Library): For all library projects, get the
15889 library file timestamp.
15890 (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
15891 (Build_Library): Use new function DLL_Prefix for the DLL_Name
15892 (Clean): Remove procedure, no longer used
15893 (Ultimate_Extension_Of): New function
15894 (Build_Library): When cleaning the library directory, only remove an
15895 existing library file and any ALI file of a source of the project.
15896 When cleaning the interface copy directory, remove any source that
15897 could be a source of the project.
15899 * prj.ads, prj.adb (Project_Empty): Add values of new components
15900 Library_TS and All_Imported_Projects.
15901 (Project_Empty): Add values for new components of Project_Data:
15902 Library_ALI_Dir and Display_Library_ALI_Dir
15904 * prj-attr.adb: New project level attribute name Library_ALI_Dir
15906 * prj-nmsc.adb (Check_Library_Attributes): Take into account new
15907 attribute Library_ALI_Dir.
15908 (Check_Library_Attributes): The library directory cannot be the same as
15909 any source directory of the project tree.
15910 (Check_Stand_Alone_Library): The interface copy directory cannot be
15911 the same as any source directory of the project tree.
15913 * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
15914 all temporary files.
15916 2005-11-14 Robert Dewar <dewar@adacore.com>
15917 Ed Schonberg <schonberg@adacore.com>
15919 * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
15920 (Check_Elab_Call): A call within a protected body is never an
15921 elaboration call, and does not require checking.
15922 (Same_Elaboration_Scope): Take into account protected types for both
15924 (Activate_Elaborate_All_Desirable): New procedure
15926 * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
15929 * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
15930 (Elab_Error_Msg): Use -da to include internal unit links, not -de.
15932 * lib-writ.ads, lib-writ.adb:
15933 Implement new AD/ED for Elaborate_All/Elaborate desirable
15934 Use new Elaborate_All_Desirable flag in N_With_Clause node
15936 * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
15937 N_Free_Statement nodes.
15938 Define new class N_Subprogram_Instantiation
15939 Add Elaborate_Desirable flag to N_With_Clause node
15940 Add N_Delay_Statement (covering two kinds of delay)
15942 * debug.adb: Introduce d.f flag for compiler
15943 Add -da switch for binder
15945 2005-11-14 Ed Schonberg <schonberg@adacore.com>
15946 Cyrille Comar <comar@adacore.com>
15948 * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
15949 for task component, in the case of a limited aggregate. The enclosed
15950 object declaration will create it earlier. Otherwise, in the case of a
15951 nested aggregate, the object may appear in the wrong scope.
15952 (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
15953 (Gen_Assign): If the component being assigned is an array type and the
15954 expression is itself an aggregate, wrap the assignment in a block to
15955 force finalization actions on the temporary created for each row of the
15957 (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
15958 structures are initialized after all discriminants are set so that
15959 they can be accessed even when their offset is dynamic.
15961 2005-11-14 Robert Dewar <dewar@adacore.com>
15962 Hristian Kirtchev <kirtchev@adacore.com>
15964 * sem_attr.adb: Implement Machine_Rounding attribute
15965 (Analyze_Access_Attribute): The access attribute may appear within an
15966 aggregate that has been expanded into a loop.
15967 (Check_Task_Prefix): Add semantic check for attribute 'Callable and
15968 'Terminated whenever the prefix is of a task interface class-wide type.
15969 (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
15970 the prefix is of a task interface class-wide type.
15972 * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
15975 * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
15976 Remove pragma Inline for [Unaligned_]Valid.
15977 Add comments that Valid routines do not work for Vax_Float
15979 * exp_attr.adb: Implement Machine_Rounding attribute
15981 * snames.h: Add entry for Machine_Rounding attribute
15983 2005-11-14 Javier Miranda <miranda@adacore.com>
15984 Robert Dewar <dewar@adacore.com>
15985 Hristian Kirtchev <kirtchev@adacore.com>
15987 * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
15988 and related): For a prefix that is an explicit dereference of an
15989 access to unconstrained packed array type, annotate the dereference
15990 with an actual subtype so GIGI can make a correct size computation.
15991 (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
15992 'Unrestricted_Access, if the designated type is an interface we
15993 add a type conversion to force the displacement of the pointer
15994 to the secondary dispatch table.
15995 Use Universal_Real instead of Long_Long_Float when we need a high
15996 precision float type for the generated code (prevents gratuitous
15997 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
15998 (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
15999 'Terminated for task interface class-wide objects. Generate a call to
16000 the predefined dispatching routine used to retrieve the _task_id from
16001 a task corresponding record.
16002 (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
16004 * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
16005 (Check_Dispatching_Operation): Protect the frontend againts
16006 previously detected errors.
16008 * Makefile.rtl: Add new instantiations of system.fat_gen
16010 * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads:
16011 Change name of instantiated package for better consistency
16012 with newly added system.fat_gen instantiations.
16014 * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
16015 s-fvagfl.ads: New files.
16017 2005-11-14 Cyrille Comar <comar@adacore.com>
16018 Thomas Quinot <quinot@adacore.com>
16020 * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
16021 assignment of a value of a tagged type that has been rewritten to a
16022 block statement, it is known by construction that no checks are
16023 necessary for the statements within the block: analyze it with checks
16025 (Expand_N_If_Statement): When killing a dead then-branch in an
16026 if-statement that has elsif_parts, recompute the Current_Value node
16027 for any entity whose value is known from the condition of the first
16029 (Expand_N_Return_Statement): When returning a mutable record, convert
16030 the return value into its actual subtype in order to help the backend
16031 to return the actual size instead of the maximum. This is another
16032 aftermath of not returning mutable records on the sec-stack anymore.
16034 * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
16035 handling of error msg for suspicious reverse range iteration.
16036 (Check_Possible_Current_Value_Condition): Move declaration from body to
16037 spec, to allow this subprogram to be called from exp_ch5.
16039 2005-11-14 Thomas Quinot <quinot@adacore.com>
16041 * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
16042 generate a set of nested array aggregates instead of a single flat
16043 aggregate for multi-dimensional arrays.
16045 2005-11-14 Pascal Obry <obry@adacore.com>
16047 * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
16048 by spawnve is a process handle, no need to convert. Add a parameter
16049 close to control wether the process handle must be closed.
16050 (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
16051 a process handle, not need to convert.
16052 (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
16054 * g-expect.adb: (Kill): Document the new close parameter.
16055 (Close): Do not release the process handle in the kill there as
16056 waitpid() is using it.
16057 (Send_Signal): Release the process handle.
16059 2005-11-14 Robert Dewar <dewar@adacore.com>
16061 * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
16062 need a high precision float type for the generated code (prevents
16063 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
16066 * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
16067 need a high precision float type for the generated code (prevents
16068 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
16070 (Expand_Width_Attribute): In configurable run-time, the attribute is not
16071 allowed on non-static enumeration subtypes. Force a load error to emit
16072 the correct diagnostic.
16074 2005-11-14 Thomas Quinot <quinot@adacore.com>
16075 Robert Dewar <dewar@adacore.com>
16076 Ed Schonberg <schonberg@adacore.com>
16078 * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
16079 subtype to compute the size of the designated object at run-time,
16080 create such a subtype and store it in the Actual_Designated_Subtype
16081 attribute of the N_Free_Statement.
16082 Generate itype for classwide designated object in both cases of
16083 user-specified storage pool: specific and class-wide, not only in the
16085 Raise CE when trying to set a not null access type object to null.
16086 (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
16087 an explicit loop, because freeze nodes make its position variable.
16089 * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
16092 2005-11-14 Javier Miranda <miranda@adacore.com>
16094 * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
16095 Build_Stream_Procedure): Add the null-excluding attribute to the first
16097 This has no semantic meaning under Ada95 mode but it is a
16098 requirement under Ada05 mode.
16100 * par-ch3.adb (P_Access_Definition): Addition of warning message if
16101 the null exclusion is used under Ada95 mode
16102 (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
16103 (P_Access_Definition): Remove assertion that forbids the use of
16104 the null-exclusion feature in Ada95.
16106 2005-11-14 Robert Dewar <dewar@adacore.com>
16108 * impunit.adb: Exclude container helper units not intended for use by
16111 2005-11-14 Ed Schonberg <schonberg@adacore.com>
16113 * freeze.adb (Freeze_Entity): For an access formal that is an access
16114 to subprogram, freeze the anonymous subprogram type at the same time,
16115 to prevent later freezing in the wrong scope, such as the enclosing
16117 (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
16118 subprogram whenever available.
16120 2005-11-14 Arnaud Charlet <charlet@adacore.com>
16123 * gnatvsn.ads (Library_Version): Bump to 4.1
16125 2005-11-14 Robert Dewar <dewar@adacore.com>
16127 * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
16128 Storage_Offset to avoid wrap around causing invalid results.
16130 2005-11-14 Pascal Obry <obry@adacore.com>
16132 * gnatbind.adb (Is_Cross_Compiler): New function returning True for
16134 (Scan_Bind_Arg): Fail with an error message if -M option is used
16135 on a native compiler.
16137 2005-11-14 Robert Dewar <dewar@adacore.com>
16138 Vincent Celier <celier@adacore.com>
16140 * gprep.adb: Implement -C switch to scan comments
16142 * scng.adb: Scan comment symbol separately if Replace_In_Comments set
16144 * scans.ads: Comment updates (including new use of Tok_Comment in
16147 * opt.ads: Add documentation for flags that are used by gprmake,
16148 currently and in the next version of gprmake.
16149 (Verbosity_Level): New variable
16150 Add Replace_In_Comments switch
16152 * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
16154 Add /REPLACE_IN_COMMENTS for gnatprep -C switch
16156 2005-11-14 Arnaud Charlet <charlet@adacore.com>
16158 * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
16159 message, friendlier.
16161 2005-11-14 Robert Dewar <dewar@adacore.com>
16163 * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
16165 2005-11-14 Doug Rupp <rupp@adacore.com>
16167 * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
16169 2005-11-14 Robert Dewar <dewar@adacore.com>
16171 * interfac.ads: Change declarations of IEEE float types so that we no
16172 longer need a separate version of this package for VMS.
16174 2005-11-14 Ed Schonberg <schonberg@adacore.com>
16176 * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
16177 internal entity created for the declaration of a child subprogram body
16178 with no spec as coming from source, to generate proper cross-reference
16181 2005-11-14 Vincent Celier <celier@adacore.com>
16183 * make.adb (Compile_Sources): Change verbose message to minimum
16184 verbosity level High for "is in an Ada library", "is a read-only
16185 library" and "is an internal library",
16186 (Create_Binder_Mapping_File): Path name of ALI file for library project
16187 must include the library directory, not the object directory.
16188 (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
16189 for new switches -vl, -vm and -vh.
16190 (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
16191 (Check): Use minimum verbosity Medium for some Verbose_Msg calls
16192 (Compile_Sources): Do not attempt to compile if an ALI file is missing
16193 in a project that is externally built.
16194 (Compute_All_Imported_Projects): New procedure
16195 (Gnatmake): Check if importing libraries should be regenerated because
16196 at least an imported library is more recent.
16197 (Initialize): For each project compute the list of the projects it
16198 imports directly or indirectly.
16199 (Add_Library_Search_Dir): New procedure, used in place of
16200 Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
16201 put in the search paths.
16202 (Add_Source_Search_Dir): New procedure, used in place of
16203 Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
16204 put in the search paths.
16205 (Mark_Directory): Resolve the absolute path the directory before marking
16208 * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
16209 call to new procedure Bad_Switch. Call Scan_Pos with new parameter
16210 Switch. Do not handle any exception.
16211 (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
16212 so that the switch is recognized as valid.
16213 (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
16215 2005-11-14 GNAT Script <nobody@adacore.com>
16217 * Make-lang.in: Makefile automatically updated
16219 2005-11-14 Pascal Obry <obry@adacore.com>
16221 * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
16223 (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
16224 In both cases the last argument was dropped.
16226 2005-11-14 Eric Botcazou <ebotcazou@adacore.com>
16228 * namet.h: (Column_Numbe): New type.
16229 (Get_Column_Number): Define to sinput__get_column_number.
16230 (Instantiation): Define to sinput__instantiation.
16231 (Get_Column_Number): Declare.
16232 (Instantiation): Likewise.
16234 2005-11-14 Robert Dewar <dewar@adacore.com>
16236 * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
16237 syntax, which could cause compiler hangs.
16239 2005-11-14 Vincent Celier <celier@adacore.com>
16241 * prj-ext.adb: Take into account new environment variable
16242 GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
16244 (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
16245 normalize its path name, making it absolute and resolving symbolic
16246 links, and replace the original if resolved path is different.
16248 2005-11-14 Vincent Celier <celier@adacore.com>
16250 * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
16251 into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
16253 2005-11-14 Emmanuel Briot <briot@adacore.com>
16255 * prj-pp.adb (Print): Do not output the with statement if the
16256 associated name is empty, which happens for virtual extending projects.
16257 (Print): Preserve the "extends all" attribute when printing the project.
16259 * prj-tree.ads (String_Value_Of): Add comment about returned value for
16260 a virtual extending project.
16262 2005-11-14 Ed Schonberg <schonberg@adacore.com>
16264 * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
16265 rhs of an assignment even if the type is unconstrained, when the
16266 context is non-expanding.
16267 In an inlined body, if the context type is private,
16268 resolve with its full view, which must be a composite type.
16270 2005-11-14 Robert Dewar <dewar@adacore.com>
16271 Ed Schonberg <schonberg@adacore.com>
16273 * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
16274 Do not give obsolescent warning on with of subprogram (since we
16276 (Analyze_With_Clause): Add test for obsolescent package
16277 (Install_Context_Clauses): If the unit is the body of a child unit, do
16278 not install twice the private declarations of the parents, to prevent
16279 circular lists of Use_Clauses in a parent.
16280 (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
16281 compiling body of child unit.
16282 Use new class N_Subprogram_Instantiation
16283 (Expand_With_Clause): If this is a private with_clause for a child unit,
16284 appearing in the context of a package declaration, then the implicit
16285 with_clauses generated for parent units are private as well.
16286 (License_Check): Do not generate message if with'ed unit is internal
16288 2005-11-14 Gary Dismukes <dismukes@adacore.com>
16289 Ed Schonberg <schonberg@adacore.com>
16290 Thomas Quinot <quinot@adacore.com>
16292 * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
16293 names are internal, because they will not have a corresponding partner
16294 in the actual package.
16295 (Analyze_Formal_Package): Move the setting of the formal package spec's
16296 Generic_Parent field so that it occurs prior to analyzing the package,
16297 to allow proper operation of Install_Parent_Private_Declarations.
16298 (Analyze_Package_Instantiation): Set the instantiated package entity's
16299 Package_Instantiation field.
16300 (Get_Package_Instantiation_Node): Move declaration to package spec.
16301 Retrieve the N_Package_Instantiation node when the Package_Instantiation
16303 (Check_Generic_Child_Unit): Within an inlined call, the only possible
16304 instantiation is Unchecked_Conversion, for which no parents are needed.
16305 (Inline_Instance_Body): Deinstall and record the use_clauses for all
16306 parent scopes of a scope being removed prior to inlining an instance
16308 (Analyze_Package_Instantiation): Do not perform front-end inlining when
16309 the current context is itself an instance within a non-instance child
16310 unit, to prevent scope stack errors.
16311 (Save_References): If the node is an aggregate that is an actual in a
16312 call, rewrite as a qualified expression to preserve some type
16313 information, to resolve possible ambiguities in the instance.
16314 (Instance_Parent_Unit): New global variable to record the ultimate
16315 parent unit associated with a generic child unit instance (associated
16316 with the existing Parent_Unit_Visible flag).
16317 (type Instance_Env): New component Instance_Parent_Unit for stacking
16318 parents recorded in the global Instance_Parent_Unit.
16319 (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
16321 (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
16322 it's not a top-level unit, and only do this if Instance_Parent_Unit is
16323 not already set. Replace test of Is_Child_Unit with test of parent's
16324 scope against package Standard. Add comments and a ??? comment.
16325 (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
16326 on a child instance parent to test that the parent equals
16327 Instance_Parent rather than simply checking that the unit is not a
16329 (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
16330 (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
16331 a formal interface are ancestors of the corresponding actual.
16332 (Validate_Formal_Interface_Type): Additional legality checks.
16333 (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
16334 interface types with ancestors.
16335 (Analyze_Formal_Package): If formal is a renaming, use renamed entity
16336 to diagnose attempts to use generic within its own declaration.
16338 2005-11-14 Ed Schonberg <schonberg@adacore.com>
16339 Javier Miranda <miranda@adacore.com>
16341 * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
16343 (Build_Private_Derived_Type): The entity of the created full view of the
16344 derived type does not come from source. If after installing the private
16345 declarations of the parent scope the parent is still private, use its
16346 full view to construct the full declaration of the derived type.
16347 (Build_Derived_Record_Type): Relax the condition that controls the
16348 execution of the check that verifies that the partial view and
16349 the full view agree in the set of implemented interfaces. In
16350 addition, this test now only takes into account the progenitors.
16351 (Derive_Interface_Subprograms): No need to derive subprograms
16352 of ancestors that are interfaces.
16353 (Derive_Subprograms): Remove formal No_Predefined_Prims and the
16355 Change name Is_Package to Is_Package_Or_Generic_Package
16356 (Complete_Subprograms_Derivation): Handle the case in which the full
16357 view is a transitive derivation of the ancestor of the partial view.
16358 (Process_Full_View): Rename local subprogram Find_Interface_In_
16359 Descendant to Find_Ancestor_Interface to leave the code more clear.
16360 Remove wrong code that avoids the generation of an error message
16361 when the immediate ancestor of the partial view is an interface.
16362 In addition some minor reorganization of the code has been done to
16363 leave it more clear.
16364 (Analyze_Type_Declaration): If type has previous incomplete tagged
16365 partial view, inherit properly its primitive operations.
16366 (Collect_Interfaces): Make public, for analysis of formal
16368 (Analyze_Interface_Declaration): New procedure for use for regular and
16369 formal interface declarations.
16370 (Build_Derived_Record_Type): Add support for private types to the code
16371 that checks if a tagged type implements abstract interfaces.
16372 (Check_Aliased_Component_Type): The test applies in the spec of an
16374 (Access_Type_Declaration): Clean up declaration of malformed type
16375 declared as an access to its own classwide type, to prevent cascaded
16377 (Collect_Interfaces): For private extensions and for derived task types
16378 and derived protected types, the parent may be an interface that must
16379 be included in the interface list.
16380 (Access_Definition): If the designated type is an interface that may
16381 contain tasks, create Master_Id for it before analyzing the expression
16382 of the declaration, which may be an allocator.
16383 (Record_Type_Declaration): Set properly the interface kind, for use
16384 in allocators, the creation of master id's for task interfaces, etc.
16386 2005-11-14 Javier Miranda <miranda@adacore.com>
16387 Ed Schonberg <schonberg@adacore.com>
16389 * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
16390 omitted in case of stream attribute subprograms.
16391 (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
16392 appear immediately after a subprogram body, when there is no previous
16393 subprogram declaration.
16394 Change name Is_Package to Is_Package_Or_Generic_Package
16395 (Process_Formals): A non null qualifier on a non null named access
16396 type is not an error, and is a warning only if Redundant_Constructs
16399 2005-11-14 Gary Dismukes <dismukes@adacore.com>
16400 Ed Schonberg <schonberg@adacore.com>
16402 * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
16403 nested within Analyze_Package_Specification to install the private
16404 declarations and use clauses within each of the parent units of a
16405 package instance of a generic child package.
16406 (Analyze_Package_Specification): When entering a private part of a
16407 package associated with a generic instance or formal package, the
16408 private declarations of the parent must be installed (by calling new
16409 procedure Install_Parent_Private_Declarations).
16410 Change name Is_Package to Is_Package_Or_Generic_Package
16411 (Preserve_Full_Attributes): For a synchronized type, the corresponding
16412 record is absent in a generic context, which does not indicate a
16415 2005-11-14 Ed Schonberg <schonberg@adacore.com>
16417 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
16418 not try to rewrite a renamed stream attribute, because the operations
16419 on the type may not have been generated.
16420 Handle properly a renaming_as_body generated for a stream operation
16421 whose default is abstract because the object type itself is abstract.
16422 (Find_Type): If the type is incomplete and appears as the prefix of a
16423 'Class reference, it is tagged, and its list of primitive operations
16424 must be initialized properly.
16425 (Chain_Use_Clauses): When chaining the use clauses that appear in the
16426 private declaration of a parent unit, prior to compiling the private
16427 part of a child unit, find on the scope stack the proper parent entity
16428 on which to link the use clause.
16429 (Note_Redundant_Use): Emit a warning when a redundant use clause is
16431 (Analyze_Object_Renaming): An attribute reference is not a legal object
16432 if it is not a function call.
16434 2005-11-14 Robert Dewar <dewar@adacore.com>
16435 Ed Schonberg <schonberg@adacore.com>
16437 * sem_eval.adb: Implement d.f flag
16438 (Subtype_Statically_Match): A generic actual type has unknown
16439 discriminants when the corresponding actual has a similar partial view.
16440 If the routine is called to validate the signature of an inherited
16441 operation in a child instance, the generic actual matches the full view,
16443 2005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
16444 Ed Schonberg <schonberg@adacore.com>
16445 Robert Dewar <dewar@adacore.com>
16446 Thomas Quinot <quinot@adacore.com>
16448 * sem_res.adb (Resolve_Call): Provide a better error message whenever
16449 a procedure call is used as a select statement trigger and is not an
16450 entry renaming or a primitive of a limited interface.
16451 (Valid_Conversion): If the operand has a single interpretation do not
16452 remove address operations.
16453 (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
16454 statement to inhibit warning.
16455 (Resolve_Unary_Op): Do not produce a warning when
16456 processing an expression of the form -(A mod B)
16457 Use Universal_Real instead of Long_Long_Float when we need a high
16458 precision float type for the generated code (prevents gratuitous
16459 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
16460 (Resolve_Concatenation_Arg): Improve error message when argument is an
16461 ambiguous call to a function that returns an array.
16462 (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
16463 there is an implicit operator in the given scope if we are within an
16464 instance: legality check has been performed on the generic.
16465 (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
16466 after resolving operand, to avoid false warnings on overloaded calls.
16468 2005-11-14 Ed Schonberg <schonberg@adacore.com>
16469 Javier Miranda <miranda@adacore.com>
16472 * sem_type.adb (Covers): In an inlined body, a composite type matches
16473 a private type whose full view is a composite type.
16474 (Interface_Present_In_Ancestor): Protect the frontend against
16475 previously detected errors to ensure that its compilation
16476 with assertions enabled gives the same output that its
16477 compilation without assertions.
16478 (Interface_Present_In_Ancestor): Add support for private types.
16479 Change name In_Actual to In_Generic_Actual (clean up)
16480 (Disambiguate): New predicate In_Actual, to recognize expressions that
16481 appear in the renaming declaration generated for generic actuals, and
16482 which must be resolved in the outer context.
16484 2005-11-14 Robert Dewar <dewar@adacore.com>
16485 Thomas Quinot <quinot@adacore.com>
16486 Hristian Kirtchev <kirtchev@adacore.com>
16487 Ed Schonberg <schonberg@adacore.com>
16489 * sem_util.ads, sem_util.adb: Change name Is_Package to
16490 Is_Package_Or_Generic_Package.
16491 (Check_Obsolescent): New procedure.
16492 (Set_Is_Public): Remove obsolete junk test.
16493 (Set_Public_Status): Do not set Is_Public on an object whose declaration
16494 occurs within a handled_sequence_of_statemets.
16495 (Is_Controlling_Limited_Procedure): Factor some of the logic, account
16496 for a parameterless procedure.
16497 (Enter_Name): Recognize renaming declarations created for private
16498 component of a protected type within protected operations, so that
16499 the source name of the component can be used in the debugger.
16501 2005-11-14 Ed Schonberg <schonberg@adacore.com>
16502 Robert Dewar <dewar@adacore.com>
16504 * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
16505 of a generic subprogram are not visible outside the body.
16506 (Set_Warning_Switch): New procedure (code to set warning mode moved
16507 here from Switch.C so that it can be shared by pragma processing.
16508 (Check_References): Special case warning for non-modified non-imported
16510 * par-prag.adb: Modify processing of pragma Warnings to accomodate new
16511 form with a string literal argument
16513 2005-11-14 Javier Miranda <miranda@adacore.com>
16515 * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
16517 (Write): Addition of "not null" to the anonymous access.
16518 (Read): Addition of "not null" to the anonymous access.
16519 (Write): Addition of "not null" to the anonymous access.
16521 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
16522 I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
16523 I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
16524 (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
16525 W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
16526 "not null" to the anonymous access.
16528 2005-11-14 Robert Dewar <dewar@adacore.com>
16530 * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
16533 2005-11-14 Vincent Celier <celier@adacore.com>
16535 * switch.adb (Bad_Switch): New procedure
16536 (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
16537 message when in error.
16539 * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
16540 Too_Many_Output_Files): Remove declarations, no longer used.
16541 (Scan_Nat): New parameter Switch
16543 (Bad_Switch): New procedure
16545 * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
16546 with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
16547 new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
16548 to Osint.Fail. Do not handle any exception.
16550 2005-11-14 Vincent Celier <celier@adacore.com>
16552 * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
16553 designates a non existent directory.
16555 2005-11-14 Robert Dewar <dewar@adacore.com>
16557 * xgnatugn.adb: Replace invalid membership test by 'Valid
16559 2005-11-14 Vincent Celier <celier@adacore.com>
16561 * makegpr.adb (Gprmake): Do not attempt to build the global archive if
16562 there is no object directory.
16564 2005-11-14 Robert Dewar <dewar@adacore.com>
16566 * usage.adb: Minor adjustment to output format, use nn instead of nnn
16567 (so that -gnateInnn does not run into next column)
16569 2005-11-14 Ed Falis <falis@adacore.com>
16571 * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
16574 2005-11-14 Cyrille Comar <comar@adacore.com>
16576 * s-chepoo.ads: Add comments on Dereference.
16577 Remove unnecessary inherited abstract primitives.
16580 2005-11-14 Robert Dewar <dewar@adacore.com>
16582 * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
16583 node parameter, not needed, since it is available as Declaration_Node.
16585 2005-11-14 Geert Bosch <bosch@adacore.com>
16587 * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
16588 grammatically correct.
16590 2005-11-14 Vincent Celier <celier@adacore.com>
16592 * s-fileio.ads: Correct spelling error in comment
16594 2005-11-14 Cyrille Comar <comar@adacore.com>
16595 Robert Dewar <dewar@adacore.com>
16596 Vincent Celier <celier@adacore.com>
16597 Ben Brosgol <brosgol@adacore.com>
16598 Jose Ruiz <ruiz@adacore.com>
16599 Pascal Obry <obry@adacore.com>
16602 Document that -fstack-check is needed for strict compliance with the
16603 Ada 95 Reference Manual.
16604 Correct reference to VAX systems to meet HP guidelines
16605 Add documentation for new gnatmake switches -vl, -vm and -vh
16606 Replace DEC Ada by HP Ada
16607 Replace DIGITAL by HP
16608 Remove empty section on tools in compatibility section
16609 Clarify the Windows convention semantics.
16610 Document the Win32 calling convention.
16611 The Stdcall, Win32 and DLL convention are synonyms.
16612 Add a note in -gnatR description about zero size record components
16613 Note on new >= and <= warnings for -gnatwc
16614 Document that equal sign after -gnatm is optional.
16615 Note that strip is working fine on DLL built with a Library
16616 Project. The restriction apply only to DLL built with gnatdll.
16617 Update section about the way to debug a DLL.
16618 Update information about the DLL convention.
16619 Document -C switch for gnatprep
16620 Document new attribute Library_ALI_Dir
16621 Update elaboration doc to include implicit Elaborate pragmas now
16622 generated for subprogram instantiations.
16623 Document limitation on executable names that include spaces for --GCC,
16624 --GNATBIND, and --GNATLINK switches.
16625 Document that -w causes -gnatws to be added at start of gcc switches
16627 * gnat_rm.texi: Document that -mieee is needed for generating infinite
16628 and NaN values in case of overflow on machines that are not fully
16629 compliant with the IEEE floating-point standard.
16630 Create a section describing the set of compiler options needed for
16631 strict compliance with the Ada 95 Reference Manual.
16632 Add documentation for pragma Obsolescent applied to a package
16633 Clarify potential issues of mixed language programs related to the
16634 I/O buffering enabling in the elaboration of the GNAT runtime.
16635 Add extra documentation for pragma Restrictions (No_Elaboration_Code)
16636 This documentation only patch adds extra documentsion for pragma
16637 Restrictions (No_Elaboration_Code), explaining why it is not possible
16638 to document this restriction in terms of allowed source constructs.
16639 Document string literal form of pragma Warnings
16640 Document new attribute Library_ALI_Dir
16641 Add documentation on stable attributes in project files that was missing
16643 * gnat-style.texi: Indicate that paragraphs within a single comment
16644 should be separated by empty comment lines
16646 * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
16649 * bindusg.adb: Minor cleanup, put -m before -M for consistency
16651 2005-11-14 Robert Dewar <dewar@adacore.com>
16653 * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
16654 a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
16655 a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
16656 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
16657 a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
16658 a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
16659 a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
16660 a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
16661 a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
16662 a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
16663 a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
16664 a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
16665 g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
16666 a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
16667 a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
16668 system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
16669 g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
16670 g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
16671 a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
16672 a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
16673 a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
16674 a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
16675 a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
16676 a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
16677 system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
16678 system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
16679 a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
16680 a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
16681 a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
16682 system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
16683 system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
16684 s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
16685 system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
16686 system-interix.ads, system-solaris-sparc.ads,
16687 system-solaris-sparcv9.ads, s-inmaop-vms.adb,
16688 s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
16689 system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
16690 s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
16691 a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
16692 a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
16693 a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
16694 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
16695 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
16696 a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
16697 a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
16698 a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
16699 a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
16700 a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
16701 a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
16702 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
16703 a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
16704 a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
16705 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
16706 a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
16707 a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
16708 a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
16709 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
16710 a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
16711 a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
16712 a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
16713 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
16714 a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
16715 a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
16716 a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
16717 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
16718 a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
16719 a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
16720 a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
16721 bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
16722 csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
16723 errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
16724 errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
16725 exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
16726 exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
16727 freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
16728 g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
16729 g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
16730 g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
16731 g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
16732 g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
16733 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
16734 g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
16735 g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
16736 gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
16737 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
16738 g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
16739 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
16740 g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
16741 g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
16742 g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
16743 layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
16744 mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
16745 mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
16746 nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
16747 osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
16748 par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
16749 par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
16750 par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
16751 prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
16752 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
16753 prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
16754 prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
16755 sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
16756 sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
16757 sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
16758 sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
16759 s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
16760 sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
16761 s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
16762 s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
16763 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
16764 s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
16765 s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
16766 s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
16767 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
16768 s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
16769 s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
16770 s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
16771 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
16772 s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
16773 s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
16774 s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
16775 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
16776 s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
16777 s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
16778 s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
16779 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
16780 s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
16781 s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
16782 s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
16783 s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
16784 s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
16785 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
16786 s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
16787 styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
16788 s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
16789 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
16790 s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
16791 s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
16792 s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
16793 s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
16794 s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
16795 s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
16796 s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
16797 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
16798 table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
16799 tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
16800 ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
16801 usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
16802 xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
16803 xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
16804 a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
16805 a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
16806 a-numaux-darwin.ads, a-numaux-darwin.adb,
16807 a-swuwha.ads, a-stunha.ads: Minor reformatting
16809 2005-11-14 Robert Dewar <dewar@adacore.com>
16812 * osint-m.adb: Add pragma Elaborate_All for Osint
16814 2005-11-10 Eric Botcazou <ebotcazou@adacore.com>
16817 * trans.c (call_to_gnu): Restore statement lost in translation.
16819 2005-11-08 Eric Botcazou <ebotcazou@adacore.com>
16821 * init.c: Use the Linux-specific section for the IA-64/Linux target.
16822 (__gnat_adjust_context_for_raise): Add conditional code so that the
16823 IA-64 is also supported.
16825 2005-11-03 James E Wilson <wilson@specifix.com>
16828 * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
16829 TREE_OVERFLOW check.
16831 2005-09-21 Olivier Hainque <hainque@adacore.com>
16834 * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
16835 as we create them to store a size in bits.
16837 2005-10-21 Eric Botcazou <ebotcazou@adacore.com>
16845 * utils2.c (build_return_expr): New helper function.
16846 * gigi.h (build_return_expr): Declare it.
16847 * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
16848 of manually building the RETURN_EXPR tree.
16849 (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
16850 (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
16851 build_binary_op for the "target pointer" case. Use build_return_expr
16852 instead of manually building the RETURN_EXPR tree.
16854 2005-09-16 Laurent Guerby <laurent@guerby.net>
16857 * s-tpinop.ads: Make this unit Preelaborate.
16859 2005-09-16 Andreas Jaeger <aj@suse.de>
16861 * socket.c: Add string.h for memcpy.
16863 2005-09-05 Arnaud Charlet <charlet@adacore.com>
16865 * dec-io.ads, dec-io.adb: Removed, no longer used.
16867 2005-09-01 Arnaud Charlet <charlet@adacore.com>
16869 * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
16871 * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
16872 s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
16873 s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
16874 s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
16875 dependent units are Preelaborate.
16876 (Initialize): Call Interrupt_Managemeent.Initialize and
16877 OS_Primitives.Initialize to ensure proper initialization of this unit.
16878 Remove use of System.Soft_Links
16879 Make this unit Preelaborate.
16881 * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
16882 s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
16883 s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
16884 s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
16885 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
16886 s-tratas.ads, s-tasinf.ads: Minor reformatting.
16887 Add pragma Preelaborate, since these packages are suitable for this
16891 * s-traent-vms.ads, s-intman-dummy.adb,
16892 s-taprop-dummy.adb: Make this unit Preelaborate.
16894 * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
16895 s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
16896 s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
16897 s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
16898 s-intman-solaris.adb, s-intman-irix-athread.adb,
16899 s-intman-irix.adb: Mark this unit Preelaborate.
16900 (Initialize): New procedure.
16903 * s-taspri-linux.ads: Removed.
16905 * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
16906 as done by other implementations (e.g. posix).
16908 * s-taprop.ads (Timed_Delay): Update spec since the caller now is
16909 responsible for deferring abort.
16910 Mark this unit Preelaborate.
16912 * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
16913 proper initialization of the tasking run-time.
16915 * s-tasdeb.ads: Mark this unit Preelaborate.
16916 (Known_Tasks): Add explicit default value to avoid elaboration code.
16918 * s-inmaop-vms.adb (Elaboration code): Add call to
16919 Interrupt_Management.Initialize since the elaboration code depends on
16920 proper initialization of this package.
16922 * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
16923 s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
16924 s-osprim-posix.adb: Make this unit Preelaborate.
16926 * a-calend.adb: Add call to OS_Primitives.Initialize
16928 * a-elchha.adb: Update use of Except.Id.Full_Name.
16929 Minor reformatting.
16930 Remove use of Ada.Exceptions.Traceback when possible, cleaner.
16932 * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
16933 Move with clauses outside Warnings Off now that dependent units are
16935 Use raise xxx with "..."; Ada 2005 form.
16937 * a-taside.ads, a-taside.adb:
16938 Remove some dependencies, to make it easier to make this unit truly
16940 Rewrite some code to be conformant with Preelaborate rules.
16942 * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
16943 marked Preelaborate in the future.
16945 * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
16946 these units Preelaborate.
16948 * s-exctab.adb: Update use of Except.Id.Full_Name.
16950 * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
16951 (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
16952 Set_Exc_Stack_Addr): Removed, no longer used.
16953 Remove reference to *Machine_State_Addr*, no longer needed.
16955 * s-stalib.ads: Mark this unit as Preelaborate[_05].
16956 (Exception_Data): Full_Name is now a System.Address so that this unit
16957 can be made Preelaborate.
16958 Clean up/simplify code thanks to Full_Name being a System.Address.
16959 Remove obsolete pragma Suppress (All_Checks), no longer needed.
16961 * s-taskin.ads, s-taskin.adb:
16962 Move with clauses outside Warnings Off now that dependent units are
16964 Make this unit Preelaborate.
16965 (Initialize): New proceduure, replace elaboration code and makes the
16966 set up of the tasking run-time cleaner.
16967 (Detect_Blocking): Now a function instead of a deferred boolean, to
16968 obey Preelaborate rules.
16970 * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
16971 soft links, no longer used.
16973 * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
16974 packages are suitable for this categorization.
16976 * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
16977 since we compile run-time sources in Ada 2005 mode.
16978 (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
16979 avoid having s-taprop*.adb depend on s-soflin and to avoid code
16981 Remove reference to *Machine_State_Addr*, no longer needed.
16983 2005-09-01 Arnaud Charlet <charlet@adacore.com>
16985 * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
16986 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
16987 Remove reference to System.Exceptions.
16989 * s-mastop-x86.adb: Removed, no longer used.
16991 * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
16993 * a-excach.adb: Minor reformatting.
16995 * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
16996 instead fix new warnings that were hidden by this change.
16997 (AAA, ZZZ): Removed, replaced by...
16998 (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
16999 are used instead of constants, to help make Ada.Exception truly
17001 (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
17002 Raise_Storage_Error): File is now a System.Address, to simplify code.
17003 (Elab code): Removed, no longer used.
17004 (Null_Occurrence): Remove Warnings Off and make this construct
17006 Remove code related to front-end zero cost exception handling, since
17007 it is no longer used.
17008 Remove -gnatL/-gnatZ switches.
17010 * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
17011 Update use of Except.Msg.
17013 * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
17014 freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
17015 to front-end zero cost exception handling, since it is no longer used.
17016 Remove -gnatL/-gnatZ switches.
17018 * lib-writ.ads: Minor reformatting
17021 * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
17023 * Make-lang.in: Remove references to s-except.ads
17025 * s-except.ads: Removed, no longer used.
17027 * s-mastop.ads, s-mastop.adb:
17028 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
17029 Remove reference to System.Exceptions.
17031 * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
17032 switch-b.adb: Remove code related to front-end zero cost exception
17033 handling, since it is no longer used.
17034 Remove -gnatL/-gnatZ switches.
17036 2005-09-01 Robert Dewar <dewar@adacore.com>
17037 Gary Dismukes <dismukes@adacore.com>
17038 Javier Miranda <miranda@adacore.com>
17040 * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
17041 type by valid test and generate warning.
17042 (Tagged_Membership): Generate call to the run-time
17043 subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
17044 Change formal name Subtype_Mark to Result_Definition in several calls to
17045 Make_Function_Specification.
17046 (Expand_Allocator_Expression): Add tests for suppression of the AI-344
17047 check for proper accessibility of the operand of a class-wide allocator.
17048 The check can be left out if checks are suppressed or if the expression
17049 has a specific tagged type whose level is known to be safe.
17051 * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
17052 generates the run-time check associated with null-excluding entities.
17053 (Expand_N_Return_Statement): Add tests to determine if the accessibility
17054 check on the level of the return expression of a class-wide function
17055 can be elided. The check usually isn't needed if the expression has a
17056 specific type (unless it's a conversion or a formal parameter). Also
17057 add a test for whether accessibility checks are suppressed. Augment
17058 the comments to describe the conditions for performing the check.
17060 2005-09-01 Hristian Kirtchev <kirtchev@adacore.com>
17061 Javier Miranda <miranda@adacore.com>
17062 Gary Dismukes <dismukes@adacore.com>
17063 Ed Schonberg <schonberg@adacore.com>
17065 * a-tags.adb (IW_Membership): Give support to
17066 "Iface_CW_Typ in T'Class". For this purpose the functionality of this
17067 subprogram has been extended to look for the tag in the ancestors tag
17069 Update the structure of the GNAT Dispatch Table to reflect the
17070 additional two tables used in dispatching selects.
17071 Introduce appropriate array types and record components in
17072 Type_Specific_Data to reflect the two tables.
17073 (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
17074 the TSD of a tag, indexed by position.
17075 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
17076 operation kind in the TSD of a tag, indexed by position.
17078 * a-tags.ads: Introduce an enumeration type to capture different
17079 primitive operation kinds. Define a constant reflecting the number of
17080 predefined primitive operations.
17081 (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
17082 of an entry wrapper.
17083 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
17084 callable entity of a primitive operation.
17086 * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
17087 primitive operations used in dispatching selects for limited
17088 interfaces, limited tagged, task and protected types what implement a
17090 (Freeze_Type): Generate the bodies of the primitive operations used in
17091 dispatching selects for limited tagged, task and protected types that
17092 implement a limited interface. Generate statements to populate the two
17093 auxiliary tables used for dispatching in select statements.
17094 (Freeze_Record_Type): Add call to initialize the dispatch table entries
17095 associated with predefined interface primitive operations.
17096 (Build_Dcheck_Function): Change Set_Subtype_Mark to
17097 Set_Result_Definition.
17098 (Build_Variant_Record_Equality): Change Subtype_Mark to
17100 (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
17101 (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
17102 (Build_Assignment): Simplify the code that adds the run-time-check.
17103 (Expand_N_Object_Declaration): Code cleanup.
17105 * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
17106 entries when there is a protected type that implements a limited
17109 * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
17110 common routines used in expansion of dispatching selects.
17111 (Add_Private_Declarations): Select the appropriate protection type when
17112 there is a protected type that implements a limited interface.
17113 (Build_Parameter_Block): Generate a wrapped parameter block.
17114 (Build_Protected_Subprogram_Body): Select the appropriate type for
17115 locking entries when there is a protected type that implements a
17117 (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
17118 classified as entry wrappers.
17119 (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
17120 asynchronous selects.
17121 (Expand_N_Conditional_Entry_Call): Add support for expansion of
17122 dispatching conditional selects.
17123 (Expand_N_Protected_Type_Declaration): Select the appropriate type for
17124 protection when there is a protected type that implements limited
17126 (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
17128 (Extract_Dispatching_Call): Extract the entity of the name of a
17129 dispatching call, the object parameter, actual parameters and
17130 corresponding formals.
17131 (Make_Initialize_Protection): Correct logic of protection initialization
17132 when there is a protected type that implements a limited interface.
17133 (Parameter_Block_Pack): Populate a wrapped parameter block with the
17134 values of actual parameters.
17135 (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
17136 block and assign them to the original actual parameters.
17138 * exp_ch9.ads (Subprogram_Protection_Mode): New type.
17139 (Build_Protected_Sub_Specification): Change the type and name of the
17140 last formal to account for the increased variety of protection modes.
17142 * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
17143 entities. Used to save the value of the Is_Hidden attribute when the
17144 limited-view is installed.
17145 (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
17146 the attribute of procedures classified as entry wrappers.
17147 (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
17148 entity of a primitive wrapper.
17149 (Write_Entity_Flags): Output the name and value of the
17150 Is_Primitive_Wrapper attribute.
17151 (Write_Field27_Name): Output the name and entity of the field Wrapped_
17153 (Underlying_Type): If we have an incomplete entity that comes from
17154 the limited view then we return the Underlying_Type of its non-limited
17155 view if it is already available.
17156 (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
17157 including operators.
17158 (Write_Field26_Name): Add entry for Overridden_Operation
17159 (Overridden_Operation): New attribute of functions and procedures.
17161 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
17162 predefined position in the dispatch table for the primitive operations
17163 used in dispatching selects.
17164 (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
17165 predefined primitive operations and replace it with
17166 Default_Prim_Op_Count.
17167 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
17168 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
17169 the names of the generated primitive operations used in dispatching
17171 (Init_Predefined_Interface_Primitives): No need to inherit primitives in
17172 case of abstract interface types. They will be inherit by the objects
17173 implementing the interface.
17174 (Make_DT): There is no need to inherit the dispatch table of the
17175 ancestor interface for the elaboration of abstract interface types.
17176 The dispatch table will be inherited by the object implementing the
17178 (Copy_Secondary_DTs): Add documentation.
17179 (Validate_Position): Improve this static check in case of
17180 aliased subprograms because aliased subprograms must have
17182 (Init_Predefined_Interface_Primitives): New subprogram that initializes
17183 the entries associated with predefined primitives of all the secondary
17185 (Build_Anonymous_Access_Type): Removed.
17186 (Expand_Interface_Actuals): With the previous cleanup there is no need
17187 to build an anonymous access type. This allows further cleanup in the
17188 code generated by the expander.
17189 (Expand_Interface_Conversion): If the actual is an access type then
17190 build an internal function to handle the displacement. If the actual
17191 is null this function returns null because no displacement is
17192 required; otherwise performs a type conversion that will be
17193 expanded in the code that returns the value of the displaced actual.
17194 (Expand_Interface_Actuals): Avoid the generation of unnecessary type
17195 conversions that have no effect in the generated code because no
17196 displacement is required. Code cleanup; use local variables to
17197 avoid repeated calls to the subprogram directly_designated_type().
17199 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
17200 Classify the primitive operations used in dispatching selects as
17202 (Implements_Limited_Interface): Determine whether some type either
17203 directly implements a limited interface or extends a type that
17204 implements a limited interface.
17205 (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
17206 (Expand_Subtype_From_Expr): Do not build actual subtype if the
17207 expression is limited.
17208 (Find_Interface_Tag): Add code to handle class-wide types and
17209 entities from the limited-view.
17211 * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
17212 Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
17213 POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
17214 POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
17217 * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
17218 of procedure name or prefix that appears as a trigger in a triggering
17221 * uintp.ads: Introduce constants Uint_11 and Uint_13.
17223 2005-09-01 Arnaud Charlet <charlet@adacore.com>
17225 * s-tataat.adb, a-tasatt.adb:
17226 Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
17228 * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
17229 these procedures to body, and renamed Abort_Defer, Abort_Undefer.
17230 (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
17233 2005-09-01 Arnaud Charlet <charlet@adacore.com>
17234 Jose Ruiz <ruiz@adacore.com>
17236 * s-taprop-vxworks.adb:
17237 Move with clauses outside Warnings Off now that dependent units are
17239 (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
17240 initialization of this unit.
17241 (Specific): Add new procedures Initialize and Delete so that this
17242 package can be used for VxWorks 5.x and 6.x
17243 (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
17244 differences between VxWorks 5.x and 6.x
17245 Minor reformatting.
17246 (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
17248 Use only Preelaborate-compatible constructs.
17250 * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
17251 Primitives.Operations.
17252 (Delete, Initialize): New procedures.
17254 * s-osinte-vxworks.adb: Body used to handle differences between
17255 VxWorks 5.x and 6.x
17256 (kill, Set_Time_Slice, VX_FP_TASK): New functions.
17258 * s-osinte-vxworks.ads: Minor reformatting.
17259 Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
17260 (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
17262 (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
17263 between Vxworks 5 and 6.
17264 (taskLock, taskUnlock): Removeed, no longer used.
17266 * adaint.c: The wait.h header is not located in the sys directory on
17267 VxWorks when using RTPs.
17268 (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
17270 (__gnat_dup): dup is available on Vxworks when using RTPs.
17271 (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
17273 * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
17275 * expect.c: The wait.h header is not located in the sys directory on
17276 VxWorks when using RTPs.
17278 2005-09-01 Thomas Quinot <quinot@adacore.com>
17280 * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
17282 * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
17284 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
17285 g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
17286 g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
17287 g-soccon-freebsd.ads: Add new constants:
17289 SO_RCVTIMEO/SO_SNDTIMEO
17293 Move all target-specific file inclusions and macro definitions to
17294 gsocket.h, in order to ensure that any C code in socket.c will see a
17295 set of constants that is consistent with the contents of g-soccon.ads.
17297 * gsocket.h: Code imported from gen-soccon.c:
17298 Move all target-specific file inclusions and macro definitions to
17299 gsocket.h, in order to ensure that any C code in socket.c will see a set
17300 of constants that is consistent with the contents of g-soccon.ads.
17301 This change also makes gen-soccon self-contained (removing dependencies
17302 upon GCC internal headers).
17304 * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
17306 (To_Inet_Addr): Now a procedure instead of a function, more efficient.
17308 * socket.c: Minor reformatting.
17310 2005-09-01 Ed Schonberg <schonberg@adacore.com>
17311 Thomas Quinot <quinot@adacore.com>
17313 * fname-sf.adb, mlib-tgt.ads,
17314 back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
17315 g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
17316 osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
17317 prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
17318 prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
17319 prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
17320 sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
17321 makegpr.adb: Remove redundant use_clauses.
17323 2005-09-01 Arnaud Charlet <charlet@adacore.com>
17325 * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
17326 s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
17327 s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
17328 s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
17329 s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
17330 s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
17331 s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
17332 table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
17333 s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
17334 s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
17335 a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
17336 a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
17337 a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
17338 a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
17339 system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
17340 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
17341 s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
17342 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
17343 s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
17344 s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
17345 s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
17346 s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
17347 system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
17348 s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
17349 system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
17350 s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
17351 a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
17352 a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
17353 a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
17354 a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
17355 a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
17356 a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
17357 a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
17358 a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
17359 a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
17360 a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
17361 csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
17362 g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
17363 a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
17364 a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
17365 a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
17366 a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
17367 g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
17368 i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
17369 interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
17370 i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
17371 s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
17372 s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
17373 s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
17374 s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
17375 s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
17376 s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
17377 s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
17378 s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
17379 s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
17380 s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
17381 s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
17382 s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
17383 s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
17384 s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
17385 s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
17386 s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
17387 s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
17388 s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
17389 s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
17390 s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
17391 s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
17392 s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
17393 and always use the no parameter form for consistency.
17395 * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
17397 2005-09-01 Robert Dewar <dewar@adacore.com>
17399 * binde.adb: Minor reformatting
17400 (Find_Elab_Order): Output warning if -p used with static elab order
17402 2005-09-01 Robert Dewar <dewar@adacore.com>
17404 * checks.adb (Check_Needed): New procedure, deals with removing checks
17405 based on analysis of short-circuited forms. Also generates warnings for
17406 improper use of non-short-circuited forms.
17409 2005-09-01 Robert Dewar <dewar@adacore.com>
17411 * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
17414 2005-09-01 Robert Dewar <dewar@adacore.com>
17416 * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
17418 Implement new insertion char < (conditional warning)
17419 * errutil.adb, erroutc.adb: Implement new insertion char <
17420 (conditional warning).
17421 * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
17422 (Error_Msg_Warn): New variable for < insertion char.
17423 * prj-nmsc.adb: Implement new errout insertion char < (conditional
17425 (Check_For_Source): Change value of Source_Id only after the current
17426 source has been dealt with.
17428 2005-09-01 Robert Dewar <dewar@adacore.com>
17429 Doug Rupp <rupp@adacore.com>
17431 * exp_attr.adb: Handle vax fpt for 'Valid attribute
17432 * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
17433 * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
17434 (Valid_D, Valid_F, Valid_G): New functions
17436 2005-09-01 Ed Schonberg <schonberg@adacore.com>
17437 Hristian Kirtchev <kirtchev@adacore.com>
17438 Javier Miranda <miranda@adacore.com>
17440 * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
17441 from object notation, the original node is unanalyzed and carries no
17442 semantic information, so that accessiblity checks must be performed on
17443 the type of the actual itself.
17444 (Expand_N_Subprogram_Declaration): Change last actual parameter for
17445 compatibility with Build_Protected_Sub_Specification.
17446 (Check_Overriding_Inherited_Interfaces): Add suport to handle
17447 overloaded primitives.
17448 (Register_Interface_DT_Entry): Use the new name of the formal
17449 the the calls to Expand_Interface_Thunk
17451 * exp_dbug.ads: Augment comments on encoding of protected types to
17452 include the generation of dispatching subprograms when the type
17453 implements at least one interface.
17455 * lib.ads: Extend information in Load_Stack to include whether a given
17456 load comes from a Limited_With_Clause.
17458 * lib-load.adb (From_Limited_With_Chain): New predicate to determine
17459 whether a potential circularity is harmless, because it includes units
17460 loaded through a limited_with clause. Extends previous treatment which
17461 did not handle properly arbitrary combinations of limited and
17462 non-limited clauses.
17464 2005-09-01 Nicolas Setton <setton@adacore.com>
17466 * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
17467 to be encoded as typ___XBLU_lowerbound__upperbound instead of
17468 typ___XB_lowerbound__upperbound.
17470 2005-09-01 Thomas Quinot <quinot@adacore.com>
17472 * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
17473 dummy access formal for RACW/RAS TypeCode TSS.
17474 (Build_TypeCode_Call): Do not generate dummy null access actual for
17475 calls to the TypeCode TSS.
17477 2005-09-01 Ed Schonberg <schonberg@adacore.com>
17479 * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
17480 fully qualified name, to distinguish instances with the same local name.
17482 * g-souinf.ads (Enclosing_Entity): Document that entity name is now
17485 2005-09-01 Robert Dewar <dewar@adacore.com>
17487 * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
17490 2005-09-01 Jerome Lambourg <lambourg@adacore.com>
17492 * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
17493 (Free): New deallocation procedure for filter elements
17494 (Close): Deallocate any existing filter for the concerned connection
17496 2005-09-01 Laurent Pautet <pautet@adacore.com>
17498 * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
17499 position set is provided, we compute one in order to reduce the maximum
17500 length of the keys. This computation first selects a character
17501 position between 1 and the minimum length of the keys in order to
17502 avoid reducing one of the keys to an empty string.
17503 (Initialize, Compute): When the ratio V to K is too low, the algorithm
17504 does not converge. The initialization procedure now comes with a
17505 maximum number of iterations such that when exceeded, an exception is
17506 raised in Compute. The user can initialize this ratio to another value
17508 Reformating and updated headers.
17510 2005-09-01 Javier Miranda <miranda@adacore.com>
17512 * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
17513 that given an entity T creates and returns an Itype that duplicates the
17514 contents of T. The returned Itype has the null-exclusion
17515 attribute set to True, and its Etype attribute references T
17516 to keep the association between the two entities.
17517 Update copyright notice
17519 * sem_aggr.adb (Check_Can_Never_Be_Null,
17520 Aggregate_Constraint_Checks, Resolve_Aggregate,
17521 Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
17523 * sem_ch5.adb (Analyze_Assignment): Code cleanup.
17525 2005-09-01 Gary Dismukes <dismukes@adacore.com>
17526 Robert Dewar <dewar@adacore.com>
17527 Hristian Kirtchev <kirtchev@adacore.com>
17529 * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
17532 * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
17534 Call Set_Result_Definition instead of Set_Subtype_Mark.
17535 (P_Subprogram_Specification): Add parsing of anonymous access result
17536 plus null exclusions. Call Set_Result_Definition instead of
17539 * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
17540 (P_Access_Type_Definition): Add parsing for an anonymous access result
17541 subtype, plus parsing for null exclusions. Call Set_Result_Definition
17542 instead of Set_Subtype_Mark.
17544 * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
17545 (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
17546 (Result_Definition): New function for N_Function_Specifications.
17547 (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
17548 N_Function_Specification.
17549 (Set_Null_Exclusion_Present): Allow this flag for
17550 N_Function_Specification.
17551 (Set_Result_Definition): New procedure for N_Function_Specifications.
17552 (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
17553 and N_Function_Specification.
17555 * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
17556 Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
17557 Add support for LIMITED NEW for Ada 2005 AI-419
17558 Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
17559 syntax for anonymous access results.
17560 Replace Subtype_Mark field by Result_Definition in
17561 N_Function_Specification and N_Access_Definition specs.
17562 Add Null_Exclusion_Present to spec of N_Function_Specification.
17563 (Result_Definition): New function for N_Function_Specification and
17564 N_Access_Function_Definition.
17565 (Set_Result_Definition): New procedure for N_Function_Specification and
17566 N_Access_Function_Definition.
17568 * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
17569 Result_Definition for cases of N_Access_Function_Definition and
17570 N_Function_Specification.
17571 Print "not null" if Null_Exclusion_Present on N_Function_Specification.
17573 2005-09-01 Vincent Celier <celier@adacore.com>
17575 * lib-writ.adb: Update Copyright notice
17576 (Write_With_Lines): On platforms where file names are case-insensitive,
17577 record the file names in lower case.
17578 (Write_ALI): For D lines, on platforms where file names are
17579 case-insensitive, record the file names in lower case.
17581 2005-09-01 Ed Schonberg <schonberg@adacore.com>
17582 Emmanuel Briot <briot@adacore.com>
17584 * lib-xref.adb (Output_Overridden_Op): Display information on
17585 overridden operation.
17587 * lib-xref.ads: Add documentation on overridden operations.
17589 * ali.ads (Xref_Entity_Record): Add support for storing the overriding
17592 * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
17593 overriding entity information.
17595 2005-09-01 Vincent Celier <celier@adacore.com>
17597 * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
17598 including those that are inherited.
17600 2005-09-01 Robert Dewar <dewar@adacore.com>
17602 * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
17604 * par-prag.adb: Implement new pragma Debug_Policy
17606 * sem_prag.adb Implement new pragma Debug_Policy
17607 (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
17608 Component_Size attribute specification. Give warning for ignored pragma
17611 * snames.h, snames.ads, snames.adb: Introduce entries in
17612 Preset_Names for Name_Disp_Asynchronous_Select,
17613 Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
17614 Name_Disp_Timed_Select.
17615 New pragma Debug_Policy
17617 * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
17619 Switch -gnata also sets Debug_Pragmas_Enabled
17621 * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
17622 handle an explicit -gnata when compiling predefined files.
17624 2005-09-01 Vincent Celier <celier@adacore.com>
17626 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
17627 directories of projects that have no Ada sources.
17629 2005-09-01 Robert Dewar <dewar@adacore.com>
17631 * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
17632 (makes a difference for wide characters)
17634 * widechar.adb, widechar.ads:
17635 Add Wide_Char_Byte_Count feature to count chars vs bytes
17637 2005-09-01 Thomas Quinot <quinot@adacore.com>
17638 Ed Schonberg <schonberg@adacore.com>
17639 Robert Dewar <dewar@adacore.com>
17641 * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
17642 'Address attribute reference with an overloaded prefix, use the
17643 location of the prefix (not the location of the attribute reference) as
17644 the error location.
17645 (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
17646 a function renaming thereof, is a valid prefix for 'Size (where it is
17647 intepreted as a function call).
17648 (Statically_Denotes_Entity): New predicate to determine whether the
17649 prefix of an array attribute can be considered static.
17652 (Eval_Attr): Fix failure to evaluate Component_Size for
17653 unconstrained arrays (resulted in wrong value in packed case, since
17654 back end cannot handle this case)
17656 2005-09-01 Robert Dewar <dewar@adacore.com>
17658 * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
17659 error msgs for most common cases.
17660 Use new errout insertion char < (conditional warning)
17662 2005-09-01 Javier Miranda <miranda@adacore.com>
17663 Ed Schonberg <schonberg@adacore.com>
17665 * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
17666 become local to the whole package.
17667 (Install_Limited_Withed_Unit): Instead of unchaining real entities if
17668 the package was already analyzed the new algorithm "replaces" the
17669 real entities by the shadow ones. This is required to ensure that
17670 the order of these entities in the homonym chains does not change;
17671 otherwise we can have undefined references at linking time because
17672 in case of conflicts the external name of the entities will have
17673 a suffix that depends on the order of the entities in the chain.
17674 (Remove_Limited_With_Clause): Complementary code that completes the
17675 new algorithm and replaces the shadow entities by the real ones.
17676 (Install_Limited_Withed_Unit): When unchaining entities before the
17677 installation of the shadow entities, only regular entities of the
17678 public part must be taken into account. This is required to
17679 keep this routine in synch with the work done by Remove_Limited_
17681 (Install_Limited_With_Clause): Introduce implicit limited_with_clause
17682 even if unit is analyzed, because the analysis of the unit is
17683 idempotent in any case, and the limited view of the unit may have to
17684 be installed for proper visibility.
17685 (Expand_Limited_With_Clause): Even if the unit in the implicit
17686 with_clause has been analyzed already, a limited view of the package
17687 must be built for the current context, if it does not exist yet.
17689 2005-09-01 Ed Schonberg <schonberg@adacore.com>
17690 Javier Miranda <miranda@adacore.com>
17691 Gary Dismukes <dismukes@adacore.com>
17693 * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
17694 defining entity for the instance body, make a new defining identifier
17695 rather than copying the entity of the spec, to prevent accidental
17696 sharing of the entity list.
17697 (Check_Private_View): When exchanging views of private types, build the
17698 list of exchanged views as a stack, to ensure that on exit the exchanges
17699 are undone in the proper order.
17700 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
17701 Restore the compilation environment in case of instantiation_error.
17702 (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
17703 for an anonymous access result.
17704 (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
17705 (Formal_Entity): Handle properly the case of a formal package that
17706 denotes a generic package renaming.
17708 2005-09-01 Thomas Quinot <quinot@adacore.com>
17710 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
17711 clause if the array aggregate is surrounded by parentheses.
17713 2005-09-01 Cyrille Comar <comar@adacore.com>
17714 Gary Dismukes <dismukes@adacore.com>
17715 Ed Schonberg <schonberg@adacore.com>
17716 Javier Miranda <miranda@adacore.com>
17718 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
17720 to check if a type is Constrained in cases related to code generation
17721 (rather than semantic checking) since otherwise we do not generate
17722 similar code for mutable private types depending if their
17723 discriminants are visible or not.
17724 (Check_Abstract_Overriding): Do not complain about failure to override
17725 the primitive operations used in dispatching selects since they will
17726 always be overriden at the freeze point of the type.
17727 (Access_Definition): Separate out handling for resetting the scope
17728 of an anonymous access function result type. Retrieve the scope
17729 of the associated function rather than using Current_Scope, which
17730 does not have a consistent value (depends on whether we're in the
17731 middle of analyzing formal parameters). Add ??? comment about
17732 finding a cleaner way to handle the special cases of scope setting.
17733 (Process_Incomplete_Dependents): A protected operation is never a
17734 dispatching operation (only its wrapper may be).
17735 (Build_Derived_Record_Type): In case of tagged private types that
17736 implement interfaces add derivation of predefined primitive
17738 (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
17739 by two parameters that are used in case of derivation from abstract
17740 interface types: No_Predefined_Prims is used to avoid the derivation
17741 of predefined primitives from the interface, and Predefined
17742 Prims_Only is used to complete the derivation predefined primitives
17743 in case of private tagged types implementing interfaces.
17744 Fix typo in comments
17745 (Find_Interface_In_Descendant): Protect the frontend against
17746 wrong code with large circularity chains.
17747 (Is_Private_Overriding): Add support for entities overriding interface
17748 subprograms. The test failed because Entities associated with overriden
17749 interface subprograms are always marked as hidden (and used to build
17750 the secondary dispatch table); in this case the overriden entity is
17751 available through the field abstract_interface_alias (cf. override_
17752 dispatching_operation)
17753 (Access_Definition): Set the scope of the type to Current_Scope for the
17754 case of a function with an anonymous access result type.
17755 (Access_Subprogram_Declaration): Handle creation of the type entity for
17756 an access-to-function type with an anonymous access result.
17757 (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
17758 in handling for N_Access_Function_Definition.
17759 (Analyze_Subtype_Declaration): Modify the text of error message.
17760 (Derived_Type_Declaration): Modify the text of error message.
17761 (Process_Subtype): Modify the text of error message plus cleanup
17762 of one redundant error message.
17763 (Analyze_Component_Declaration): Code cleanup.
17764 (Analyze_Object_Declaration): Code cleanup.
17765 (Analyze_Subtype_Declaration): Propagate the null-exclusion
17766 attribute in case of access types. Code cleanup.
17767 (Array_Type_Declaration): Code cleanup.
17768 (Process_Discriminants): Create the new null-excluding itype
17769 if required. Code cleanup.
17770 (Process_Subtype): Create the new null-excluding itype if
17771 required. Code cleanup.
17772 (Build_Derived_Record_Type): Code cleanup to avoid calling
17773 twice the subprogram derive_subprograms in case of private
17774 types that implement interfaces. In this particular case the
17775 subprogram Complete_Subprograms_Derivation already does the
17776 job associated with the second call.
17778 * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
17779 conversion to the full view when generating an operation for a
17780 discriminant whose type may currently be private.
17782 2005-09-01 Ed Schonberg <schonberg@adacore.com>
17783 Javier Miranda <miranda@adacore.com>
17785 * sem_ch4.adb (Transform_Object_Operation): In a context off the form
17786 V (Obj.F), the rewriting does not involve the indexed component, but
17787 only the selected component itself.
17788 Do not apply the transformation if the analyzed node is an actual of a
17789 call to another subprogram.
17790 (Complete_Object_Operation): Retain the entity of the
17791 dispatching operation in the selector of the rewritten node. The
17792 entity will be used in the expansion of dispatching selects.
17793 (Analyze_One_Call): Improve location of the error message associated
17795 (Analyze_Selected_Component): No need to resolve prefix when it is a
17796 function call, resolution is done when parent node is resolved, as
17798 (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
17799 when attempting to resolve a call transformed from its object notation.
17800 (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
17801 of the argument list for each interpretation of the operation.
17802 (Try_Object_Operation): The designated type of an access parameter may
17803 be an incomplete type obtained through a limited_with clause, in which
17804 case the primitive operations of the type are retrieved from its full
17806 (Analyze_Call): If this is an indirect call, and the return type of the
17807 access_to_subprogram is incomplete, use its full view if available.
17809 2005-09-01 Javier Miranda <miranda@adacore.com>
17810 Gary Dismukes <dismukes@adacore.com>
17812 * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
17813 access types the null-exclusion and access-to-constant attributes must
17815 (Analyze_Return_Statement): When the result type is an anonymous access
17816 type, apply a conversion of the return expression to the access type
17817 to ensure that appropriate accessibility checks are performed.
17818 (Analyze_Return_Type): For the case of an anonymous access result type,
17819 generate the Itype and set Is_Local_Anonymous_Access on the type.
17820 Add ??? placeholder for check to disallow returning a limited object
17821 in Ada 2005 unless it's an aggregate or a result of a function call.
17822 Change calls from Subtype_Mark to Result_Definition.
17823 (Analyze_Subprogram_Body): Change formal Subtype_Mark to
17824 Result_Definition in call to Make_Function_Specification.
17825 (Build_Body_To_Inline): Change Set_Subtype_Mark to
17826 Set_Result_Definition.
17827 (Make_Inequality_Operator): Change formal Subtype_Mark to
17828 Result_Definition in call to Make_Function_Specification.
17829 (Process_Formals): Create the new null-excluding itype if required.
17830 (New_Overloaded_Entity): For an entity overriding an interface primitive
17831 check if the entity also covers other abstract subprograms in the same
17832 scope. This is required to handle the general case, that is, overriding
17833 other interface primitives and overriding abstract subprograms inherited
17834 from some abstract ancestor type.
17835 (New_Overloaded_Entity): For an overriding entity that comes from
17836 source, note the operation that it overrides.
17837 (Check_Conformance, Type_Conformant): Addition of one new formal
17838 to skip controlling formals in the analysis. This is used to
17839 handle overloading of abstract interfaces.
17840 (Base_Types_Match): Add missing case for types imported from
17841 limited-with clauses
17842 (New_Overloaded_Entity): Add barrier to protect the use of
17843 the "alias" attribute.
17845 2005-09-01 Ed Schonberg <schonberg@adacore.com>
17847 * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
17848 verify that the procedure and the entry are mode conformant.
17849 (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
17850 as a different operator, which is often a cut-and-paste error.
17852 2005-09-01 Javier Miranda <miranda@adacore.com>
17853 Ed Schonberg <schonberg@adacore.com>
17855 * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
17856 used in controlling parameters exclude null because it is necessary to
17857 read the tag to dispatch, and null has no tag.
17858 (Override_Dispatching_Operation): If the previous operation is inherited
17859 from an interface, it becomes hidden and does not participate in later
17862 2005-09-01 Javier Miranda <miranda@adacore.com>
17863 Ed Schonberg <schonberg@adacore.com>
17864 Gary Dismukes <dismukes@adacore.com>
17866 * sem_res.adb (Resolve_Membership_Op): In case of the membership test
17867 "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
17868 the expander will generate the corresponding run-time check to evaluate
17870 (Resolve_Call): Check for legal type of procedure name or prefix that
17871 appears as a trigger in a triggering alternative.
17872 (Valid_Conversion): If expression is ambiguous and the context involves
17873 an extension of System, remove System.Address interpretations.
17874 (Resolve_Qualified_Expression): Reject the case of a specific-type
17875 qualification applied to a class-wide argument. Enhance comment
17876 to explain checking of Original_Node.
17877 (Resolve_Type_Conversion): The location of the error message was not
17878 general enough to handle the general case and hence it has been removed.
17879 In addition, this patch improves the text of the message.
17880 (Resolve_Type_Conversion): Add missing support for access to interface
17882 (Resolve_Type_Conversion): If the target is a class-wide interface type,
17883 do not expand if the expression is the actual in a call, because proper
17884 expansion will take place when the call itself is expanded.
17885 (Resolve_Allocator): If the context is an unchecked conversion, the
17886 allocator inherits its storage pool, if any, from the target type of
17889 2005-09-01 Ed Schonberg <schonberg@adacore.com>
17890 Javier Miranda <miranda@adacore.com>
17892 * sem_type.adb (Add_One_Interp): If a candidate operation is an
17893 inherited interface operation that has an implementation, use the
17894 implementation to avoid spurious ambiguities.
17895 (Interface_Present_In_Ancestor): In case of concurrent types we can't
17896 use the Corresponding_Record_Typ attribute to look for the interface
17897 because it is set by the expander (and hence it is not always
17898 available). For this reason we traverse the list of interfaces
17899 (available in the parent of the concurrent type).
17900 (Interface_Present_In_Ancestor): Handle entities from the limited view
17902 2005-09-01 Ed Schonberg <schonberg@adacore.com>
17904 * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
17905 from the list of required components.
17906 (Is_Controlling_Limited_Procedure): Determine whether an entity is a
17907 primitive procedure of a limited interface with a controlling first
17909 (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
17911 (Safe_To_Capture_Value): A value (such as non_null) is not safe to
17912 capture if it is generated in the second operand of a short-circuit
17914 Do not capture values for variables with address clauses.
17915 (Is_Object_Reference): Treat a function call as an object reference only
17916 if its type is not Standard_Void_Type.
17918 2005-09-01 Ed Schonberg <schonberg@adacore.com>
17920 * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
17921 to a variable that is statically known to be constant.
17923 2005-09-01 Geert Bosch <bosch@adacore.com>
17924 Robert Dewar <dewar@adacore.com>
17926 * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
17927 (VAXGF_Safe_First): Idem.
17929 2005-09-01 Robert Dewar <dewar@adacore.com>
17930 Arnaud Charlet <charlet@adacore.com>
17932 * g-dirope.ads: Minor reformatting
17933 Document that bounds of result of Base_Name match the input index
17935 Add documentation on environment variable syntax for Expand_Path
17937 * gnat_ugn.texi: Update documentation to include mention of -m switches
17938 Document new treatment of wide characters in max line length
17940 Remove -gnatL/-gnatZ switches, no longer used.
17941 Add note on pragmas Assertion_Policy and Debug_Policy in discussion
17944 * gnat_rm.texi: Add doc for two argument form of pragma
17945 Float_Representation.
17946 Add documentation for pragma No_Strict_Aliasing
17947 Add note that explicit component clause overrides pragma Pack.
17948 Add documentation of pragma Debug_Policy
17950 2005-09-01 Matthew Heaney <heaney@adacore.com>
17952 * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
17953 a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
17954 a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
17955 a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
17956 draft (Draft 13, August 2005) of Ada Amendment 1.
17958 2005-09-01 Arnaud Charlet <charlet@adacore.com>
17960 * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
17961 Note that the platform-specific version of g-soccon.ads for VMS is now
17962 named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
17963 really is a package spec).
17964 Replace s-taspri-linux.ads by s-taspri-posix.ads
17965 Remove references to s-mastop-x86.adb
17967 * system-vxworks-xscale.ads: Removed, no longer used.
17968 * s-vxwork-xscale.ads: Removed, no longer used.
17970 2005-09-01 Robert Dewar <dewar@adacore.com>
17972 * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
17973 g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
17974 g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
17975 exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
17976 g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
17977 g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
17978 g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
17979 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
17980 g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
17981 g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
17982 sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
17983 a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
17984 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
17985 a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
17986 a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
17987 a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
17988 g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
17989 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
17990 g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
17991 i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
17992 a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
17994 2005-08-29 Arnaud Charlet <charlet@adacore.com>
17998 (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
18000 2005-08-29 Arnaud Charlet <charlet@adacore.com>
18001 Doug Rupp <rupp@adacore.com>
18003 * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
18005 (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
18006 this code in the GNAT run-time.
18008 * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
18011 * init.c (__gnat_error_handler [many]): Mark "msg" as const
18012 (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
18014 (__gnat_inside_elab_final_code): Moved here from
18015 Standard_Library and only defined for the compiler.
18016 __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
18017 (__gnat_inum_to_ivec): Do not define this function on VxWorks when
18018 using RTPs because directly vectored Interrupt routines are not
18019 supported on this configuration.
18020 (getpid): Do not redefine this function on VxWorks when using RTPs
18021 because this primitive is well supported by the RTP libraries.
18022 (copy_msg): Correct the code that checks for buffer overflow.
18023 Discovered during code reading.
18025 2005-08-29 Olivier Hainque <hainque@adacore.com>
18027 * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
18028 a library level mutable variable with an initializer, tell
18029 build_allocator to ignore the initializer's size. It may not be large
18030 enough for all the values that might be assigned to the variable later
18033 2005-08-29 Arnaud Charlet <charlet@adacore.com>
18034 Eric Botcazou <ebotcazou@adacore.com>
18036 * trans.c: Protect < in error msg with quote
18037 Replace GCC_ZCX by Back_End_Exceptions.
18038 (addressable_p) <COMPONENT_REF>: Also return 1 if the field
18039 has been sufficiently aligned in the record.
18041 2005-08-15 James E. Wilson <wilson@specifix.com>
18043 * system-linux-alpha.ads: Change ia64 to alpha.
18045 2005-08-01 Kazu Hirata <kazu@codesourcery.com>
18047 * decl.c, utils.c: Fix comment typos.
18049 2005-07-29 Kazu Hirata <kazu@codesourcery.com>
18051 * decl.c, init.c, initialize.c: Fix comment typos.
18053 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
18055 Make CONSTRUCTOR use VEC to store initializers.
18056 * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
18058 * trans.c (extract_values): Likewise.
18059 * utils.c (convert, remove_conversions): Likewise.
18060 * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
18061 gnat_build_constructor): Likewise.
18063 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
18065 * decl.c (components_to_record): Use DECL_FCONTEXT instead of
18067 (compare_field_bitpos): Likewise.
18069 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
18071 * utils.c (create_var_decl): Only set DECL_COMMON on
18072 VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
18073 VAR_OR_FUNCTION_DECL_P.
18075 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
18077 * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
18080 2005-07-07 Pascal Obry <obry@adacore.com>
18082 * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
18083 returned type on Windows.
18085 * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
18088 * g-socket.adb (Inet_Addr): Check for empty Image and raises an
18089 exception in this case.
18090 Simplify the code as "Image (Image'Range)" = "Image".
18092 2005-07-07 Vincent Celier <celier@adacore.com>
18094 * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
18095 the destructor/constructor attributes for <lib>final/<lib>init.
18097 * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
18099 2005-07-07 Eric Botcazou <ebotcazou@adacore.com>
18101 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
18102 type if the parameter is not passed by copy but reference by default.
18104 2005-07-07 Javier Miranda <miranda@adacore.com>
18106 * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
18107 Reimplementation of the support for abstract interface types in order
18108 to leave the code more clear and easy to maintain.
18110 * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
18111 abstract interface types in order to leave the code clearer and easier
18114 * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
18115 is now implemented by the new subprogram Fill_Secondary_DT_Entry.
18116 (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
18117 appropriate entry of the secondary dispatch table.
18118 (Make_DT): Add code to inherit the secondary dispatch tables of
18121 * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
18122 implementing both functionalities by means of a common routine, each
18123 routine has its own code.
18125 2005-07-07 Javier Miranda <miranda@adacore.com>
18127 * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
18129 * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
18132 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
18135 * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
18136 use of tag incomplete types.
18138 * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
18139 give support to tagged incomplete types.
18141 * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
18142 expression is a discriminant reference and its type is private, as can
18143 happen within a stream operation for a mutable record, use the full
18144 view of the type to resolve the case alternatives.
18145 (Analyze_Assignment): Check wrong dereference of incomplete types.
18147 * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
18150 * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
18153 * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
18154 N_Incomplete_Type_Declaration nodes.
18156 * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
18157 Tag_Present to give support to tagged incomplete types:
18159 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
18162 2005-07-07 Olivier Hainque <hainque@adacore.com>
18165 * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
18166 definitions for the Unwind wrappers in the compiler case.
18168 2005-07-07 Ed Schonberg <schonberg@adacore.com>
18169 Javier Miranda <miranda@adacore.com>
18171 * par-load.adb (Load): If a child unit is loaded through a limited_with
18172 clause, each parent must be loaded as a limited unit as well.
18174 * sem_ch10.adb (Previous_Withed_Unit): Better name for
18175 Check_Withed_Unit. Return true if there is a previous with_clause for
18176 this unit, whether limited or not.
18177 (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
18179 (Is_Visible_Through_Renamings): New local subprogram of install_limited
18180 _withed_unit that checks if some package installed through normal with
18181 clauses has a renaming declaration of package whose limited-view is
18182 ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
18183 of the current Draft document for Ada 2005.
18184 (Analyze_Context): Complete the list of compilation units that
18185 are allowed to contain limited-with clauses. It also contains
18186 checks that were previously done by Install_Limited_Context_Clauses.
18187 This makes the code more clear and easy to maintain.
18188 (Expand_Limited_With_Clause) It is now a local subprogram of
18189 Install_Limited_Context_Clauses, and contains the code that adds
18190 the implicit limited-with clauses for parents of child units.
18191 This functionality was prevously done by Analyze_Context.
18193 * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
18196 * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
18197 been erroneously named in a limited-with clause of its own context.
18198 In this case the error has been previously notified by Analyze_Context.
18200 2005-07-07 Ed Schonberg <schonberg@adacore.com>
18202 * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
18203 generic package that contains local declarations with the same name.
18204 (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
18206 2005-07-07 Bernard Banner <banner@adacore.com>
18208 * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
18209 ia64 platform only on platforms that you the GCC unwind library
18210 rather than the system unwind library.
18212 2005-07-07 Thomas Quinot <quinot@adacore.com>
18214 * expect.c: Minor reformatting
18216 2005-07-07 Sergey Rybin <rybin@adacore.com>
18218 * vms_data.ads: Add VMS qualifiers for new gnatpp switch
18221 * gnat_ugn.texi: Add description for new gnatpp option
18224 2005-07-04 Thomas Quinot <quinot@adacore.com>
18226 * g-expect-vms.adb, g-expect.ads, g-expect.adb
18227 (Get_Command_Output): New subprogram to launch a process and get its
18228 standard output as a string.
18230 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
18231 Olivier Hainque <hainque@adacore.com>
18233 * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
18234 fetch a code-range descriptor associated with the machine state. On
18235 failure set the machine state's PC to 0; on success, pass the
18236 descriptor to exc_virtual_unwind.
18238 * init.c (Tru64 section): New function __gnat_set_code_loc.
18240 2005-07-04 Vincent Celier <celier@adacore.com>
18242 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
18243 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
18244 mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
18245 Remove all auto-initialization code, as this is now done through the
18246 constructor mechanism.
18248 * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
18249 __gnat_sals_init_using_constructors): New functions.
18251 * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
18252 Linker_Constructor and Linker_Destructor when switch -a is used.
18254 * bindusg.adb: Add line for new switch -a
18256 * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
18257 (Gnatbind): When switch -a is used, check if it is allowed
18259 * switch-b.adb (Scan_Binder_Switches): Process new switch -a
18261 2005-07-04 Joel Brobecker <brobecker@adacore.com>
18263 * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
18264 This prevents us from hitting a limitation during the debug info
18265 generation when using stabs.
18266 (Prims_Ptr): Likewise.
18268 2005-07-04 Gary Dismukes <dismukes@adacore.com>
18269 Ed Schonberg <schonberg@adacore.com>
18270 Javier Miranda <miranda@adacore.com>
18272 * checks.adb (Null_Exclusion_Static_Checks): In the case of
18273 N_Object_Declaration, only perform the checks if the Object_Definition
18274 is not an Access_Definition.
18276 * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
18277 where the parent of an the access definition is an N_Object_Declaration
18278 when determining the Associated_Node_For_Itype and scope of an
18279 anonymous access-to-subprogram type.
18281 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
18282 Corresponding_Spec on the body created for a null procedure. Add ???
18283 comment. Remove New_Copy_Tree call on body argument to
18284 Set_Body_To_Inline.
18286 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
18287 discriminants, use the type of the actual as well, because the
18288 discriminants may be read by the called subprogram.
18290 * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
18291 access type we do not need to handle non-limited views.
18292 (Build_Derived_Record_Type): Additional check to check that in case of
18293 private types, interfaces are only allowed in private extensions.
18295 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
18297 * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
18298 <Pragma_Linker_Destructor>: Likewise.
18300 * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
18301 Pragma_Linker_Destructor.
18303 * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
18304 ATTR_LINK_DESTRUCTOR.
18305 (static_ctors, static_dtors): New variables.
18307 * misc.c (gnat_expand_body): Output current function as constructor
18308 and destructor if requested.
18310 * par-prag.adb: Add processing for pragma Linker_Constructor and
18313 * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
18314 extracted from Check_Interrupt_Or_Attach_Handler.
18315 (Check_Interrupt_Or_Attach_Handler): Invoke it.
18316 Implement pragma Linker_Constructor and Linker_Destructor with the
18317 help of Find_Unique_Parameterless_Procedure.
18318 Replace Name_Alias with Name_Target for pragma Linker_Alias.
18320 * snames.h, snames.ads, snames.adb:
18321 Add Name_Linker_Constructor and Name_Linker_Destructor.
18322 Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
18323 * snames.adb: Remove Name_Alias.
18325 * trans.c: Include cgraph.h.
18326 (build_global_cdtor): New function.
18327 (Compilation_Unit_to_gnu): Build global constructor and destructor if
18329 (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
18331 (addressable_p) <COMPONENT_REF>: Unconditionally test
18332 DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
18334 * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
18335 variable if it is external.
18337 (static_ctors, static_dtors): New global variables.
18338 (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
18339 <ATTR_LINK_DESTRUCTOR>: Likewise.
18340 (end_subprog_body): Chain function as constructor and destructor
18343 * exp_util.adb (Force_Evaluation): Unconditionally invoke
18344 Remove_Side_Effects with Variable_Ref set to true.
18345 (Remove_Side_Effects): Handle scalar types first. Use a renaming
18346 for non-scalar types even if Variable_Ref is true and for class-wide
18349 2005-07-04 Ed Schonberg <schonberg@adacore.com>
18351 * exp_attr.adb (Mod): Evaluate condition expression with checks off,
18352 to prevent spurious warnings.
18354 2005-07-04 Thomas Quinot <quinot@adacore.com>
18356 * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
18357 Itypes. Itypes are really unexpected there.
18358 (Build_TypeCode_Function): Generalise special processing for Itypes to
18359 handle the case of numeric implicit base types as well as enumerated
18362 2005-07-04 Ed Schonberg <schonberg@adacore.com>
18364 * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
18365 controlled, indicate the expected type of the dereference that is
18366 created for the call to Deep_Finalize, to prevent spurious errors when
18367 the designated type is private and completed with a derivation from
18368 another private type.
18370 2005-07-04 Vincent Celier <celier@adacore.com>
18372 * make.adb (Change_To_Object_Directory): When unable to change the
18373 current dir to the object directory, output the full path of the
18376 2005-07-04 Matthew Gingell <gingell@adacore.com>
18378 * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
18380 * indepsw-linux.adb: Replace by...
18382 * indepsw-gnu.adb: ...this new file
18384 2005-07-04 Vincent Celier <celier@adacore.com>
18386 * mlib-prj.adb (Auto_Initialize): New constant String
18387 (SALs_Use_Constructors): New Boolean function
18388 (Build_Library): Call gnatbind with Auto_Initialize switch when
18389 SALs_Use_Constructors returns True.
18391 * mlib-tgt.ads: Minor reformatting
18393 * mlib-utl.ads: Minor reformatting
18395 * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
18397 2005-07-04 Ed Schonberg <schonberg@adacore.com>
18399 * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
18400 single protected declarations can have an interface list.
18401 (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
18402 with seriously malformed entry declarations, and lead to compilation
18403 abandoned messages.
18405 2005-07-04 Javier Miranda <miranda@adacore.com>
18407 * par-load.adb: Load the context items in two rounds.
18409 2005-07-04 Robert Dewar <dewar@adacore.com>
18411 * scng.adb: Do not consider Mod used as an attribute to be a keyword
18413 2005-07-04 Ed Schonberg <schonberg@adacore.com>
18414 Javier Miranda <miranda@adacore.com>
18416 * sem_ch10.adb (Build_Limited_Views): A type declared with a private
18417 type extension needs a limited view.
18418 Remove previous restriction on private types available through the
18419 limited-view (only tagged private types were previously allowed).
18420 (Install_Withed_Unit): In the code that implements the
18421 legality rule given in AI-377, exclude a child unit with the name
18422 Standard, because it is a homonym of the Standard environment package.
18424 2005-07-04 Thomas Quinot <quinot@adacore.com>
18426 * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
18427 overloaded function call, carry interpretations from the original tree
18430 2005-07-04 Ed Schonberg <schonberg@adacore.com>
18432 * sem_ch6.adb (Conforming_Types): If the types are anonymous access
18433 types check whether some designated type is a limited view, and use
18434 the non-limited view if available.
18436 2005-07-04 Gary Dismukes <dismukes@adacore.com>
18438 * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
18439 constraint of full view of a private view T1 if present, when T2 is a
18440 discriminated full view.
18442 2005-07-04 Thomas Quinot <quinot@adacore.com>
18444 * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
18445 actual that is a view conversion of a bit packed array reference.
18447 2005-07-04 Ed Schonberg <schonberg@adacore.com>
18449 * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
18450 present before checking whether an interface type covers a synchronized
18453 2005-07-04 Ed Schonberg <schonberg@adacore.com>
18455 * sem_util.adb (Is_Object_Reference): An indexed or selected component
18456 whose prefix is an implicit dereference is an object reference. Removes
18457 spurious errors when compiling with -gnatc.
18459 2005-07-04 Robert Dewar <dewar@adacore.com>
18462 * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
18464 2005-07-04 Matthew Gingell <gingell@adacore.com>
18466 * tracebak.c: Enable tracebacks on ia64 platforms
18468 2005-07-04 Vincent Celier <celier@adacore.com>
18470 * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
18471 the GNAT BIND command, as gnatbind accepts multiples ALI files with
18472 the -L or -n switches.
18474 2005-07-04 Vincent Celier <celier@adacore.com>
18476 * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
18477 correctly computed and the main project data is not modified while
18479 (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
18480 (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
18481 c++linker as this does not work on some platforms.
18483 2005-07-04 Matthew Heaney <heaney@adacore.com>
18485 * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
18487 * a-coinve.adb: Perform constraint checks explicitly.
18489 2005-07-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
18490 Thomas Quinot <quinot@adacore.com>
18492 * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
18493 new target gen-soccon.
18495 2005-07-04 Robert Dewar <dewar@adacore.com>
18497 * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
18499 2005-07-04 Thomas Quinot <quinot@adacore.com>
18501 * g-socket.ads (Check_Selector): Minor rewording of comment.
18503 2005-07-04 Vincent Celier <celier@adacore.com>
18505 * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
18507 2005-07-04 Thomas Quinot <quinot@adacore.com>
18509 * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
18511 2005-07-04 Sergey Rybin <rybin@adacore.com>
18513 * gnat_ugn.texi: Add description of --eol gnatpp option
18515 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
18516 Thomas Quinot <quinot@adacore.com>
18518 * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
18519 if the user wants all calls of a subprogram to be flagged,
18520 independently of whether they are made from within the same unit or
18522 Mention restriction for pragma Linker_Alias on some platforms.
18523 Document pragma Linker_Constructor and Linker_Destructor.
18524 Rewrite documentation of Weak_External, Linker_Section and
18525 Linker_Alias pragmas.
18527 2005-07-04 Arnaud Charlet <charlet@adacore.com>
18529 * s-stausa.ads, s-stausa.adb: New files.
18531 2005-06-30 Kelley Cook
18533 * all files: Update FSF address in copyright headers.
18534 * gen-soccon.co (main): Output new FSF address in generated files.
18536 2005-06-28 Paul Brook <paul@codesourcery.com>
18538 * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
18540 2005-06-14 Olivier Hainque <hainque@adacore.com>
18541 Eric Botcazou <ebotcazou@adacore.com>
18543 * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
18544 exc_unwind, now that we are generating proper .debug_frame output for
18547 * tracebak.c: Remove the mips-irix section, as we are now using the
18548 s-mastop based unwinder again.
18549 Under SPARC/Solaris, take into account the stack bias to compute the
18550 frame offset. The stack bias is 0 for the V8 ABI and 2047 for the V9
18553 2005-06-14 Doug Rupp <rupp@adacore.com>
18555 * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
18557 * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
18559 2005-06-14 Pascal Obry <obry@adacore.com>
18561 * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
18562 a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
18563 a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
18566 * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
18567 a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
18568 a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
18569 a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
18570 a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
18571 a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
18572 a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
18573 s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
18574 s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
18575 s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
18576 s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
18577 s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
18578 s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
18579 s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
18580 s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
18581 s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
18582 s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
18583 s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
18584 s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
18585 s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
18586 s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
18587 s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
18588 s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
18589 s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
18590 s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
18591 s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
18592 s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
18593 s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
18594 s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
18595 s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
18596 a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
18597 a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
18598 a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
18599 a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
18600 a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
18601 a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
18602 a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
18603 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
18604 a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
18605 a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
18606 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
18607 a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
18608 a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
18609 a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
18610 a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
18611 a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
18612 a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
18613 a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
18614 a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
18615 a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
18616 a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
18617 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
18618 a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
18619 a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
18620 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
18621 a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
18622 a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
18623 dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
18624 g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
18625 g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
18626 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
18627 g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
18628 g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
18629 gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
18630 g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
18631 i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
18632 s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
18633 s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
18634 s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
18635 s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
18636 s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
18637 s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
18638 s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
18639 s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
18640 s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
18641 s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
18642 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
18643 s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
18644 s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
18645 s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
18646 s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
18647 s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
18648 s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
18649 s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
18650 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
18651 s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
18652 s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
18653 s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
18654 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
18655 s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
18656 s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
18657 s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
18658 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
18659 s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
18660 s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
18661 s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
18662 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
18663 s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
18664 s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
18665 s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
18666 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
18667 s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
18668 s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
18669 s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
18670 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
18671 s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
18672 s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
18673 s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
18674 s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
18675 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
18676 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
18677 s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
18678 s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
18679 s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
18680 s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
18681 s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
18682 s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
18683 s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
18684 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
18685 s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
18686 s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
18687 s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
18688 s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
18689 a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
18690 a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
18691 a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
18692 a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
18693 a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
18694 a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
18695 a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
18696 a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
18697 a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
18698 "GNU Ada" to GNAT, use proper casing for RUN-TIME.
18700 2005-06-14 Jose Ruiz <ruiz@adacore.com>
18701 Arnaud Charlet <charlet@adacore.com>
18703 * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
18704 longer protected objects. They have been replaced by lower-level
18705 suspension objects made up by a mutex and a condition variable (or
18706 their equivalent given a particular OS) plus some internal data to
18707 reflect the state of the suspension object.
18708 (Initialize, Finalize): Add this initialization procedure for
18709 Suspension_Object, which is a controlled type.
18710 (Finalize): Add the finalization procedure for Suspension_Object,
18711 which is a controlled type.
18713 * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
18714 Ada.Synchronous_Task_Control because there is no longer a need for a
18715 VxWorks specific version of this package. Target dependencies
18716 has been moved to System.Task_Primitives.Operations.
18718 * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
18720 (InitializeCriticalSection, EnterCriticalSection,
18721 LeaveCriticalSection, DeleteCriticalSection): Replace the type
18722 pCriticalSection by an anonymous access type so that we avoid problems
18723 of accessibility to local objects.
18725 * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
18726 s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
18727 s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
18728 s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
18729 s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
18730 set the environment task mask here.
18731 (Current_State): Add this function that returns the state of the
18733 (Set_False): Add this procedure that sets the state of the suspension
18735 (Set_True): Add this procedure that sets the state of the suspension
18736 object to True, releasing the task that was suspended, if any.
18737 (Suspend_Until_True): Add this procedure that blocks the calling task
18738 until the state of the object is True. Program_Error is raised if
18739 another task is already waiting on that suspension object.
18740 (Initialize): Add this procedure for initializing the suspension
18741 object. It initializes the mutex and the condition variable which are
18742 used for synchronization and queuing, and it sets the internal state
18744 (Finalize): Add this procedure for finalizing the suspension object,
18745 destroying the mutex and the condition variable.
18747 * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
18748 s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
18749 s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
18750 s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
18751 which provides a low-level abstraction (using operating system
18752 primitives) for Ada.Synchronous_Task_Control.
18753 This object is made up by a mutex (for ensuring mutual exclusion), a
18754 condition variable (for queuing threads until the condition is
18755 signaled), a Boolean (State) indicating whether the object is open,
18756 and a Boolean (Waiting) reflecting whether there is a task already
18757 suspended on this object.
18759 * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
18760 s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
18761 s-intman-vms.ads, s-intman-mingw.adb,
18762 (Initialize_Interrupts): Removed, no longer used.
18764 * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
18765 (Setup_Interrupt_Mask): New procedure.
18767 * s-intman-vxworks.ads, s-intman-vxworks.adb: Update comments.
18769 * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
18771 * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
18772 this is no longer done in the body of s-taprop
18773 (Server_Task): Explicitely test for Pending_Action in case
18774 System.Parameters.No_Abort is True.
18776 * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
18777 is no longer done in the body of s-taprop
18779 2005-06-14 Robert Dewar <dewar@adacore.com>
18781 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
18782 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
18783 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
18784 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
18785 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
18786 system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
18787 system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
18788 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
18789 system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
18790 system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
18791 system-linux-hppa.ads, system-vms_64.ads,
18792 system-vxworks-alpha.ads: Minor comment update for
18793 AI-362 (unit is Pure).
18795 * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
18796 Add pragma Pure_05 for AI-362
18797 Make remaining conversion functions obsolescent in Ada 95
18799 * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
18800 Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
18801 Add entries for a-wichun and a-zchuni
18802 Add a-widcha a-zchara for AI-395
18803 Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
18805 * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
18806 Add entries for a-wichun.o and a-zchuni.o
18807 Entries for a-widcha.o and a-zchara.o
18808 Add entry for a-chacon.o
18810 * a-ztenau.adb: Add with of Ada.Characters.Conversions
18812 * a-chacon.ads, a-chacon.adb: New files.
18814 * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
18815 categorization violations.
18817 * a-strmap.ads: Add pragma Pure_05 for AI-362
18818 * a-strmap.ads: Add note on implicit categorization for AI-362
18820 * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
18822 * par-prag.adb: Dummy entry for pragma Persistent_BSS
18823 Set Ada_Version_Explicit, for implementation of AI-362
18824 Add processing for pragma Pure_05 and Preelaborate_05
18825 Add entry for Assertion_Policy pragma
18827 * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
18828 when needed for proper processing of categorization stuff
18831 For several cases, make errors in preealborate units warnings,
18832 instead of errors, if GNAT_Mode is set. For AI-362.
18834 * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
18835 preelaborate unit is now warning if in GNAT mode
18837 * s-stoele.ads: Document AI-362 for pragma preelaborate
18839 2005-06-14 Doug Rupp <rupp@adacore.com>
18841 * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
18842 s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
18843 Default_Exception_Msg_Max_Length: new parameter.
18845 * a-except.ads: (Exception_Msg_Max_Length): Set to
18846 System.Parameters.Default_Exception_Msg_Max_Length
18847 Add pragma Preelaborate_05 for AI-362
18848 Add warnings off to allow categorization violations for AI-362
18850 2005-06-14 Vincent Celier <celier@adacore.com>
18852 * gnatsym.adb: Adapt to modification of package Symbols: procedure
18853 Process is now in package Processing.
18855 * symbols.ads, symbols.adb:
18856 (Processing): New package, containing procedure Process
18858 * symbols-vms-alpha.adb:
18859 Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
18861 * symbols-vms.adb, symbols-processing-vms-alpha.adb,
18862 symbols-processing-vms-ia64.adb: New files.
18864 2005-06-14 Pascal Obry <obry@adacore.com>
18866 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
18867 implementation. This new version generates the proper DllMain routine
18868 to initialize the SAL. The DllMain is generated in Ada and compiled
18869 before being added as option to the library build command.
18871 2005-06-14 Doug Rupp <rupp@adacore.com>
18872 Pascal Obry <obry@adacore.com>
18874 * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
18875 call to decc$translate_vms.
18876 (__gnat_locate_regular_file): Check if the path_val contains quotes. We
18877 need to remove those quotes before catenating the filename.
18878 (__gnat_locate_exec_on_path): improvements to the Win32 section:
18879 * avoid allocating the memory twice for better efficiency;
18880 * allocate 32K buffer for environment expansion as suggested by MSDN;
18881 * prepend ".;" to the path so that current directory is searched too.
18883 2005-06-14 Robert Dewar <dewar@adacore.com>
18885 * a-except.adb (Exception_Identity): return Null_Id for null occurrence
18886 instead of raising CE (AI-241)
18887 Add warnings off to allow categorization violations for AI-362
18889 2005-06-14 Robert Dewar <dewar@adacore.com>
18891 * ali-util.adb, gnatbind.adb: Remove references to
18892 Force_RM_Elaboration_Order.
18894 * switch-b.adb: Remove recognition of -f switch
18896 2005-06-14 Pascal Obry <obry@adacore.com>
18898 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
18899 implementation which is slightly more efficient.
18901 2005-06-14 Gary Dismukes <dismukes@adacore.com>
18902 Javier Miranda <miranda@adacore.com>
18903 Ed Schonberg <schonberg@adacore.com>
18904 Hristian Kirtchev <kirtchev@adacore.com>
18906 * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
18907 allocator's designated type is a class-wide type, and compiling for
18908 Ada 2005, emit a run-time check that the accessibility level of the
18909 type given in the allocator's expression is not deeper than the level
18910 of the allocator's access type.
18912 (Tagged_Membership): Modified to gives support to abstract interface
18915 * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
18917 (Descendant_Tag): New predefined function
18918 (Is_Descendant_At_Same_Level): New predefined function
18919 (Get_Access_Level): New private function
18920 (Set_Access_Level): New private procedure
18921 (IW_Membership): New function. Given the tag of an object and the tag
18922 associated with an interface, evaluate if the object implements the
18924 (Register_Interface_Tag): New procedure used to initialize the table of
18925 interfaces used by the IW_Membership function.
18926 (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
18927 of the dispatch table.
18928 (Inherit_TSD): Modified to copy the table of ancestor tags plus the
18929 table of interfaces of the parent.
18930 (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
18931 (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
18932 (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
18933 and raise Tag_Error if the passed tag equalis No_Tag, to conform with
18934 Ada 2005 semantics for the new predefined function.
18936 * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
18937 call to Descendant_Tag rather than Internal_Tag.
18938 (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
18939 the accessibility level of the attribute's Item parameter is not deeper
18940 than the level of the attribute's prefix type. Tag_Error is raised if
18941 the check fails. The check is only emitted for Ada_05.
18942 (Find_Stream_Subprogram): If a TSS exists on the type itself for the
18943 requested stream attribute, use it.
18944 (Expand_N_Attribute_Reference): If the designated type is an interface
18945 then rewrite the referenced object as a conversion to force the
18946 displacement of the pointer to the secondary dispatch table.
18947 (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
18948 is a dereference of an object with a constrained partial view.
18950 * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
18951 type is a class-wide type, emit a run-time check that the accessibility
18952 level of the returned object is not deeper than the level of the
18953 function's master (only when compiling for Ada 2005).
18955 * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
18956 Action_Nb_Arg): Add entries for new Get_Access_Level and
18957 Set_Access_Level routines in these tables.
18958 (Make_DT): Generate a call to set the accessibility level of the
18959 tagged type in its TSD.
18960 (Make_DT): Code cleanup. The functionality of generating all the
18961 secondary dispatch tables has been moved to freeze_record_type.
18962 (Make_Abstract_Interface_DT): Minor code cleanup.
18963 (Set_All_DT_Position): Code cleanup. As part of the code cleanup
18964 this subprogram implements a new algorithm that provides the
18965 same functionality and it is more clear in case of primitives
18966 associated with abstract interfaces.
18967 (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
18968 clean up, the functionality of this subprogram is now provided
18969 by Set_All_DT_Position.
18970 (Write_DT): New subprogram: a debugging procedure designed to be called
18971 within gdb to display the dispatch tables associated with a tagged
18973 (Collect_All_Interfaces): New subprogram that collects the whole list
18974 of interfaces that are directly or indirectly implemented by a tagged
18976 (Default_Prim_Op_Position): New subprogram that returns the fixed
18977 position in the dispatch table of the default primitive operations.
18978 (Expand_Interface_Actuals): New subprogram to generate code that
18979 displaces all the actuals corresponding to class-wide interfaces to
18980 reference the interface tag of the actual object.
18981 (Expand_Interface_Conversion): New subprogram. Reference the base of
18982 the object to give access to the interface tag associated with the
18983 secondary dispatch table.
18984 (Expand_Interface_Thunk): New subprogram that generates the code of the
18985 thunk. This is required for compatibility with the C+ ABI.
18986 (Make_Abstract_Interface_DT): New subprogram that generate the
18987 declarations for the secondary dispatch tables associated with an
18988 abstract interface.
18989 (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
18990 attribute for each primitive operation covering interface subprograms
18991 (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
18992 These subprograms were upgraded to give support to abstract interfaces
18994 * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
18995 RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
18996 RE_Set_Access_Level.
18997 (RE_Unit_Table): Add entries for new Ada.Tags operations.
18998 Add support to call the followig new run-time subprograms:
18999 IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
19001 * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
19002 match its full declaration when both have an access definition with
19003 statically matching designated subtypes.
19004 (Analyze_Component_Declaration): Delete commented out code that was
19005 incorrectly setting the scope of an anonymous access component's type.
19006 (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
19007 an access discriminant when the containing type is nonlimited.
19008 (Make_Incomplete_Type_Declaration): Create an incomplete type
19009 declaration for a record type that includes self-referential access
19011 (Check_Anonymous_Access_Types): Before full analysis of a record type
19012 declaration, create anonymous access types for each self-referential
19014 (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
19015 an access component in this context is a Local_Anonymous_Access, for
19016 proper accessibility checks.
19017 (Access_Definition): Set properly the scope of the anonymous access type
19018 created for a stand-alone access object.
19019 (Find_Type_Of_Object): An object declaration may be given with an access
19021 (Complete_Subprograms_Derivation): New subprogram used to complete
19022 type derivation of private tagged types implementing interfaces.
19023 In this case some interface primitives may have been overriden
19024 with the partial-view and, instead of re-calculating them, they
19025 are included in the list of primitive operations of the full-view.
19026 (Build_Derived_Record_Type): Modified to give support to private
19027 types implemening interfaces.
19028 (Access_Definition): Reject ALL on anonymous access types.
19029 (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
19030 type derivation to occur at a deeper accessibility level than the
19032 For the case of derivation within a generic body however, disallow the
19033 derivation if the derived type has an ancestor that is a formal type
19034 declared in the formal part of an enclosing generic.
19035 (Analyze_Object_Declaration): For protected objects, remove the check
19036 that they cannot contain interrupt handlers if not declared at library
19038 (Add_Interface_Tag_Components): New subprogram to add the tag components
19039 corresponding to all the abstract interface types implemented by a
19040 record type or a derived record type.
19041 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
19042 Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
19043 Process_Full_View, Record_Type_Declaration): Modified to give
19044 support to abstract interface types
19045 (Collect_Interfaces): New subprogram that collects the list of
19046 interfaces that are not already implemented by the ancestors
19047 (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
19048 when partial view has no discriminants and full view has defaults.
19049 (Constrain_Access): Reject a constraint on a general access type
19050 if the discriminants of the designated type have defaults.
19051 (Access_Subprogram_Declaration): Associate the Itype node with the inner
19052 full-type declaration or subprogram spec. This is required to handle
19053 nested anonymous declarations.
19054 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
19055 Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
19056 Process_Full_View, Record_Type_Declaration): Modified to give
19057 support to abstract interface types
19058 (Derive_Subprograms): Addition of a new formal to indicate if
19059 we are in the case of an abstact-interface derivation
19060 (Find_Type_Of_Subtype_Indic): Moved from the body of the package
19061 to the specification because it is requied to analyze all the
19062 identifiers found in a list of interfaces
19064 * debug.adb: Complete documentation of flag "-gnatdZ"
19066 * exp_ch3.adb: Implement config version of persistent_bss pragma
19067 (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
19068 testing for TSS presence to properly enforce visibility rules.
19069 (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
19070 Make_Abstract_Interfaces_DT to generate the secondary tables
19071 associated with abstract interfaces.
19072 (Build_Init_Procedure): Modified to initialize all the tags
19074 (Component_Needs_Simple_Initialization): Similar to other tags,
19075 interface tags do not need initialization.
19076 (Freeze_Record_Type): Modified to give support to abstract interface
19078 (Expand_N_Object_Declaration): Do not generate an initialization for
19079 a scalar temporary marked as internal.
19081 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
19082 in-out parameter that is a component in an initialization procedure,
19083 whose constraint might depend on discriminants, and that may be
19084 misaligned because of packing or representation clauses.
19085 (Is_Legal_Copy): New predicate to determine whether a possibly
19086 misaligned in-out actual can actually be passed by copy/return. This
19087 is an error in case the type is by_reference, and a warning if this is
19088 the consequence of a DEC import pragma on the subprogram.
19089 (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
19091 (Expand_Inlined_Call): Mark temporary generated for the return value as
19092 internal, so that no useless scalar normalization is generated for it.
19093 (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
19094 null procedure can always be inlined.
19095 (Expand_N_Subprogram_Declaration): If this is the declaration of a null
19096 procedure, generate an explicit empty body for it.
19098 * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
19099 Given a type implementing an interface, returns the corresponding
19100 access_disp_table value.
19101 (Find_Interface_Tag): New subprogram. Given a type implementing an
19102 interface, returns the record component containing the tag of the
19104 (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
19105 previous ones that return the corresponding tag and access_disp_table
19107 (Is_Predefined_Dispatching_Operation): Determines if a subprogram
19108 is a predefined primitive operation.
19109 (Expand_Subtype_From_Expr): If the expression is a selected component
19110 within an initialization procedure, compute its actual subtype, because
19111 the component may depend on the discriminants of the enclosing record.
19113 * i-cpp.ads, i-cpp.adb:
19114 This package has been left available for compatibility with previous
19115 versions of the frontend. As part of the new layout this is now a
19116 dummy package that uses declarations available at a-tags.ads
19118 * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
19119 "constant access" and "aliased [constant] access" when not compiling
19121 Suppress Ada 2005 keyword warning if -gnatwY used
19122 (P_Identifier_Declarations): Add support for object declarations with
19123 access definitions.
19124 (Private_Extension_Declaration): Complete the documentation
19125 (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
19126 attribute in case of private extension declaration
19127 (P_Type_Declaration): Mark as "abstract" the type declarations
19128 corresponding with protected, synchronized and task interfaces
19129 (P_Declarative_Items): "not" and "overriding" are overriding indicators
19130 for a subprogram or instance declaration.
19132 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
19133 instantiation that is a dispatching operation has controlling access
19134 parameters that are null excluding.
19135 Save and restore Ada_Version_Explicit, for implementation of AI-362
19136 (Validate_Derived_Type_Instance): Add check for abstract interface
19138 (Analyze_Formal_Package): Establish Instantiation source for the copy of
19139 the generic that is created to represent the formal package.
19140 (Analyze_Package_Instantiation): Instantiate body immediately if the
19141 package is a predefined unit that contains inlined subprograms, and
19142 we are compiling for a Configurable_Run_Time.
19143 (Instantiate_Formal_Subprogram): Indicate that null default subprogram
19144 If the program has a null default, generate an empty body for it.
19146 * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
19147 error message condition, null procedures are correctly detected now.
19148 (New_Overloaded_Entity): Bypass trivial overriding indicator check
19149 for subprograms in the context of protected types. Instead, the
19150 indicator is examined in Sem_Ch9 while analysing the subprogram
19152 (Check_Overriding_Indicator): Check consistency of overriding indicator
19153 on subprogram stubs as well.
19154 (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
19156 (Analize_Subprogram_Specification): When analyzing a subprogram in which
19157 the type of the first formal is a concurrent type, replace this type
19158 by the corresponding record type.
19159 (Analyze_Subprogram_Body): Undo the previous work.
19160 (Analyze_Procedure_Call): If the call has the form Object.Op, the
19161 analysis of the prefix ends up analyzing the call itself, after which
19163 (Has_Interface_Formals): New subprogram subsidiary to analyze
19164 subprogram_specification that returns true if some non
19165 class-wide interface subprogram is found
19166 (New_Overloaded_Entity): Modified to give support to abstract
19168 (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
19169 access to subprograms must be recursive.
19170 (Is_Unchecked_Conversion): Improve the test that recognizes
19171 instantiations of Unchecked_Conversion, and allows them in bodies that
19172 are to be inlined by the front-end. When the body comes from an
19173 instantiation, a reference to Unchecked_Conversion will be an
19174 Expanded_Name, even though the body has not been analyzed yet.
19175 Replace Is_Overriding and Not_Overriding in subprogram_indication with
19176 Must_Override and Must_Not_Override, to better express intent of AI.
19177 (Analyze_Subprogram_Body): If an overriding indicator is given, check
19178 that it is consistent with the overrinding status of the subprogram
19180 (Analyze_Subprogram_Declaration): Indicate that a null procedure is
19182 If the subprogram is a null procedure, indicate that it does not need
19185 * sem_disp.adb (Check_Controlling_Type): Give support to entities
19186 available through limited-with clauses.
19187 (Check_Dispatching_Operation): A stub acts like a body, and therefore is
19188 allowed as the last primitive of a tagged type if it has no previous
19190 (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
19191 to give support to abstract interface types
19193 * sem_res.adb (Valid_Conversion): Perform an accessibility level check
19194 in the case where the target type is an anonymous access type of an
19195 object or component (that is, when Is_Local_Anonymous_Access is true).
19196 Prevent the special checks for conversions of access discriminants in
19197 the case where the discriminant belongs to a nonlimited type, since
19198 such discriminants have their accessibility level defined in the same
19199 way as a normal component of an anonymous access type.
19200 (Resolve_Allocator): When an allocator's designated type is a class-wide
19201 type, check that the accessibility level of type given in the
19202 allocator's expression or subtype indication is not statically deeper
19203 than the level of the allocator's access type.
19204 (Check_Discriminant_Use): Diagnose discriminant given by an expanded
19205 name in a discriminant constraint of a record component.
19206 (Resolve_Explicit_Dereference): Do not check whether the type is
19207 incomplete when the dereference is a use of an access discriminant in
19208 an initialization procedure.
19209 (Resolve_Type_Conversion): Handle conversions to abstract interface
19211 (Valid_Tagged_Conversion): The conversion of a tagged type to an
19212 abstract interface type is always valid.
19213 (Valid_Conversion): Modified to give support to abstract interface types
19214 (Resolve_Actuals): Enable full error reporting on view conversions
19215 between unrelated by_reference array types.
19216 The rule for view conversions of arrays with aliased components is
19217 weakened in Ada 2005.
19218 Call to obsolescent subprogram is now considered to be a violation of
19219 pragma Restrictions (No_Obsolescent_Features).
19220 (Check_Direct_Boolean_Operator): If the boolean operation has been
19221 constant-folded, there is nothing to check.
19222 (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
19223 check on possible violation of restriction No_Direct_Boolean_Operators
19224 until after expansion of operands, to prevent spurious errors when
19225 operation is constant-folded.
19227 * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
19228 Has_Compatible_Type): Modified to give support to abstract interface
19230 (Interface_Present_In_Ancestor): New function to theck if some ancestor
19231 of a given type implements a given interface
19233 * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
19234 prefix is a parameterless function that returns an access_to_procedure.
19235 (Transform_Object_Operation): Handle properly function calls of the
19236 form Obj.Op (X), which prior to analysis appear as indexed components.
19237 (Analyze_One_Call): Complete the error notification to help new Ada
19239 (Analyze_Allocator): For an allocator without an initial value, where
19240 the designated type has a constrained partial view, a discriminant
19241 constraint is illegal.
19243 2005-06-14 Robert Dewar <dewar@adacore.com>
19245 * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
19246 do with treatment of Set_Col when positioned at end of line character.
19248 2005-06-14 Robert Dewar <dewar@adacore.com>
19250 * atree.adb: (Elist*): Protect against uninitialized field
19252 2005-06-14 Ed Schonberg <schonberg@adacore.com>
19254 * checks.adb (Install_Null_Excluding_Check): Do not generate checks
19255 for an attribute reference that returns an access type.
19256 (Apply_Discriminant_Check): No need for check if (designated) type has
19257 constrained partial view.
19259 (Apply_Float_Conversion_Check): Generate a short-circuit expression for
19260 both bound checks, rather than a conjunction.
19261 (Insert_Valid_Check): If the expression is an actual that is an indexed
19262 component of a bit-packed array, force expansion of the packed element
19263 reference, because it is specifically inhibited elsewhere.
19265 2005-06-14 Vincent Celier <celier@adacore.com>
19267 * clean.adb (Clean_Project): Correctly delete executable specified as
19268 absolute path names.
19270 * make.adb (Gnatmake): Allow relative executable path names with
19271 directory information even when project files are used.
19272 (Change_To_Object_Directory): Fail gracefully when unable to change
19273 current working directory to object directory of a project.
19274 (Gnatmake): Remove exception handler that could no longer be exercized
19275 (Compile_Sources.Compile): Use deep copies of arguments, as some of them
19276 may be deallocated by Normalize_Arguments.
19277 (Collect_Arguments): Eliminate empty arguments
19279 * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
19280 and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
19281 (Check_Project): Return False when Project is No_Project. Return True
19282 when All_Projects is True.
19283 (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
19284 All_Projects to True.
19287 2005-06-14 Ed Schonberg <schonberg@adacore.com>
19288 Javier Miranda <miranda@adacore.com>
19289 Thomas Quinot <quinot@adacore.com>
19290 Robert Dewar <dewar@adacore.com>
19291 Hristian Kirtchev <kirtchev@adacore.com>
19292 Gary Dismukes <dismukes@adacore.com>
19294 * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
19295 anonymous access types, to indicate that the accessibility level of
19296 the type is determined by that of the enclosing declaration.
19297 (Has_Persistent_BSS): New flag
19298 (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
19299 of this attribute with functions.
19300 (Is_Primitive_Wrapper): Remove the barrier.
19301 (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
19302 Has_Specified_Stream_Read, Has_Specified_Stream_Write):
19304 (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
19305 Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
19307 (Is_Pure_Unit_Access_Type): New flag
19308 (Abstract_Interfaces): Complete the assertion to cover all usages.
19309 (Set_Is_Interface): Complete the assertion to cover all usages.
19310 (Is_Primitive_Wrapper): New attribute.
19311 (Is_Obsolescent): Now applies to all entities (though it is only set
19312 for subprograms currently)
19313 New flag: Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
19314 which solves various problems concerning access subtypes.
19315 (Has_Persistent_BSS): New flag
19316 (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
19317 Remove these subprograms because this attribute is currently
19320 Has_Specified_Stream_Input (Flag190)
19321 Has_Specified_Stream_Output (Flag191)
19322 Has_Specified_Stream_Read (Flag192)
19323 Has_Specified_Stream_Write (Flag193)
19324 Present in all type and subtype entities. Set for a given view if the
19325 corresponding stream-oriented attribute has been defined by an
19326 attribute definition clause. When such a clause occurs, a TSS is set
19327 on the underlying full view; the flags are used to track visibility of
19328 the attribute definition clause for partial or incomplete views.
19329 (Is_Pure_Unit_Access_Type): New flag
19330 Clarify use of Is_Internal.
19331 (Is_Primitive_Wrapper): New attribute present in primitive subprograms
19332 internally generated to wrap the invocation of tasks and protected
19333 types that implement interfaces.
19334 (Implementation_Base_Type): Documentation correction
19335 (Is_Obsolescent): Now applies to all entities (though it is only set
19336 for subprograms currently)
19337 New flag: Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
19338 which solves various problems concerning access subtypes.
19340 * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
19341 for examined parameters. Identify unequal parameter list lengths as
19342 non-conformant parameters.
19343 (Overriding_Possible): Do not check for "All" qualifier in declaration
19344 of controlling access parameter, following prescription of AI-404.
19345 (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
19346 that build the procedure body that wraps an entry invocation
19347 (Build_Corresponding_Record, Build_Protected_Sub_Specification,
19348 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
19349 Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
19350 give support to abstract interface types
19352 * freeze.adb (Freeze_Entity): Issue error message if
19353 Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
19354 type has no storage pool (Ada 2005) AI-366.
19355 Also modified to give support to abstract interface types
19356 (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
19357 Inline_Always pragma.
19359 * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
19360 now begin an entry declaration.
19361 (P_Entry_Or_Subprogram_With_Indicator): New procedure in
19362 P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
19363 a subprogram declaration preceded by an overriding indicator.
19364 (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
19365 declarations or subprogram declarations preceded by reserved words
19366 "not" or "overriding".
19367 (P_Entry_Declaration): Update comment. Parse and check overriding
19368 indicator, set semantic flags of entry declarations.
19369 (P_Task): New error message in case of private applied
19370 to a task type declaration.
19371 (P_Protected): New error message in case of private applied
19372 to a task type declaration.
19374 * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
19375 in which the full view of a type implementing an interface is a
19377 (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
19378 Declare_Inherited_Private_Subprograms): If an explicit operation
19379 overrides an operation that is inherited in the private part, mark the
19380 explicit one as overriding, to enable overriding indicator checks.
19381 (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
19382 full view to partial view, to simplify handling in back-end.
19384 * sprint.adb: Print interface lists where needed: derived types,
19385 protected types, task types.
19386 output "is null" for null procedures. Part of implementation of
19388 * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
19389 relaxation of rules for access types in pure, shared passive partitions.
19391 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
19392 first read discriminants into temporary objects, performing checks on
19393 the read values, then possibly performing discriminant checks on the
19394 actual (if it is constrained), and only finally reading the components
19395 into a constrained temporary object.
19396 (Build_Elementary_Input_Call): Adjust the specific circuitry for the
19397 case of reading discriminants of a mutable record type to recognize
19398 the new form of the code generated by
19399 Build_Mutable_Record_Read_Procedure.
19401 * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
19402 of a simple call to Make_TSS_Name.
19403 (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
19404 buffer, in order for Is_TSS to work correctly on local TSS names.
19406 * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
19407 Is_Local_Anonymous_Access to check legaliy of attributes in the
19408 context of access components and stand-alone access objects.
19409 (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
19410 treated as available for a limited private type if there is an
19411 attribute_definition_clause that applies to its full view, but not in
19412 other cases where the attribute is available for the full view
19413 (specifically, the sole fact that the full view is non-limited does not
19414 make the attribute available for the partial view).
19415 (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
19416 non-overloaded intrinsic subprogram.
19417 (Check_Stream_Attribute): Reject an attribute reference for an
19418 unavailable stream attribute even if the prefix is not a limited type
19419 (case of a 'Input attribute reference for an abstract, non-classwide
19421 (Stream_Attribute_Available): New function to determine whether a stream
19422 attribute is available at a place.
19423 (Check_Attribute): Use Stream_Attribute_Available instead of just
19424 testing for TSS presence on the implementation base type.
19425 (Analyze_Attribute): Modified to give support to task interfaces.
19426 (Analyze_Access_Attribute): Add error check for use of an Access (or
19427 Unrestricted_Access) attribute with a subprogram marked as
19429 (Analyze_Attribute, case Attribute_Address): Add error check for use of
19430 an Address attribute with a subprogram marked as Inline_Always.
19431 Update Eval_Attribute to handle new value of Width from AI-395
19433 * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
19434 (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
19435 Factor common code across the stream-oriented attribute circcuits into
19436 a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
19437 processing is functionally identical to the previous duplicated one,
19438 except that an expression that denotes an abstract subprogram will now
19439 be rejected, as mandated by AI-195 item 5.
19441 * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
19442 Is_Local_Anonymous_Access to apply accessibility checks to access
19443 components and stand-alone access objects.
19444 (Has_Discriminant_Dependent_Constraint): Moved to spec for use
19446 (Is_Potentially_Persistent_Type): New function
19447 (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
19448 a heap-object whose type has a constrained partial view, the object is
19449 unconstrained and the component may depend on a discriminant, making its
19452 * sinfo.ads, sinfo.adb
19453 (Must_Not_Override): Flag applicable to N_Entry_Declaration.
19454 (Must_Override): Flag applicable to N_Entry_Declaration.
19455 Indicate that interface_list can appear in single task and single
19456 protected declarations.
19457 Replace Is_Overriding and Not_Overriding with Must_Override and
19458 Must_Not_Override, to better express intent of AI.
19459 Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
19460 of an overriding indicator in a subprogram or instance.
19461 Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
19462 Add the overriding indicator [[not] overriding] construct to the
19463 following grammar productions:
19465 GENERIC_INSTANTIATION
19466 SUBPROGRAM_SPECIFICATION
19468 * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
19469 can start with an overriding indicator.
19471 * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
19472 flags accordingly on subrogram specifications or instances.
19475 (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
19476 overriding_indicator, if present, is consistent with status of spec.
19477 Improve error message for null-excluding checks on controlling access
19479 (Check_In_Previous_With_Clause): Protect the frontend against
19480 previously reported critical errors in the context clauses.
19481 Save and restore Ada_Version_Explicit, for implementation of AI-362
19482 (Analyze_Subprogram_Renaming): If the new entity is a dispatching
19483 operation verify that controlling formals of the renamed entity that
19484 are access parameters are explicitly non-null.
19485 (Find_Expanded_Name): Improve error message when prefix is an illegal
19486 reference to a private child unit.
19488 * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
19489 s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
19490 Rewrite to correspond to new wide character names in AI-395
19492 * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
19493 default procedures.
19495 2005-06-14 Ed Schonberg <schonberg@adacore.com>
19496 Robert Dewar <dewar@adacore.com>
19498 * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
19499 code, not on the bodies of predefined operations, to cut down on
19502 2005-06-14 Ed Schonberg <schonberg@adacore.com>
19504 * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
19505 be expanded in place. The size computation does not require a
19506 subtraction, which would raise an exception on a compiler built with
19507 assertions when the upper bound is Integer'first.
19508 (Flatten): For an array of composite components, take into account the
19509 size of the components to determine whether it is safe to expand the
19510 array into a purely positional representation.
19512 2005-06-14 Thomas Quinot <quinot@adacore.com>
19514 * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
19515 denoting a formal parameter into account.
19517 2005-06-14 Ed Schonberg <schonberg@adacore.com>
19519 * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
19520 the entry_call alternative of a conditional entry call, wrap the
19521 conditional entry call itself.
19523 2005-06-14 Nicolas Setton <setton@adacore.com>
19524 Ed Schonberg <schonberg@adacore.com>
19526 * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
19527 the "simple_choice" member in a variant record, in accordance with the
19528 description in the package spec: the information output for a constant
19529 should be "S number", not "SS number".
19530 (Get_Encoded_Name): Return at once if not generating code. Avoids name
19531 overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
19533 2005-06-14 Thomas Quinot <quinot@adacore.com>
19535 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
19536 RACW without any primitives, do not generate the if statement for
19537 dispatching by name in the PolyORB/DSA case, as it would be malformed
19538 (it would have an Elsif_Parts list that is not No_List, but with a
19541 2005-06-14 Robert Dewar <dewar@adacore.com>
19543 * exp_intr.adb, par-ch5.adb: Minor fix to error message text
19545 2005-06-14 Jose Ruiz <ruiz@adacore.com>
19547 * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
19548 can determine whether pragma Suppress_Exception_Locations is in effect.
19550 * utils2.c (build_call_raise): Do not pass the file name to the
19551 exception handler if pragma Suppress_Exception_Locations is in effect.
19552 (build_allocator): Add and process arg IGNORE_INIT_TYPE.
19554 2005-06-14 Emmanuel Briot <briot@adacore.com>
19556 * g-debpoo.adb (Deallocate, Dereference): Improve output.
19558 2005-06-14 Nicolas Roche <roche@adacore.com>
19560 * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
19562 (Next_Level): Fix minor bug in handling of ../dir case
19563 (Read): Add dir separator to Directory name so that "" is understood as
19566 2005-06-14 Pascal Obry <obry@adacore.com>
19568 * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
19569 releasing the items.
19571 2005-06-14 Vincent Celier <celier@adacore.com>
19572 Cyrille Comar <comar@adacore.com>
19574 * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
19575 with output file descriptor and with output file name.
19576 (Dup, Dup2): Now global procedures as they are used by two subprograms
19577 (Copy): Allocate the 200K buffer on the heap rather than on the stack.
19579 2005-06-14 Thomas Quinot <quinot@adacore.com>
19582 * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
19584 (Create_Selector): Bind listening socket used to create the signalling
19585 socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
19586 Set listen backlog to 1 to ensure that we detect socket theft by a
19587 failure of our own connect(2) call.
19588 (Check_Selector): Improve documentation of the selector mechanism.
19589 (Broadcast_Inet_Addr): New constant.
19591 2005-06-14 Gary Dismukes <dismukes@adacore.com>
19593 * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
19594 type which turns out to be an incomplete and incorrect fix.
19595 (Layout_Array_Type): Use Underlying_Type when checking whether the scope
19596 of the type is declared in a record (for determination of insertion
19598 (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
19599 a private type and ensure that the primary entity is used for the type
19600 of the newly created function's V formal by taking the Etype of the
19603 2005-06-14 Javier Miranda <miranda@adacore.com>
19604 Jose Ruiz <ruiz@adacore.com>
19605 Robert Dewar <dewar@adacore.com>
19606 Ed Schonberg <schonberg@adacore.com>
19608 * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
19609 that indicates if we are parsing a compilation unit found in a
19610 limited-with clause.
19611 It is use to avoid the circularity check.
19613 * par.ads, par.adb (Par): Addition of a new parameter to indicate if
19614 we are parsing a compilation unit found in a limited-with clause. This
19615 is use to avoid the circularity check.
19617 * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
19618 unit as a consequence of parsing a limited-with clause. This is used
19619 to avoid the circularity check.
19621 * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
19622 (Analyze_Context): Limited-with clauses are now allowed
19623 in more compilation units.
19624 (Analyze_Subunit_Context, Check_Parent): Protect the frontend
19625 againts previously reported critical errors in context clauses
19626 (Install_Limited_Withed_Unit): Code cleanup plus static detection
19627 of two further errors: renamed subprograms and renamed packages
19628 are not allowed in limited with clauses.
19629 (Install_Siblings): Do not install private_with_clauses on the package
19630 declaration for a non-private child unit.
19631 (Re_Install_Parents): When a parent of the subunit is reinstalled,
19632 reset visibility of child units properly.
19633 (Install_Withed_Unit): When a child unit appears in a with_clause of its
19634 parent, it is immediately visible.
19636 2005-06-14 Ed Schonberg <schonberg@adacore.com>
19637 Emmanuel Briot <briot@adacore.com>
19639 * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
19640 declared within an inlined body as referenced, to prevent spurious
19642 (Output_One_Ref): If an entity renames an array component, indicate in
19643 the ALI file that this aliases (renames) the array. Capture as well
19644 function renamings that rename predefined operations.
19645 Add information about generic parent for package and subprogram
19647 (Get_Type_Reference): For a subtype that is the renaming of an actual in
19648 an instantiation, use the first_subtype to ensure that we don't generate
19649 cross-reference information for internal types.
19650 For objects and parameters of a generic private type, retain the '*'
19651 indicator to distinguish such an entity from its type.
19653 * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
19654 to store information about instantiated entities.
19656 * ali.adb (Scan_ALI): Add support for parsing the reference to the
19659 * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
19660 (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
19663 2005-06-10 Doug Rupp <rupp@adacore.com>
19664 Arnaud Charlet <charlet@adacore.com>
19665 Olivier Hainque <hainque@adacore.com>
19666 Jose Ruiz <ruiz@adacore.com>
19668 * Make-lang.in: Add initialize.o when needed.
19669 Remove obsolete references to RT_FLAGS.
19670 Add missing dependencies for sdefault.o
19672 * initialize.c: New file.
19674 * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
19675 [VMS] cond_signal_table: Fix problem in declaration.
19676 [VMS] __gnat_error_handler: rewrite.
19677 Move all __gnat_initialize() routines to initialize.c
19678 Specialize the former "hpux" section to "hppa hpux", as this is what the
19679 section really is here for and we now have other hpux ports that need
19680 different contents.
19681 (__gnat_adjust_context_for_raise) i386-linux: First version of this
19682 function for this target. Adjust PC by one in the machine context. This
19683 adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
19684 it is more reliable to do that in the signal handler itself.
19685 (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
19686 flags, so that the handler is passed the context structure to adjust
19687 prior to the raise.
19688 (__gnat_error_handler) i386-linux: Adjust the signature to match what a
19689 SA_SIGINFO sigaction should look like. Call
19690 __gnat_adjust_context_for_raise before actually raising. Cleanup unused
19691 Machine_State_Operations stuff.
19692 Add conditional code so that the x86_64 is also supported.
19694 2005-06-14 Pascal Obry <obry@adacore.com>
19696 * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
19699 2005-06-14 Robert Dewar <dewar@adacore.com>
19701 * opt.ads, opt.adb: New flags for persistent_bss mode
19702 Add Ada_Version_Explicit, for implementation of AI-362
19703 Add Assertions_Enabled_Config and associated handling
19704 Needed since setting can be changed with Assertion_Policy pragma
19705 Add new flag Warn_On_Ada_2005_Compatibility
19707 * switch-c.adb: Recognize -gnatwy/Y
19708 Set Ada_Version_Explicit, for implementation of AI-362
19709 The -gnatg switch now includes -gnatyu
19711 * usage.adb: Add -gnatwy/Y
19712 Remove wrong asterisk on -gnatwX line
19713 Add line for -gnatyu switch
19715 2005-06-14 Vincent Celier <celier@adacore.com>
19717 * osint.adb (Add_Default_Search_Dirs): Put source and object
19718 directories of project files before directories coming from
19719 ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
19721 2005-06-14 Robert Dewar <dewar@adacore.com>
19724 * par-ch2.adb (Scan_Pragma_Argument): New procedure
19725 (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
19727 2005-06-14 Vincent Celier <celier@adacore.com>
19729 * prep.adb (Preprocess): Ignore error when scanning the first token of
19732 2005-06-14 Vincent Celier <celier@adacore.com>
19734 * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
19735 (Check_Stand_Alone_Library): If the specified reference symbol file does
19736 not exist, only issue a warning when the symbol policy is not
19737 Controlled. And, when symbol policy is Compliant, set the symbol
19738 policy to Autonomous.
19740 2005-06-14 Vincent Celier <celier@adacore.com>
19742 * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
19743 when the project file in a with clause is not the last one, that is the
19744 project file name is followed by a comma.
19745 * prj-pp.adb: (First_With_In_List): New Boolean global variable
19746 (Print): Issue list of project files separated by commas in with clauses
19747 according to the values returned by Is_Not_Last_In_List.
19748 * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
19749 (Set_Is_Not_Last_In_List): New procedure
19751 2005-06-14 Eric Botcazou <ebotcazou@adacore.com>
19753 * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
19755 2005-06-14 Robert Dewar <dewar@adacore.com>
19757 * scng.adb: Add call to new Check_EOF routine
19758 (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
19759 Add some comments regarding wide character handling
19761 * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
19763 * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
19765 * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
19766 characters are now considered graphic characters and hence yield false
19769 * nmake.adt: Modify header so that xnmake does not generate output
19770 files with multiple blank lines.
19772 * treeprs.adt: Remove a blank line so that output from xtreeprs does
19773 not have an extra blank line
19775 2005-06-14 Gary Dismukes <dismukes@adacore.com>
19777 * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
19778 expression when the component type is an anonymous access type to
19779 ensure that appropriate accessibility checks are done.
19781 * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
19782 expression of an assignment when the target object is of an anonymous
19783 access type. This ensures that required accessibility checks are done.
19784 (One_Bound): Move the check for type Universal_Integer to
19786 (Process_Bounds): Check whether the type of the preanalyzed range is
19787 Universal_Integer, and in that case set Typ to Integer_Type prior
19788 to setting the type of the original range and the calls to One_Bound.
19790 2005-06-14 Ed Schonberg <schonberg@adacore.com>
19792 * sem_case.adb (Expand_Others_Choice): Improve warning.
19794 2005-06-14 Ed Schonberg <schonberg@adacore.com>
19796 * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
19797 constraint of full view if present, when other type is discriminated.
19798 (Eval_Relational_Op): Recognize tests of pointer values against Null,
19799 when the pointer is known to be non-null, and emit appropriate warning.
19801 2005-06-14 Robert Dewar <dewar@adacore.com>
19802 Ed Schonberg <schonberg@adacore.com>
19805 * sem_prag.adb: Implement pragma Persistent_BSS
19806 Remove obsolete pragma Persistent_Data, Persistent_Object
19807 Set Ada_Version_Explicit, for implementation of AI-362
19808 Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
19809 Add processing for pragma Pure_05 and Preelaborate_05
19810 Add processing for Assertion_Policy pragma
19811 Add pragma identifiers for Assert
19812 (Analyze_Pragma, case Assert): Check number of arguments
19813 (Process_Inline): Additional guard against an illegal program, where the
19814 argument of the pragma is undefined, and warnings on redundant
19815 constructs are enabled.
19816 (Analyze_Pragma, case Obsolescent): Allow an optional second argument
19817 Ada_05 to this pragma, specifying that the pragma is only active in
19819 (Check_Arg_Order): New procedure
19820 Add appropriate calls to this procedure throughout
19821 Also throughout, check entity name before doing any other checks
19823 * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
19824 Remove obsolete pragma Persistent_Data, Persistent_Object
19825 Add entries for pragma Pure_05 and Preelaborate_05
19826 Add entries for Assertion_Policy pragma and associated names
19827 Add some names for pragma argument processing
19829 * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
19831 2005-06-14 Ed Schonberg <schonberg@adacore.com>
19833 * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
19834 appears within a negation (either from source or as a rewriting of
19835 inequality) adjust text of warning accordingly.
19837 2005-06-14 Thomas Quinot <quinot@adacore.com>
19839 * s-strxdr.adb: Follow AI95-00132
19841 2005-06-14 Arnaud Charlet <charlet@adacore.com>
19843 * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
19845 2005-06-14 Arnaud Charlet <charlet@adacore.com>
19846 Jose Ruiz <ruiz@adacore.com>
19848 * s-tposen.adb, s-tpobop.adb
19849 (Exceptional_Complete_Rendezvous): Save the occurrence and not only
19851 (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
19852 there is no violation of the Max_Entry_Queue_Length restriction (if it
19853 has been set); Program_Error is raised otherwise.
19854 (Requeue_Call): Before requeuing the task on the target entry queue we
19855 check that there is no violation of the Max_Entry_Queue_Length
19856 restriction (if it has been set); Program_Error is raised otherwise.
19858 2005-06-14 Robert Dewar <dewar@adacore.com>
19860 * styleg.adb: Fix several remaining problems in -gnatyu switch
19861 Blank line count not reset at start
19862 Scanning outside source buffer in some cases
19863 Confusing message for blanks at end of file
19864 Non-empty blank lines not recognized
19866 * nmake.adt: Modify header so that xnmake does not generate output
19867 files with multiple blank lines.
19869 * treeprs.adt: Remove a blank line so that output from xtreeprs does
19870 not have an extra blank line
19872 2005-06-14 Sergey Rybin <rybin@adacore.com>
19874 * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
19876 2005-06-14 Doug Rupp <rupp@adacore.com>
19877 Vincent Celier <celier@adacore.com>
19879 * vms_conv.ads, vms_conv.adb: Remove "Library" command.
19882 * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
19883 Remove "Library" command.
19884 Change keyword for style check -gnatyd from NOCRLF to
19886 Remove useless second style check keyword NONE
19887 Remove help documentation for inexistent style check keyword
19889 Add help documentation for style check keywords DOS_LINE_ENDINGS,
19890 UNNECESSARY_BLANK_LINES and XTRA_PARENS
19891 Add UNNECESSARY_BLANK_LINES for -gnatyu
19892 Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
19894 * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
19896 2005-06-14 Vincent Celier <celier@adacore.com>
19898 * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
19899 gprmake was invoked with -d.
19900 (Compile_Sources): If -d was used, output the "completed ..." message
19901 for each compilation.
19902 (Scan_Arg): Recognize new switch -d
19903 When -c and at least one main is specified, set
19904 Unique_Compile to True to guarantee that no other sources will be
19907 2005-06-14 Matthew Heaney <heaney@adacore.com>
19909 * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
19910 * a-swuwha.ads, a-swuwha.adb: New files
19912 * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
19913 * a-szuzha.ads, a-szuzha.adb: New files.
19915 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
19916 a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
19917 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
19918 a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
19919 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
19920 a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
19921 a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
19922 a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
19923 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
19924 a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
19927 2005-06-10 Eric Botcazou <ebotcazou@adacore.com>
19928 Olivier Hainque <hainque@adacore.com>
19929 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
19930 Pascal Obry <obry@adacore.com>
19932 * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
19934 * trans.c (call_to_gnu): Issue a warning for users of Starlet when
19935 making a temporary around a procedure call because of non-addressable
19937 (process_freeze_entity): If entity is a private type, capture size
19938 information that may have been computed for the full view.
19939 (tree_transform, case N_Allocator): If have initializing expression,
19940 check type for Has_Constrained_Partial_View and pass that to
19942 (tree_transform, case N_Return_Statement): Pass extra arg to
19945 * decl.c (annotate_value): Remove early return if -gnatR is not
19947 (gnat_to_gnu_field): Don't make a packable type for a component clause
19948 if the position is byte aligned, the field is aliased, and the clause
19949 size isn't a multiple of the packable alignment. It serves no useful
19950 purpose packing-wise and would be rejected later on.
19951 (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
19954 (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
19955 context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
19957 (create_concat_name): Idem.
19959 2005-06-10 Robert Dewar <dewar@adacore.com>
19960 Eric Botcazou <ebotcazou@adacore.com>
19961 Ben Brosgol <brosgol@adacore.com>
19962 Cyrille Comar <comar@adacore.com>
19963 Sergey Rybin <rybin@adacore.com>
19964 Pascal Obry <obry@adacore.com>
19966 * gnat_rm.texi: Add documentation for pragma Persistent_BSS
19967 Document second argument (Ada_05) of pragma Obsolescent
19968 Add note that call to subprogram marked with pragma Obsolescent
19969 is now considered to be a violation of program Restrictions
19970 (No_Obsolescent_Features).
19971 (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
19972 that only machine-dependent attributes are supported.
19975 Commented out menu lines and empty section for gnatclean examples
19977 Fix some over long lines
19978 Clarify and enhance documentation of ADA_PROJECT_PATH.
19979 Rework section 2.11.2(3) about linking with a non-GNU compiler.
19980 Mention new switch -fcallgraph-info.
19981 Mention new switch -fstack-usage.
19982 For gnatpp, replace '-notab' with '-N' and add this option to Index
19983 Corrected VMS example.
19984 VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
19986 Add documentation for -gnatyu switch (unnecessary blank lines)
19987 Document new switch -U for GNAT PRETTY and GNAT METRIC
19988 Add note about Stdcall being handled as C convention on non Windows OS.
19989 Remove some junk typo in description of gnatbind -S switch
19990 Remove reference to Extensions_Allowed pragma
19991 Document the new order of the directories to be searched (source and
19992 object directories of project files before directories in ADA_*_PATH
19993 environment variables.
19995 * g-trasym.ads: Document that IRIX is supported
19997 2005-06-10 Arnaud Charlet <charlet@adacore.com>
19999 * Makefile.in: Add initialize.o when needed.
20000 Adapt to new VMS package body Symbols and subunits
20001 No specialized version of a-sytaco is needed for VxWorks.
20003 * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
20004 * a-zchara.ads, a-widcha.ads: New files.
20006 * system-hpux-ia64.ads: New file.
20008 * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
20009 is imported from the VxWorks kernel.
20011 2005-06-14 Robert Dewar <dewar@adacore.com>
20013 * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
20014 fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
20015 a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
20016 s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
20017 a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
20018 g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
20019 i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
20020 namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
20021 sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
20022 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
20023 s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
20024 xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
20026 2005-06-14 Thomas Quinot <quinot@adacore.com>
20028 * xeinfo.adb: Fix typo in comment
20030 2005-06-14 Javier Miranda <miranda@adacore.com>
20032 * repinfo.ads: Fix typo in comment
20034 2005-06-14 Gary Dismukes <dismukes@adacore.com>
20036 * s-finimp.adb (Parent_Tag): Delete this imported function (function
20037 Parent_Tag is now in the visible part of Ada.Tags).
20038 (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
20039 using imported function.
20041 2005-06-14 Bernard Banner <banner@adacore.com>
20043 * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
20044 also apply for handling support for VxSim 653.
20046 2005-06-14 Eric Botcazou <ebotcazou@adacore.com>
20048 * xsnames.adb: Add automatic generation of snames.h.
20050 2005-06-14 Thomas Quinot <quinot@adacore.com>
20052 * gen-soccon.c: Add IP_MULTICAST_IF constant
20053 Minor reformatting and adjustments to prevent warnings.
20055 2005-06-14 Pascal Obry <obry@adacore.com>
20057 * seh_init.c: Do not include <sys/stat.h>. This is not needed.
20059 2005-06-03 Andrew Pinski <pinskia@physics.uc.edu>
20061 * trans.c (gnat_gimplify_expr): Call
20062 recompute_tree_invarant_for_addr_expr when we change
20063 the operand of the ADDR_EXPR.
20065 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20067 * misc.c: Don't include errors.h.
20069 2005-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20071 * raise.c (db): Add ATTRIBUTE_PRINTF_2.
20073 2005-05-29 Kazu Hirata <kazu@cs.umass.edu>
20075 * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
20077 * gnat_rm.texi, gnat_ugn.texi: Fix typos.
20079 2005-05-16 Nathanael Nerode <neroden@gcc.gnu.org>
20082 * Makefile.in: Make TGT_LIB behave correctly.
20084 2005-04-23 DJ Delorie <dj@redhat.com>
20086 * misc.c: Adjust warning() callers.
20088 2005-04-16 Laurent Guerby <laurent@guerby.net>
20091 * a-nudira.adb (Value): Check for valid string.
20092 * a-nuflra.adb (Value): Likewise.
20094 2005-04-11 Richard Sandiford <rsandifo@redhat.com>
20096 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
20098 2005-04-10 Kazu Hirata <kazu@cs.umass.edu>
20100 * adaint.c, init.c, tracebak.c: Fix comment typos.
20101 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
20103 2005-04-07 Laurent Guerby <laurent@guerby.net>
20104 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20106 * Makefile.in: Add make ifeq define for hppa linux tasking support.
20107 * system-hpux.ads: Define Signed_Zeros to be True.
20108 * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
20110 2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
20112 * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
20113 raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
20116 2005-03-30 Tom Tromey <tromey@redhat.com>
20118 * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
20120 2005-03-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
20122 * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
20124 2005-03-29 Robert Dewar <dewar@adacore.com>
20126 * sem_res.adb (Resolve_Real_Literal): Generate warning if static
20127 fixed-point expression has value that is not a multiple of the Small
20130 * opt.ads (Warn_On_Bad_Fixed_Value): New flag
20132 * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
20135 * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
20137 2005-03-29 Vincent Celier <celier@adacore.com>
20139 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
20140 (Build_Dynamic_Library.Version_String): Return the empty string when
20141 Lib_Version is empty or when the symbol policy is not Autonomous.
20143 * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
20144 a symbol is not in the reference symbol file, increase the Major ID
20145 and set the Minor ID to 0.
20146 Use gsmatch=lequal instead of gsmatch=equal
20148 2005-03-29 Doug Rupp <rupp@adacore.com>
20150 * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
20151 name and translate.
20153 2005-03-29 Javier Miranda <miranda@adacore.com>
20155 * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
20156 (Inherit_DT): The first formal has been redefined as a Tag.
20157 This allows us the removal of the subprogram Get_TSD.
20158 (TSD): Replace the call to Get_TSD by the actual code.
20160 * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
20161 (Make_DT): Upgrade the call to Inherit_TSD according to the
20162 new interface: the first formal is now a Tag.
20164 * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
20165 redefined as a Tag.
20166 This change allows us to remove the subprogram Get_TSD.
20167 (CPP_Get_TSD): Subprogram removed.
20168 (TSD): Replace the call to CPP_Get_TSD by the actual code.
20170 * rtsfind.ads: Remove support to call the run-time
20173 2005-03-29 Robert Dewar <dewar@adacore.com>
20175 * errutil.adb, errout.adb:
20176 Minor comment updates on Line_Terminator references
20178 * par-ch10.adb: Add ??? comment about line terminator
20180 * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
20181 (check dos line terminator).
20182 (Check_Line_Max_Length): New procedure, split off from the existing
20183 Check_Line_Terminator routine. Separating this out allows -gnatyf to
20184 be properly recognized.
20186 * styleg.adb: Add ??? comment for line terminator reference
20188 * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
20189 (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
20191 * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
20192 (check dos line terminator).
20193 (Check_Line_Max_Length): New procedure, split off from the existing
20194 Check_Line_Terminator routine. Separating this out allows -gnatyf to
20195 be properly recognized.
20197 * stylesw.ads, stylesw.adb:
20198 Add handling for new -gnatyd switch (check dos line terminator)
20200 * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
20201 Recognize -gnatwb/-gnatwB switches
20202 Include Warn_On_Bad_Fixed_Value for -gnatg
20205 Add line for new -gnatyd switch (check dos line terminator)
20207 * usage.adb: Add lines for -gnatwb/-gnatwB
20209 * vms_data.ads: Add entry for NOCRLF (-gnatyd)
20211 * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
20213 * gnat_ugn.texi: Fix overlong lines
20214 Document new -gnatyd switch
20215 Document new -gnatwb/-gnatwB switches
20217 2005-03-29 Ed Schonberg <schonberg@adacore.com>
20219 * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
20220 order to retrieve the component list of the type, before examining
20221 individual components.
20223 * sem_type.adb (Covers): Types are compatible if one is the base type
20224 of the other, even though their base types might differ when private
20225 views are involved.
20227 2005-03-29 Thomas Quinot <quinot@adacore.com>
20229 * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
20230 To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
20231 of using Set_Renaming_TSS. This ensures that the TSS bodies are not
20232 analyzed if expansion is disabled (which could otherwise cause spurious
20233 error messages if expansion has been disabled due to previous
20234 (unrelated) errors).
20236 * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
20237 is disabled, the entity denoted by the argument is the access type
20238 itself, not an underlying record type, so there is no need to go back
20239 to the Corresponding_Remote_Type.
20241 2005-03-29 Gary Dismukes <dismukes@adacore.com>
20242 Robert Dewar <dewar@adacore.com>
20244 * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
20245 expand a call to an instance of
20246 Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
20247 Constructor actual of the instance. A class-wide membership
20248 check is also generated, to ensure that the tag passed to the instance
20249 denotes a type in the class.
20250 (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
20251 of Name_Generic_Dispatching_Constructor.
20253 * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
20254 05 unit for AI-260-02).
20256 * a-tgdico.ads: New file.
20258 * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
20259 predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
20261 * snames.ads, snames.adb (Preset_Names): Add entry for
20262 Generic_Dispatching_Constructor.
20265 * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
20266 character type cases.
20267 (Analyze_Subprogram_Renaming): Add special handling for
20268 the case of renaming of stream attributes when the renaming denotes a
20269 generic formal subprogram association for an abstract formal subprogram.
20270 Check that the attribute is a primitive stream attribute (and not
20271 a class-wide stream attribute) and then rewrite the attribute name
20272 as the name of the appropriate compiler-generated stream primitive.
20274 2005-03-29 Robert Dewar <dewar@adacore.com>
20276 * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
20278 (Is_Possibly_Unaligned_Object): Correct typo that
20279 resulted in inaccurate result for unaligned scalars within records.
20281 2005-03-29 Ed Schonberg <schonberg@adacore.com>
20283 * freeze.adb (Freeze_Record_Type): If the type of the component is an
20284 itype whose parent is controlled and not yet frozen, do not create a
20285 freeze node for the itype if expansion is disabled.
20287 2005-03-29 Vincent Celier <celier@adacore.com>
20289 * make.adb (Gnatmake): Don't fail if the main project file is declared
20290 as having no Ada sources. Do not display message "no sources to
20291 compile" in quiet output.
20293 2005-03-29 Doug Rupp <rupp@adacore.com>
20295 * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
20298 2005-03-29 Robert Dewar <dewar@adacore.com>
20300 * par-ch12.adb (P_Generic): Give better msg for illegal private generic
20303 2005-03-29 Robert Dewar <dewar@adacore.com>
20305 * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
20306 missing TYPE Improve the error message generated when compiling a
20307 limited interface in Ada83 or Ada95 mode.
20309 2005-03-29 Robert Dewar <dewar@adacore.com>
20311 * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
20312 rather than proceed ahead using a junk attribute name.
20314 2005-03-29 Vincent Celier <celier@adacore.com>
20316 * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
20318 * prj-part.adb (Parse_Single_Project): Set the location of a project
20319 on its defining identifier, rather than on the reserved word "project".
20321 * prj-proc.adb (Expression): Adapt to the fact that default of external
20322 references may be string expressions, not always literal strings.
20323 (Recursive_Process): Set Display_Name equal to Name
20324 when Location is No_Location, that is when there is no actual file.
20325 Get the Display_Name of the project from the source, when it is not a
20327 (Process): Use the Display_Name in error messages
20329 * prj-strt.adb (External_Reference): Allow default to be string
20330 expressions, not only literal strings.
20332 2005-03-29 Vincent Celier <celier@adacore.com>
20334 * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
20335 file and the reference symbol file to be the same file.
20337 2005-03-29 Thomas Quinot <quinot@adacore.com>
20339 * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
20340 forbid conversion of a local access-to-subprogram type to a remote one.
20342 * sem_util.adb (Wrong_Type): For a record type that is the expanded
20343 equivalent type for a remote access-to-subprogram type, go back to the
20344 original RAS entity when displaying an error message, so the casing is
20345 the original source casing.
20347 2005-03-29 Robert Dewar <dewar@adacore.com>
20349 * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
20352 2005-03-29 Ed Schonberg <schonberg@adacore.com>
20354 * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
20355 subtype if code is being pre-analyzed, to prevent un-expanded
20356 references to protected formals, among others.
20357 (Analyze_Explicit_Dereference): If the overloaded prefix includes some
20358 interpretation that can be a call, include the result of the call as a
20359 possible interpretation of the dereference.
20361 * sem_ch5.adb (Process_Bounds): Determine type of range by
20362 pre-analyzing a copy of the original range, and then analyze the range
20363 with the expected type.
20365 * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
20366 with an overloaded prefix where not all interpretations yield an
20367 access to subprogram, do not rewrite node as a call.
20368 (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
20369 the node as a call once the context identifies the interpretation of
20370 the prefix whose call yields the context type.
20371 (Valid_Conversion): For the case of a conversion between
20372 local access-to-subprogram types, check subtype conformance using
20373 Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
20374 detailed error message.
20376 2005-03-29 Ed Schonberg <schonberg@adacore.com>
20378 * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
20379 indicator, indicate that the formal can never be null.
20380 (Process_Formals): If a formal has a non_null indicator, insert the
20381 resulting subtype immediately before the enclosing subprogram decl,
20382 and not at the beginning of the corresponding declarative part, to
20383 prevent access before elaboration (Ada2005).
20385 2005-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
20388 * utils.c (finish_record_type): Use variable_size when setting sizes.
20390 2005-03-29 Robert Dewar <dewar@adacore.com>
20392 * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
20393 guarantee Unix style line terminators for the output files, even when
20394 running on windows.
20396 2005-03-29 Robert Dewar <dewar@adacore.com>
20398 * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
20399 buffer if an exception is raised.
20401 2005-03-29 Ed Falis <falis@adacore.com>
20403 * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
20406 2005-03-29 Robert Dewar <dewar@adacore.com>
20408 * sem_util.ads: Minor reformatting
20409 * gnat_rm.texi: Minor editing.
20411 2005-03-29 Eric Botcazou <ebotcazou@adacore.com>
20413 * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
20414 * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
20416 2005-03-24 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
20418 * adaint.c (__gnat_portable_spawn): Adjust cast.
20420 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
20422 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
20424 2005-03-17 Pascal Obry <obry@adacore.com>
20426 * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
20429 * expect.c (__gnat_waitpid): Moved here from adaint.c.
20430 Reimplement under Win32 using Win32 API.
20432 (__gnat_kill) [Win32]: Properly close the process handle before leaving
20435 2005-03-17 Eric Botcazou <ebotcazou@adacore.com>
20437 * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
20438 (DECL_RENAMED_OBJECT): New accessor macro.
20439 (SET_DECL_RENAMED_OBJECT): New setter macro.
20441 * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
20442 object in all cases. Attach the renamed object to the VAR_DECL.
20443 (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
20444 field is not prescribed.
20446 * misc.c (gnat_handle_option): Handle -gnatO separately.
20447 (gnat_print_decl) <VAR_DECL>: New case.
20448 Print the DECL_RENAMED_OBJECT node.
20450 * lang.opt: Declare separate -gnatO option.
20452 * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
20453 pointer, replace it with the renamed object.
20454 <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
20455 pointer type if the source is not a fat pointer type whose underlying
20456 array has the same non-zero alias set as that of the destination array.
20458 2005-03-17 Javier Miranda <miranda@adacore.com>
20460 * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
20461 (Get_Inheritance_Depth): Removed.
20462 (Set_Inheritance_Depth): Removed.
20464 * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
20465 subprogram Get_Expanded_Name because it is not referenced by the
20468 * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
20469 (CPP_Get_Inheritance_Depth): Removed.
20470 (CPP_Set_Inheritance_Depth): Removed.
20472 * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
20474 2005-03-17 Robert Dewar <dewar@adacore.com>
20476 * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
20477 3, since we now expect GCC 3 to do all the work.
20479 2005-03-17 Javier Miranda <miranda@adacore.com>
20481 * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
20482 of one barrier to avoid wrong usage of this attribute.
20484 * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
20485 First_Private_Entity.
20487 * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
20488 the subprogram against wrong usage.
20489 Adapt the code to traverse the entities in the
20490 scope of a record_type because in addition to its usage regarding
20491 packages, this subprogram is also called by Expand_N_Freeze_Entity
20492 to install the visible declarations of the enclosing scope of a
20493 record_type_with_private to establish the proper visibility before
20494 freezing the entity and related subprograms.
20496 2005-03-17 Ed Schonberg <schonberg@adacore.com>
20498 * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
20501 2005-03-17 Thomas Quinot <quinot@adacore.com>
20503 * exp_ch3.adb (Check_Attr): New subprogram.
20504 (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
20505 into a new Check_Attr subprogram, in order to provide a more
20506 explanatory error message (including the name of the missing attribute).
20507 (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
20508 subprogram determines whether a default implementation exists for a
20509 given stream attribute.
20510 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
20511 Determine whether to generate a default implementation for each stream
20512 attribute separately, as this depends on the specific attribute.
20514 * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
20515 limited extension where a stream attribute is missing for a limited
20516 component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
20517 generate a bogus reference to the missing attribute to prevent
20518 cascaded errors. Instead, generate a null statement.
20520 * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
20521 available for a limited type if it has been specified for an ancestor
20524 2005-03-17 Ed Schonberg <schonberg@adacore.com>
20526 * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
20527 entity is an operator.
20529 2005-03-17 Thomas Quinot <quinot@adacore.com>
20531 * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
20532 spec, to make this predicate available to other units.
20534 * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
20537 * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
20538 when no distribution runtime library is available.
20540 * sem_res.adb, sem_dist.adb: Disable expansion of remote
20541 access-to-subprogram types when no distribution runtime library is
20543 (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
20544 predicate available to other units.
20546 * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
20547 spec, to make this predicate available to other units.
20549 2005-03-17 Vincent Celier <celier@adacore.com>
20551 * make.adb (Insert_Project_Sources): Make sure the Q is always
20554 * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
20555 the default for the tree, not the global default naming.
20557 * prj-proc.adb (Recursive_Process): No need to put the default naming
20558 in the project data, it's already there.
20560 2005-03-17 Doug Rupp <rupp@adacore.com>
20562 * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
20564 * 5xcrtl.ads: Renamed to...
20565 * s-crtl-vms64.ads: ...this new file
20567 2005-03-17 Robert Dewar <dewar@adacore.com>
20570 * namet.adb (Copy_One_Character): Set proper wide character encoding
20571 for upper half character if we have upper half encoding.
20573 2005-03-17 Robert Dewar <dewar@adacore.com>
20575 * par.adb (Par): Improved msg for attempt to recompile predefined unit
20577 2005-03-17 Thomas Quinot <quinot@adacore.com>
20579 * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
20580 tagged limited type, the TSS is a newly built renaming declaration:
20581 insert it using Set_TSS, not Copy_TSS.
20583 2005-03-17 Javier Miranda <miranda@adacore.com>
20585 * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
20586 Try_Object_Operation): Analyze the object that is accessible
20587 through the prefix of the subprogram call before we apply
20588 the transformation of the object-operation notation.
20590 2005-03-17 Jose Ruiz <ruiz@adacore.com>
20592 * s-taprob.adb (Initialize_Protection): Initialize the protected
20593 object's owner to Null_Task.
20594 (Lock): If pragma Detect_Blocking is in effect and the caller of this
20595 procedure is already the protected object's owner then Program_Error
20596 is raised. In addition the protected object's owner is updated.
20597 (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
20598 of this procedure is already the protected object's owner then
20599 Program_Error is raised.
20600 In addition the protected object's owner is updated.
20601 (Unlock): Remove the ownership of the protected object.
20603 * s-taprob.ads (Protection): Add the field Owner, used to store the
20604 protected object's owner.
20605 This component is needed for detecting one type of potentially blocking
20606 operations (external calls on a protected subprogram with the same
20607 target object as that of the protected action). Document the rest of
20610 * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
20611 Initialize the protected object's owner to Null_Task.
20612 (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
20613 caller of this procedure is already the protected object's owner then
20614 Program_Error is raised.
20615 Do not raise Program_Error when this procedure is called from a
20617 (Unlock_Entries): Remove the ownership of the protected object.
20618 (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
20619 of this procedure is already the protected object's owner then
20620 Program_Error is raised.
20621 Do not raise Program_Error when this procedure is called from
20622 a protected action.
20624 * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
20625 used to store the protected object's owner.
20627 * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
20628 effect and this procedure (a potentially blocking operation) is called
20629 from whithin a protected action, Program_Error is raised.
20630 (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
20631 and this procedure (a potentially blocking operation) is called from
20632 whithin a protected action, Program_Error is raised.
20634 2005-03-17 Vincent Celier <celier@adacore.com>
20635 Nicolas Setton <setton@adacore.com>
20637 * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
20638 switch, not supported by the linker on Darwin. Add '_' before
20639 <library>init, as this character is added unconditionally by the
20641 (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
20642 correct one ".dylib". This fixes detection of the archive files when
20643 building library projects.
20645 2005-03-17 Vincent Celier <celier@adacore.com>
20647 * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
20648 -gnat83, -gnat95 and -gnat05.
20650 2005-03-17 Vasiliy Fofanov <fofanov@adacore.com>
20652 * gnat_ugn.texi: Document gnatmem restriction
20654 2005-03-17 Thomas Quinot <quinot@adacore.com>
20656 * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
20659 2005-03-17 Robert Dewar <dewar@adacore.com>
20661 * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
20662 a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
20663 s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
20665 * casing.adb: Comment improvements
20667 2005-03-17 Pascal Obry <obry@adacore.com>
20669 * g-expect.adb: Minor reformatting.
20671 2005-03-15 Zack Weinberg <zack@codesourcery.com>
20673 * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
20674 (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
20677 2005-03-15 Vincent Celier <celier@adacore.com>
20679 * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
20680 Add new parameter In_Tree to specify the project tree: needed
20681 by the project manager. Adapt to changes in project manager
20682 using new parameter In_Tree.
20684 2005-03-15 Jakub Jelinek <jakub@redhat.com>
20686 * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
20687 ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
20688 ada/bldtools to avoid make -jN failures.
20690 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
20692 * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
20693 to NULL_TREE on entry.
20695 2005-03-15 Robert Dewar <dewar@adacore.com>
20697 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
20698 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
20699 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
20700 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
20701 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
20702 system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
20703 system-interix.ads, system-solaris-sparc.ads,
20704 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
20705 system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
20706 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
20707 system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
20708 system-linux-s390.ads, system-linux-s390x.ads: Add line defining
20709 Compiler_System_Version to be False.
20711 * opt.ads: Add new flag Opt.Address_Is_Private
20713 * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
20714 Add new parameter Compiler_System_Version to avoid checking for
20715 completeness of parameters when compiler is compiling itself.
20716 Allows old versions of GNAT to be compiled with new compiler.
20718 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
20720 * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
20721 (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
20723 (Stack_Base_Available): New flag.
20724 (Get_Page_Size): New overloaded functions imported from C.
20725 (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
20726 PROT_ON, PROT_OFF): New constants.
20727 (mprotect): New function imported from C.
20728 (pthread_teb_t): New record type.
20730 * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
20731 (Create_Task): Account for the Yellow Zone and the guard page.
20733 2005-03-15 Vincent Celier <celier@adacore.com>
20735 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
20736 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
20737 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
20738 mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
20739 Library_File_Name_For): Add new parameter In_Tree
20740 to specify the project tree: needed by the project manager.
20741 Adapt to changes in project manager using new parameter In_Tree.
20742 Remove local imports, use functions in System.CRTL.
20744 * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
20745 to use the project manager.
20747 * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
20748 In_Tree to designate the project tree. Adapt to changes in the project
20749 manager, using In_Tree.
20751 * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
20752 Copy_Interface_Sources): Add new parameter In_Tree to specify the
20753 project tree: needed by the project manager.
20754 (Build_Library): Check that Arg'Length >= 6 before checking if it
20755 contains "--RTS=...".
20757 * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
20758 Library_File_Name_For): Add new parameter In_Tree to specify the
20759 project tree: needed by the project manager.
20761 * prj.ads, prj.adb: Major modifications to allow several project trees
20762 in memory at the same time.
20763 Change tables to dynamic tables and hash tables to dynamic hash
20764 tables. Move tables and hash tables from Prj.Com (in the visible part)
20765 and Prj.Env (in the private part). Move some constants from the visible
20766 part to the private part. Make other constants deferred.
20767 (Project_Empty): Make it a variable, not a function
20768 (Empty_Project): Add parameter Tree. Returns the data with the default
20769 naming data of the project tree Tree.
20770 (Initialize): After updating Std_Naming_Data, copy its value to the
20771 component Naming of Project Empty.
20772 (Register_Default_Naming_Scheme): Use and update the default naming
20773 component of the project tree, instead of the global variable
20775 (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
20776 Tree is not defaulted, return the default naming data of the Tree.
20777 (Initial_Buffer_Size): Constant moved from private part
20778 (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
20779 variables initialized in procedure Initialize.
20780 (Add_To_Buffer): Add two in out parameters to replace global variables
20781 Buffer and Buffer_Last.
20782 (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
20784 Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
20786 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
20787 for the project tree.
20788 (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
20789 constant at the beginning of the package spec, so that they cane be used
20790 in subprograms before their full declarations.
20791 (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
20792 (Empty_Project): Add parameter of type Project_Node_Ref
20793 (Private_Project_Tree_Data): Add component Default_Naming of type
20795 (Buffer, Buffer_Last): remove global variables
20796 (Add_To_Buffer): Add two in out parameters to replace global variables
20797 Buffer and Buffer_Last.
20798 (Current_Packages_To_Check): Remove global variable
20799 (Empty_Name): Move to private part
20800 (No-Symbols): Make it a constant
20801 (Private_Project_Tree_Data): New type for the private part of the
20803 (Project_Tree_Data): New type for the data of a project tree
20804 (Project_Tree_Ref): New type to designate a project tree
20805 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
20806 for the project tree.
20808 * prj-attr.ads: Add with Table; needed, as package Prj no longer
20809 imports package Table.
20811 * prj-com.adb: Remove empty, no longer needed body
20813 * prj-com.ads: Move most of the content of this package to package Prj.
20815 * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
20816 designate the project node tree and Packages_To_Check to replace
20817 global variable Current_Packages_To_Check.
20818 Add new parameters In_Tree and Packages_To_Check to local subprograms,
20819 when needed. Adapt to changes in project manager with project node tree
20822 * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
20823 project tree to most subprograms. Move tables and hash tables to
20824 private part of package Prj.
20825 Adapt to changes in project manager using project tree In_Tree.
20827 * prj-makr.adb (Tree): New constant to designate the project node tree
20828 Adapt to change in project manager using project node tree Tree
20830 * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
20831 display the Library_Src_Dir and the Library_Dir.
20832 Add new parameter In_Tree to designate the project node tree to most
20833 subprograms. Adapt to changes in the project manager, using project tree
20835 (Check_Naming_Scheme): Do not alter the casing on platforms where
20836 the casing of file names is not significant.
20837 (Check): Add new parameter In_Tree to designate the
20839 * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
20840 designate the project tree.
20841 Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
20843 * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
20844 to replace those that were in the private part of package Prj.
20845 Add new parameter In__Tree to designate the project node tree to most
20846 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
20847 (Post_Parse_Context_Clause): When specifying the project node of a with
20848 clause, indicate that it is a limited with only if there is "limited"
20849 in the with clause, not necessarily when In_Limited is True.
20850 (Parse): Add new parameter In_Tree to designate the project node tree
20852 * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
20853 designate the project node tree. Adapt to change in Prj.Tree with
20854 project node tree In_Tree.
20856 * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
20857 tree In_Tree in the call to function Empty_Process to give its initial
20858 value to the project data Processed_Data.
20859 Add new parameters In_Tree to designate the project tree and
20860 From_Project_Node_Tree to designate the project node tree to several
20861 subprograms. Adapt to change in project manager with project tree
20862 In_Tree and project node tree From_Project_Node_Tree.
20864 * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
20865 to replace those that were in the private part of package Prj.
20866 Add new parameter In_Tree to designate the project node tree to most
20867 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
20869 * prj-tree.ads, prj-tree.adb: Add new parameter of type
20870 Project_Node_Tree_Ref to most subprograms.
20871 Use this new parameter to store project nodes in the designated project
20873 (Project_Node_Tree_Ref): New type to designate a project node tree
20874 (Tree_Private_Part): Change table to dynamic table and hash tables to
20875 dynamic hash tables.
20877 * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
20878 the project tree to most subprograms. Adapt to changes in project
20879 manager using project tree In_Tree.
20881 * makegpr.adb (Project_Tree): New constant needed to use project
20884 2005-03-15 Olivier Hainque <hainque@adacore.com>
20886 * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
20887 for sigactions with SA_SIGINFO set. Call
20888 __gnat_adjust_context_for_raise before raising, to perform the
20889 potentially required adjustments to the machine context for the GCC
20892 * raise.h (__gnat_adjust_context_for_raise): New prototype.
20894 * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
20895 Adjust PC by one in the provided machine context.
20896 (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
20897 so that the handler is passed the context structure to adjust prior to
20899 (__gnat_error_handler) HPUX: Adjust the signature to match what an
20900 SA_SIGINFO sigaction should look like. Call
20901 __gnat_adjust_context_for_raise before actually raising.
20902 (__gnat_adjust_context_for_raise): Default noop to help PC
20903 adjustments before raise from signal handlers.
20904 (__gnat_error_handler): Indirectly call a predicate function to
20905 determine if a condition should be resignaled or not.
20906 (__gnat_set_resignal_predicate): User interface to modify the predicate.
20907 (__gnat_default_resignal_p): Default GNAT predicate.
20909 2005-03-15 Doug Rupp <rupp@adacore.com>
20911 * adaint.c: Prefix #include of VMS system header files with vms/
20912 [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
20913 Do not define a dummy function "convert_addresses" under Darwin,
20916 * tb-alvms.c, expect.c: Prefix #include of VMS system header files
20919 2005-03-15 Nicolas Setton <setton@adacore.com>
20921 * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
20924 2005-03-15 Robert Dewar <dewar@adacore.com>
20926 * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
20929 * a-retide.ads: Minor comment changes
20931 2005-03-15 Robert Dewar <dewar@adacore.com>
20933 * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
20934 a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
20935 Realloc_For_Chunk to private part of package.
20936 New subprograms for AI-301
20938 * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
20939 Get_Line procedure.
20940 Avoid unnecessary use of Get/Set_Wide_String
20942 2005-03-15 Robert Dewar <dewar@adacore.com>
20945 * a-stunau.ads, a-stunau.adb:
20946 Change interface to allow efficient (and correct) implementation
20947 The previous changes to allow extra space in unbounded strings had
20948 left this interface a bit broken.
20950 * a-suteio.adb: Avoid unnecessary use of Get/Set_String
20952 * g-spipat.ads, g-spipat.adb: New interface for Get_String
20953 Minor reformatting (function specs)
20955 * g-spitbo.adb: New interface for Get_String
20957 * g-spitbo.ads: Minor reformatting
20959 * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
20961 * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
20963 2005-03-15 Javier Miranda <miranda@adacore.com>
20964 Robert Dewar <dewar@adacore.com>
20965 Thomas Quinot <quinot@adacore.com>
20966 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
20968 * atree.ads, atree.adb: Add support for Elist24 field
20970 * atree.h: Fix wrong definition of Field27
20971 Add support for Elist16 field
20972 Add support for Elist24 field
20974 * einfo.ads, einfo.adb (Abstract_Interfaces,
20975 Set_Abstract_Interfaces): New subprograms.
20976 (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
20978 (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
20979 entities rather than a single node.
20980 (Is_Interface, Set_Is_Interface): New subprogram
20981 (First_Tag_Component): New syntesized attribute
20982 (Next_Tag_Component): New synthesized attribute
20983 (Write_Entity_Flags): Upgraded to write Is_Interface
20984 (Write_Field24_Name): Upgraded to write Abstract_Interfaces
20985 (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
20986 (Task_Body_Procedure): New subprogram to read this attribute.
20987 (Set_Task_Body_Procedure): New subprogram to set this attribute.
20988 (Has_Controlled_Component): Now applies to all entities.
20989 This is only a documentation change, since it always worked to apply
20990 this to other than composite types (yielding false), but now this is
20992 Update documentation on Must_Be_Byte_Aligned for new spec
20994 * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
20995 exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
20996 uses of the Access_Disp_Table attribute to reference the first dispatch
20997 table associated with a tagged type. As
20998 part of the implementation of abstract interface types,
20999 Access_Disp_Table has been redefined to contain a list of dispatch
21000 tables (rather than a single dispatch table).
21001 Similarly, upgrade all the references to Tag_Component by the
21002 new attribute First_Tag_Component.
21003 (Find_Inherited_TSS): Moved to exp_tss.
21004 Clean up test in Expand_N_Object_Declaration for cases
21005 where we need to do a separate assignment of the initial value.
21006 (Expand_N_Object_Declaration): If the expression in the
21007 declaration of a tagged type is an aggregate, no need to generate an
21008 additional tag assignment.
21009 (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
21011 Bit packed array ops are only called if operands are known to be
21013 (Component_Equality): When returning an N_Raise_Program_Error statement,
21014 ensure that its Etype is set to Empty to avoid confusing GIGI (which
21015 expects that only expressions have a bona fide type).
21016 (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
21017 determine the amount of data to be copied.
21019 * par.adb (P_Interface_Type_Definition): New subprogram that parses the
21020 new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
21021 INTERFACE_TYPE_DEFINITION ::=
21022 [limited | task | protected | synchronized] interface
21023 [AND interface_list]
21025 * par-ch3.adb (P_Type_Declaration): Modified to give support to
21027 (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
21029 (P_Interface_Type_Definition): New subprogram that parses the new
21030 syntax rule of Ada 2005 interfaces
21031 (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
21032 messages by the correct RENAMES (quotes removed).
21034 * sem_prag.adb: Upgrade all the references to Tag_Component by the new
21035 attribute First_Tag_Component.
21037 * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
21038 (Interface_List, Set_Interface_List): New subprograms.
21039 (Interface_Present, Set_Interface_Present): New subprograms.
21040 (Limited_Present, Set_Limited_Present): Available also in derived
21041 type definition nodes.
21042 (Protected_Present, Set_Protected_Present): Available also in
21043 record type definition and
21044 derived type definition nodes.
21045 (Synchronized_Present, Set_Synchronized_Present): New subprograms.
21046 (Task_Present, Set_Task_Present): New subprogram.
21047 (Task_Body_Procedure): Removed.
21048 (Set_Task_Body_Procedure): Removed.
21049 These subprogram have been removed because the attribute
21050 Task_Body_Procedure has been moved to the corresponding task type
21051 or task subtype entity to leave a field free to store the list
21052 of interfaces implemented by a task (for AI-345)
21053 Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
21054 (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
21055 expression flag Do_Range_Check
21056 (Exception_Junk): Change to Flag7 to accomodate above change
21057 (Box_Present, Default_Name, Specification, Set_Box_Present,
21058 Set_Default_Name, Set_Specification): Expand the expression
21059 "X in N_Formal_Subprogram_Declaration" into the corresponding
21060 two comparisons. Required to use the csinfo tool.
21062 * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
21063 "with string" given.
21065 * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
21068 * par-ch11.adb (P_Raise_Statement): Recognize with string expression
21071 * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
21072 attribute Task_Body_Procedure rather than the old semantic field that
21073 was available in the task_type_declaration node.
21075 * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
21076 interface type definitions.
21077 (P_Formal_Derived_Type_Definition): Modified to handle the list of
21080 * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
21081 task type declaration.
21082 (P_Protected): Modified to handle the list of interfaces in a
21083 protected type declaration.
21085 2005-03-15 Doug Rupp <rupp@adacore.com>
21086 Vincent Celier <celier@adacore.com>
21088 * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
21089 (Gen_Output_File_C): Likewise.
21090 (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
21092 2005-03-15 Thomas Quinot <quinot@adacore.com>
21094 * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
21095 is an N_Raise_Constraint_Error node, create a new copy of it without
21096 going through a call to Duplicate_Subexpr.
21098 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
21099 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
21100 Nicolas Setton <setton@adacore.com>
21101 Ed Schonberg <schonberg@adacore.com>
21107 * decl.c (gnat_to_gnu_field): Reject aliased components with a
21108 representation clause that prescribes a size not equal to the rounded
21109 size of their types.
21110 (gnat_to_gnu_entity, case E_Component): Always look at
21111 Original_Record_Component if Present and not the entity.
21112 (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
21113 of tagged extension types by not making field for components that are
21115 (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
21116 (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
21117 expression to the type of the object when the object is constant.
21118 Reverse defer_debug_incomplete_list before traversing it, so that trees
21119 are processed in the order at which they were added to the list. This
21120 order is important when using the stabs debug format.
21121 If we are deferring the output of debug information, also defer this
21122 output for a function return type.
21123 When adding fields to a record, prevent emitting debug information
21124 for incomplete records, emit the information only when the record is
21126 (components_to_record): New parameter defer_debug.
21127 (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
21128 (gnat_to_gnu_field_decl): New function.
21129 (substitution_list, annotate_rep): Call it.
21130 (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
21131 (gnat_to_gnu_entity, case E_Record_Type): Likewise.
21132 No longer update discriminants to not be a COMPONENT_REF.
21133 (copy_alias_set): Strip padding from input type; also handle
21134 unconstrained arrays properly.
21136 * gigi.h (write_record_type_debug_info): New function.
21137 Convert to use ANSI-style prototypes. Remove unused
21138 declarations for emit_stack_check, elab_all_gnat and
21139 set_second_error_entity.
21140 (gnat_to_gnu_field_decl): New decl.
21142 * utils.c (write_record_type_debug_info): New function.
21143 (finish_record_type): Delegate generation of debug information to
21144 write_record_type_debug_info.
21145 (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
21146 (update_pointer_to): Fix pasto.
21147 (convert) <UNION_TYPE>: Accept slight type variations when
21148 converting to an unchecked union type.
21150 * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
21151 replace the N_Freeze_Entity with a null statement.
21153 * freeze.adb (Freeze_Expression): If the freeze nodes are generated
21154 within a constrained subcomponent of an enclosing record, place the
21155 freeze nodes in the scope stack entry for the enclosing record.
21156 (Undelay_Type): New Subprogram.
21157 (Set_Small_Size): Pass T, the type to modify; all callers changed.
21158 (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
21159 within records; allow them to have freeze nodes if their base types
21162 * exp_util.adb (Remove_Side_Effects): Properly test for
21163 Expansion_Delayed and handle case when it's inside an
21164 N_Qualified_Expression.
21166 * sem_ch3.adb (Derived_Type_Declaration): New predicate
21167 Comes_From_Generic, to recognize accurately that the parent type in a
21168 derived type declaration can be traced back to a formal type, because
21169 it is one or is derived from one, or because its completion is derived
21171 (Constrain_Component_Type): If component comes from source and has no
21172 explicit constraint, no need to constrain in in a subtype of the
21174 (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
21175 Minor change to propagate Is_Ada_2005 flag
21177 * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
21178 Expansion_Delayed is False.
21179 (assoc_to_constructor): Ignore fields that have a
21180 Corresponding_Discriminant.
21181 (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
21182 function returns "by target", dereference the target pointer using the
21183 type of the actual return value.
21184 <all>: Be prepared for a null gnu_result.
21185 (processed_inline_subprograms): Check flag_really_no_inline
21186 instead of flag_no_inline.
21187 (set_second_error_entity): Remove unused function.
21188 (gnat_to_gnu, case N_Selected_Component): Call
21189 gnat_to_gnu_field_decl.
21190 (assoc_to_constructor): Likewise.
21192 2005-03-15 Robert Dewar <dewar@adacore.com>
21193 Ed Schonberg <schonberg@adacore.com>
21194 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
21196 * exp_pakd.adb (Create_Packed_Array_Type): Do not set
21197 Must_Be_Byte_Aligned for cases where we do not need to use a
21198 System.Pack_nn unit.
21200 * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
21202 Needed now that we do some processing for IN parameters as well. This
21203 may well fix some unrelated errors.
21204 (Expand_Call): Handle case of unaligned objects (in particular those
21205 that come from packed arrays).
21206 (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
21207 renamed entity is an inherited operation, re-expand the call using the
21208 original operation, which is the one to call.
21209 Detect attempt to inline parameterless recursive subprogram.
21210 (Represented_As_Scalar): Fix to work properly with private types
21211 (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
21212 accurate estimate. Yields True in far fewer cases than before,
21213 improving the quality of code that depends on this test.
21215 * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
21216 over both visible and private declarations to remove them from tree,
21217 and mark subprograms declared in package as eliminated, to prevent
21218 spurious use in subsequent compilation of generic units in the context.
21220 * exp_util.ads: Minor cleanup in variable names
21222 * sem_eval.ads, sem_eval.adb: Minor reformatting
21223 (Compile_Time_Known_Bounds): New function
21225 2005-03-15 Ed Schonberg <schonberg@adacore.com>
21227 * exp_ch7.adb (Convert_View): Use base types of underlying types when
21228 determining whether an unchecked conversion is needed for the argument
21229 of an initialization call.
21231 2005-03-15 Ed Schonberg <schonberg@adacore.com>
21233 * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
21234 that appears in the instantiation rather than the internal subtype
21235 generated in the wrapper package, to avoid anomalies in gigi when the
21236 target is derived from a private type whose full view is an access type.
21238 2005-03-15 Robert Dewar <dewar@adacore.com>
21240 * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
21242 Add documentation to replace the use of this flag
21243 Fix kludge for Maximum_Alignment on x86 so that it does not apply to
21246 2005-03-15 Thomas Quinot <quinot@adacore.com>
21248 * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
21249 here from exp_attr so it can be shared between exp_attr and exp_dist.
21250 (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
21251 all TSS names, not a subset thereof, and the previous name introduced
21252 an unnecessarily confusion that a distinction might exist between
21253 "OK" TSS names and some "not OK" TSS names.
21255 2005-03-15 Doug Rupp <rupp@adacore.com>
21257 * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
21260 2005-03-15 Pascal Obry <obry@adacore.com>
21261 Eric Botcazou <ebotcazou@adacore.com>
21265 * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
21266 when IN_RTS. This is to work around a bootstrap path problem.
21268 * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
21269 table and pass it to __gnat_install_SEH_handler().
21270 (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
21272 * lang.opt: Fix specification of -fRTS=.
21274 2005-03-15 Doug Rupp <rupp@adacore.com>
21275 Bernard Banner <banner@adacore.com>
21276 Vincent Celier <celier@adacore.com>
21277 Arnaud Charlet <charlet@adacore.com>
21280 This change works fine when gnatlib is built from the gcc directory,
21281 but does not work when using the libada Makefile, since GCC_FOR_TARGET
21282 is not passed to ada/Makefile.in, so more work is needed by a
21283 Makefile/configure expert.
21285 * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
21286 set GMEM_LIB on ia64 linux to add optional support for gnatmem.
21287 Setup gnatlink switch -M for x86_64 linux, as it is already setup
21289 (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
21290 Run ranlib on libgccprefix.a
21291 Define PREFIX_OBJS for Darwin, to build libgccprefix.
21292 (ADA_INCLUDE_SRCS): Split Ada packages.
21294 2005-03-15 Robert Dewar <dewar@adacore.com>
21296 * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
21298 * impunit.adb: Add GNAT.UTF_32
21300 * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
21302 * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
21303 now uses GNAT.UTF_32).
21305 * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
21306 capabilities for categorizing characters using Unicode categories
21308 2005-03-15 Ed Schonberg <schonberg@adacore.com>
21310 * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
21311 instantiation that has been rewritten as a package body, retrieve spec
21312 to generate proper name for implicit_with_clause.
21313 (Install_Parents): Recognize a parent that is an instantiation but has
21314 been rewritten as a package declaration during analysis.
21316 2005-03-15 Javier Miranda <miranda@adacore.com>
21317 Ed Schonberg <schonberg@adacore.com>
21319 * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
21320 parameter reported some error we immediately return. This improves the
21321 behaviour of the frontend in case of errors.
21322 (Install_Parent, Remove_Parent): Introduce new flag
21323 Parent_Unit_Visible, to preserve the proper visibility of the ultimate
21324 ancestor of a generic child unit, when the child is being instantiated.
21325 (Inline_Instance_Body): If we are compiling the private
21326 part or the body of a child unit, restore the proper visibility of the
21327 parents after compiling the instance body.
21329 2005-03-15 Ed Schonberg <schonberg@adacore.com>
21330 Javier Miranda <miranda@adacore.com>
21333 * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
21334 of a private type, in which case it is underlying_type that denotes
21335 the proper task. Also modified to use the new entity attribute
21336 that is directly available in the task type and task subtype entities
21337 (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
21338 arrays when other dimensions than the first are constrained by
21339 discriminants of an enclosing record.
21340 (Insert_Explicit_Dereference): If the prefix is an indexed component or
21341 a combination of indexed and selected components, find ultimate entity
21342 and generate the appropriate reference for it, to suppress spurious
21344 (Note_Possible_Modification): If an entity name has no entity, return.
21345 (Is_Variable): A function call never denotes a variable.
21346 (Requires_Transient_Scope): For record types, recurse only on
21347 components, not on internal subtypes that may have been generated for
21348 constrained components.
21350 2005-03-15 Ed Schonberg <schonberg@adacore.com>
21352 * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
21353 Eliminated as candidates for resolution. Both efficient, and avoids
21354 anomalies with operators declared in deleted code.
21355 (Process_Implicit_Dereference_Prefix): Use this procedure whenever
21356 expansion is disabled (as when compiling a generic) to prevent spurious
21357 warnings on prefixes of selected components.
21359 2005-03-15 Ed Schonberg <schonberg@adacore.com>
21361 * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
21362 attached to a list before checking whether it appears in the private
21363 declarations of the current package.
21364 (Make_Inequality_Operator): Insert declaration in proper declarative
21365 list rather than just setting the Parent field, so that
21366 Is_Private_Declaration can handle it properly.
21368 2005-03-15 Ed Schonberg <schonberg@adacore.com>
21370 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
21371 a renaming a body, check that the renamed subprogram in not intrinsic.
21372 (Find_Direct_Name): If several use_visible entities hide
21373 each other, and the context is a predefined file compiled through
21374 rtsfind, keep only the entity that comes from a predefined file.
21376 2005-03-15 Geert Bosch <bosch@adacore.com>
21378 * s-fatgen.adb (Valid): Extend special exceptions to account for long
21379 long float padding to also cover AMD64 and IA64.
21381 2005-03-15 Gary Dismukes <dismukes@adacore.com>
21383 * s-imgwch.adb: Add with and use of Interfaces.
21384 (Img_Wide_Character): Change type of Val to Unsigned_16.
21385 (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
21387 2005-03-15 Matthew Gingell <gingell@adacore.com>
21389 * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
21391 2005-03-15 Robert Dewar <dewar@adacore.com>
21393 * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
21395 * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
21397 * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
21399 2005-03-15 Robert Dewar <dewar@adacore.com>
21401 * s-bitops.adb, s-bitops.ads,
21402 s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
21403 s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
21404 tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
21405 s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
21406 s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
21407 s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
21408 s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
21409 s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
21412 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
21414 * utils2.c (build_binary_op): Fix typo.
21416 2005-03-15 Doug Rupp <rupp@adacore.com>
21418 * s-crtl.ads (popen,pclose): New imports.
21420 2005-03-15 Cyrille Comar <comar@adacore.com>
21422 * comperr.adb (Compiler_Abort): remove references to obsolete
21423 procedures in the bug boxes for various GNAT builds.
21425 2005-03-15 Vincent Celier <celier@adacore.com>
21427 * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
21429 2005-03-15 Geert Bosch <bosch@adacore.com>
21430 Arnaud Charlet <charlet@adacore.com>
21431 Robert Dewar <dewar@adacore.com>
21432 Cyrille Comar <comar@adacore.com>
21433 Sergey Rybin <rybin@adacore.com>
21435 * gnat_ugn.texi: Remove extended inline assembly example, as it was far
21436 too specific and long-winded to be appropriate for the GNAT User's
21438 Warn about use of GCC switches not documented in the GNAT User's Guide,
21439 as these may cause generated code to not conform to Ada semantics.
21440 Remove mention of -gdwarf-2 for sparc64, since this is now the default.
21441 Add documentation for -gnat95 and -gnat05 switches
21442 Remove paragraph documenting obsolete way to refer to third party
21444 Add a few references to Ada_05 that were missing.
21445 Update documentation on -gnatZ/-gnatL.
21446 Document limitation when using -m64 under Solaris.
21447 Change the "Name Casing" subsection of the pretty-printer section
21448 according to the changes in the dictionary processing.
21450 * gnat_rm.texi: Document the Ada_05 pragma.
21451 Section on record representation clauses describes the new more
21452 relaxed rules about placement of large packed bit array components.
21453 Add documentation of GNAT.UTF_32
21455 2005-03-12 Daniel Berlin <dberlin@dberlin.org>
21457 * misc.c (gnat_post_options): Turn off structural
21460 2005-03-08 Laurent Guerby <laurent@guerby.net>
21462 * system-linux-sparc.ads: Fix typo in previous commit.
21464 2005-03-07 James A. Morrison <phython@gcc.gnu.org>
21465 Laurent Guerby <laurent@guerby.net>
21468 * system-linux-sparc.ads: New.
21469 * Makefile.in: Add sparc linux entry.
21471 2005-02-27 Danny Smith <dannysmith@users.sourceforge.net>
21473 * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
21474 parameters as unused.
21476 2005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
21477 Partial merge from libada-gnattools-branch:
21479 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
21480 * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
21481 into code in gnattools/Makefile.in. Remove direct dependencies on
21482 stamp-tools by tools clauses.
21483 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
21484 * config-lang.in: Add gnattools to $lang_dirs.
21486 2005-02-13 Andrew Pinski <pinskia@physics.uc.edu>
21489 * utils.c (gnat_type_for_mode): Return null instead of ICE because
21490 we asked for an unknown mode.
21492 2005-02-12 Richard Henderson <rth@redhat.com>
21494 * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
21495 validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
21497 2005-02-10 Andreas Jaeger <aj@suse.de>
21499 * init.c (__gnat_initialize): Mark parameter as unused.
21501 2005-02-09 Doug Rupp <rupp@adacore.com>
21503 * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
21504 * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
21506 2005-02-09 Doug Rupp <rupp@adacore.com>
21508 * gnatchop.adb (dup, dup2),
21509 g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
21511 * gnatlbr.adb (mkdir),
21512 mlib-tgt-vms-ia64.adb (popen, plose): Import with decc$ prefix.
21514 * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
21516 2005-02-09 Doug Rupp <rupp@adacore.com>
21518 * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
21520 2005-02-09 Robert Dewar <dewar@adacore.com>
21521 Thomas Quinot <quinot@adacore.com>
21522 Javier Miranda <miranda@adacore.com>
21523 Pascal Obry <obry@adacore.com>
21524 Ed Schonberg <schonberg@adacore.com>
21525 Doug Rupp <rupp@adacore.com>
21526 Gary Dismukes <dismukes@adacore.com>
21527 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
21529 * g-zstspl.ads: New file.
21531 * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
21533 * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
21535 Add definition of Wide_Wide_Space for AI-285
21537 * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
21538 interface (to support Ada 95 and Ada 2005 units).
21539 Add Unbounded_IO files
21540 Add entries for Wide_Wide packages for AI-285
21541 Add list of containers packages to Ada 2005 unit list
21543 * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
21544 support new Unbounded_IO package cleanly.
21546 * g-utf_32.ads, g-utf_32.adb: New files.
21548 * Makefile.rtl: Add entry for g-utf_32
21549 Add new files for Unbounded_IO
21550 Adjust make file for new AI-285 wide wide packages
21551 Add AI-302 containers to the run time.
21553 * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
21554 a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
21555 subprograms for AI-301.
21557 * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
21559 * a-stunau.ads: Minor comment correction
21561 * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
21563 Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
21564 (Check_RPC): Update to match changes in expanded code.
21565 Clean up unused entity.
21567 * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
21568 was not taken into account.
21569 This includes proper initialization with Normalize_Scalars.
21570 (Get_Simple_Init_Val): Major rewrite for initialize scalars and
21571 normalize scalars cases (particularly the latter) to do a better job
21572 of finding invalid representations.
21574 * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
21576 * s-strops.ads, s-strops.adb: Remove string normalize routines, never
21579 * exp_dist.adb: Add support for wide wide character type
21580 (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
21581 private part, generate stub bodies at the end of the private part,
21582 not the visible part.
21583 (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
21585 (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
21586 generic wrapper to execute final processing after completing the
21587 expansion of the RPC receiver for an RACW.
21589 * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
21590 packages and attributes.
21591 (Preset_Names): Addition of the new reserved words of Ada 2005,
21592 that is interface, overriding and synchronized.
21593 (Get_Pragma_Id): Give support to the use of the new reserved word
21594 "interface" as a pragma name.
21595 (Is_Pragma_Name): Give support to the use of the new reserved word
21596 "interface" as a pragma name.
21597 (Preset_Names): Add stream_size string for the Stream_Size Ada2005
21598 attribute implementation.
21600 * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
21601 checks to entities that are output parameters of Asm operations.
21602 Handle the Stream_Size attribute.
21603 Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
21605 * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
21607 * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
21608 for second parameter being 0.0.
21609 Add support for wide wide character type.
21610 (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
21612 * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
21613 s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
21614 s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
21615 s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
21616 for wide wide character cases.
21618 * cstand.adb: Create entities for Wide_Wide_Character and
21621 * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
21622 accordance with AI-258.
21623 Add new declarations for 16/32 bit C character types (Part of AI285)
21625 * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
21626 (Obsolescent_Warning): New field
21627 (Rep_Clause): New local subprogram used to share code. Returns the rep
21628 clause for which the name is given in parameter.
21629 (Has_Stream_Size_Clause): New routine.
21630 (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
21631 (Address_Clause): Implementation is now using Rep_Clause.
21632 (Alignment_Clause): Idem.
21633 (Size_Clause): Idem.
21635 * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
21636 entity in non-Ada 2005 mode and generate warning.
21638 * par-prag.adb: Add handling of one argument form for pragma Ada_05.
21639 (Prag): Code cleanup. Remove old gnat pragma "overriding"
21641 * sem_prag.adb: Add handling of one argument form for pragma Ada_05
21642 (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
21643 on the named unit if the pragma is not in the current compilation unit,
21644 so that elaboration calls in the current unit can set up an elaboration
21645 dependency on the named unit, as needed.
21646 (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
21647 subprogram as well as for subprograms declared within a package.
21648 (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
21651 * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
21652 to z) to avoid some instances of duplication for Wide_Wide packages.
21654 * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
21657 * scn.adb: Char_Literal_Value field is now a Uint
21659 * scng.adb: Significant rewrite to handle new Ada 2005 features
21660 allowing wide and wide wide characters in program text, e.g. for
21661 identifiers, as described in AI-285.
21662 (Set_Reserved): New procedure, makes setting up keywords cleaner.
21663 (Initialize_Scanner): Register the new reserved words of Ada 2005.
21664 (Scan): Give support to the new reserved words.
21666 * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
21667 warning notifying that interface, overriding, and synchronized are
21668 new reserved words.
21669 (P_Pragma): Allow the use of the new reserved word "interface" as
21672 * gnatls.adb, gnatbind.adb,
21673 ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
21674 identifiers named "interface" to "SAL_Interface".
21676 * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
21677 (Structured Exception handling).
21678 (Gen_Main_C): Idem.
21681 (Gen_Main_Ada): Set the default exit code if specified.
21682 (Gen_Main_C): Likewise.
21684 (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
21685 Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
21687 * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
21690 * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
21691 has a collision with the new Ada 2005 "interface" reserved word.
21693 * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
21694 generate a warning notifying that interface, overriding, and
21695 synchronized are new reserved words.
21697 * scans.ads (Token_Type): Addition of the tokens corresponding to the
21698 new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
21699 and Tok_Synchronized.
21701 * sem_res.adb (Resolve_Actuals): Change error messages to refer to
21702 "dispatching" rather than "primitive" operations, since dispatching
21703 calls are now allowed to abstract formal subprograms (which are not
21705 Char_Literal_Value field is now a Uint
21706 (Resolve_Slice): If the prefix is an access to an unconstrained array,
21707 compute the actual subtype of the designated object to impose the proper
21709 (Resolve_Selected_Component): Do not insert an access check if the
21710 prefix is an access type: such a node is expanded into an explicit
21711 dereference, on which the access check is performed anyway. Removes
21712 expensive duplicate checks.
21713 (Resolve_Call): Use new flag Is_Obsolescent and field
21714 Obsolescent_Warning so that pragma Obsolescent works on library
21716 Add support for wide wide character type
21717 (Resolve_Allocator): Replace the error message on wrong null-exclusion
21718 value by a warning message.
21719 (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
21720 as fixed-point, and one of the operands is non-static and universal, it
21721 can only be an illegal exponentiation operation, in which case there is
21722 no real value to retrieve.
21724 * exp_strm.adb: Add support for wide wide character type
21725 (Build_Elementary_Input_Call): Compute the size of the stream element by
21726 querying the rep chain to find the Stream_Attribute attribute value.
21727 (Build_Elementary_Write_Call): Ditto.
21729 * sem_aggr.adb: Char_Literal_Value field is now a Uint
21730 Add support for wide wide character type
21731 Replace the error messages on wrong null-exclusion value by warnings
21732 as described in Ada 2005.
21733 (Resolve_Extension_Aggregate): Document the fact that the error
21734 message on class-wide expressions in extensions aggregates.
21736 * sem_case.adb: Add support for wide wide character type
21738 * sem_ch13.adb: Add support for wide wide character type
21739 (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
21741 * sem_ch3.adb: Add support for wide wide character type
21742 (Process_Subtype): If constraint is illegal for the type, set Ekind of
21743 now-useless Itype, to prevent cascaded errors on a compiler built
21746 * sem_ch8.adb: Add with and use of Sem_Disp.
21747 (Analyze_Subprogram_Renaming): Replace unclean uses of
21748 Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
21749 of Corresponding_Spec to Empty).
21750 (Attribute_Renaming): Replace use of Corresponding_Spec with
21751 Corresponding_ Formal_Spec and simplify condition.
21752 (Use_One_Package): Check that scope of homonym of identifier is defined,
21753 before checking whether it is a wrapper package.
21754 Add support for wide wide character type
21756 * sem_eval.adb: Add support for wide wide character type.
21757 (Eval_Arithmetic_Op): Check for compile time known signed integer
21758 overflow in the non-static case.
21759 (Subtypes_Statically_Match): A formal scalar type and its base type do
21760 not statically match.
21762 * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
21763 "not in" for test of N_Formal_Subprogram_Declaration (which is now a
21765 (Unit_Declaration_Node): Ditto.
21766 (Is_Variable_Prefix): For the case of an indexed component whose prefix
21767 has a packed array type, the prefix has been rewritten into a type
21768 conversion. Determine variable-ness from the converted expression.
21769 Handle wide wide character cases.
21771 * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
21773 * stringt.ads, stringt.adb: Handle full UTF-32 range.
21774 Remove ["0A"] from comment, since it can look like a line terminator.
21775 Currently we don't permit this, but this is under discussion by the
21776 ARG, and it is easy enough to use a different example.
21778 * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
21779 handling UTF-32 encoding for wide wide character.
21780 Implement new brackets coding ["hhhhhhhh"]
21781 Add UTF-8 encodings for full UTF-32 range
21783 * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
21785 * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
21786 bit range Add full UTF-32 support.
21787 (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
21788 notify that constraint error will be raised at run-time
21789 because a null value is assigned to a null-excluding object.
21790 Remove some obsolete declarations and make Char_Code
21793 * a-except.adb (Rcheck_30): New subprogram. Addition of the message
21794 corresponding to CE_Null_Not_Allowed, and adjust the output of all the
21795 Rcheck subprograms.
21797 * checks.adb (Check_Null_Not_Allowed): Replace the error message on
21798 wrong null-exclusion value by a warning message.
21799 (Enable_Range_Check): Do range check if the prefix is an
21800 explicit dereference whose designated object is an unconstrained array.
21801 Current algorithm for removing duplicate checks is over-eager in this
21804 * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
21805 null-exclusion value by a warning message
21807 * atree.h, atree.ads, atree.adb: Remove Char_Code field support
21808 completely. Add support for Uint2 field
21810 sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
21811 exp_prag.adb: Char_Literal_Value field is now a Uint.
21813 * exp_util.adb (Insert_Actions): Replace
21814 N_Formal_Subprogram_Declaration by
21815 N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
21816 Char_Literal_Value field is now a Uint.
21818 * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
21819 defined for subprogram renaming declarations. When set, the field
21820 indicates the defining entity of a corresponding formal subprogram
21821 when the renaming corresponds to a formal subprogram association in an
21823 (Set_Corresponding_Formal_Spec): New procedure to return
21824 Corresponding_Formal_Spec field.
21825 Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
21826 (which is now a subtype).
21827 Char_Literal_Value field is now a Uint
21829 * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
21830 pointer to the base of the dispatch table.
21831 Minor changes to comments.
21832 (Controlling_Type): New function for determining the tagged type
21833 associated with a tagged primitive subprogram.
21834 (Expand_Dispatching_Call): Add support for a controlling actual that is
21835 directly a value of type Ada.Tag rather than a tagged object.
21837 * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
21838 describing the new layout.
21839 (Dispatch_Table): The expander computes the actual array size, allocates
21840 the Dispatch_Table record accordingly, and generates code that displaces
21841 the base of the record after the Typeinfo_Ptr component. The access to
21842 these components is done by means of local functions.
21843 (Offset_To_Top): New function.
21844 (Typeinfo_Ptr): New function.
21845 (Get_TSD): Modified to access the new position of the TSD.
21846 (Set_TSD): Modified to save the TSD in its new position.
21848 * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
21849 case of formal abstract subprograms. Add check and message for -gnat05.
21852 * sem_ch12.adb: Add with and use for Sem_Disp.
21853 (Analyze_Associations): Minor change from "=" to "in" for use of
21854 N_Formal_Subtype_Declaration (which is now a subtype).
21855 (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
21856 N_Formal_Subtype_Declaration (which is now a subtype).
21857 (Analyze_Formal_Subprogram): Add handling for
21858 N_Formal_Abstract_Subprogram, marking the formal as abstract and
21859 dispatching, setting the controlling status of the formal parameters
21860 and result, and issuing an error if there is no controlling type for
21861 the formal subprogram.
21862 (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
21863 which is an unclean use of that field, we set the new field
21864 Corresponding_Formal_Spec to make the formal subprogram available to
21865 processing in Analyze_Subprogram_Declaration.
21866 (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
21867 Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
21868 Constrained, so that it is is does not statically match its anonymous
21871 * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
21872 abstract formal subprograms in error check for functions returning
21873 abstract types. Set scope of new designator for
21874 a parameterless subprogram, so that it is available when checking the
21875 body for nested subprograms, before full analysis of said body.
21876 (Analyze_Subprogram_Body): Warn on inlining bodies with nested
21877 subprogram only if inner one comes from source.
21878 (Analyze_Function_Call): If the call is given in object notation, the
21879 analysis of the name rewrites the node and analyzes it with the proper
21880 argument list. After analyzing the name, if the call has been rewritten
21881 and the result type is set, no further analysis is needed.
21882 (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
21883 mark in function specification, in a context where the formals are
21884 visible and hide outer homographs.
21886 * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
21887 as the tagged type for the cases of abstract formal subprograms and
21888 renamings of those. Clean up spec comments.
21889 (Check_Dispatching_Context): Add error message to indicate "abstract
21890 procedure", covering the case of a call to a formal abstract procedure
21891 that has statically tagged operands.
21892 (Check_Dispatching_Call): Check for the case of an actual given by
21893 a tag-indeterminate function call whose type is an ancestor of the
21894 containing call's associated tagged type. This situation can occur
21895 for inherited primitives with function defaults. In this case we
21896 use the tagged type's tag directly as the controlling argument for
21898 (Expand_Call): Name change on call to Expand_Dispatch_Call.
21900 * sprint.adb (Sprint_Node_Actual): Split
21901 N_Formal_Subprogram_Declaration into two alternatives for the new
21902 cases N_Formal_Abstract_Subprogram_Declaration and
21903 N_Formal_Concrete_Subprogram_Declaration.
21904 Char_Literal_Value field is now a Uint.
21906 * trans.c: Get rid of junk Uint2 reference.
21907 Char_Literal_Value field is now a Uint.
21908 (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
21909 (gigi): Correct third arg to gimplify_body.
21911 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
21912 (TYPE_LANG_FLAG_0): Check for record or union.
21914 * treepr.adb: Char_Literal_Value field is now a Uint
21916 * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
21919 * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
21920 Add full UTF-32 support
21921 Char_Code is now 32 bits
21923 * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
21924 wide character UTF_32 line terminators.
21925 Initialize Main_Source_File to avoid error when no main
21928 * errout.adb (Finalize): Do not check Num_SRef_Pragmas
21929 (Main_Source_File) when no main source has been loaded, to avoid
21932 2005-02-09 Robert Dewar <dewar@adacore.com>
21934 * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
21935 Fix name of Set routine
21937 * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
21940 * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
21941 a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
21944 * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
21945 forms of Get_Line subprograms for AI-301.
21947 * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
21948 a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
21949 a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
21950 a-stwima.ads: Minor reformatting.
21952 2005-02-09 Doug Rupp <rupp@adacore.com>
21953 Thomas Quinot <quinot@adacore.com>
21955 * adaint.c, adaint.h
21956 [VMS] (to_ptr32): New function.
21957 (MAYBE_TO_PTR32): New macro.
21958 (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
21960 [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
21961 [VMS] (#define fork()): Remove since unneccessary.
21962 (__gnat_set_close_on_exec): New routine to support
21963 GNAT.OS_Lib.Set_Close_On_Exec.
21965 * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
21966 the parent side as close-on-exec so that they are not inherited by the
21969 * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
21970 set or clear the FD_CLOEXEC flag on a file descriptor.
21972 2005-02-09 Eric Botcazou <ebotcazou@adacore.com>
21973 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
21977 (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
21978 on the field if Pragma Component_Alignment (Storage_Unit).
21979 (gnat_to_gnu_entity, case object): Do not treat a renaming that has
21980 side-effects as if it were a constant; also make SAVE_EXPR to protect
21982 (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
21984 (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
21985 (components_to_record): Test it.
21986 Fix improper usage of REFERENCE_CLASS_P.
21988 * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
21991 * utils2.c: Minor reformatting.
21993 * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
21994 handle other cases like RECORD_TYPE.
21996 * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
21998 2005-02-09 Ed Schonberg <schonberg@adacore.com>
22000 * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
22001 component of an array of arrays in an assignment context, and the
22002 aggregate has component associations that require sliding on
22003 assignment, force reanalysis of the aggregate to generate a temporary
22004 before the assignment.
22005 (Must_Slide): Make global to the package, for use in Gen_Assign.
22007 2005-02-09 Ed Schonberg <schonberg@adacore.com>
22009 * exp_ch4.adb (Expand_Composite_Equality): If a component is an
22010 unchecked union with no inferable discriminants, return a
22011 Raise_Program_Error node, rather than inserting it at the point the
22013 (Expand_Record_Equality, Component_Equality): Handle properly the case
22014 where some subcomponent is an unchecked union whose generated equality
22015 code raises program error.
22017 2005-02-09 Doug Rupp <rupp@adacore.com>
22019 * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
22020 [VMS] (#define exit hack): Remove.
22022 2005-02-09 Pascal Obry <obry@adacore.com>
22023 Arnaud Charlet <charlet@adacore.com>
22025 * init.c (__gnat_initialize): Add a new parameter eh which contains the
22026 address of the exception registration. The Win32 version of this
22027 routine calls __gnat_install_SEH_handler() to initialize the SEH
22028 (Structured Exception Handling) handler.
22029 (__gnat_error_handler) [Win32]: Removed. Not needed as we use
22030 SEH (Structured Exception Handling) now.
22031 (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
22032 (__gnat_initialize for ppc-vxworks): Adjust comments and the
22033 preprocessor condition protecting the call to the extra eh setup
22034 subprogram, which is only available for the ppc target.
22035 (__gnat_clear_exception_count): replaced reference to
22036 variable taskIdCurrent by call to taskIdSelf(), cleaner.
22038 * seh_init.c: New file.
22040 * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
22041 (GNATBIND_OBJS): Idem.
22043 * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
22044 routine takes a new parameter (a pointer to the exception registration
22045 for the SEH (Structured Exception Handling) support.
22047 * raise.h: (__gnat_install_SEH_handler): New prototype.
22048 Update copyright notice.
22050 * s-tassta.adb (Task_Wrapper): Declare the exception registration
22051 record and initialize it by calling __gnat_install_SEH_handler.
22053 2005-02-09 Vincent Celier <celier@adacore.com>
22055 * make.adb (Gnatmake): Do not fail when the main project has no object
22058 2005-02-09 Doug Rupp <rupp@adacore.com>
22060 * Makefile.in [VMS] (LN,LN_S): Define as cp -p
22061 Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
22062 [VMS]: Add translations for g-enblsp.adb.
22064 * s-asthan-vms.adb: Removed.
22065 * s-asthan-vms-alpha.adb: Added.
22067 2005-02-09 Pascal Obry <obry@adacore.com>
22069 * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
22070 (LIBGNAT_OBJS): Add seh_init.o.
22072 2005-02-09 Arnaud Charlet <charlet@adacore.com>
22075 * Makefile.in: Link all gnat tools with -static-libgcc, since
22076 -shared-libgcc is now used by default on some systems (e.g. linux with
22078 Remove references to Makefile.prolog/generic, no longer used.
22080 2005-02-09 Vincent Celier <celier@adacore.com>
22082 * prj-makr.adb (Process_Directory): Put file name in canonical case
22083 before matching against the patterns.
22084 If gnatname has been invoked as <prefix>-gnatname
22085 then invoke the compiler as <prefix>-gcc, not just "gcc".
22087 2005-02-09 Ed Schonberg <schonberg@adacore.com>
22089 * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
22090 with expansion disabled. The actual subtype is needed among other
22091 places when the selected component appears in the context of a loop
22092 bound, and denotes a packed array.
22093 (Operator_Check): Always use the first subtype in the
22094 error message, to avoid the appearance of internal base types.
22095 (Transform_Object_Operation): Copy each actual in full
22096 to the parameter associations of the constructed call, rather than
22097 using the shallow copy mechanism of New_Copy_List. This ensures that
22098 the chaining of named associations is done properly.
22099 (Complete_Object_Operation): Rewrite node, rather than
22100 replacing it, so that we can trace back to the original selected
22103 * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
22104 and calls that use object notation, if the called function is not
22105 declared in a withed unit, place the elaboration constraint on the
22106 unit in the context that makes the function accessible.
22107 (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
22108 imposes an elaboration constraint between two packages.
22110 2005-02-09 Ed Schonberg <schonberg@adacore.com>
22112 * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
22113 views of a private type after handling its private dependents, to
22114 maintain proper stack discipline between entry and exit from the
22117 2005-02-09 Cyrille Comar <comar@adacore.com>
22119 * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
22120 Minor reformatting.
22122 2005-02-09 Arnaud Charlet <charlet@adacore.com>
22124 * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
22125 fields for foreign threads.
22127 2005-02-09 Doug Rupp <rupp@adacore.com>
22129 * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
22130 recursion warnings when compiled with -gnatdm.
22132 2005-02-09 Robert Dewar <dewar@adacore.com>
22134 * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
22135 Slight fix to documentation of -gnaty with no parameters
22137 * xr_tabls.ads: Add ??? comment for missing overall comment
22139 * xsinfo.adb: Make default file name be sinfo.h, since this is what
22140 we now use by default.
22142 * xsnames.adb: Adjust end of file test to look for five space followed
22143 by '#' instead of six spaces. The format of xsnames.adb was modified
22144 in the last update.
22146 * a-numeri.ads: Add reference to AI-388 for greek letter pi
22149 * clean.adb: Minor reformatting.
22151 * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
22152 gnatname.adb: Minor reformatting
22153 Add 2005 to copyright output when utility is run
22155 * csets.adb: Eliminate obsolete comment
22157 * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
22160 * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
22162 2005-02-09 Sergey Rybin <rybin@adacore.com>
22164 * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
22165 the difference between compact and incompact layout and add the record
22166 representation clause to the example illustrating different layouts.
22167 Add the description of '-A5' gnatpp option ("align 'AT' keywords in
22168 component clauses").
22170 2005-02-09 Florian Villoing <villoing@adacore.com>
22172 * gnat_ugn.texi: Fix typos.
22173 Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
22175 Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
22176 in the generated documentation.
22178 2005-02-09 Arnaud Charlet <charlet@adacore.com>
22180 * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
22182 Update linker wrapper when linking with non GNU C++.
22184 2005-02-09 Pascal Obry <obry@adacore.com>
22187 Document the procedure to debug the DllMain routine on Windows.
22188 Add note about -funwind-tables and mixed Ada and C/C++ programming in
22190 Document new BIND qualifer /RETURN_CODES=VMS.
22192 2005-02-09 Ben Brosgol <brosgol@adacore.com>
22194 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
22195 Edited gnatmetric chapter
22197 2005-02-09 Robert Dewar <dewar@adacore.com>
22200 Changes to document new wide wide character support
22202 Update documentation on Normalize_Scalars and Initialize_Scalars
22204 2005-02-09 Pascal Obry <obry@adacore.com>
22206 * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
22208 2005-02-09 Jose Ruiz <ruiz@adacore.com>
22210 * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
22211 from the VxWorks kernel) that is needed for getting the active
22212 priority of the different tasks.
22214 * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
22215 Use a pragma Elaborate_Body in the spec file instead.
22216 Noticed by code reading.
22218 2005-02-09 Thomas Quinot <quinot@adacore.com>
22220 * exp_util.ads: Minor correction in comment.
22222 2005-02-09 Arnaud Charlet <charlet@adacore.com>
22224 * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
22225 since this procedure is now too complex to be worth inlining.
22227 2005-02-09 Richard Henderson <rth@redhat.com>
22229 * utils.c (gnat_define_builtin): Remove.
22230 (gnat_install_builtins): Use build_common_builtin_nodes.
22232 2005-02-09 Arnaud Charlet <charlet@adacore.com>
22234 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
22235 a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
22236 a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
22237 a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
22238 a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
22239 a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
22240 a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
22241 a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
22242 a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
22243 a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
22244 a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
22245 a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
22246 a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
22247 a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
22248 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
22249 a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
22250 a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
22251 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
22252 a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
22253 a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
22254 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
22255 a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
22256 a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
22257 a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
22258 a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
22259 a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
22260 a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
22261 a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
22262 a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
22263 a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
22264 a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
22265 a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
22266 a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
22267 a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
22270 2005-01-27 Laurent Guerby <laurent@guerby.net>
22272 * Makefile.in: Fix a-intnam.ads from previous commit,
22273 add 2005 to copyright.
22274 * a-intman-rtems.ads: Renamed to...
22275 * a-intnam-rtems.ads:
22277 2005-01-27 Laurent Guerby <laurent@guerby.net>
22279 * Makefile.in: Rename GNAT RTEMS specific files.
22280 * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
22281 5rosinte.ads, 5rparame.adb: Replaced by files below.
22282 * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
22283 s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
22285 2005-01-27 Joel Sherrill <joel.sherrill@oarcorp.com>
22286 Laurent Guerby <laurent@guerby.net>
22289 * 5rosinte.ads: Add No_Key constant.
22290 * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
22291 * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
22293 2005-01-26 Laurent Guerby <laurent@guerby.net>
22296 * i-cobol.adb (Valid_Numeric): Handle zero length case.
22298 2005-01-20 Richard Henderson <rth@redhat.com>
22300 * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
22301 a-intnam-linux.ads and system-linux-alpha.ads.
22302 * a-intnam-linux-alpha.ads: Remove file.
22303 * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
22304 * system-linux-alpha.ads: New file.
22306 2005-01-18 Jakub Jelinek <jakub@redhat.com>
22309 * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
22310 set to the new string.
22312 2005-01-18 Toon Moene <toon@moene.indiv.nluug.nl>
22314 * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
22317 2005-01-18 Richard Henderson <rth@redhat.com>
22319 * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
22320 THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
22322 * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
22324 2005-01-14 Andrew Pinski <pinskia@physics.uc.edu>
22326 * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
22327 (GCC_ZCX_Support): Likewise.
22329 2005-01-11 Bastian Blank <waldi@debian.org>
22331 * system-linux-s390.ads: Define Preallocated_Stacks.
22332 * system-linux-s390x.ads: Likewise.
22334 2005-01-04 Arnaud Charlet <charlet@adacore.com>
22336 * gnat_ugn.texi: Fix texi errors with null variables.
22338 2005-01-03 Thomas Quinot <quinot@adacore.com>
22340 * gen-soccon.c: New utility program to generate g-soccon.ads
22343 * socket.c, gsocket.h: Split inclusion of system header files into a
22344 gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
22346 * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
22347 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
22348 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
22349 g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
22350 should not be edited by hand anymore, but should be regenerated using
22353 2005-01-03 Robert Dewar <dewar@adacore.com>
22354 Ed Schonberg <schonberg@adacore.com>
22355 Vincent Celier <celier@adacore.com>
22357 * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
22358 on/off, since this is an obsolescent feature, for which we now generate
22361 * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
22362 warning mode is set and obsolescent usage of this attribute occurs.
22363 (Resolve_Access, case 'Access): Note that GNAT uses the context type to
22364 disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
22365 predates, and partly motivates, the adoption of the AI.
22366 Implement new Ada 2005 attribute Mod
22368 * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
22371 * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
22373 * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
22374 pragma restrictions.
22375 New entry for Ada 2005 attribute Mod.
22378 Add recognition of new pragma Restrictions No_Dependence
22379 Recognize restriction No_Obsolescent_Features at parse time
22381 * bcheck.adb: Add circuitry for checking for consistency of
22382 No_Dependence restrictions.
22384 * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
22387 * restrict.ads, restrict.adb: Add subprograms to deal with
22388 No_Dependence restrictions.
22390 * rtsfind.adb: Check that implicit with's do not violate No_Dependence
22393 * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
22394 sem_attr.adb: Add check for new restriction No_Obsolescent_Features
22396 * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
22397 dummy parameter to scng instantiation.
22398 Needed for new restriction No_Obsolescent_Features
22400 * scn.adb: (Obsolescent_Check): New procedure
22401 Needed for new restriction No_Obsolescent_Features
22403 * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
22404 specified by AI-285, needed for implementation of AI-388 (adding greek
22405 pi to Ada.Numerics).
22406 Add new generic formal to scng, needed for new restriction
22407 No_Obsolescent_Features.
22409 * s-rident.ads: Add new restriction No_Obsolescent_Features.
22411 * ali.ads, ali.adb: Adjustments for reading new No_Dependence
22412 restrictions lines.
22413 (Scan_ALI): When finding an unexpected character on an R line, raise
22414 exception Bad_R_Line, instead of calling Fatal_Error, so that, when
22415 Ignore_Errors is True, default restrictions are set and scanning of the
22416 ALI file continues with the next line. Also, when Bad_R_Line is raised
22417 and Ignore_Errors is True, skip to the end of le line.
22419 * sem_ch10.adb: Check that explicit with's do not violate
22420 No_Dependence restrictions.
22421 (Install_Withed_Unit): Add code to implement AI-377 and diagnose
22422 illegal context clauses containing child units of instance.
22424 * sem_prag.adb: Processing and checking for new No_Dependence
22426 (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
22427 analyze and check the External argument.
22429 * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
22431 2005-01-03 Robert Dewar <dewar@adacore.com>
22433 * atree.adb: Add a fifth component to entities
22434 This allows us to add 32 flags and four new fields
22436 * atree.ads: Add a fifth component to entities
22437 This allows us to add 32 flags and four new fields
22439 * einfo.ads, einfo.adb: Document new fields and new flags now available
22440 Add routines for printing new fields
22442 * treepr.adb: Call routines to print out additional fields if present
22444 2005-01-03 Arnaud Charlet <charlet@adacore.com>
22446 * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
22447 gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
22449 * Makefile.in: Add support to build shared Ada libraries on solaris x86
22450 Remove gpr2make, replaced by gprmake.
22451 Remove references to gnatmem and libaddr2line.
22452 Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
22453 (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
22454 Add support for specialized version of Ada.Numerics.Aux for Darwin: use
22455 a-numaux-darwin.ads and a-numaux-darwin.adb
22456 Enable mlib-tgt-lynxos.adb on lynxos.
22458 * Make-lang.in: Remove rules for gpr2make.
22459 When generating sdefault.adb, do not call Relocate_Path
22460 on S3 for function Target_Name, as it is not a path.
22461 Remove references to gnatmem and libaddr2line.
22463 * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
22466 2005-01-03 Samuel Tardieu <tardieu@adacore.com>
22468 * checks.adb (Apply_Alignment_Check): Generate a warning if an object
22469 address is incompatible with its base type alignment constraints when
22470 this can be decided statically.
22472 2005-01-03 Olivier Hainque <hainque@adacore.com>
22474 * decl.c (compatible_signatures_p): New function. The intended purpose
22475 is to check if two function signatures for a call-site and a callee are
22476 compatible enough for the call to be valid. The underlying purpose is
22477 to check if a call to a mapped builtin is using the right interface.
22478 The current code actually does not check antyhing - this a placeholder
22479 for future refinements.
22480 (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
22481 builtin calls for convention Intrinsic.
22483 * gigi.h (builtin_decl_for): Declare (new function).
22485 * utils.c (gnat_install_builtins): Install the target specific builtins.
22486 (builtin_decl_for): New function, provide a dummy body for now.
22488 2005-01-03 Geert Bosch <bosch@adacore.com>
22490 * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
22491 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
22492 (Pred): Implement in terms of Succ.
22494 * trans.c (convert_with_check): Reimplement conversion of float to
22497 2005-01-03 Ed Schonberg <schonberg@adacore.com>
22498 Vincent Celier <celier@adacore.com>
22500 * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
22501 bounds can be negative, and must be declared Int, not Nat.
22503 * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
22504 array is checked after using the index in the array.
22506 * makegpr.adb (Add_Switches): Check if there is a package for the
22507 processor. If there is no package, do not look for switches.
22509 2005-01-03 Ed Schonberg <schonberg@adacore.com>
22511 * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
22512 generation of predefined stream operations (specs and bodies) should
22513 proceed. Under various restrictions these subprograms must not be
22516 2005-01-03 Thomas Quinot <quinot@adacore.com>
22519 Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
22520 amount of PCS-specific code in RACW stubs generation.
22521 (Copy_Specification): Set Etype on copied formal parameter entities, as
22522 this information is needed for PolyORB stubs generation.
22523 (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
22524 variable Dynamic_Async.
22525 (Build_Subprogram_Receiving_Stubs): Make PCS-specific
22526 (Build_RPC_Receiver_Specification): Make generic again, as recent
22527 changes have allowed RPC receivers to have the same profile for both
22528 variants of the PCS.
22529 Reorganise RPC receiver generation to reduce differences between the
22530 structure of GARLIC and PolyORB RPC receivers.
22531 (Add_Receiving_Stubs_To_Declarations): Make this subprogram
22533 Simplify elaboration code for RCI packages.
22535 * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
22536 generation to reduce differences between the structure of GARLIC and
22537 PolyORB RPC receivers.
22539 * s-stratt.adb: Fix typo in comment.
22541 2005-01-03 Thomas Quinot <quinot@adacore.com>
22543 * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
22544 copied from Make_Init_Call).
22546 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
22547 reads and assignments on a temporary variable declared with appropriate
22550 2005-01-03 Robert Dewar <dewar@adacore.com>
22552 * i-c.adb (To_C): Raise CE if string is null and Append_Null
22554 2005-01-03 Robert Dewar <dewar@adacore.com>
22556 * i-cstrin.adb (Update): Do not append a null in form called with a
22557 String. This avoids unintended behavior.
22559 2005-01-03 Arnaud Charlet <charlet@adacore.com>
22562 * init.c: Fix warnings on Free BSD section.
22564 2005-01-03 Arnaud Charlet <charlet@adacore.com>
22567 * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
22570 2005-01-03 Vincent Celier <celier@adacore.com>
22572 * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
22573 libraries when Unique_Compile is True (-u switch).
22576 2005-01-03 Robert Dewar <dewar@adacore.com>
22578 * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
22579 upper case letter or underscore after W, as allowed by spec.
22581 2005-01-03 Arnaud Charlet <charlet@adacore.com>
22583 * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
22584 darwin port by using proper type definitions from header files.
22585 Use SIGTERM instead of SIGABRT for SIGADAABORT.
22587 2005-01-03 Robert Dewar <dewar@adacore.com>
22589 * par.adb: Enhance error message handling for configuration file
22592 2005-01-03 Robert Dewar <dewar@adacore.com>
22594 * s-arit64.adb (Double_Divide): Put back changes that got accidentally
22595 removed during the previous update (test properly for case of dividing
22596 largest negative number by -1, which generates overflow).
22598 2005-01-03 Ed Schonberg <schonberg@adacore.com>
22599 Sergey Rybin <rybin@adacore.com>
22601 * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
22602 to use as the defining identifier for a formal package.
22603 (Remove_Parent): If the instance takes place within (an instance of)
22604 a sibling, preserve private declarations of common parent.
22606 2005-01-03 Ed Schonberg <schonberg@adacore.com>
22608 * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
22609 to determine whether one of the operands is a fixed-point type for
22610 which a user-defined multiplication or division operation might be
22613 * sem_res.adb (Valid_Conversion): The legality rules for conversions
22614 of access types are symmetric in Ada 2005: either designated type can
22617 2005-01-03 Vincent Celier <celier@adacore.com>
22619 * s-fileio.adb (Temp_File_Record): Change length of string component
22620 Name from L_tmpnam + 1 to max_path_len + 1.
22622 2005-01-03 Arnaud Charlet <charlet@adacore.com>
22624 * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
22625 Self_Id.Deferral_Level = 0.
22626 (Do_Pending_Action): Move this function to the spec.
22628 * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
22629 Do_Pending_Action explicitely when needed, in case we're using
22630 No_Abort restrictions.
22632 * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
22633 deferral level since it will not get changed by the generated code.
22634 Keeping a default value of 1 would prevent some operations (e.g.
22635 select or delay) to proceed successfully.
22637 2005-01-03 Ben Brosgol <brosgol@adacore.com>
22638 Robert Dewar <dewar@adacore.com>
22639 Cyrille Comar <comar@adacore.com>
22641 * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
22642 porting guide chapter (vms version).
22643 Revised doc title (removed "for native platforms") and subtitle.
22644 Add discussion on warning flag for obsolescent features. First we
22645 note that it applies to obsolete GNAT features, which was previously
22646 omitted. Second we contrast the behavior with that of the new
22647 Ada 2005 AI-368 restriction No_Obsolescent_Features.
22648 Preliminary rewriting of GNAT & libraries chapter in order to take
22649 into account default project locations & new project manager
22652 2005-01-03 Robert Dewar <dewar@adacore.com>
22654 * cstand.adb (Create_Operators): Clean up format and documentation of
22655 unary and binary operator result tables. No change in code, just
22656 reformatting and addition of comments.
22658 * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
22659 sem_ch2.adb: Minor reformatting
22661 * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
22662 sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
22663 comments for Tree_Read and Tree_Write.
22665 2005-01-03 Pascal Obry <obry@adacore.com>
22667 * exp_attr.ads: Minor reformatting.
22669 2005-01-03 Romain Berrendonner <berrendo@adacore.com>
22671 * comperr.adb (Compiler_Abort): Add specialized message for GAP
22674 2005-01-03 Ed Schonberg <schonberg@adacore.com>
22676 * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
22677 whether the ancestor type is private, as may be the case with nested
22680 2004-12-30 Sohail Somani <sohail@sohailsomani.com>
22683 * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
22685 2004-12-23 Eric Botcazou <ebotcazou@libertysurf.fr>
22687 * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
22688 * utils2.c (build_unary_op): Likewise.
22690 2004-12-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22692 * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
22694 2004-12-19 Richard Henderson <rth@redhat.com>
22696 * trans.c (gigi): Update gimplify_body call.
22698 2004-12-09 Nathan Sidwell <nathan@codesourcery.com>
22700 * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
22702 2004-12-07 Ed Falis <falis@adacore.com>
22704 * s-intman-vxworks.adb (Notify_Exception): removed useless check for
22705 current task being suspended.
22707 * init.c (__gnat_clear_exception): added to reset VxWorks exception
22709 (__gnat_map_signal): removed test for current task being suspended.
22711 2004-12-07 Gary Dismukes <dismukes@adacore.com>
22713 * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
22714 from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
22715 targets (such as AAMP).
22717 2004-12-07 Ed Schonberg <schonberg@adacore.com>
22719 * atree.adb (Visit_Itype): Create a new name for the generated itype,
22720 because the back-end may otherwise treat it as a redefinition of the
22723 2004-12-07 Eric Botcazou <ebotcazou@adacore.com>
22725 * back_end.adb (Scan_Back_End_Switches): Accept --param.
22727 * lang-specs.h: Accept --param.
22729 2004-12-07 Vincent Celier <celier@adacore.com>
22731 * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
22732 package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
22733 Current_Body_Suffix => Ada_Body_Suffix).
22734 Take into account Externally_Built attribute.
22736 * clean.adb (In_Extension_Chain): Always return False when one of the
22737 parameter is No_Project.
22738 (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
22739 Ada_Language_Index).
22740 (Gnatclean): Adapt to change in package Prj.Pars (no parameter
22741 Process_Languages for procedure Parse).
22743 * gnatcmd.adb (Carg_Switches): New table.
22744 (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
22745 Adapt to name changes in package Prj (Current_Spec_Suffix =>
22746 Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
22748 * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
22749 Header_Num and function Hash are now declared in package Prj,
22752 * prj.adb (Suffix_Of): New function.
22753 (Set (Suffix)): New procedure.
22754 (Hash): One function moved from Prj.Com
22755 (Is_Present, Language_Processing_Data_Of): New functions
22756 (Set): Two new procedures
22757 (Add_Language_Name, Display_Language_Name): New procedures
22759 * prj.ads: (Suffix_Of): New function
22760 (Set (Suffix)): New procedure
22761 Add several types and tables for multi-language support.
22762 (Header_Num): Type moved from Prj.Com
22763 (Hash): Two functions moved from Prj.Com
22764 (Is_Present, Language_Processing_Data_Of): New functions
22765 (Set): Two new procedures
22766 (Add_Language_Name, Display_Language_Name): New procedures
22767 (Naming): Component name changes:
22768 Current_Spec_Suffix => Ada_Spec_Suffix,
22769 Current_Body_Suffix => Ada_Body_Suffix. Add new components:
22770 Impl_Suffixes, Supp_Suffixes.
22771 (Project_Data): New components: Externally_Built, Supp_Languages,
22772 First_Language_Processing, Supp_Language_Processing, Default_Linker,
22773 Default_Linker_Path.
22775 * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
22776 new package Language_Processing with its attributes (Compiler_Driver,
22777 Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
22778 Binder_Driver, Default_Linker).
22780 * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
22781 (Header_Num): Type moved to package Prj
22783 * prj-env.adb: Adapt to name changes in package Prj
22784 (Current_Spec_Suffix => Ada_Spec_Suffix,
22785 Current_Body_Suffix => Ada_Body_Suffix).
22787 * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
22788 default to the project path, except the "-" is one of the directories
22789 in env var ADA_PROJECT_PATH.
22790 (Current_Project_Path): Global variable, replacing Project_Path
22791 that was in the body of Prj.Part.
22792 (Project_Path): New function
22793 (Set_Project_Path): New procedure
22794 Initialize Current_Project_Path during elaboration of the package
22795 Remove dependency on Prj.Com, no longer needed
22797 * prj-ext.ads (Project_Path): New function
22798 (Set_Project_Path): New procedure
22800 * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
22801 suffix is defined for language <lang>.
22802 (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
22803 accessing directly the components of Naming.
22804 (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
22805 Reorganise of this package.
22806 Break procedure Check in several procedures.
22808 * prj-nmsc.ads: Replace all procedures (Ada_Check,
22809 Other_Languages_Check and Language_Independent_Check) with a single
22812 * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
22813 Process_Languages, no longer needed.
22815 * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
22816 Current_Project_Path.
22817 Remove elaboration code, moved to the body of Prj.Ext
22818 Use new function Prj.Ext.Project_Path instead of old variable
22820 (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
22821 When comparing with project paths on the stack, first put the resolved
22822 path in canonical case.
22823 (Parse_Single_Project): Set the path name of the project file in the
22824 tree to the normalized path.
22826 * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
22827 parameter Process_Languages, no longer needed.
22828 (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
22829 Other_Languages_Check.
22831 * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
22832 to store the resolved canonical path of the project file.
22833 Remove dependency to Prj.Com, no longer needed
22835 * prj-util.adb: Adapt to name changes in package Prj
22836 (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
22839 * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
22840 Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
22841 Externally_Built, Include_Option, Language_Processing.
22843 * makegpr.adb: Numerous changes due to changes in packages
22846 * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
22847 default to the project path, except whe "-" is one of the directories
22848 in env var ADA_PROJECT_PATH.
22849 (Gnatls): In verbose mode, add the new section "Project Search Path:"
22851 2004-12-07 Robert Dewar <dewar@adacore.com>
22853 * debug.adb: Document that -gnatdA automatically sets -gnatR3m
22855 * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
22858 * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
22859 flag. No longer needed now that we handle this in gnat1drv.adb.
22861 * repinfo.ads: Minor reformatting
22863 2004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22864 Olivier Hainque <hainque@adacore.com>
22865 Eric Botcazou <ebotcazou@adacore.com>
22867 * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
22868 TYPE_SIZE_UNIT of result type if SIZE is not specified.
22869 (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
22870 of a bitfield, which we know is useless and causes trouble because of
22871 alignment implications.
22873 * utils.c (create_var_decl): Set DECL_COMMON again on targets without
22875 (process_attributes): Clear DECL_COMMON again when a section attribute
22877 (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
22878 SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
22879 (create_field_decl): Special case ADDRESSABLE negative to mean
22880 "no bitfield creation", to be used by make_aligning_type. Don't
22881 restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
22882 fields claimed addressable still have to be bitfields. Use
22883 value_factor_p instead of a raw binop construction to check for the
22884 position's alignment.
22886 2004-12-07 Geert Bosch <bosch@adacore.com>
22888 * eval_fat.adb: Revert previous change.
22890 2004-12-07 Thomas Quinot <quinot@adacore.com>
22891 Ed Schonberg <schonberg@adacore.com>
22893 * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
22894 with an implicit dereference as its prefix, use
22895 Insert_Explicit_Dereference instead of merely rewriting the prefix into
22896 an explicit dereference. This ensures that a reference to the original
22897 prefix is generated, if appropriate.
22899 * sem_util.adb (Insert_Explicit_Dereference): When an implicit
22900 dereference is rewritten to an explicit one, generate a reference to
22901 the entity denoted by its prefix using the original prefix node, so
22902 the dereference can be properly recorded as a read of the denoted
22903 access value, if appropriate.
22905 * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
22906 emitting 'assigned but never read' warning on a variable on the basis
22907 that it has an access type.
22908 (Check_References): Emit unreferenced warning when the scope is a
22911 2004-12-07 Robert Dewar <dewar@adacore.com>
22912 Ed Schonberg <schonberg@adacore.com>
22914 * exp_ch6.adb (Expand_Call): Add comment on handling of back end
22917 * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
22918 leaving call unchanged.
22919 This deals with the case where the pragma Import specified
22920 an external name, to be handled by the back end.
22922 * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
22923 subprogram which is Imported with convention Intrinsic if an
22924 External_Name argument is specified.
22925 (Process_Import_Or_Interface): Properly diagnose link name argument.
22926 (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
22927 with Sem_Ch6.Cannot_Inline.
22928 (Process_Inline): Provide separate warning for inapplicable inline
22930 (Cannot_Inline): Reject subprograms that have an at_end handler, so that
22931 treatment is uniform on different targets.
22933 2004-12-07 Ed Schonberg <schonberg@adacore.com>
22935 * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
22936 construct is rewritten, preserve end label to permit source navigation.
22938 2004-12-07 Thomas Quinot <quinot@adacore.com>
22940 * exp_dist.adb (Specific_Build_General_Calling_Stubs,
22941 Specific_Build_Stub_Target): New subprograms.
22942 (Build_Subprogram_Calling_Stubs): Make this procedure independent from
22943 the PCS implementation used, using the above PCS-customized subprograms.
22944 Minor reformatting.
22945 (PolyORB_Support.Helpers): New subunit containing supporting subprograms
22946 for generation of DSA code targeted to the PolyORB PCS.
22947 (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
22948 implementation of the partition communication subsystem in ancillary
22950 (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
22951 PolyORB_Support.Build_Stub_Type): New subrograms containing the
22952 PCS-specific part of Add_Stub_Type.
22953 (Insert_Partition_Check): Use runtime library function to perform
22956 * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
22957 (RE_Same_Partition): New entity, from s-parint.
22959 * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
22961 2004-12-07 Gary Dismukes <dismukes@adacore.com>
22963 * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
22964 Output the copyright message on a separate line from the version
22967 2004-12-07 Joel Brobecker <brobecker@adacore.com>
22969 * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
22970 compile-time warning.
22972 2004-12-07 Robert Dewar <dewar@adacore.com>
22974 * g-regpat.adb: (Match): Change a misuse of or to or else
22976 2004-12-07 Ed Schonberg <schonberg@adacore.com>
22979 (Generate_Reference): Handle properly a reference to an entry formal,
22980 when an accept statement has a pragma Unreferenced for it.
22982 * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
22983 and the Has_Pragma_Unreferenced flag for each formal before analyzing
22984 the body, to ensure that warnings are properly emitted for each accept
22985 statement of a given task entry.
22987 2004-12-07 Vasiliy Fofanov <fofanov@adacore.com>
22989 * Makefile.in: Add support for foreign threads on VMS.
22991 2004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22993 * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
22995 (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
22997 * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
22999 * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
23001 (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
23003 2004-12-07 Robert Dewar <dewar@adacore.com>
23005 * nlists.adb (Prepend_Debug): Remove parameters and nest within
23007 (Remove_Next_Debug): Same fix
23009 * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
23010 maintain back pointers now, though we did not used to, and comments
23012 (Prepend): Remove pragma Inline.
23013 (Remove_Next): Same cleanup
23015 2004-12-07 Thomas Quinot <quinot@adacore.com>
23017 * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
23018 used to record an implicit dereference as a read operation on its
23019 prefix when operating under -gnatc. Necessary to avoid spurious
23020 'variable assigned but never read' warnings in that mode.
23021 (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
23022 is a non-overloaded implicit dereference, call the above subprogram to
23023 ensure proper recording of references.
23025 2004-12-07 Gary Dismukes <dismukes@adacore.com>
23027 * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
23028 to be resolved later as part of Analyze_Iteration_Scheme's call to
23031 2004-12-07 Ed Schonberg <schonberg@adacore.com>
23033 * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
23034 prefix is not a scalar type, place error message on prefix, not on
23037 2004-12-07 Bernard Banner <banner@adacore.com>
23039 * vxaddr2line.adb: Add support for x86 vxworks
23041 2004-12-07 Thomas Quinot <quinot@adacore.com>
23043 * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
23044 documentation of the behaviour of these functions when passed an IP
23045 address that has no record in the system hosts database and no reverse
23048 * cstand.adb, a-tags.ads: Fix typos in comment.
23050 2004-12-07 Robert Dewar <dewar@adacore.com>
23052 * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
23053 exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
23054 sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
23055 s-poosiz.ads: Minor reformatting
23057 * make.adb: Minor reformatting
23058 Add some ??? comments asking for more comments
23060 * s-poosiz.adb: Minor reformatting
23061 Add comments on alignment requirement
23063 * sinfo.ads: Remove obsolete comment and fix typo.
23065 2004-12-07 Vincent Celier <celier@adacore.com>
23066 Sergey Rybin <rybin@adacore.com>
23068 * gnat_ugn.texi: Update the section "The GNAT Driver and Project
23069 Files" with the new tool and package names.
23070 Reformatting to suppress most of the warnings for line too long
23071 Document the new section "Project Search Path:" in the output of
23073 Add gnatmetric section
23075 2004-12-07 Vincent Celier <celier@adacore.com>
23077 * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
23078 -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
23079 and -eit to -ept. Added qualifier
23080 /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
23082 2004-11-27 Andreas Schwab <schwab@suse.de>
23084 * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
23086 2004-11-25 Arnaud Charlet <charlet@adacore.com>
23088 * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
23089 internal implementation unit GNAT.Sockets.Thin,
23090 as their usage for sockets is non-portable (using the read and write
23091 functions from the system runtime library is fine on UNIX but won't
23092 work under Windows).
23094 * mingw32.h: Update copyright notice.
23096 2004-11-25 Arnaud Charlet <charlet@adacore.com>
23098 * ada-tree.h: Minor reformatting of previous change to avoid lines
23099 longer than 79 characters.
23101 2004-11-25 Olivier Hainque <hainque@adacore.com>
23103 * tb-gcc.c: GCC infrastructure based implementation of
23106 2004-11-24 Steven Bosscher <stevenb@suse.de>
23108 * misc.c (gnat_post_options): Don't clear
23109 flag_inline_functions.
23111 2004-11-22 Andrew Pinski <pinskia@physics.uc.edu>
23114 * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
23117 2004-11-21 Andreas Jaeger <aj@suse.de>
23119 * stylesw.adb: Change Style_Check_Subprogram_Order to
23120 Style_Check_Order_Subprograms.
23122 2004-11-18 Arnaud Charlet <charlet@adacore.com>
23124 * adaint.h, adaint.c
23125 (__gnat_portable_spawn): Fix cast of spawnvp third parameter
23127 Add also a cast to kill another warning.
23128 (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
23129 parameter with the priority class of the parent process instead of
23130 always using the NORMAL_PRIORITY_CLASS.
23131 (__gnat_dup): New function.
23132 (__gnat_dup2): New function.
23133 (__gnat_is_symbolic_link): Enable the effective body of this
23134 function when __APPLE__ is defined.
23136 * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
23139 2004-11-18 Olivier Hainque <hainque@adacore.com>
23141 * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
23142 address of which may be used to represent "others" and "all others"
23143 choices in exception tables, instead of the current harcoded
23144 (void *)0 and (void *)1.
23145 (Setup_Exception): Do nothing in the GNAT SJLJ case.
23147 * gigi.h (others_decl, all_others_decl): New decls representing the
23148 new Others_Value and All_Others_Value objects.
23149 (struct attrib): Rename "arg" component as "args", since GCC expects a
23150 list of arguments in there.
23152 * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
23153 corresponding objects exported by a-exexpr, instead of hardcoded dummy
23156 * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
23157 others_decl and all_others_decl instead of hardcoded dummy addresses
23158 to represent "others" and "all others" choices, which is cleaner and
23159 more flexible with respect to the possible eh pointer encoding policies.
23161 * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
23162 (process_attributes): Account for the naming change of the "args"
23163 attribute list entry component.
23165 * decl.c (build_attr_list): Rename into prepend_attributes to allow
23166 cumulating attributes for different entities into a single list.
23167 (gnat_to_gnu_entity): Use prepend_attributes to build the list of
23168 attributes for the current entity and propagate first subtype
23169 attributes to other subtypes.
23170 <E_Procedure>: Attribute arguments are attr->args and not
23171 attr->arg any more.
23172 (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
23173 argument provided, as this is what GCC expects. Use NULL_TREE instead
23176 2004-11-18 Robert Dewar <dewar@adacore.com>
23178 * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
23179 Minor reformatting througout (including new function specs)
23180 Add ??? comments asking for clarification.
23182 2004-11-18 Thomas Quinot <quinot@adacore.com>
23184 * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
23185 incomplete duplicate implementation of this subprogram from butil.
23187 2004-11-18 Thomas Quinot <quinot@adacore.com>
23189 * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
23190 procedures factors the common processing for building an RPC receiver
23191 for an RCI package or an RACW type.
23192 Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
23193 Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
23194 (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
23196 (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
23198 (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
23200 (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
23201 distribution subprogram identifiers that are either subprogram numbers
23203 (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
23204 string distribution identifiers assigned to a given subprogram.
23205 (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
23206 (Add_RAS_Dereference_TSS): Add comments.
23207 (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
23208 is not referenced yet because it will be used by the PolyORB DSA
23210 (Insert_Partition_Check): Remove fossile code.
23211 (First_RCI_Subprogram_Id): Document this constant.
23212 (Add_RAS_Access_TSS): Correct the setting of the Etype of the
23214 (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
23215 replaced with calls to Get_Library_Unit_Name_String. Previously there
23216 were several instances of the same code in different locations in the
23217 compiler; this checkin completes the replacement of all of these
23218 instances with calls to a common subprogram.
23219 Minor reformatting.
23221 * sem_dist.adb: Remove comment noting that RPC receiver generation
23222 should be disabled for RACWs that implement RASs.
23223 (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
23225 * sem_util.ads, sem_util.adb (Has_Stream): New function
23226 (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
23227 qualified name of a library unit into the name buffer.
23228 (Note_Possible_Modification): Generate a reference only
23229 if the context comes from source.
23231 * snames.ads (PCS_Names): New subtype corresponding to names of
23232 supported implementations of the Partition Communication Subsystem
23233 (PCS) (i.e. the runtime library support modules for the distributed
23236 2004-11-18 Robert Dewar <dewar@adacore.com>
23237 Ed Schonberg <schonberg@adacore.com>
23239 * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
23240 (Has_Rep_Pragma): New function
23241 (Has_Attribute_Definition_Clause): New function
23242 (Record_Rep_Pragma): Moved here from sem_ch13.adb
23243 (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
23245 * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
23247 * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
23248 (Expand_Pragma_Psect_Object): New procedure
23249 These procedures contain the revised and cleaned up processing for
23250 these two pragmas. This processing was formerly in Sem_Prag, but
23251 is more appropriately moved here. The cleanup involves making sure
23252 that the pragmas are properly attached to the tree, and that no
23253 nodes are improperly shared.
23255 * sem_prag.adb: Move expansion of Common_Object and Psect_Object
23256 pragmas to Exp_Prag, which is more appropriate.
23257 Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
23258 check for duplicates Remove use of Is_Psected flag, no longer needed.
23259 Use new Make_String_Literal function with string.
23261 * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
23262 that are functions return universal values, that have to be converted
23263 to the context type.
23264 Use new Make_String_Literal function with string.
23265 (Get_Stream_Convert_Pragma): New function, replaces the use of
23266 Get_Rep_Pragma, which had to be kludged to work in this case.
23268 * freeze.adb: Use new Has_Rep_Pragma function
23270 * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
23271 function with string.
23272 Use new Has_Rep_Pragma function.
23274 * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
23277 2004-11-18 Robert Dewar <dewar@adacore.com>
23279 * errout.ads, errout.adb: (First_Sloc): New function
23281 * par-ch5.adb (P_Condition): Check for redundant parens is now a style
23282 check (-gnatyx) instead of being included as a redundant construct
23285 * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
23286 Style_Check_Order_Subprograms.
23288 * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
23289 stylesw.adb: Add Style_Check_Xtra_Parens
23291 * usage.adb: Add line for -gnatyx (check extra parens)
23293 * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
23295 2004-11-18 Ed Schonberg <schonberg@adacore.com>
23296 Robert Dewar <dewar@adacore.com>
23298 * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
23299 discriminant of a constrained subtype, analyze the copy of the
23300 corresponding constraint, because in some cases it may be only
23301 partially analyzed.
23302 Removes long-lived ??? comments.
23304 * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
23305 handled controlled or secondary-stack expressions within the
23306 iteration_scheme of a loop.
23308 * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
23309 bounds that may contain functions calls, to prevent memory leaks when
23310 the bound contains a call to a function that uses the secondary stack.
23311 (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
23312 generate temporaries for loop bounds that might contain function calls
23313 that require secondary stack and/or finalization actions.
23315 * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
23316 selected component and the selector is overloadable (not just a
23317 function) treat as function call, Analyze_Call will disambiguate if
23319 (Analyze_Selected_Component): Do not generate an actual subtype for the
23320 selected component if expansion is disabled. The actual subtype is only
23321 needed for constraint checks.
23322 (Analyze_Allocator): If restriction No_Streams is set, then do
23323 not permit objects to be declared of a stream type, or of a
23324 composite type containing a stream.
23326 * restrict.ads: Remove the a-stream entry from Unit_Array, since
23327 No_Streams no longer prohibits with'ing this package.
23329 * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
23330 discriminants, but the parent base has unknown discriminants, there is
23331 no discriminant constraint to inherit. Such a discrepancy can arise
23332 when the actual for a formal type with unknown discriminants is a
23333 similar private type whose full view has discriminants.
23334 (Analyze_Object_Declaration): If restriction No_Streams is set, then
23335 do not permit objects to be declared of a stream type, or of a
23336 composite type containing a stream.
23338 2004-11-18 Ed Schonberg <schonberg@adacore.com>
23340 * exp_dbug.ads: Update documentation to reflect simpler encoding for
23341 protected operations.
23343 * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
23344 generated name, it complicates decoding in gdb and hinders debugging
23345 of protected operations.
23346 (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
23347 flag for the protected entry barrier function.
23348 (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
23349 flag for the protected entry function.
23351 2004-11-18 Nicolas Setton <setton@adacore.com>
23353 * expect.c: Define __unix__ when __APPLE__ is defined.
23355 * Makefile.in: Inform the value of the variable GMEM_LIB in the
23356 Darwin-specific section.
23358 * lang-specs.h: Change the placement of the %1 marker.
23359 Works around the fact that gcc adds -fPIC by default under Darwin.
23361 2004-11-18 Ed Schonberg <schonberg@adacore.com>
23363 * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
23364 type of the object with the packed array type, set the Analyzed flag
23365 on the object if it is an entity or simple indexed component, to avoid
23366 spurious type errors.
23368 2004-11-18 Gary Dismukes <dismukes@adacore.com>
23370 * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
23371 gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
23372 separate line from the version message.
23374 2004-11-18 Ed Falis <falis@adacore.com>
23376 * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
23378 (init_float): Eliminate initialization of floating point status for
23379 AE653. The instructions have no effect for vThreads.
23381 2004-11-18 Vincent Celier <celier@adacore.com>
23383 * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
23384 gnatbind is invoked with -shared.
23386 2004-11-18 Jose Ruiz <ruiz@adacore.com>
23388 * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
23389 for Detect_Blocking which is redundant with the check done within the
23390 procedure Protected_Single_Entry_Call.
23391 (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
23392 Detect_Blocking which is redundant with the check done within the
23393 procedure Protected_Single_Entry_Call.
23395 2004-11-18 Vincent Celier <celier@adacore.com>
23397 * makegpr.adb (Compile): Put the compiling switches (in package
23398 Compiler and on the command line) immediately after "-c", instead of
23399 at the end of the command line invocation of the compiler, when
23400 compiling a non-Ada file.
23401 (Build_Global_Archive): When there is no need to rebuild the archive,
23402 set Global_Archive_Exists, so that the archive is passed to the linker
23405 2004-11-18 Robert Dewar <dewar@adacore.com>
23406 Sergey Rybin <rybin@adacore.com>
23409 Remove extra paren check from list of checks for redundant constructs
23410 Add documentation of new -gnatyx style check (check extra parens)
23411 Remove paragraph about gnatelim debug options.
23413 * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
23414 objects rather than forbidding dependencies on the package Ada.Streams.
23416 * sinfo.ads: Add ??? note that we should document pragmas passed to
23419 * g-expect.ads: Fix a few typos in the comments.
23421 2004-11-09 Joseph S. Myers <joseph@codesourcery.com>
23423 * misc.c (gnat_handle_option): Use %< and %> for quoting in
23426 2004-11-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
23428 * a-numaux-x86.adb (Tan): Fix fdivp syntax.
23430 2004-11-07 Andreas Schwab <schwab@suse.de>
23432 * Makefile.in (install-gnatlib): Remove spurious hyphen.
23434 2004-11-02 Andrew Pinski <pinskia@physics.uc.edu>
23437 * Makefile.in (darwin): Set soext to .dylib.
23439 2004-10-26 Vincent Celier <celier@gnat.com>
23440 Thomas Quinot <quinot@act-europe.fr>
23442 * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
23443 (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
23444 there is no use of GNAT.Sockets.Constants.
23445 Remove remaining pragma Import for C_Write
23446 Remove C_Read and C_Write from internal implementation unit
23447 GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
23448 the read and write functions from the system runtime library is fine
23449 on UNIX but won't work under Windows).
23451 * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
23452 (Check_Selector): Use C_Recv instead of C_Read.
23453 Selectors are the GNAT.Sockets abstraction to perform a select()
23454 call on a set of descriptors. To allow abortion of an ongoing
23455 select operation, some data is written to a dedicated socket that
23456 is always monitored.
23457 Under Windows, the write and read library functions cannot operate
23458 on sockets, so we need to use send and recv instead, which is portable
23459 across all supported platforms.
23461 * g-socthi.ads: Remove C_Read and C_Write from internal implementation
23462 unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
23463 (using the read and write functions from the system runtime library is
23464 fine on UNIX but won't work under Windows).
23466 2004-10-26 Nicolas Setton <setton@act-europe.fr>
23468 * mlib-tgt-darwin.adb: New file.
23470 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
23471 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
23472 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
23473 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
23476 * Makefile.in: Add support for building shared libraries under Darwin.
23477 (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
23478 the low level EH init subprogram to be called from __gnat_initialize.
23480 * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
23481 indicates which options to pass to the archive indexer.
23483 * mlib-utl.adb: Add support for calling ranlib with additional
23484 options. This is needed for instance under Mac OS X.
23485 (Ranlib_Options): New global variable, used to store the potential
23486 options to pass to ranlib.
23487 (Ar): Use Ranlib_Options when spawning ranlib.
23488 (Initialize): Set the value of ranlib option.
23490 2004-10-26 Olivier Hainque <hainque@act-europe.fr>
23492 * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
23493 instead of 8K, to reflect the real potential needs for stack-checking
23496 2004-10-26 Pascal Obry <obry@gnat.com>
23498 * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
23500 * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
23501 Windows only the initial thread stack size can be set so it is good to
23502 start we a low stack size.
23503 The OS will adjust the size as needed.
23505 2004-10-26 Olivier Hainque <hainque@act-europe.fr>
23506 Nicolas Setton <setton@act-europe.fr>
23508 * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
23509 "__unix__" instead of "unix".
23510 The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
23511 sections were just mistakenly ignored. The former is
23512 implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
23513 Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
23514 of hpux. This prevents an unwanted definition of the symbol
23515 convert_addresses in adaint.o.
23517 2004-10-26 Gary Dismukes <dismukes@gnat.com>
23519 * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
23520 compatibility with type Unwind_Word on 16-bit targets such as AAMP.
23522 2004-10-26 Cyrille Comar <comar@act-europe.fr>
23524 * a-filico.ads, a-filico.adb: fix incorrect header.
23526 2004-10-26 Javier Miranda <miranda@gnat.com>
23528 * a-ststio.ads: Fix typo in identifier
23530 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
23532 * sem_ch4.adb: Minor reformatting.
23534 2004-10-26 Ed Schonberg <schonberg@gnat.com>
23536 * checks.adb (Expr_Known_Valid): If floating-point validity checks are
23537 enabled, check the result of unary and binary operations when the
23538 expression is the right-hand side of an assignment.
23540 2004-10-26 Vincent Celier <celier@gnat.com>
23542 * clean.adb (Delete): Do not output warnings when in quiet output and
23543 not in verbose mode.
23544 (Force_Deletions): New Boolean flag, defaulted to False
23545 (Delete): Only delete a file if it is writable, and when
23546 Force_Deletions is True.
23547 (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
23548 (Usage): Line for new switch -f
23549 (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
23552 2004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
23554 * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
23555 JM type only if its size matches that of the wrapper. When a size is
23556 prescribed and the field is not aliased, remove the wrapper of a JM
23557 type only if the size is not greater than that of the packed array.
23558 (gnat_to_gnu_entity): Change the extension of packed array wrappers
23561 2004-10-26 Geert Bosch <bosch@gnat.com>
23563 * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
23564 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
23565 (Pred): Implement in terms of Succ.
23567 2004-10-26 Ed Schonberg <schonberg@gnat.com>
23569 * exp_aggr.adb (Safe_Component): An aggregate component that is an
23570 unchecked conversion is safe for in-place use if the expression of the
23571 conversion is safe.
23572 (Expand_Array_Aggregate): An aggregate that initializes an allocator may
23573 be expandable in place even if the aggregate does not come from source.
23574 (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
23575 designated object of an allocator in place, rather than building it
23576 first on the stack. The previous scheme forces a full copy of the array,
23577 and may be altogether unsusable if the size of the array is too large
23578 for stack allocation.
23580 2004-10-26 Robert Dewar <dewar@gnat.com>
23582 * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
23583 compares if the component is atomic.
23585 * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
23586 array assignment if the component type is atomic.
23588 2004-10-26 Ed Schonberg <schonberg@gnat.com>
23589 Eric Botcazou <ebotcazou@act-europe.fr>
23591 * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
23592 is aliased and is a by_reference type, do not pass by copy.
23593 (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
23594 detect whether the call is in the right side of an assignment or
23595 the expression of an object declaration. Recurse on component
23596 association within aggregates.
23597 Call it in the condition that determines whether the temporary is
23598 necessary for correct stack-checking.
23600 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
23602 * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
23603 RACW_Type, used in the PolyORB version.
23604 Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
23605 version and the GARLIC version.
23607 * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
23608 Rename RCI_Info to RCI_Locator for better consistency between the
23609 GARLIC and PolyORB versions of the distributed systems annex.
23610 (DSA_Implementation_Name): This enumeration lists the possible
23611 implementations of the Partition Communication Subsystem for the
23612 Distributed Systems Annex (DSA). The three available implementations
23613 are the dummy stub implementation (No_DSA), and two versions based on
23614 two different distribution runtime libraries: GARLIC and PolyORB. Both
23615 the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
23617 Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
23620 * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
23621 between the GARLIC and PolyORB versions of the distributed systems
23623 Remove RE_Unbounded_Reclaim_Pool since it is unused.
23625 2004-10-26 Gary Dismukes <dismukes@gnat.com>
23627 * gnat1drv.adb: Suppress calling the back end when
23628 Frontend_Layout_On_Target is true.
23630 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
23632 * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
23633 Set_Read_Only): New subprograms.
23634 These new routines allow the user to set or unset the Owner execute
23635 and Owner write permission flags on a file.
23637 * makegpr.adb, mlib.adb, mlib-prj.adb: Use
23638 GNAT.OS_Lib.Set_Executable instead of rolling our own.
23640 2004-10-26 Matthew Gingell <gingell@gnat.com>
23642 * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
23644 2004-10-26 Pascal Obry <obry@gnat.com>
23646 * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
23647 memory before the faulting page we properly test the process read
23648 access for this address using appropriate Win32 routine.
23649 (HPUX sections): guard with "__hpux__" instead of "hpux".
23651 2004-10-26 Robert Dewar <dewar@gnat.com>
23653 * lib-xref.adb (Generate_Reference): Don't complain about reference to
23654 entry parameter if pragma Unreferenced set, since we do not properly
23655 handle the case of multiple parameters.
23657 2004-10-26 Vincent Celier <celier@gnat.com>
23659 * prj-env.adb: (Contains_ALI_Files): New Boolean function
23660 (Ada_Objects_Path.Add): For a library project, add to the object path
23661 the library directory only if there is no object directory or if the
23662 library directory contains ALI files.
23663 (Set_Ada_Paths.Add.Recursive_Add): Ditto
23665 2004-10-26 Vincent Celier <celier@gnat.com>
23667 * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
23668 extension of library projects.
23670 * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
23671 path defaults to ".:<prefix>/lib/gnat".
23672 (Parse): For an extending all project, allow direct import of a project
23673 that is virtually extended.
23675 * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
23676 the specified name is directly imported, return its ID. Otherwise, if
23677 an extension of this project is imported, return the ID of the
23680 2004-10-26 Robert Dewar <dewar@gnat.com>
23682 * s-arit64.adb: (Le3): New function, used by Scaled_Divide
23683 (Sub3): New procedure, used by Scaled_Divide
23684 (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
23685 correct more than one instance of failure to propagate carries
23687 (Double_Divide): Handle overflow case of largest negative number
23688 divided by minus one.
23690 * s-arit64.ads (Double_Divide): Document that overflow can occur in
23691 the case of a quotient value out of range.
23694 2004-10-26 Robert Dewar <dewar@gnat.com>
23696 * s-bitops.adb (Bit_Eq): Remove redundant check.
23698 * s-bitops.ads: Minor comment updates
23699 Change some occurrences of Address to System.Address
23701 * s-carsi8.ads: Fix minor cut-and-paste error in comments
23703 2004-10-26 Ed Schonberg <schonberg@gnat.com>
23705 * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
23706 accessibility check to prefix that is a protected operation.
23708 2004-10-26 Ed Schonberg <schonberg@gnat.com>
23710 * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
23711 empty, post message on stub.
23713 2004-10-26 Ed Schonberg <schonberg@gnat.com>
23714 Javier Miranda <miranda@gnat.com>
23716 * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
23717 current instance appears within a unit that is directly in the context
23719 Used to determine whether the body of the instance should be analyzed
23720 immediately after its spec, to make its subprogram bodies available
23721 for front-end inlining.
23722 (Analyze_Formal_Array_Type): Cleanup condition that checks that range
23723 constraint is not allowed on the component type (AARM 12.5.3(3))
23725 2004-10-26 Cyrille Comar <comar@act-europe.fr>
23727 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
23728 'Storage_Pool): enhance, document & limit detection of non-sharable
23731 * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
23733 * s-pooglo.ads: Add more documentation now that this pool is properly
23736 2004-10-26 Ed Schonberg <schonberg@gnat.com>
23738 * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
23739 or protected type with discriminants, do not constrain the
23740 corresponding record type if the subtype declaration has no
23741 discriminant constraints. This can be the case in source code, or in
23742 the subtype declaration created to rename an actual type within an
23745 2004-10-26 Ed Schonberg <schonberg@gnat.com>
23747 * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
23748 different kind of stub (possibly wrong name for file), do not check
23750 (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
23751 includes call to some function that returns an unconstrained type, do
23754 2004-10-26 Ed Schonberg <schonberg@gnat.com>
23756 * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
23757 appear in the code for the main unit. Dependencies among units in the
23758 context of the main unit are established when those other units are
23759 compiled. Otherwise spurious elaboration constraints can generate
23760 incorrect elaboration circularities.
23762 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
23763 Ed Schonberg <schonberg@gnat.com>
23765 * sem_util.adb (Is_Aliased_View): Defend against the case where this
23766 subprogram is called with a parameter that is not an object name. This
23767 situation arises for some cases of illegal code, which is diagnosed
23768 later, and in this case it is wrong to call Is_Aliased, as that might
23769 cause a compiler crash.
23770 (Explain_Limited_Type): Refine previous fix to include
23771 inherited components of derived types, to provide complete information.
23773 * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
23774 is the prival for a protected object.
23775 It is necessary to mark this entity as a variable, in addition to
23776 flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
23777 modified to avoid checking the Aliased flag on entities that are not
23778 objects. (Checking that flag for non-objects is erroneous and could
23779 lead to a compiler crash).
23781 2004-10-26 Robert Dewar <dewar@gnat.com>
23783 * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
23784 X_Frac = 0.5, then we know that the number X must be positive.
23785 (Succ): Remove the same redundant test, and also fix the primary test
23786 to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
23788 (Decompose): Add fuller comments to spec
23790 2004-10-26 Pascal Obry <obry@gnat.com>
23792 * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
23793 validity (process must have read access). Set to 0 in all other cases.
23794 (STOP_FRAME): Now check for ptr validity to avoid a segmentation
23795 violation on Win32.
23796 (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
23797 segmentation violation.
23799 2004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
23801 * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
23802 whose type is a constructed subtype of an aliased object with an
23803 unconstrained nominal subtype, convert the actual to the constructed
23804 subtype before taking its address.
23806 2004-10-26 Vincent Celier <celier@gnat.com>
23808 * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
23809 (Is_Path_Name_Case_Sensitive): New function
23811 * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
23812 (Base_Name, Simple_Name, Current_Directory, Compose,
23813 Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
23816 2004-10-26 Cyrille Comar <comar@act-europe.fr>
23817 Vasiliy Fofanov <fofanov@act-europe.fr>
23818 Vincent Celier <celier@gnat.com>
23820 * gnat_ugn.texi: Generalize "finding memory problems" section into a
23821 "memory management issues" section and document some of the useful
23822 memory pools provided as part of the GNAT library.
23823 Remove "virtual" from declaration of A::method2 in
23824 the simple example of Ada/C++ mixed system.
23825 Library Projects may be virtually extended: their virtual extensions
23826 are not Library Projects.
23827 Added section on extending project hierarchies.
23829 2004-10-19 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
23831 * adaint.c (__gnat_get_libraries_from_registry): Cast value
23833 (__gnat_portable_spawn): Remove const.
23835 * mingw32.h (MAXPATHLEN): Check for previous definition.
23837 2004-10-17 Matthias Klose <doko@debian.org>
23839 * gnatvsn.ads: Set gnat library version to 4.0.
23841 2004-10-05 Vincent Celier <celier@gnat.com>
23843 * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
23845 2004-10-04 Laurent Guerby <laurent@guerby.net>
23848 * Makefile.in: Define and use RANLIB_FLAGS.
23850 2004-10-04 Pascal Obry <obry@gnat.com>
23852 * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
23853 other x86 platforms).
23855 2004-10-04 Olivier Hainque <hainque@act-europe.fr>
23857 * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
23858 in general and triggers stack alignment adjustment for thread entry
23859 points on targets where this is necessary.
23861 2004-10-04 Bernard Banner <banner@gnat.com>
23864 * Makefile.in: Add section for powerpc linux
23865 Add variant i-vxwork-x86.ads
23867 * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
23869 2004-10-04 Olivier Hainque <hainque@act-europe.fr>
23871 * init.c (__gnat_initialize): Call an Ada subprogram to perform the
23872 table registration calls when need be. Ensures no reference to the crt
23873 ctors symbol are issued in the SJLJ case, which avoids possible
23874 undefined symbol errors in the case of modules to be statically linked
23877 2004-10-04 Javier Miranda <miranda@gnat.com>
23879 * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
23880 in-line the code corresponding to subprogram Analyze_Actuals. In
23881 addition, analyze the actuals only in case of subprogram call.
23883 2004-10-04 Ed Falis <falis@gnat.com>
23885 * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
23887 2004-10-04 Sergey Rybin <rybin@act-europe.fr>
23889 * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
23890 in the documentation.
23892 2004-10-04 Robert Dewar <dewar@gnat.com>
23894 * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
23896 (Analyze_Block_Statement): Add circuitry to detect following dead code
23897 (Check_Unreachable_Code): Handle case of block exit
23899 2004-10-04 Robert Dewar <dewar@gnat.com>
23901 * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
23902 (XMatchD): Avoid warning for Logic_Error call
23904 2004-10-04 Robert Dewar <dewar@gnat.com>
23906 * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
23907 consider expressions buried within a procedure actual to be an actual.
23908 This caused some blowups with uses of packed slices within a procedure
23911 2004-10-04 Robert Dewar <dewar@gnat.com>
23913 * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
23914 longer need to be initialized to zero.
23915 (Get_Simple_Init_Val): Modular packed arrays no longer need to be
23916 initialized to zero.
23918 * checks.adb (Expr_Known_Valid): Packed arrays are now always
23919 considered valid, even if the representation is modular. That's correct
23920 now that we no longer initialize packed modular arrays to zero.
23922 * exp_dbug.ads: Clarify documentation on handling of PAD and JM
23923 suffixes. These are now documented as the only cases in which the
23924 debugger ignores outer records.
23925 Previously, the spec allowed arbitrary suffixes for this purpose.
23926 Change name of LJM to JM for packed array pad records
23927 Create separate section on packed array handling, and add a whole new
23928 set of comments to this section describing the situation with packed
23929 modular types and justification requirements depending on endianness.
23931 2004-10-04 Robert Dewar <dewar@gnat.com>
23933 * a-except.adb: Add a comment for last change
23935 * einfo.ads: Minor spelling correction in comment
23937 * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
23939 * sem_ch11.adb: Fix a case of using | instead of \ for continuation
23942 * sem_util.ads: Minor comment update
23944 2004-10-04 Ed Schonberg <schonberg@gnat.com>
23946 * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
23947 Inline_Always when in Configurable_Run_Time mode.
23949 * sem_prag.adb (Process_Convention): If entity is an inherited
23950 subprogram, apply convention to parent subprogram if in same scope.
23951 (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
23952 when in Configurable_Run_Time mode.
23954 2004-10-04 Ed Schonberg <schonberg@gnat.com>
23956 * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
23957 class_wide type after component list has been inherited.
23959 2004-10-04 Ed Schonberg <schonberg@gnat.com>
23961 * sem_ch12.adb (Check_Generic_Actuals): New predicate
23962 Denotes_Previous_Actual, to handle properly the case of a private
23963 actual that is also the component type of a subsequent array actual.
23964 The visibility status of the first actual is not affected when the
23965 second is installed.
23966 (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
23967 make fully recursive the treatment of formals of packages declared
23969 (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
23970 the above on exit from an instantiation.
23971 (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
23972 current instantiation which is now complete.
23973 (Analyze_Package_Instantiation): No instantiated body is needed if the
23974 main unit is generic. Efficient, and avoid anomalies when a instance
23975 appears in a package accessed through rtsfind.
23977 2004-10-04 Ed Schonberg <schonberg@gnat.com>
23979 * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
23980 do not generate a declaration for a temporary if the call is part of a
23981 library-level instantiation.
23983 2004-10-04 Ed Schonberg <schonberg@gnat.com>
23985 * sem_util.adb (Explain_Limited_Type): Ignore internal components when
23986 searching for a limited component to flag.
23988 * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
23989 expansion of Input, to account for the fact that the implicit call
23990 generated by the attribute reference must freeze the user-defined
23991 stream subprogram. This is only relevant to 'Input, because it can
23992 appear in an object declaration, prior to the body of the subprogram.
23994 * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
23995 expansion can proceed and further errors uncovered.
23996 (Minor clean up): Fix cases of using | instead of \ for continuation
23999 2004-10-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
24001 * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
24003 * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
24004 (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
24005 Use gcc_assert and gcc_unreachable.
24007 * decl.c (gnat_to_gnu_entity, case object): Check and process a
24008 specified alignment before validating size.
24009 (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
24010 stripped-down declaration for the type of the inner field when making
24013 * utils.c (finish_record_type): Do not compute the size in units
24014 incrementally. Instead compute it once for the rep clause case.
24015 Use gcc_assert and gcc_unreachable.
24017 2004-10-04 Vincent Celier <celier@gnat.com>
24019 * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
24021 (Is_Valid_Path_Name): Take '/' as a directory separator.
24023 2004-10-04 Vincent Celier <celier@gnat.com>
24025 * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
24026 (Extended_Project) only if Extended_Project is defined, to avoid
24028 (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
24030 (Parse_Single_Project): Ditto.
24032 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
24033 Add_To_Project_Path for virtual projects.
24035 2004-10-04 Vincent Celier <celier@gnat.com>
24037 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
24038 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
24039 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
24040 mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
24041 parameter Options_2.
24043 * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
24044 Build_Dynamic_Library with an empty Options_2.
24046 * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
24049 * makegpr.adb (Get_Imported_Directories.add): Remove trailing
24050 directory separator, if any.
24051 (Gprmake): Do not allow mains on the command line for library projects.
24052 Do not attempt to link when the project is a library project.
24053 (Library_Opts): New table to store Library_Options.
24054 (Build_Library): If Library_Options is specified, pass these options
24055 when building a shared library.
24057 2004-10-04 Jose Ruiz <ruiz@act-europe.fr>
24059 * s-tposen.adb (Service_Entry): The object must be always unlocked at
24060 the end of this procedure now that the unlock operation was inserted
24063 2004-10-04 Jose Ruiz <ruiz@act-europe.fr>
24065 * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
24066 corresponding to the Preallocated_Stacks flags in System.
24067 (Get_Target_Parameters): Including the processing for
24068 Preallocated_Stacks.
24070 * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
24071 system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
24072 system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
24073 system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
24074 system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
24075 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
24076 system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
24077 system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
24078 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
24079 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
24080 system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
24081 used to signal whether the compiler creates the required stacks and
24082 descriptors for the different tasks (when True) or it is done by the
24083 underlying operating system at run time (when False).
24084 It is initially set to False in all targets.
24086 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
24087 if it is supported by the target.
24088 (Make_Task_Create_Call): Pass the stack address if it has been
24089 previously created. Otherwise pass a Null_Address.
24091 * snames.adb: Add _stack.
24093 * snames.ads: Add Name_uStack. Required to allow the expander to
24094 statically allocated task stacks.
24096 * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
24097 Stack_Address argument.
24098 Check that its value is equal to Null_Address because this target does
24099 not support the static stack allocation.
24101 2004-10-04 Thomas Quinot <quinot@act-europe.fr>
24103 * usage.adb: Change "pragma inline" to "pragma Inline" in information
24106 2004-10-04 Thomas Quinot <quinot@act-europe.fr>
24108 * exp_dist.adb: Split declaration of asynchronous flag out of
24109 Add_RACW_Read_Attribute.
24110 Minor reformatting for better alignment with PolyORB version.
24111 Store the entity for the asynchronous flag of an RACW, rather than the
24112 expression, in the asynchronous flags table. This will allow this flag
24113 to be used in other subprograms beside Add_RACW_Read_Attribute.
24115 2004-10-04 Thomas Quinot <quinot@act-europe.fr>
24117 * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
24118 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
24119 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
24120 g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
24121 g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads: Add new
24122 sockets constant MSG_NOSIGNAL (Linux-specific).
24123 Add new sockets constant MSG_Forced_Flags, list of flags to be set on
24124 all Send operations.
24125 For Linux, set MSG_NOSIGNAL on all send operations to prevent them
24126 from trigerring SIGPIPE.
24127 Rename components to avoid clash with Ada 2005 possible reserved
24129 (Check_Selector): When the select system call returns with an error
24130 condition, propagate Socket_Error to the caller.
24132 2004-10-01 Jan Hubicka <jh@suse.cz>
24134 * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
24136 2004-09-23 Robert Dewar <dewar@gnat.com>
24139 * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
24140 instead do this at freeze time (we won't do it if there is an address
24142 Change "pragma inline" to "pragma Inline" in information and error
24144 Minor reformatting.
24146 * freeze.adb (Check_Address_Clause): Remove previous change, not the
24147 right way of doing things after all.
24148 (Freeze_Entity): For object, set Is_Public for imported entities
24149 unless there is an address clause present.
24151 2004-09-21 Olivier Hainque <hainque@act-europe.fr>
24153 * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
24154 dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
24155 ensures proper handling of types with rep clauses, which might have
24156 their TYPE_SIZE set already.
24158 2004-09-21 Robert Dewar <dewar@gnat.com>
24160 * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
24161 packed array types in both little- and big-endian cases. This change
24162 ensures that we no longer count on the unused bits being initialized
24163 for such types (and in particular ensures that equality testing will
24164 only read the relevant bits).
24165 Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
24166 These changes mean that we no longer need to initialize small packed
24168 (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
24169 optimization to an LJM field as to its parent field.
24171 * ada-tree.h, trans.c, utils.c, utils2.c:
24172 Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
24174 2004-09-20 Jan Hubicka <jh@suse.cz>
24176 * utils.c (gnat_finalize): Remove.
24177 (end_subprog_body): Directly call cgraph_finalize_function;
24178 do not lower the nested functions.
24180 2004-09-20 Robert Dewar <dewar@gnat.com>
24183 * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
24184 if an address clause is present, since that means that the Import
24187 2004-09-20 Arnaud Charlet <charlet@act-europe.fr>
24189 * 5tsystem.ads: Removed, no longer used.
24191 2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
24192 Zack Weinberg <zack@codesourcery.com>
24194 * ada-tree.def: Use tree_code_class enumeration constants
24195 instead of code letters.
24196 * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
24197 Update for new tree-class enumeration constants.
24199 2004-09-17 Vincent Celier <celier@gnat.com>
24201 * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
24202 capabilities of the general project manager.
24204 2004-09-09 Vincent Celier <celier@gnat.com>
24206 * a-direct.ads: Add pragma Ada_05
24207 (Directory_Entry_Type): Give default value to component Kind to avoid
24208 not initialized warnings.
24210 * a-direct.adb (Current_Directory): Remove directory separator at the
24212 (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
24213 an existing directory.
24214 (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
24215 (Size (String)): Function C_Size returns Long_Integer, not File_Size.
24216 Convert the result to File_Size.
24218 * prj.ads: (Project_Error): New exception
24220 * prj-attr.adb: Except in procedure Initialize, Fail comes from
24221 Prj.Com, not from Osint.
24222 (Attrs, Package_Attributes): Tables moved to private part of spec
24223 (Add_Attribute, Add_Unknown_Package): Moved to new child package
24225 (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
24226 Prj.Project_Error after call to Fail.
24227 (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
24228 Fail. Check that package name is not already in use.
24230 * prj-attr.ads: Comment updates to indicate that all subprograms may be
24231 used by tools, not only by the project manager, and to indicate that
24232 exception Prj.Prj_Error may be raised in case of problem.
24233 (Add_Unknown_Package, Add_Attribute): Moved to new child package
24235 (Attrs, Package_Attributes): Table instantiations moved from the body to
24236 the private part to be accessible from Prj.Attr.PM body.
24238 * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
24239 from new package Prj.Attr.PM.
24240 (Parse_Attribute_Declaration): Call Add_Attribute from new package
24243 * Makefile.in: Add prj-attr-pm.o to gnatmake object list
24245 * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
24246 instead of Elaboration_Checks).
24248 * a-calend.adb: Minor reformatting
24250 2004-09-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
24252 * gigi.h (maybe_pad_type): New declaration.
24253 (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
24255 * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
24257 * cuintp.c: Convert to use buildN.
24259 * decl.c (maybe_pad_type): No longer static.
24260 (gnat_to_gnu_entity, case E_Function): Handle case of returning by
24262 Convert to use buildN.
24264 * trans.c (call_to_gnu): Add arg GNU_TARGET; support
24265 TYPE_RETURNS_BY_TARGET_PTR_P. All callers changed.
24266 (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
24268 (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
24269 (gnat_gimplify_expr, case ADDR_EXPR): New case.
24270 Convert to use buildN.
24272 * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
24273 TREE_READONLY for const.
24274 Convert to use buildN.
24276 * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
24277 (create_var_decl): Refine when TREE_STATIC is set.
24278 Convert to use buildN.
24280 2004-09-09 Gary Dismukes <dismukes@gnat.com>
24282 * gnat_ugn.texi: Delete text relating to checking of ali and object
24285 * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
24288 2004-09-09 Jose Ruiz <ruiz@act-europe.fr>
24290 * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
24291 pragmas recognized by GNAT.
24293 * gnat_rm.texi: Document pragma Detect_Blocking.
24295 * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
24296 raise Program_Error if called from a protected operation.
24298 * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
24299 the protected action nesting level.
24300 (Lock_Read_Only): When pragma Detect_Blocking is active increase the
24301 protected action nesting level.
24302 (Unlock): When pragma Detect_Blocking is active decrease the protected
24303 action nesting level.
24305 * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
24306 Protected_Action_Nesting.
24308 * s-taskin.ads: Adding the field Protected_Action_Nesting to the
24309 Common_ATCB record. It contains the dynamic level of protected action
24310 nesting for each task. It is needed for checking whether potentially
24311 blocking operations are called from protected operations.
24312 (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
24313 Detect_Blocking is active or not in the partition.
24315 * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
24316 raise Program_Error if called from a protected operation.
24317 (Task_Entry_Call): When pragma Detect_Blocking is active, raise
24318 Program_Error if called from a protected operation.
24319 (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
24320 Program_Error if called from a protected operation.
24322 * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
24323 raise Program_Error if called from a protected operation.
24325 * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
24326 raise Program_Error if called from a protected operation, and increase
24327 the protected action nesting level.
24328 (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
24329 Program_Error if called from a protected operation, and increase the
24330 protected action nesting level.
24331 (Unlock_Entries): When pragma Detect_Blocking is active decrease the
24332 protected action nesting level.
24334 * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
24335 raise Program_Error if called from a protected operation, and increase
24336 the protected action nesting level.
24337 (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
24338 Program_Error if called from a protected operation, and increase the
24339 protected action nesting level.
24340 (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
24341 raise Program_Error if called from a protected operation.
24342 (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
24343 active, raise Program_Error if called from a protected operation.
24344 (Unlock_Entry): When pragma Detect_Blocking is active decrease the
24345 protected action nesting level.
24347 * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
24348 insertion of the statement raising Program_Error. The run time
24349 contains the required machinery for handling that.
24351 * sem_util.ads: Change comment associated to procedure
24352 Check_Potentially_Blocking_Operation.
24353 This procedure does not insert a call for raising the exception because
24354 that is currently done by the run time.
24356 * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
24358 * init.c: Add the global variable __gl_detect_blocking that indicates
24359 whether pragma Detect_Blocking is active (1) or not (0). Needed for
24360 making the pragma available at run time.
24361 (__gnat_set_globals): Pass and update the detect_blocking parameter.
24363 * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
24364 pragma Detect_Blocking is active.
24366 * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
24368 * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
24369 DB is found in the ali file. Any unit compiled with pragma
24370 Detect_Blocking active forces its effect in the whole partition.
24372 * a-retide.adb (Delay_Until): Raise Program_Error if pragma
24373 Detect_Blocking is active and delay is called from a protected
24376 * bindgen.adb (Gen_Adainit_Ada): When generating the call to
24377 __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
24378 Detect_Blocking is active (0 otherwise).
24379 (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
24380 as Detect_Blocking parameter if pragma Detect_Blocking is active (0
24383 2004-09-09 Thomas Quinot <quinot@act-europe.fr>
24385 * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
24386 GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
24389 * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
24390 (Register_Receiving_Stub): Add Subp_Info formal parameter.
24391 Update API in placeholder implemetation of s-parint to reflect changes
24392 in distribution runtime library.
24394 * sem_ch3.adb (Expand_Derived_Record): Rename to
24395 Expand_Record_Extension.
24397 * sem_disp.adb (Check_Controlling_Formals): Improve error message for
24398 primitive operations of potentially distributed object types that have
24399 non-controlling anonymous access formals.
24401 * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
24403 New implementation of expansion for remote access-to-subprogram types,
24404 based on the RACW infrastructure.
24405 This version of sem_dist is compatible with PolyORB/DSA as well as
24408 * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
24409 Asynchrronous that applies to a remote access-to-subprogram type, mark
24410 the underlying RACW type as asynchronous.
24412 * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
24413 __gnat_using_gnu_linker to 1.
24415 * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
24416 g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
24417 GNAT.Perfect_Hash_Generators, and remove the empty
24418 GNAT.Perfect_Hash package.
24420 * atree.adb: Minor reformatting
24422 * exp_ch3.adb (Expand_Derived_Record): Rename to
24423 Expand_Record_Extension.
24424 (Build_Record_Init_Proc.Build_Assignment): The default expression in
24425 a component declaration must remain attached at that point in the
24426 tree so New_Copy_Tree copies it if the enclosing record type is derived.
24427 It is therefore necessary to take a copy of the expression when building
24428 the corresponding assignment statement in the init proc.
24429 As a side effect, in the case of a derived record type, we now see the
24430 original expression, without any rewriting that could have occurred
24431 during expansion of the ancestor type's init proc, and we do not need
24432 to go back to Original_Node.
24434 * exp_ch3.ads (Expand_Derived_Record): Rename to
24435 Expand_Record_Extension.
24437 * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
24438 Returns the RACW type used to implement a remote access-to-subprogram
24440 (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
24441 New subprograms. Used to create a proxy tagged object for a remote
24442 subprogram. The proxy object is used as the designated object
24443 for RAS values on the same partition (unless All_Calls_Remote applies).
24444 (Build_Get_Unique_RP_Call): New subprogram. Build a call to
24445 System.Partition_Interface.Get_Unique_Remote_Pointer.
24446 (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
24447 Renamed from Add_RAS_*_Attribute.
24448 (Add_Receiving_Stubs_To_Declarations): Generate a table of local
24450 New implementation of expansion for remote access-to-subprogram types,
24451 based on the RACW infrastructure.
24453 * exp_dist.ads (Copy_Specification): Update comment to note that this
24454 function can copy the specification from either a subprogram
24455 specification or an access-to-subprogram type definition.
24457 2004-09-09 Ed Schonberg <schonberg@gnat.com>
24459 * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
24460 in an instance, between an explicit subprogram an one inherited from a
24461 type derived from an actual.
24463 * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
24464 add a polling call if the subprogram is to be inlined by the back-end,
24465 to avoid repeated calls with multiple inlinings.
24467 * checks.adb (Apply_Alignment_Check): If the expression in the address
24468 clause is a call whose name is not a static entity (e.g. a dispatching
24469 call), treat as dynamic.
24471 2004-09-09 Robert Dewar <dewar@gnat.com>
24473 * g-trasym.ads: Minor reformatting
24475 * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
24476 packed arrays, since unused bits are expected to be zero for a
24479 2004-09-09 Eric Botcazou <ebotcazou@act-europe.fr>
24481 * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
24484 2004-09-09 Pascal Obry <obry@gnat.com>
24486 * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
24487 enable map file generation. Add the right option to generate the map
24488 file if Map_File is set to True.
24490 * gnatdll.adb (Gen_Map_File): New variable.
24491 (Syntax): Add info about new -m (Map_File) option.
24492 (Parse_Command_Line): Add support for -m option.
24493 (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
24494 Minor reformatting.
24496 2004-09-09 Laurent Pautet <pautet@act-europe.fr>
24498 * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
24499 new gnatdist implementation.
24500 Define a subpackage isolating the output routines specific to this
24503 2004-09-09 Joel Brobecker <brobecker@gnat.com>
24505 * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
24507 * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
24509 2004-09-09 Cyrille Comar <comar@act-europe.fr>
24511 * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
24514 * opt.ads: Add Ada_Version_Runtime constant used to decide which
24515 version of the language is used to compile the run time.
24517 2004-09-09 Arnaud Charlet <charlet@act-europe.fr>
24519 * sem_util.adb (Requires_Transient_Scope): Re-enable handling
24520 of variable length temporaries for function return now that the
24521 back-end and gigi support it.
24523 2004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
24525 * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
24527 * trans.c (struct stmt_group): Delete field GLOBAL.
24528 (gnat_init_stmt_group): Do not initialize it.
24529 (call_to_gnu): Use save_expr, not protect_multiple_eval.
24530 (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
24531 (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
24532 (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
24533 (start_stmt_group): Likewise.
24534 (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
24536 * utils2.c (ggc.h): Include.
24537 (build_call_raise): Call build_int_cst, not build_int_2.
24539 * utils.c (gnat_init_decl_processing): Fix arg to
24540 build_common_tree_nodes.
24541 (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
24542 (gnat_define_builtin): Set built_in_decls.
24543 (init_gigi_decls): Call build_int_cst, not build_int_2.
24545 * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
24546 (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
24547 (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
24548 (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
24549 SET_TYPE_MODULE): Use them.
24550 (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
24551 (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
24552 (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
24553 SET_TYPE_ADA_SIZE): Likewise.
24554 (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
24555 (DECL_CONST_CORRESPONDING_VAR,
24556 SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
24557 (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
24558 (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
24559 (TYPE_RM_SIZE_NUM): New macro.
24560 (TYPE_RM_SIZE): Modified to use above.
24562 * cuintp.c: (build_cst_from_int): New function.
24563 (UI_To_gnu): Use it.
24565 * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
24566 (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
24567 (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
24568 MIN_EXPR for the size, copy it into new.
24570 2004-09-01 Robert Dewar <dewar@gnat.com>
24572 * exp_ch6.adb (Expand_Call): Properly handle validity checks for
24573 packed indexed component where array is an IN OUT formal. This
24574 generated garbage code previously.
24576 * gnat_ugn.texi: Document -fverbose-asm
24578 * gnat-style.texi: Minor updates (note that boolean constants and
24579 variables are joined with AND/OR rather than short circuit forms).
24581 2004-09-01 Ed Schonberg <schonberg@gnat.com>
24583 * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
24584 it is an upward conversion of an untagged type with no representation
24587 2004-09-01 Thomas Quinot <quinot@act-europe.fr>
24589 * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
24590 System.Partition_Interface.
24592 * checks.adb (Apply_Access_Checks): Do not generate checks when
24593 expander is not active (but check for unset reference to prefix of
24596 * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
24597 pragma Debug as an if statement with a constant condition, for
24598 consistent treatment of entity references contained within the
24599 enclosed procedure call.
24601 2004-09-01 Vincent Celier <celier@gnat.com>
24603 * bindgen.adb: (Set_EA_Last): New procedure
24604 (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
24606 (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
24607 (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
24608 linked without errors.
24609 (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
24611 (Gen_Exception_Table_C): Correct same bugs
24613 * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
24615 * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
24616 on Windows, make sure that the drive letter is in upper case.
24618 * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
24619 Windows, when the drive letter is added and Case_Sensitive is True, the
24620 drive letter is forced to upper case.
24622 * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
24623 to Options_2 for the call to MLib.Utl.Gcc.
24625 * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
24626 directory separator when defining BASE_DIR.
24628 2004-09-01 Pascal Obry <obry@gnat.com>
24630 * gprcmd.adb (Extend): Do not output trailing directory separator. This
24631 is not needed and it confuses Windows GNU/make which does not report
24632 directory terminated by a slash as a directory.
24633 (gprcmd): Idem for "pwd" internal command.
24635 * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
24636 target names rewrite to fix regressions with recent version of
24637 GNU/make. Starting with GNU/make 3.80 the pipe character was not
24638 handled properly anymore.
24640 2004-09-01 Andreas Schwab <schwab@suse.de>
24642 * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
24643 * raise.c [!IN_RTS]: Undef abort.
24645 2004-08-27 Nathan Sidwell <nathan@codesourcery.com>
24647 * utils2.c (build_allocator): Use ssize_int.
24649 * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
24651 2004-08-27 Andreas Schwab <schwab@suse.de>
24653 * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
24655 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
24656 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
24658 * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
24660 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
24662 * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
24663 * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
24664 * utils.c (init_gigi_decls): Likewise.
24665 * utils2.c (build_call_raise, build_allocator): Likewise.
24667 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
24669 * utils.c (gnat_init_decl_processing): Adjust
24670 build_common_tree_nodes call.
24672 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
24674 * utils2.c (build_allocator): Use build_int_cst for negative
24677 2004-08-18 Richard Henderson <rth@redhat.com>
24679 * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
24681 2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
24683 * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
24685 * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
24686 (gnat_to_gnu): Likewise.
24688 2004-08-16 Pascal Obry <obry@gnat.com>
24690 * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
24691 backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
24692 option and not mdll anymore. Update comment.
24694 2004-08-16 Pascal Obry <obry@gnat.com>
24696 * bld.adb (Put_Include_Project): Properly handle directory separators
24699 2004-08-16 Ed Schonberg <schonberg@gnat.com>
24701 * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
24702 decreasing the number of allocated junk nodes while searching for the
24703 appropriate subprogram.
24705 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
24707 * cuintp.c (UI_To_gnu): Use build_int_cst..
24708 * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
24709 * utils.c (init_gigi_decls): Likewise.
24710 * utils2.c (build_call_raise): Likewise.
24712 2004-08-13 Olivier Hainque <hainque@act-europe.fr>
24714 * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
24715 for a global aliased object with a variable size and an unconstrained
24716 nominal subtype, pretend there is no initializer if the one we have is
24717 incomplete, and avoid referencing an inexistant component in there. The
24718 part we have will be rebuilt anyway and the reference may confuse
24719 further operations.
24721 2004-08-13 Thomas Quinot <quinot@act-europe.fr>
24723 * einfo.ads: Minor reformatting
24725 * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
24726 restrictions in the ALI if we only want to warn about violations.
24728 2004-08-13 Vincent Celier <celier@gnat.com>
24730 * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
24731 when creating a new Unit_Record in table Units.
24733 * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
24734 that are violated, if any.
24736 * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
24737 add directory separator if path already ends with a directory separator.
24739 2004-08-13 Ed Schonberg <schonberg@gnat.com>
24741 * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
24742 unit, this is an attempt to inline a construct that is not available in
24743 the current restricted mode, so abort rather than trying to continue.
24745 * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
24746 discriminants that rename those of the parent, recover names of
24747 original discriminants for the constraint on the full view of the
24749 (Complete_Private_Subtype): Do not create a subtype declaration if the
24750 subtype is an itype.
24752 * gnat_rm.texi: Added section on implementation of discriminated
24753 records with default values for discriminants.
24755 2004-08-13 Ed Schonberg <schonberg@gnat.com>
24758 * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
24759 the second operand is overloaded.
24761 2004-08-10 Richard Henderson <rth@redhat.com>
24763 * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
24764 add __builtin_alloca.
24766 2004-08-10 Richard Henderson <rth@redhat.com>
24768 * config-lang.in (boot_language): Yes.
24770 2004-08-09 Thomas Quinot <quinot@act-europe.fr>
24772 * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
24773 from complaining on potential uninitialized reference.
24774 Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
24775 new specification and test explicitly for non-zero return value.
24777 * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
24778 returning C.int, to avoid using a derived boolean type.
24780 * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
24781 Duplicate_Subexpr_No_Checks in preference to direct use of
24782 Remove_Side_Effects and New_Copy_Tree.
24783 Clear Comes_From_Source on prefix of 'Size attribute reference.
24785 * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
24786 g-socthi-vxworks.adb: Change calls to
24787 GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
24788 and test explicitly for non-zero return value.
24790 * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
24791 (Is_Socket_In_Set): Declare imported function as returning C.int, to
24792 avoid using a derived boolean type.
24794 2004-08-09 Albert Lee <lee@gnat.com>
24796 * system-irix-n32.ads: Refine tasking priority constants for IRIX.
24798 2004-08-09 Pascal Obry <obry@gnat.com>
24800 * gnat_ugn.texi: Document new way to build DLLs on Windows using
24801 GCC's -shared option.
24803 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
24804 Options_2 parameter (options put after object files).
24806 2004-08-09 Olivier Hainque <hainque@act-europe.fr>
24808 * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
24809 ignore overflows on low and high bounds of an index to also account for
24810 differences in signedness between sizetype and gnu_index_subtype.
24811 These are as legitimate as the ones caused by a lower TYPE_PRECISION
24814 2004-08-09 Robert Dewar <dewar@gnat.com>
24816 * s-solita.ads, s-solita.adb: Minor reformatting
24818 * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
24819 Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
24820 obsolescent section
24821 Add note that No_Implicit_Conditionals does not suppress
24822 run time constraint checks.
24824 * vms_conv.ads: Minor reformatting
24826 * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
24827 and necessary for following change).
24828 (Mark): Return new format Mark_Id containing sec stack address
24829 (Release): Use sec stack address from Mark_Id avoiding Self call
24831 * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
24832 pointer (cleanup and necessary for following change).
24833 Define Mark_Id as record containing address of secondary stack, that way
24834 Release does not need to find the stack again, decreasing the number of
24835 calls to Self and improving efficiency.
24837 * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
24839 * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
24840 case variable into the individual case branches when possible.
24842 * sem_ch11.adb: Minor reformatting
24844 * prj.ads: Correct spelling of suffixs
24846 * prj-nmsc.adb: Minor reformatting
24847 Correct spelling suffixs throughout (also in identifiers)
24849 * freeze.adb: Minor spelling correction
24851 * exp_ch2.adb: Cleanups to handling of Current_Value
24852 (no functional effect).
24854 * bld.adb: Correct spelling of suffixs
24856 * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
24858 2004-08-09 Ed Schonberg <schonberg@gnat.com>
24861 * sem_ch7.adb (Install_Private_Declarations): In the body of the
24862 package or of a child, private entities are both immediately_visible
24865 2004-08-09 Ed Schonberg <schonberg@gnat.com>
24867 * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
24868 there are no range checks on the value of the literal.
24870 * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
24871 wrapped is the triggering alternative of an asynchronous select, action
24872 statements mustbe inserted before the select itself.
24874 * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
24875 case where the prefix is a protected function call.
24876 (Resolve_Attribute, case 'Access): The attribute reference on a
24877 subprogram is legal in a generic body if the subprogram is declared
24880 2004-08-09 Vincent Celier <celier@gnat.com>
24882 * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
24883 languages, otherwise building the library may fail with unresolved
24885 (Compile_Sources): Do not build libraries if -c switch is used
24887 * gnatlink.adb (Process_Args): New switches -M and -Mmap
24888 (Write_Usage): If map file creation is supported, output new switches
24890 (Gnatlink): When -M is specified, add the necessary switch(es) to the
24891 gcc call, when supported.
24893 * Makefile.in: Added indepsw.o to the object list for gnatlink
24894 Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
24896 * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
24897 indepsw.adb, indepsw.ads: New files.
24899 2004-08-09 Bernard Banner <banner@gnat.com>
24901 * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
24903 * Makefile.in: add section for vxworks x86
24905 2004-08-09 Hristian Kirtchev <kirtchev@gnat.com>
24907 * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
24908 per-object constrained components where the discriminant is of an
24910 (Build_Record_Init_Proc): Add condition to prevent the inheritance of
24911 the parent initialization procedure for derived Unchecked_Unions.
24912 Instead, derived Unchecked_Unions build their own initialization
24914 (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
24915 Check the body of the subprogram for details.
24916 (Freeze_Record_Type): Prevent the inheritance of discriminant checking
24917 functions for derived Unchecked_Union types by introducing a condition.
24918 Allow the creation of TSS equality functions for Unchecked_Unions.
24919 (Make_Eq_Case): Rename formal parameter Node to E in function signature.
24920 Add formal parameter Discr to function signature. Discr is used to
24921 control the generated case statement for Unchecked_Union types.
24922 (Make_Eq_If): Rename formal parameter Node to E in function signature.
24924 * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
24926 Check the body of the subprogram for details.
24927 (Expand_Composite_Equality): Augment composite type equality to include
24928 correct handling of Unchecked_Union components.
24929 (Expand_N_In): Add condition to detect illegal membership tests when the
24930 subtype mark is a constrained Unchecked_Union and the expression lacks
24931 inferable discriminants, and build a Raise_Program_Error node.
24932 (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
24933 to detect types that contain components of unconstrained Unchecked_Union
24934 subtype. Add condition to detect equality between types that have an
24935 unconstrained Unchecked_Union component, and build a Raise_Program_Error
24936 node. Add condition to detect equality between Unchecked_Union types
24937 that lack inferable discriminants, and build a Raise_Program_Error node.
24938 Otherwise build a TSS equality function call.
24939 (Expand_N_Type_Conversion): Add condition to detect illegal conversions
24940 from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
24941 with the operand lacking inferable discriminants, and build a Raise_
24942 Program_Error node.
24943 (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
24944 composite equality.
24945 (Has_Inferable_Discriminants): Implement new predicate for objects and
24946 expressions of Unchecked_Union type. Check the body of subprogram for
24948 (Has_Unconstrained_UU_Components): Add function
24949 Component_Is_Unconstrained_UU. It is used to detect whether a single
24950 component is of an unconstrained Unchecked_Union subtype. Add function
24951 Variant_Is_Unconstrained_UU. It is used to detect whether a single
24952 component inside a variant is of an unconstrained Unchecked_Union type.
24954 * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
24955 inferred discriminant values. Add condition to generate a case
24956 statement with an inferred discriminant as the switch.
24957 (Make_Component_List_Assign): Introduce a Boolean flag that determines
24958 the behaviour of the subprogram in the presence of an Unchecked_Union.
24959 Add condition to trigger the usage of the inferred discriminant value
24960 as the generated case statement switch.
24961 (Make_Field_Assign): Introduce a Boolean flag that determines the
24962 behaviour of the subprogram in the presence of an Unchecked_Union. Add
24963 condition to trigger the usage of the inferred discriminant value as
24964 the right-hand side of the generated assignment.
24966 * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
24967 parameter generation when dealing with Unchecked_Unions.
24969 * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
24970 checks for Unchecked_Unions.
24972 * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
24974 * exp_attr.adb (Expand_N_Attribute_Reference): Produce
24975 Raise_Program_Error nodes for the execution of Read and Write
24976 attributes of Unchecked_Union types and the execution of Input and
24977 Output attributes of Unchecked_Union types that lack default
24978 discriminant values.
24980 * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
24981 Unchecked_Union. Add procedure Check_Component. It is used to inspect
24982 per-object constrained components of Unchecked_Unions for being
24983 Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
24984 check individual components withing a variant.
24986 * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
24987 comparison of Unchecked_Unions.
24988 (Resolve_Equality_OP): Remove guard that prevents equality between
24991 * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
24992 of component subtypes for Unchecked_Union components.
24993 (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
24994 since it is the actual subtype.
24996 * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
24997 pass of Unchecked_Union subtypes as generic actuals to formal types
24998 that lack known_discriminant_parts or that are derived Unchecked_Union
24999 types, and do nothing. In any other case, produce an error message.
25001 * sem_ch3.adb (Analyze_Component_Declaration): Add function
25002 Contains_POC. It determines whether a constraint uses the discriminant
25003 of an enclosing record type.
25004 Add condition to detect per-object constrained component and set the
25006 (Derived_Type_Declaration): Remove guard that prevents derivation from
25007 Unchecked_Union types.
25008 (Process_Subtype): Remove quard that prevents the creation of Unchecked_
25011 * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
25012 references to Unchecked_Union discriminants.
25014 * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
25015 formal generation when dealing with Unchecked_Unions.
25016 (Set_Actual_Subtypes): Add condition to prevent generation of actual
25017 subtypes for Unchecked_Unions.
25019 * sem_ch7.adb (Analyze_Package_Specification): Add procedure
25020 Inspect_Unchecked_Union_Completion. It is used to detect incorrect
25021 completions of discriminated partial views by Unchecked_Unions and
25022 produce an error message.
25024 2004-08-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25026 * trans.c (struct stmt_group): New field, GLOBAL.
25027 (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
25028 (struct elab_info): New struct.
25029 (elab_info_list, gnu_elab_proc_stack): New variables.
25030 (Compilation_Unit_to_gnu): New procedure.
25031 (gigi): Call it and also handle elaboration procs we've saved.
25032 (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
25033 global field from parent.
25034 (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
25035 (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
25036 (start_stmt_group): Initialize global field from parent.
25037 (add_decl_expr): Set to global for current statement group.
25038 (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
25041 * utils.c (global_bindings_p): True when no current_function_decl; no
25042 longer check current_binding_level.
25044 2004-08-09 Ben Brosgol <brosgol@gnat.com>
25046 * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
25049 * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
25051 2004-08-06 Andreas Schwab <schwab@suse.de>
25053 * utils.c (gnat_define_builtin): Remove second parameter of
25055 (begin_subprog_body): Likewise.
25057 2004-07-26 Arnaud Charlet <charlet@act-europe.fr>
25059 * sem_util.adb (Requires_Transient_Scope): Temporarily disable
25060 optimization, not supported by the tree-ssa back-end.
25062 2004-07-26 Olivier Hainque <hainque@act-europe.fr>
25064 * s-mastop-irix.adb: Update comments.
25066 * a-except.adb (Exception_Information): Raise Constraint_Error if
25067 exception Id is Null_Id.
25068 This is required behavior, which is more reliably and clearly checked
25069 at the top level interface level.
25071 2004-07-26 Javier Miranda <miranda@gnat.com>
25073 * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
25074 call if a component has no default_expression and the box is used.
25076 * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
25077 default_expression and you use box, it behaves as if you had declared a
25078 stand-alone object.
25079 (Resolve_Record_Aggregate): If a component has no default_expression and
25080 you use box, it behaves as if you had declared a stand-alone object.
25082 * sem_ch10.adb (Install_Siblings): Do not make visible the private
25083 entities of private-with siblings.
25085 2004-07-26 Ed Schonberg <schonberg@gnat.com>
25087 * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
25088 for a component of an itype, set the parent pointer for analysis,
25089 there is no list in which to insert it.
25091 * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
25092 bona-fide renamings, not for inherited operations.
25094 * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
25095 actual for a formal that is an access parameter, create local
25096 finalization list even if the expression is not an aggregate.
25098 2004-07-26 Ed Schonberg <schonberg@gnat.com>
25101 * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
25102 Diagnose properly illegal subprogram renamings that are library units.
25104 2004-07-26 Ed Schonberg <schonberg@gnat.com>
25107 * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
25108 conversion rewritten as an unchecked conversion, check that original
25109 expression is a variable.
25111 * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
25112 unchecked_conversion, create new node rather than rewriting in place,
25113 to preserve original construct.
25115 2004-07-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25117 * gigi.h (gnat_expand_body): Deleted.
25119 * Make-lang.in: (trans.o): Depends on function.h.
25121 * misc.c: (gnat_expand_body): Moved to here.
25123 * trans.c (gnat_expand_body_1): Deleted.
25124 (gnat_expand_body): Moved from here.
25125 (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
25126 (add_stmt): Check for marked visited with global_bindings_p.
25127 (gnat_gimplify_expr, case COMPONENT_REF): New case.
25128 (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
25130 * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
25131 VIEW_CONVERT_EXPR if not operation type.
25133 * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
25136 * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
25137 changes: reformatting of negation operators, removing unneeded
25138 inequality comparison with zero, converting equality comparisons with
25139 zero to negations, changing int/0/1 to bool/false/true, replace calls
25140 to gigi_abort with abort, and various other similar changes.
25142 2004-07-26 Vincent Celier <celier@gnat.com>
25144 * gnatcmd.adb (GNATCmd): Add processing for new built-in command
25147 * make.adb (Gnatmake): Fail when a library is not present and there is
25148 no object directory.
25150 * mlib-prj.adb (Check_Library): No need to check if the library needs
25151 to be rebuilt if there is no object directory, hence no object files
25152 to build the library.
25154 * opt.ads (Setup_Projects): New Boolean flag.
25156 * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
25158 Create directory when Kind /= "" and in "gnat setup". Report error if
25159 directory cannot be created.
25160 (Ada_Check): Create library interface copy dir if it does not exist
25161 and we are in "gnat setup".
25162 (Find_Sources): No error if in "gnat setup" and no Ada sources were
25164 (Language_Independent_Check): Create object directory, exec directory
25165 and/or library directory if they do not exist and we are in
25168 * vms_conv.ads: (Command_Type): New command Setup.
25170 * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
25172 * vms_data.ads: Add qualifiers/switches for new built-in command
25175 2004-07-25 Richard Henderson <rth@redhat.com>
25177 * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
25178 DECL_IGNORED_P on RESULT_DECL.
25180 2004-07-20 Olivier Hainque <hainque@act-europe.fr>
25182 * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
25183 allocation and potentially overflowing update with
25184 Tailored_Exception_Information. Use the sec-stack free procedural
25185 interface to output Exception_Information instead.
25187 * a-except.adb (To_Stderr): New subprogram for character, and string
25188 version moved from a-exextr to be visible from other separate units.
25189 (Tailored_Exception_Information): Remove the procedural version,
25190 previously used by the default Last_Chance_Handler and not any more.
25191 Adjust various comments.
25193 * a-exexda.adb: Generalize the exception information procedural
25194 interface, to minimize the use of secondary stack and the need for
25195 local buffers when the info is to be output to stderr:
25196 (Address_Image): Removed.
25197 (Append_Info_Character): New subprogram, checking for overflows and
25198 outputing to stderr if buffer to fill is of length 0.
25199 (Append_Info_String): Output to stderr if buffer to fill is of length 0.
25200 (Append_Info_Address, Append_Info_Exception_Name,
25201 Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
25202 Append_Info_Basic_Exception_Traceback,
25203 Append_Info_Exception_Information): New subprograms.
25204 (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
25205 (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
25206 Exception_Info_Maxlength, Exception_Name_Length,
25207 Exception_Message_Length): New subprograms.
25208 (Exception_Information): Use Append_Info_Exception_Information.
25209 (Tailored_Exception_Information): Use
25210 Append_Info_Basic_Exception_Information.
25211 Export services for the default Last_Chance_Handler.
25213 * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
25214 other separate units.
25216 2004-07-20 Vincent Celier <celier@gnat.com>
25218 * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
25220 2004-07-20 Ed Schonberg <schonberg@gnat.com>
25222 * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
25223 emit itype references for the designated types of component types that
25224 are declared outside of the full record declaration, and that may
25225 denote a partial view of that record type.
25227 2004-07-20 Ed Schonberg <schonberg@gnat.com>
25230 * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
25231 which is the designated type in an access component declaration, to the
25232 list of incomplete dependents of the parent type, to avoid elaboration
25233 issues with out-of-scope subtypes.
25234 (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
25235 full view of the parent.
25237 2004-07-20 Ed Schonberg <schonberg@gnat.com>
25240 * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
25241 entities that are hidden, such as references to generic actuals
25242 outside an instance.
25244 2004-07-20 Javier Miranda <miranda@gnat.com>
25246 * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
25247 support to the new notation.
25248 (Analyze_Selected_Component): Add call to Try_Object_Operation.
25250 2004-07-20 Jose Ruiz <ruiz@act-europe.fr>
25252 * s-taprob.adb: Adding the elaboration code required for initializing
25253 the tasking soft links that are common to the full and the restricted
25256 * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
25257 restricted run time has been moved to the package
25258 System.Soft_Links.Tasking.
25260 * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
25261 restricted run time has been moved to the package
25262 System.Soft_Links.Tasking.
25264 * Makefile.rtl: Add entry for s-solita.o in run-time library list.
25266 * s-solita.ads, s-solita.adb: New files.
25268 2004-07-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25270 * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
25271 Case_Statement_to_gnu): Split off from gnat_to_gnu.
25272 (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
25273 Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
25274 Exception_Handler_to_gnu_zcx): Likewise.
25276 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
25278 * gigi.h (builtin_function): Declare.
25280 2004-07-15 Robert Dewar <dewar@gnat.com>
25282 * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
25285 * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
25286 access values as an example of a warning.
25288 * gnat_rm.texi: Document new attribute Has_Access_Values
25290 * gnat-style.texi: Document that box comments belong on nested
25293 * sem_util.ads (Has_Access_Values): Improved documentation
25295 * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
25297 * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
25298 (Process_Interface_Name): Call to this new procedure
25299 (Set_Extended_Import_Export_External_Name): Call to this new procedure
25301 * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
25303 * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
25305 * einfo.ads: Minor comment typo fixed
25307 2004-07-15 Jose Ruiz <ruiz@act-europe.fr>
25309 * snames.adb: Add _atcb.
25311 * snames.ads: Add Name_uATCB.
25313 * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
25314 (in the expanded code) when using the restricted run time.
25316 * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
25317 a in parameter in order to allow ATCBs to be preallocated (in the
25320 * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
25321 order to allow ATCBs to be preallocated. In case of error, the ATCB is
25322 deallocated in System.Tasking.Stages.
25324 * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
25325 order to allow ATCBs to be preallocated.
25327 * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
25328 here. It was previously done in Initialize_ATCB.
25330 * rtsfind.ads: Make the Ada_Task_Control_Block visible.
25332 * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
25333 Restricted run time.
25335 * exp_ch3.adb: When using the Restricted run time, pass the
25336 preallocated Ada_Task_Control_Block when creating a task.
25338 2004-07-15 Ed Schonberg <schonberg@gnat.com>
25340 * sem_util.adb (Normalize_Actuals): If there are no actuals on a
25341 function call that is itself an actual in an enclosing call, diagnose
25342 problem here rather than assuming that resolution will catch it.
25344 * sem_ch7.adb (Analyze_Package_Specification): If the specification is
25345 the local copy of a generic unit for a formal package, and the generic
25346 is a child unit, install private part of ancestors before compiling
25347 private part of spec.
25349 * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
25350 use scope entities rather than tree structures, to handle properly
25351 parent units that are instances rewritten as bodies for inlining
25354 * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
25355 Remove_Parents): Handle properly a parent unit that is an
25356 instantiation, when the unit has been rewritten as a body for inlining
25359 * par.adb (Goto_List): Global variable to collect goto statements in a
25360 given unit, for use in detecting natural loops.
25362 * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
25363 use in detecting natural loops.
25365 * par-labl.adb (Find_Natural_Loops): Recognize loops create by
25366 backwards goto's, and rewrite as a infinite loop, to improve locality
25369 * exp_util.adb (Force_Evaluation): Recognize a left-hand side
25370 subcomponent that includes an indexed reference, to prevent the
25371 generation of copies that would miscompile the desired assignment
25373 (Build_Task_Image_Decls): Add a numeric suffix to
25374 generated name for string variable, to avoid spurious conflicts with
25375 the name of the type of a single protected object.
25377 * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
25378 loop with an explicit exit statement, to avoid generating an
25379 out-of-range value with 'Succ leading to spurious constraint_errors
25380 when compiling with -gnatVo.
25382 2004-07-15 Thomas Quinot <quinot@act-europe.fr>
25384 * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
25385 might not be analyzed yet, even if its Etype is already set (case of an
25386 unchecked conversion built using Unchecked_Convert_To, for example).
25387 If the prefix has already been analyzed, this will be a nop anyway.
25389 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
25390 controller type, or an assignment of a record type with controlled
25391 components, copy only user data, and leave the finalization chain
25392 pointers untouched.
25394 2004-07-15 Vincent Celier <celier@gnat.com>
25396 * make.adb (Collect_Arguments): Improve error message when attempting
25397 to compile a source not part of any project, when -x is not used.
25399 * prj.ads: (Defined_Variable_Kind): New subtype
25401 * prj-attr.adb (Register_New_Package): Two new procedures to register
25402 a package with or without its attributes.
25403 (Register_New_Attribute): Mew procedure to register a new attribute in a
25405 New attribute oriented subprograms: Attribute_Node_Id_Of,
25406 Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
25407 Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
25409 New package oriented subprograms: Package_Node_Id_Of,
25410 Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
25412 * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
25414 (Package_Node_Id): Now a private, self initialized type
25415 (Register_New_Package): New procedure to register a package with its
25417 New attribute oriented subprograms: Attribute_Node_Id_Of,
25418 Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
25419 Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
25421 New package oriented subprograms: Package_Node_Id_Of,
25422 Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
25424 * prj-dect.adb (Parse_Attribute_Declaration,
25425 Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
25427 * prj-makr.adb (Make): Parse existing project file before creating
25428 other files. Fail if there was an error during parsing.
25430 * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
25431 new spec of Prj.Attr.
25433 * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
25434 to new spec of Prj.Attr.
25436 2004-07-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25438 * utils2.c: Fix typo in comment.
25440 2004-07-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25442 * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
25443 * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
25445 2004-07-14 Andreas Schwab <schwab@suse.de>
25447 * trans.c (gnat_init_stmt_group): Remove duplicate definition.
25449 2004-07-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25451 * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
25453 (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
25456 * misc.c (gnat_types_compatible_p): New function.
25457 (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
25458 (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
25460 * trans.c (gigi): Move processing of main N_Compilation_Unit here.
25461 (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
25462 (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
25463 (mark_visited): Don't mark dummy type.
25464 (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
25465 parameter, we must remove any LJM building from GNU_NAME.
25466 (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
25467 (pos_to_constructor): Use int_const_binop.
25468 (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
25471 * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
25472 (gnat_pushlevel): Set TREE_USE on BLOCK node.
25473 (gnat_install_builtins): Add __builtin_memset.
25475 2004-07-13 Olivier Hainque <hainque@act-europe.fr>
25477 * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
25478 for a renaming, stabilize the initialization expression if we are at a
25479 local level. At the local level, uses of the renaming may be performed
25480 by a direct dereference of the initializing expression, and we don't
25481 want possible variables there to be evaluated for every use.
25483 * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
25484 Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
25485 them on the way. Account for the fact that we may introduce side
25486 effects in the process.
25488 2004-07-13 Richard Henderson <rth@redhat.com>
25490 * misc.c (default_pass_by_ref): Use pass_by_reference.
25492 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
25494 * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
25495 LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
25497 2004-07-08 Richard Henderson <rth@redhat.com>
25499 * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
25502 2004-07-06 Vincent Celier <celier@gnat.com>
25504 * vms_conv.ads: Minor reformatting.
25505 Alphabetical order for enumerated values of type Command_Type, to have
25506 the command in alphabetical order for the usage.
25508 * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
25509 the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
25511 * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
25513 * makegpr.adb (Global_Archive_Exists): New global Boolean variable
25514 (Add_Archive_Path): Only add the global archive if there is one.
25515 (Build_Global_Archive): Set Global_Archive_Exists depending if there is
25516 or not any object file to put in the global archive, and don't build
25517 a global archive if there is none.
25518 (X_Switches): New table
25519 (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
25520 in the X_Switches table, if any.
25521 (Initialize): Make sure the X_Switches table is empty
25522 (Scan_Arg): Record -X switches in table X_Switches
25524 * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
25526 * make.adb: Minor comment fix
25528 * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
25529 invoked with directory information, add the directory in front of the
25532 * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
25533 invoked with directory information, add the directory in front of the
25536 * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
25537 when Keep_Temporary_Files is False.
25538 (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
25539 directory information, add the directory in front of the path.
25540 When not on VMS, handle new switch -dn before the command to set
25541 Keep_Temporary_Files to True.
25542 (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
25545 * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
25546 invoked with directory information, add the directory in front of the
25549 2004-07-06 Thomas Quinot <quinot@act-europe.fr>
25551 * snames.ads, snames.adb (Name_Stub): New name for the distributed
25554 * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
25555 New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
25557 * g-socket.adb (To_Timeval): Fix incorrect conversion of
25558 Selector_Duration to Timeval for the case of 0.0.
25560 * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
25561 documentation from Evolve_And_Then.
25563 2004-07-06 Jose Ruiz <ruiz@act-europe.fr>
25565 * s-taprop-tru64.adb, s-taprop-os2.adb,
25566 s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
25568 2004-07-06 Robert Dewar <dewar@gnat.com>
25570 * s-osinte-hpux.ads, s-osinte-freebsd.ads,
25571 s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
25572 s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
25573 s-interr-sigaction.adb, s-taprop-irix-athread.adb,
25574 s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
25575 s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
25576 s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
25577 s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
25578 a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
25579 a-tags.ads, bindgen.ads, checks.adb, checks.adb,
25580 csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
25581 exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
25582 g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
25583 i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
25584 sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
25585 sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
25586 sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
25587 s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
25588 s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
25589 s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
25590 vms_data.ads: Minor reformatting,
25591 Fix bad box comment format.
25593 * gnat_rm.texi: Fix minor grammatical error
25595 * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
25597 * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
25598 more cases of discriminated records to be recognized as not needing a
25600 (Has_Access_Values): New function.
25602 * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
25604 * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
25605 Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
25606 with LRM terminology).
25607 Change terminology in comments primitive type => elementary type.
25609 2004-07-06 Ed Schonberg <schonberg@gnat.com>
25612 * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
25613 parameters do not impose any requirements on the presence of a body.
25615 2004-07-06 Ed Schonberg <schonberg@gnat.com>
25618 * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
25619 compilation unit and is in an open scope at the point of instantiation,
25620 assume that a body may be present later.
25622 2004-07-06 Ed Schonberg <schonberg@gnat.com>
25624 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
25625 Improve error message when specified size is not supported.
25627 * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
25628 is never a primitive operation.
25630 2004-07-05 Andreas Schwab <schwab@suse.de>
25632 * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
25633 RECORD_OR_UNION_CHECK.
25634 (TYPE_CONTAINS_TEMPLATE_P): Likewise.
25636 2004-07-04 Kelley Cook <kcook@gcc.gnu.org>
25638 * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
25639 dependency on xgnatugn, instead build it via a submake.
25640 (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
25642 2004-07-04 Richard Henderson <rth@redhat.com>
25644 * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
25646 2004-07-01 Richard Henderson <rth@redhat.com>
25648 * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
25649 * utils.c (max_size): Likewise.
25651 2004-06-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25653 * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
25654 and rest_of_type_compilation; add arg to create_*_decl.
25655 (annotate_decl_with_node): Deleted.
25656 (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
25657 * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
25658 (get_current_block_context, gnat_pushdecl): New declarations.
25659 (gnat_init_stmt_group): Likewise.
25660 (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
25661 * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
25662 (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
25663 (gnat_init): Call gnat_init_stmt_group.
25664 * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
25665 (gnu_pending_elaboration_list): Deleted.
25666 (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
25667 (gigi): Rearrange initialization calls and move some to last above.
25668 (gnat_to_gnu): If statement and not in procedure, go into elab proc.
25669 Delete calls to add_decl_expr; add arg to create_*_decl.
25670 (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
25671 (gnat_to_gnu, case N_Subprogram_Body): Move some code to
25672 begin_subprog_body and call it.
25673 Don't push and pop ggc context.
25674 (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
25675 (add_stmt): Remove handling of DECL_EXPR from here.
25676 If not in function, mark visited.
25677 (add_decl_expr): Put global at top level.
25678 Check for cases of DECL_INITIAL we have to handle here.
25679 (process_type): Add extra arg to create_type_decl.
25680 (build_unit_elab): Rework to just gimplify.
25681 * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
25682 (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
25683 (get_pending_elaborations, pending_elaborations_p): Likewise.
25684 (push_pending_elaborations, pop_pending_elaborations): Likewise.
25685 (get_elaboration_location, insert_elaboration_list): Likewise.
25686 (gnat_binding_level): Renamed from ada_binding_level.
25687 (init_gnat_to_gnu): Don't clear pending_elaborations.
25688 (global_bindings_p): Treat as global if no current_binding_level.
25689 (set_current_block_context): New function.
25690 (gnat_pushdecl): Renamed from pushdecl; major rework.
25691 All callers changed.
25692 (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
25693 (finish_record_type): Call call pushdecl for stub decl.
25694 (function_nesting_depth): Deleted.
25695 (begin_subprog_body): Delete obsolete code.
25696 * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
25698 2004-06-28 Robert Dewar <dewar@gnat.com>
25700 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25701 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
25702 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
25703 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
25704 a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
25706 * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
25707 deal with problem of inefficient slices on machines with strict
25708 alignment, when the slice is a component of a composite.
25710 * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
25711 machines, we need the check there as well.
25713 2004-06-28 Ed Schonberg <schonberg@gnat.com>
25715 * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
25716 determine safe copying direction for overlapping slice assignments
25717 when component is controlled.
25719 * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
25720 formal derived type in the actual for a formal package are visible in
25721 the enclosing instance.
25723 2004-06-28 Ed Schonberg <schonberg@gnat.com>
25726 * sem_util.adb (Trace_Components): Diagnose properly an illegal
25727 circularity involving a private type whose completion includes a
25728 self-referential component.
25729 (Enter_Name): Use Is_Inherited_Operation to distinguish a source
25730 renaming or an instantiation from an implicit derived operation.
25732 2004-06-28 Pascal Obry <obry@gnat.com>
25734 * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
25736 (Library_File_Name_For): Idem.
25738 2004-06-28 Matthew Gingell <gingell@gnat.com>
25740 * g-traceb.ads: Add explanatory note on the format of addresses
25741 expected by addr2line.
25743 2004-06-28 Jerome Guitton <guitton@act-europe.fr>
25745 * Makefile.in: Force debugging information on s-tasdeb.adb,
25746 a-except.adb and s-assert.adb needed by the debugger.
25748 2004-06-28 Vincent Celier <celier@gnat.com>
25750 * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
25754 * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
25756 * prj.adb: Minor reformatting
25757 (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
25759 * prj.ads: Comment updates
25761 (Project_Data): Change Flag1 to Need_To_Build_Lib.
25762 Remove Flag2: not used.
25764 * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
25767 * gnat_ugn.texi: Put a "null;" declaration in one project file example
25769 * gnat_rm.texi: Document Empty declarations "null;".
25771 * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
25772 front of the linker options.
25773 (Link_Foreign): Put the global archives and the libraries in front of
25774 the linker options.
25776 2004-06-28 Javier Miranda <miranda@gnat.com>
25778 * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
25779 (RTU_Loaded): Code cleanup
25780 (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
25781 withed predefined units.
25783 * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
25784 explicitly withed predefined units.
25785 Fix typo in comment
25787 * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
25788 explicitly withed predefined units.
25790 2004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25792 * ada-tree.def (DECL_STMT): Deleted.
25793 * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
25794 (DECL_STMT_VAR): Deleted.
25795 * decl.c: add_decl_stmt now add_decl_expr.
25796 * gigi.h: Likewise.
25797 * trans.c: Likewise.
25798 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
25799 (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
25800 (add_stmt): Only handle padded type here.
25801 (add_stmt_with_node): Allow gnat_node to not be present.
25802 (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
25803 (gnat_gimplify_stmt, case DECL_STMT): Deleted.
25804 (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
25805 make a SAVE_EXPR for the entire fat pointer.
25806 * utils.c (pushdecl): Walk a DECL_EXPR in global case.
25807 (create_index_type): Make a DECL_EXPR.
25808 (end_subprog_body): Don't call allocate_struct_function here but
25811 2004-06-25 Pascal Obry <obry@gnat.com>
25813 * makegpr.adb (Build_Library): Remove parameter Lib_Address and
25814 Relocatable from Build_Dynamic_Library call.
25816 * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
25817 Relocatable are now synonym.
25819 * Makefile.in: Use s-parame-mingw.adb on MingW platform.
25821 * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
25822 Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
25825 * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
25826 Lib_Address and Relocatable.
25827 (Default_DLL_Address): Removed.
25829 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25830 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
25831 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
25832 (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
25833 (Default_DLL_Address): Removed.
25835 * mlib-tgt-mingw.adb: Ditto.
25836 (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
25838 * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
25839 the initial thread stack size.
25841 * a-strmap.ads: Move package L to private part as it is not used in
25842 the spec. Found while reading code.
25844 2004-06-25 Olivier Hainque <hainque@act-europe.fr>
25846 * tracebak.c: Introduce support for a GCC infrastructure based
25847 implementation of __gnat_backtrace.
25849 * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
25850 any more. Use accessors instead. This eases maintenance and relaxes
25851 some alignment constraints.
25852 (_GNAT_Exception structure): Remove the Ada specific fields
25853 (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
25855 (is_handled_by, __gnat_eh_personality): Replace component references to
25856 exception structure by use of the new accessors.
25858 * init.c (__gnat_initialize): Adjust comments to match the just
25859 reverted meaning of the -static link-time option.
25861 * adaint.c (convert_addresses): Arrange not to define a stub for
25862 mips-irix any more, as we now want to rely on a real version from a
25863 recent libaddr2line.
25865 * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
25866 the personality routine can use them and not have to rely on a C
25867 counterpart of the record anymore. This simplifies maintenance and
25868 relaxes the constraint of having Standard'Maximum_Alignment match
25870 Update comments, and add a section on the common header alignment issue.
25872 2004-06-25 Geert Bosch <bosch@gnat.com>
25874 * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
25875 polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
25877 2004-06-25 Robert Dewar <dewar@gnat.com>
25879 * gnat_rm.texi: Fix section on component clauses to indicate that the
25880 restriction on byte boundary placement still applies for bit packed
25882 Add comment on stack usage from Initialize_Scalars
25884 * gnat_ugn.texi: Add documentation for -gnatyLnnn
25886 * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
25887 limiting nesting level.
25889 * usage.adb: Add line for -gnatyLnnn switch
25891 * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
25892 sem_ch13.adb, exp_aggr.adb: Minor reformatting
25894 * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
25895 type as well as on the subtype. This corrects a problem in freeze in
25896 setting alignments of atomic types.
25898 * sem_eval.ads: Minor comment typo fixed
25900 * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
25901 level. Minor reformatting.
25903 * fname.adb (Is_Predefined_File_Name): Require a letter after the
25904 minus sign. This means that file names like a--b.adb will not be
25905 considered predefined.
25907 * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
25908 record Test new flag and give diagnostic for bad component clause.
25909 (Freeze_Entity): Set alignment of array from component alignment in
25910 cases where this is safe to do.
25912 * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
25915 * cstand.adb: (Create_Standard): Set alignment of String to 1
25917 * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
25919 * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
25920 code in the common constrained array cases.
25922 * a-storio.adb: Change implementation to avoid possible alignment
25923 problems on machines requiring strict alignment (data should be moved
25924 as type Buffer, not type Elmt).
25926 * checks.adb (Apply_Array_Size_Check): Improve these checks by
25927 killing the overflow checks which we really do not need (64-bits is
25930 2004-06-25 Vincent Celier <celier@gnat.com>
25932 * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
25933 (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
25934 inconditionally for the main project.
25935 (Recursive_Add_Archives.Add_Archive_Path): New procedure
25936 (Link_Executables.Check_Time_Stamps): New procedure
25937 (Link_Executables.Link_Foreign): New procedure
25938 Changes made to reduce nesting level of this package
25939 (Check): New procedure
25940 (Add_Switches): When not in quiet output, check that a switch is not
25941 the concatenation of several valid switches. If it is, issue a warning.
25942 (Build_Global_Archive): If the global archive is rebuilt, linking need
25944 (Compile_Sources): Rebuilding a library archive does not imply
25945 rebuilding the global archive.
25946 (Build_Global_Archive): New procedure
25947 (Build_Library): New name for Build_Archive, now only for library
25949 (Check_Archive_Builder): New procedure
25950 (Create_Global_Archive_Dependency_File): New procedure
25951 (Gprmake): Call Build_Global_Archive before linking
25952 * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
25954 (Scan_Arg): Display the Copyright notice when -v is used
25956 * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
25959 * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
25961 Add new GNAT LIST qualifier /FILES=
25962 Added qualifier /DIRECTORY= to GNAT METRIC
25963 Added qualifier /FILES= to GNAT METRIC
25964 Added qualifier /FILES to GNAT PRETTY
25966 * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
25967 to take into account both versions of the switch.
25969 * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
25970 always be the last switch to the gcc driver. Disable switch storing so
25971 that switches automatically added by the gcc driver are not put in the
25974 * prj.adb (Project_Empty): Take into account changes in components of
25977 * prj.ads (Languages_Processed): New enumaration value All_Languages.
25979 * prj.ads (Project_Data): Remove component Lib_Elaboration: never
25980 used. Split Boolean component Ada_Sources_Present in two Boolean
25981 components Ada_Sources_Present and Other_Sources_Present.
25984 * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
25985 instead of Sources_Present.
25986 (Set_Ada_Paths.Add.Recursive_Add): Ditto
25988 * prj-nmsc.adb: Minor reformatting
25989 (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
25990 (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
25991 Check_Ada_Naming_Scheme.
25992 Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
25995 * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
25997 Make sure that all cycles where there is at least one "limited with"
25999 (Parse_Single_Project): New Boolean parameter In_Limited
26001 * prj-proc.adb (Recursive_Check): When Process_Languages is
26002 All_Languages, call first Prj.Nmsc.Ada_Check, then
26003 Prj.Nmsc.Other_Languages_Check.
26005 * prj-proc.adb (Process): Use Ada_Sources_Present or
26006 Other_Sources_Present (instead of Sources_Present) depending on
26009 * lang-specs.h: Keep -g and -m switches in the same order, and as the
26012 * lib.adb (Switch_Storing_Enabled): New global Boolean flag
26013 (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
26015 (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
26018 * lib.ads (Disable_Switch_Storing): New procedure.
26020 * make.adb: Modifications to reduce nesting level of this package.
26021 (Check_Standard_Library): New procedure
26022 (Gnatmake.Check_Mains): New procedure
26023 (Gnatmake.Create_Binder_Mapping_File): New procedure
26024 (Compile_Sources.Compile): Add switch -gnatez as the last option
26025 (Display): Never display -gnatez
26027 * Makefile.generic:
26028 When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
26030 * gnatcmd.adb (Check_Project): New function
26031 (Process_Link): New procedure to reduce nesting depth
26032 (Check_Files): New procedure to reduce the nesting depth.
26033 For GNAT METRIC, include the inherited sources in extending projects.
26034 (GNATCmd): When GNAT LS is invoked with a project file and no files,
26035 add the list of files from the sources of the project file. If this list
26036 is too long, put it in a temp text files and use switch -files=
26037 (Delete_Temp_Config_Files): Delete the temp text file that contains
26038 a list of source for gnatpp or gnatmetric, if one has been created.
26039 (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
26040 in the project file is too large, create a temporary text file that
26041 list them and pass it to the tool with "-files=<temp text file>".
26042 (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
26044 * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
26045 generated file is in not in Ada.
26047 * gnatls.adb: Remove all parameters And_Save that are no longer used.
26048 (Scan_Ls_Arg): Add processing for -files=
26049 (Usage): Add line for -files=
26051 * g-os_lib.adb (On_Windows): New global constant Boolean flag
26052 (Normalize_Pathname): When on Windows and the path starts with a
26053 directory separator, make sure that the resulting path will start with
26056 * clean.adb (Clean_Archive): New procedure
26057 (Clean_Project): When there is non-Ada code, delete the global archive,
26058 the archive dependency files, the object files and their dependency
26059 files, if they exist.
26060 (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
26062 2004-06-25 Thomas Quinot <quinot@act-europe.fr>
26064 * sinfo.ads: Fix typo in comment.
26066 * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
26067 the TSS for remote access-to-subprogram types, since these TSS are
26068 always present once the type has been analyzed.
26069 (RAS_E_Dereference): Same.
26071 * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
26072 reference raises Bad_Attribute, mark the reference as analyzed so the
26073 node (and any children resulting from rewrites that could have occurred
26074 during the analysis that ultimately failed) is not analyzed again.
26076 * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
26078 * exp_dist.adb: Minor comment fix.
26080 * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
26081 type is an anonymous access type, no unchecked deallocation of the
26082 allocated object can occur. If the object is controlled, attach it with
26083 a count of 1. This allows attachment to the Global_Final_List, if
26084 no other relevant list is available.
26085 (Get_Allocator_Final_List): For an anonymous access type that is
26086 the type of a discriminant or record component, the corresponding
26087 finalisation list is the one of the scope of the type.
26089 2004-06-25 Ed Schonberg <schonberg@gnat.com>
26091 * sem_ch3.adb (Replace_Type): When computing the signature of an
26092 inherited subprogram, use the first subtype if the derived type
26093 declaration has no constraint.
26095 * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
26096 before applying previous optimization. Minor code cleanup.
26098 * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
26099 placed at the beginning of an unpacked record without explicit
26100 alignment, a slice of it will be aligned and does not need a copy when
26103 2004-06-25 Ed Schonberg <schonberg@gnat.com>
26107 * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
26108 reference is written with expressions mimicking parameters.
26110 2004-06-25 Hristian Kirtchev <kirtchev@gnat.com>
26113 * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
26114 STEP 2a. The constraints of a full type declaration of a derived record
26115 type are checked for conformance with those declared in the
26116 corresponding private extension declaration. The message
26117 "not conformant with previous declaration" is emitted if an error is
26120 2004-06-25 Vasiliy Fofanov <fofanov@act-europe.fr>
26122 * g-traceb.ads: Document the need for -E binder switch in the spec.
26124 * g-trasym.ads: Document the need for -E binder switch in the spec.
26126 2004-06-25 Jose Ruiz <ruiz@act-europe.fr>
26128 * sem_prag.adb: Add handling of pragma Detect_Blocking.
26130 * snames.h, snames.ads, snames.adb: Add entry for pragma
26133 * s-rident.ads: Change reference to pragma Detect_Blocking.
26135 * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
26138 * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
26139 to indicate whether pragma Detect_Blocking is active.
26141 * par-prag.adb: Add entry for pragma Detect_Blocking.
26143 * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
26144 of not handling WITH.
26145 Note that this replaces the previous update which was incorrect.
26147 2004-06-25 Javier Miranda <miranda@gnat.com>
26149 * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
26150 use-clauses to have a clean environment.
26152 * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
26153 the installation of the use-clauses to stablish a clean environment in
26154 case of compilation of a separate unit; otherwise the call to
26155 use_one_package is protected by the barrier Applicable_Use.
26157 * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
26158 the installation of the use-clauses to stablish a clean environment in
26159 case of compilation of a separate unit.
26160 (End_Use_Clauses): Minor comment cleanup.
26162 2004-06-25 Sergey Rybin <rybin@act-europe.fr>
26164 * gnat_ugn.texi: Add description of the gnatpp 'files' switch
26166 2004-06-23 Richard Henderson <rth@redhat.com>
26168 * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
26170 2004-06-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26172 * decl.c (elaborate_expression, elaborate_expression_1): Arguments
26173 now bool instead of int.
26174 (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
26175 * trans.c (gnu_switch_label_stack): New function.
26176 (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
26177 elaboration of renamed entity returns.
26178 (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
26179 (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
26180 (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
26181 (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
26182 DECL_SIZE_UNIT and simplify variable-sized case.
26183 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
26184 Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
26185 (gnat_stabilize_reference): Add arg to COMPONENT_REF.
26186 (build_unit_elab): Disable for now.
26187 * utils.c (mark_visited): New function.
26188 (pushdecl): Walk tree to call it for global decl.
26189 (update_pointer_to): Update all variants of pointer and ref types.
26190 Add arg to COMPONENT_REF.
26191 (convert): Likewise.
26192 Move check for converting between variants lower down.
26193 * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
26194 (build_allocator): Don't force type of MODIFY_EXPR.
26195 (gnat_mark_addressable, case VAR_DECL): Unconditionally call
26196 put_var_into_stack.
26198 2004-06-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26200 * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
26201 * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
26202 * decl.c (gnat_to_gnu_entity): Also set force_global for imported
26204 * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
26205 all callers changed.
26206 (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
26207 the way that EXIT_STMT finds the loop label.
26208 (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
26209 (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
26210 (add_stmt): Use annotate_with_locus insted of setting directly.
26211 (pos_to_construct): Set TREE_PURPOSE of each entry to index.
26212 (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
26213 * utils.c (gnat_install_builtins): Install __builtin_memcmp.
26214 (build_vms_descriptor): Add extra args to ARRAY_REF.
26215 (convert): Use VIEW_CONVERT_EXPR between aggregate types.
26216 * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
26218 (build_binary_op): Don't make explicit CONVERT_EXPR.
26219 Add extra rgs to ARRAY_REF.
26221 2004-06-14 Pascal Obry <obry@gnat.com>
26223 * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
26224 Windows. Fix minor typo.
26226 * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
26227 which is now supported on Windows. With this implementation using the
26228 Library Project feature is no different on Windows than on UNIX.
26230 2004-06-14 Vincent Celier <celier@gnat.com>
26232 * makegpr.adb (Compile_Sources): Nothing to do when there are no
26235 * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
26237 * prj-part.adb (Parse_Single_Project): When a duplicate project name is
26238 found, show the project name and the path of the previously parsed
26241 2004-06-14 Ed Schonberg <schonberg@gnat.com>
26243 * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
26244 array, avoid copying the actual before the call.
26246 2004-06-14 Thomas Quinot <quinot@act-europe.fr>
26248 * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
26249 Instead, allocate memory on worst-case alignment assumptions, and then
26250 return an aligned address within the allocated zone.
26252 2004-06-14 Robert Dewar <dewar@gnat.com>
26254 * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
26255 elab entities in predefined units in No_Run_Time_Mode.
26256 (Gen_Adainit_C): Same fix
26257 (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
26258 units in No_Run_Time_Mode
26259 (Gen_Elab_Calls_C): Same fix
26261 * symbols-vms-alpha.adb: Minor reformatting
26263 * g-debpoo.ads: Minor reformatting
26265 * lib.adb (In_Same_Extended_Unit): Version working on node id's
26267 * lib.ads (In_Same_Extended_Unit): Version working on node id's
26269 * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
26272 * make.adb: Minor reformatting
26274 * par-ch12.adb: Minor reformatting
26276 * par-prag.adb: Add dummy entry for pragma Profile_Warnings
26278 * prj-strt.adb: Minor reformatting
26280 * restrict.ads, restrict.adb: Redo handling of profile restrictions to
26283 * sem_attr.adb: Minor reformatting
26285 * sem_ch7.adb: Minor reformatting
26287 * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
26288 for type in the same unit as the object declaration.
26290 * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
26291 static string expressions and not just string literals.
26293 (Set_Warning): Reset restriction warning flag for restriction pragma
26294 Implement pragma Profile_Warnings
26295 Implement pragma Profile (Restricted)
26296 Give obolescent messages for old restrictions and pragmas
26298 * snames.h, snames.ads, snames.adb: Add new entry for pragma
26301 * s-rident.ads: Add declarations for restrictions required by profile
26302 Restricted and profile Ravenscar.
26304 * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
26306 * gnat_ugn.texi: Correct some missing entries in the list of GNAT
26307 configuration pragmas.
26309 2004-06-11 Vincent Celier <celier@gnat.com>
26311 * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
26312 gnatsym, when symbol policy is Restricted.
26314 * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
26315 gnatsym, when symbol policy is Restricted.
26317 * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
26318 read the symbol file.
26319 (Finalize): Fail in symbol policy Restricted if a symbol in the original
26320 symbol file is not in the object files. Do not create a new symbol file
26321 when symbol policy is Restricted.
26323 * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
26326 * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
26328 (Usage): Line for new switch -R
26330 * make.adb (Initialize): When the platform is not VMS, add the
26331 directory where gnatmake is invoked in the front of the path, if
26332 gnatmake is invoked with directory information. Change the Scan_Args
26333 while loop to a for loop.
26334 (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
26335 if Depth is equal or greater than the proposed depth, there is nothing
26337 (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
26340 * prj.ads: Add new symbol policy Restricted.
26342 * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
26343 with the new parameters Check_All_Labels and Case_Location.
26345 * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
26346 (Library_Symbol_File needs to be defined).
26348 * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
26349 and Case_Location If Check_All_Labels is True, check that all values of
26350 the string type are used, and output warning(s) if they are not.
26352 * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
26355 * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
26357 * gnat_ugn.texi: Update documentation about the library directory in
26360 * makegpr.adb (Display_Command): In verbose mode, also display the
26361 value of the CPATH env var, when the compiler is gcc.
26362 (Initialize): Change the Scan_Args while loop to a for loop
26363 (Compile_Individual_Sources): Change directory to object directory
26364 before compilations.
26366 * symbols.ads: New symbol policy Restricted.
26368 2004-06-11 Olivier Hainque <hainque@act-europe.fr>
26370 * a-except.adb (Raise_After_Setup family): Remove. The responsibility
26371 is now taken care of internally in the Exception_Propagation package
26372 and does not require clients assistance any more.
26374 * a-exexpr.adb (Is_Setup_And_Not_Propagated,
26375 Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
26376 functions. Helpers to maintain a predicate required in the handling of
26377 occurrence transfer between tasks.
26378 This is now handled internally and does not require clients assistance
26379 for the setup/propagate separation anymore.
26380 (Setup_Exception, Propagate_Exception): Simplify the Private_Data
26381 allocation strategy, handle the Setup_And_Not_Propagated predicate and
26384 * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
26385 raise_after_setup, now that everything is handled internally within the
26386 setup/propagation engine.
26388 2004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
26390 * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
26391 Add additional conditions for the case of an actual being a simple
26392 name or literal. Improve inlining by preventing the generation
26393 of temporaries with a short lifetime (one use).
26395 2004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
26398 * einfo.ads: Minor comment updates for Has_Completion and
26399 E_Constant list of flags.
26401 * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
26402 and constant redeclarations now set the Has_Completion flag of their
26403 defining identifiers.
26405 * sem_ch7.adb (Analyze_Package_Spec): Add procedure
26406 Inspect_Deferred_Constant_Completion.
26407 Used to detect private deferred constants that have not been completed
26408 either by a constant redeclaration or pragma Import. Emits error message
26409 "constant declaration requires initialization expression".
26411 * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
26412 completes a deferred constant.
26414 2004-06-11 Geert Bosch <bosch@gnat.com>
26416 * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
26418 * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
26419 calculating exponent for scaling denormal numbers.
26420 (Leading_Part): Properly raise Constraint_Error for zero or negative
26422 (Remainder): Properly raise Constraint_Error for zero divisor.
26424 2004-06-11 Thomas Quinot <quinot@act-europe.fr>
26426 * sem_util.adb: Minor reformatting.
26428 * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
26429 dereference when accessing the entry parameter record.
26430 (Check_Array_Type): Always check for possible implicit dereference.
26431 (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
26432 Abort if a pointer is still present (denoting that an implicit
26433 dereference was left in the tree by the front-end).
26435 * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
26436 dereference when accessing the entry parameter record.
26437 (Check_Array_Type): Always check for possible implicit dereference.
26438 (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
26439 Abort if a pointer is still present (denoting that an implicit
26440 dereference was left in the tree by the front-end).
26442 2004-06-11 Emmanuel Briot <briot@act-europe.fr>
26444 * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
26445 message, like the compiler itself does. Easier to parse the output.
26447 * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
26449 * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
26450 be base names, and not includes directories.
26452 2004-06-11 Arnaud Charlet <charlet@act-europe.fr>
26454 * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
26455 so that dependencies are properly taken into account by make.
26457 2004-06-11 Arnaud Charlet <charlet@act-europe.fr>
26460 * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
26461 exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
26463 2004-06-11 Jerome Guitton <guitton@act-europe.fr>
26465 * Makefile.in (install-gnatlib): install target-specific run-time files.
26467 * Make-lang.in: Remove obsolete targets.
26469 2004-06-11 Ed Schonberg <schonberg@gnat.com>
26471 * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
26472 specification, to catch misuses of program unit names.
26474 * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
26475 superfluous conversions in an instance.
26477 2004-06-11 Ed Schonberg <schonberg@gnat.com>
26480 * sem_ch12.adb (Save_References): If operator node has been folded to
26481 enumeration literal, associated_node must be discarded.
26483 2004-06-11 Jose Ruiz <ruiz@act-europe.fr>
26485 * s-stchop-vxworks.adb: Add required pragma Convention to
26486 Task_Descriptor because it is updated by a C function.
26488 2004-06-08 Arnaud Charlet <charlet@act-europe.fr>
26491 * Makefile.in: Remove target specific SO_OPT on IRIX
26493 2004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26495 * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
26496 (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
26497 (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
26498 (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
26499 (STMT_STMT, USE_STMT): New statement codes.
26500 (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
26501 * ada-tree.h: Reflect above changes.
26502 (struct tree_loop_id): Deleted.
26503 (union lang_tree_node, struct lang_decl, struct lang_type):
26504 Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
26505 and DECL_LANGUAGE_SPECIFIC to reflect these changes.
26506 (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
26507 (IS_ADA_STMT): New macro.
26508 * decl.c (annotate_decl_with_node): New function.
26509 (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
26510 (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
26511 Call add_stmt_with_node to do needed assignments.
26512 Add call to update setjmp buffer directly, not via EXPR_STMT.
26513 (maybe_variable): Argment GNAT_NODE deleted.
26514 * gigi.h (maybe_variable): Likewise.
26515 (make_transform, add_stmt_with_node, set_block_for_group): New.
26516 (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
26517 (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
26518 (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
26519 (set_lineno, set_lineno_from_sloc): Likewise.
26520 (record_code_position, insert_code_for): Likewise.
26521 (gnat_poplevel): Now returns void.
26522 (end_subprog_body): Now takes argument.
26523 * misc.c (cgraph.h, tree-inline.h): New includes.
26524 (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
26525 (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
26526 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
26527 (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
26528 (gnat_parse_file): Don't set immediate_size_expand.
26529 Call cgraph functions.
26530 (gnat_expand_expr): Remove most cases.
26531 (record_code_position, insert_code_for): Remove from here.
26532 * trans.c (toplev.h, tree-gimple.h): Now included.
26533 (discard_file_names): Deleted.
26534 (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
26535 (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
26536 (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
26537 (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
26538 (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
26539 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
26540 (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
26541 (set_block_for_group, add_stmt_list): Likewise.
26542 (start_stmt_group): Renamed from start_block_stmt.
26543 (end_stmt_group): Likewise, from end_block_stmt.
26544 (build_stmt_group): Likewise, from build_block_stmt, also add arg.
26545 (gigi): Don't set discard_file_names or call set_lineno.
26546 Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
26547 (tree_transform): Deleted, now renamed to be gnat_to_gnu.
26548 Numerous changes throughout to reflect new names and complete
26549 function-at-a-time implementation.
26550 (gnat_expand_stmt): Delete or comment out all cases.
26551 (process_inlined_subprograms): Use add_stmt.
26552 (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
26553 call set_lineno; also remove unneeded block handling.
26554 (process_type): Remove unneeded block handling.
26555 (build_unit_elab): Remove calls to deleted functions.
26556 * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
26557 (tree-dump.h): Likewise.
26558 (struct ada_binding_level): Add field jmpbuf_decl.
26559 (gnat_define_builtin, gnat_install_builtins): New.
26560 (gnat_gimplify_function, gnat_finalize): Likewise.
26561 (gnat_poplevel): No longer return BLOCK, set it instead.
26562 Remove code dealing with nested functions.
26563 (gnat_init_decl_processing): Also set size_type_node.
26564 Call gnat_install_builtins.
26565 (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
26566 (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
26567 Remove special-case for "main".
26568 (end_subprog_body): Add arg and rework for tree-ssa.
26569 (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
26570 Add case for BOOLEAN_TYPE.
26571 * utils2.c (rtl.h): Now include.
26572 (build_call_raise): Test Debug_Flag_NN directly.
26573 (build_call_alloc_dealloc): Don't use local stack allocation for now.
26574 (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
26575 (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
26577 2004-06-07 Robert Dewar <dewar@gnat.com>
26579 * a-direct.ads, einfo.ads: Minor comment updates
26581 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
26582 s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
26583 s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
26584 s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
26585 s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
26587 * s-interr-sigaction.adb: Remove unreferenced variable
26588 (Attached_Interrupts). Minor reformatting.
26589 Avoid use of variable I (replace by J).
26591 * par-ch10.adb: Fix text of one error message
26593 * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
26594 exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
26595 exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
26596 opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
26597 par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
26598 par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
26599 sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
26600 sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
26601 sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
26602 sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
26603 snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
26606 2004-06-07 Doug Rupp <rupp@gnat.com>
26608 * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
26610 * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
26612 * mlib-tgt-vms-ia64.adb: New file.
26614 * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
26615 Add mlib-tgt-vms-ia64.adb
26616 Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
26617 Move to alpha specific ifeq section.
26618 Add VMS specific versions of symbols.adb
26619 Renaming of 5q vms files.
26621 * 5qsystem.ads renamed to system-vms_64.ads.
26623 2004-06-07 Vincent Celier <celier@gnat.com>
26625 * a-calend.ads: Add a GNAT Note comment after function Time_Of to
26626 explain that when a time of day corresponding to the non existing hour
26627 on the day switching to DST is specified, Split may return a different
26630 * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
26633 * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
26634 (Normalize_Pathname): Only resolve VMS logical names when on VMS.
26636 * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
26638 If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
26639 the linking options.
26640 (Build_Library.Check_Libs): On VMS, if there is a dependency on
26641 g-trasym.ads, set Gtrasymobj_Needed to True.
26643 * prj-attr.adb: Add new package Metrics for gnatmetric
26645 * prj-nmsc.adb (Record_Other_Sources): Put source file names in
26646 canonical case to take into account files with upper case characters on
26648 (Ada_Check): Load the reference symbol file name in the name buffer to
26649 check it, not the symbol file name.
26651 * snames.ads, snames.adb: Add standard name Metrics (name of project
26652 file package for gnatmetric).
26654 * vms_conv.ads: Add Metric to Comment_Type
26656 * vms_conv.adb (Initialize): Add component dor Metric in Command_List
26658 * vms_data.ads: Add qualifiers for GNAT METRIC
26660 * makegpr.adb (Link_Executables): Take into account the switches
26661 specified in package Linker of the main project.
26663 2004-06-07 Thomas Quinot <quinot@act-europe.fr>
26665 * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
26666 the index of the last element is Units.Last, not Units.Table'Last
26667 (which is usually not a valid index within the actually allocated
26668 storage for the table).
26670 * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
26671 determines whether to generate a call to a checked storage pool
26672 Dereference action.
26673 Generate such a call only for a dereference that either comes from
26674 source, or is the result of rewriting a dereference that comes from
26677 2004-06-07 Romain Berrendonner <berrendo@act-europe.fr>
26679 * bindgen.adb (Gen_Output_File): Add support for GAP builds.
26681 2004-06-07 Eric Botcazou <ebotcazou@act-europe.fr>
26683 (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
26684 file level, elaborate the stride for inner dimensions in alignment
26687 * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
26690 2004-06-07 Javier Miranda <miranda@gnat.com>
26692 * exp_ch6.adb: Correct wrong modification in previous patch
26694 2004-06-07 Vasiliy Fofanov <fofanov@act-europe.fr>
26696 * g-trasym.ads: Corrected comment to properly reflect level of support
26699 2004-06-07 Hristian Kirtchev <kirtchev@gnat.com>
26701 * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
26702 includes case of a variable referenced on the left hand side of an
26703 assignment, therefore remove redundant code. Variables and prefixes of
26704 indexed or selected components are now marked as referenced on left
26705 hand side. Warnings are now properly emitted when variables or prefixes
26706 are assigned but not read.
26708 * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
26709 left hand side referenced variables. Private access types do not
26710 produce the warning "variable ... is assigned but never read".
26711 Add also additional checks to left hand side referenced variables.
26712 Aliased, renamed objects and access types do not produce the warning
26713 "variable ... is assigned but never read" since other entities may read
26714 the memory location.
26716 2004-06-07 Jerome Guitton <guitton@act-europe.fr>
26718 * Makefile.in: In the powerpc/vxworks-specific section, restore
26719 EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
26722 2004-06-07 Ed Schonberg <schonberg@gnat.com>
26724 * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
26725 predefined operators.
26726 Removes spurious type errors from g-trasym-vms.adb.
26728 * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
26729 distinct from the operator appearing in the source, call appropriate
26730 routine to insert conversions when needed, and complete resolution of
26732 (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
26733 interpretations for rewritten right operand.
26734 (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
26735 the other operand is overloaded and the context is a type conversion.
26737 2004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26739 * ada-tree.def (BLOCK_STMT): Now has two operands.
26742 * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
26744 * gigi.h: (gnat_poplevel): Now returns a tree.
26746 * trans.c (end_block_stmt): Add arg; all callers changed.
26747 (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
26748 (start_block_stmt): Clear BLOCK_STMT_BLOCK.
26749 (add_stmt): Set TREE_TYPE.
26750 (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
26751 (gnat_expand_stmt, case BREAK_STMT): New case.
26753 * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
26755 2004-06-07 Jose Ruiz <ruiz@act-europe.fr>
26757 * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
26758 procedure Set_Stack_Size that is not needed.
26760 2004-06-07 Sergey Rybin <rybin@act-europe.fr>
26762 * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
26763 used for gnatpp input file and for the files upon which it depends
26765 2004-06-07 Ben Brosgol <brosgol@gnat.com>
26767 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
26769 2004-06-07 Arnaud Charlet <charlet@act-europe.fr>
26771 * gnatvsn.ads: Bump version numbers appropriately.
26772 Add new build type.
26774 2004-06-07 Pascal Obry <obry@gnat.com>
26776 * gnat_ugn.texi: Improve comments about imported names and link names
26777 on Windows. Add a note about the requirement to use -k gnatdll's option
26778 when working with a DLL which has stripped stdcall symbols (no @nn
26781 2004-05-27 Vincent Celier <celier@gnat.com>
26783 * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
26784 COMMENTS_LAYOUT=UNTOUCHED
26786 * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
26787 symbols-vms-alpha.adb
26789 2004-05-27 Thomas Quinot <quinot@act-europe.fr>
26791 * sem.ads: Clarify documentation on checks suppression.
26793 * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
26795 2004-05-27 Ed Schonberg <schonberg@gnat.com>
26797 * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
26798 the case of multiple derivations.
26799 (Is_Object_Reference): For a selected component, verify that the prefix
26800 is itself an object and not a value.
26802 * sem_ch12.adb (Same_Instantiated_Constant): New name for
26803 Same_Instantiated_Entity.
26804 (Same_Instantiated_Variable): Subsidiary to
26805 Check_Formal_Package_Instance, to recognize actuals for in-out generic
26806 formals that are obtained from a previous formal package.
26807 (Instantiate_Subprogram_Body): Emit proper error when
26808 generating code and the proper body of a stub is missing.
26810 * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
26811 has a universal interpretation, do the disambiguation here.
26813 * exp_ch4.adb (Expand_N_Type_Conversion,
26814 Expand_N_Unchecked_Type_Conversion): Special handling when target type
26815 is Address, to avoid typing anomalies when Address is a visible integer
26818 * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
26819 to determine whether a subprogram should not be marked Pure, even when
26820 declared in a pure package.
26822 2004-05-27 Jose Ruiz <ruiz@act-europe.fr>
26824 * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
26826 * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
26827 Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
26828 Update the documentation about the Ravenscar profile, following the
26829 definition found in AI-249.
26831 * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
26832 setting the Profile (Ravenscar). This must be done in addition to
26833 setting the required restrictions.
26835 * rtsfind.ads: Add the set of operations defined in package
26838 * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
26841 2004-05-27 Eric Botcazou <ebotcazou@act-europe.fr>
26843 lang-specs.h: Always require -c or -S and always redirect to /dev/null
26844 if -gnatc or -gnats is passed.
26846 2004-05-27 Hristian Kirtchev <kirtchev@gnat.com>
26848 * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
26849 a significant reference. Warnings are now properly emitted when a
26850 discriminated type is not referenced.
26852 * lib-xref.adb (Generate_Reference): A deferred constant completion,
26853 record representation clause or record type discriminant does not
26854 produce a reference to its corresponding entity. Warnings are now
26855 properly emitted when deferred constants and record types are not
26858 2004-05-27 Geert Bosch <bosch@gnat.com>
26860 * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
26861 Fixes ACATS Annex G tests.
26863 2004-05-27 Robert Dewar <dewar@gnat.com>
26865 * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
26868 2004-05-27 Arnaud Charlet <charlet@act-europe.fr>
26870 * s-interr.adb (Server_Task): Take into account case of early return
26871 from sigwait under e.g. linux.
26873 2004-05-27 Sergey Rybin <rybin@act-europe.fr>
26875 * gnat_ugn.texi: Add description for the new gnatpp options:
26876 -rnb - replace the original source without creating its backup copy
26877 -c0 - do not format comments
26879 2004-05-24 Geert Bosch <bosch@gnat.com>
26881 * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
26882 with 192 bits of precision, sufficient to reduce a double-extended
26883 arguments X with a maximum relative error of T'Machine_Epsilon, for X
26884 in -2.0**32 .. 2.0**32.
26885 (Cos, Sin): Always reduce arguments of 1/4 Pi or larger, to prevent
26886 reduction by the processor, which only uses a 68-bit approximation of
26888 (Tan): Always reduce arguments and compute function either using
26889 the processor's fptan instruction, or by dividing sin and cos as needed.
26891 2004-05-24 Doug Rupp <rupp@gnat.com>
26893 * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
26894 gcc error on 32/64 bit VMS.
26896 2004-05-24 Olivier Hainque <hainque@act-europe.fr>
26898 * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
26899 since this is what we get for stack overflows although not documented
26901 Document the issues which may require adjustments to our signal
26904 2004-05-24 Ed Schonberg <schonberg@gnat.com>
26906 * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
26907 enclosing dynamic scope if the instantiation is within a generic unit.
26909 2004-05-24 Arnaud Charlet <charlet@act-europe.fr>
26911 * exp_dbug.ads: Fix typo.
26913 * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
26914 Rename it to its proper name: system-linux-ia64.ads
26915 (stamp-gnatlib1): Remove extra target specific run time files when
26916 setting up the rts directory.
26918 2004-05-24 Javier Miranda <miranda@gnat.com>
26920 * einfo.ads, einfo.adb (Limited_Views): Removed.
26921 (Limited_View): New attribute that replaces the previous one. It is
26922 now a bona fide package with the limited-view list through the
26923 first_entity and first_private attributes.
26925 * sem_ch10.adb (Install_Private_With_Clauses): Give support to
26926 limited-private-with clause.
26927 (Install_Limited_Withed_Unit): Install the private declarations of a
26928 limited-private-withed package. Update the installation of the shadow
26929 entities according to the new structure (see Build_Limited_Views)
26930 (Build_Limited_Views): Replace the previous implementation of the
26931 limited view by a package entity that references the first shadow
26932 entity plus the first shadow private entity (required for limited-
26933 private-with clause)
26934 (New_Internal_Shadow_Entity): Code cleanup.
26935 (Remove_Limited_With_Clause): Update the implementation to undo the
26936 new work carried out by Build_Limited_Views.
26937 (Build_Chain): Complete documentation.
26938 Replace Ada0Y by Ada 0Y in comments
26941 * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
26942 types the level of accessibility depends on the enclosing type
26945 * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
26946 entities. Complete documentation of previous change.
26948 2004-05-24 Robert Dewar <dewar@gnat.com>
26950 * namet.adb: Minor reformatting
26951 Avoid use of name I (replace by J)
26952 Minor code restructuring
26954 * sem_ch6.adb: Minor reformatting
26956 * lib-writ.adb: Do not set restriction as active if this is a
26957 Restriction_Warning case.
26959 * sem_prag.adb: Reset restriction warning flag if real pragma
26960 restriction encountered.
26962 * s-htable.adb: Minor reformatting
26963 Change rotate count to 3 in Hash (improves hash for small strings)
26965 * 5qsystem.ads: Add comments for type Address (no literals allowed).
26967 * gnat_ugn.texi: Add new section of documentation "Code Generation
26968 Control", which describes the use of -m switches.
26970 2004-05-24 Eric Botcazou <ebotcazou@act-europe.fr>
26972 trans.c (tree_transform) <N_Identifier>: Do the dereference directly
26973 through the DECL_INITIAL for renamed variables.
26975 2004-05-24 Arnaud Charlet <charlet@act-europe.fr>
26977 * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
26979 2004-05-19 Joel Brobecker <brobecker@gnat.com>
26981 * exp_dbug.ads: Correct comments concerning handling of overloading,
26982 since we no longer use $ anymore.
26984 2004-05-19 Sergey Rybin <rybin@act-europe.fr>
26986 * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
26987 ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
26988 with illegal subunits.
26990 2004-05-19 Ed Schonberg <schonberg@gnat.com>
26992 * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
26993 body with front-end inlining enabled, check whether an inline pragma
26994 appears immediately after the body and applies to it.
26996 * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
26997 enabled and the pragma appears after the body of the subprogram.
26999 2004-05-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27001 Part of function-at-a-time conversion
27003 * misc.c (adjust_decl_rtl): Deleted.
27004 (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
27007 * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
27008 (add_decl_stmt, add_stmt, block_has_vars): New functions.
27009 (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
27011 * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
27012 when making a decl.
27013 (gnat_to_gnu_entity): Likewise.
27014 Use add_stmt to update setjmp buffer.
27015 Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
27017 No longer call adjust_decl_rtl.
27018 (DECL_INIT_BY_ASSIGN_P): New macro.
27019 (DECL_STMT_VAR): Likewise.
27021 * trans.c (gigi): Call start_block_stmt to make the outermost
27023 (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
27024 Call start_block_stmt and end_block_stmt temporarily.
27025 Use gnat_expand_stmt instead of expand_expr_stmt.
27026 (add_decl_stmt): New function.
27027 (tree_transform): Call it.
27028 (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
27029 (end_block_stmt): Set type and NULL_STMT.
27030 (gnat_expand_stmt): Make recursize call instead of calling
27032 (gnat_expand_stmt, case DECL_STMT): New case.
27033 (set_lineno_from_sloc): Do nothing if global.
27034 (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
27035 (start_block_stmt, add_stmt, end_block_stmt): New functions.
27036 (build_block_stmt): Call them.
27037 (gnat_to_code): Don't expand NULL_STMT.
27038 (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
27040 (tree_transform): Likewise.
27041 (tree_transform, case N_Null_Statement): Return NULL_STMT.
27042 (gnat_expand_stmt, case NULL_STMT): New case.
27043 (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
27046 * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
27049 * utils.c (create_var_decl): Do not call expand_decl or
27051 Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
27052 Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
27054 (struct e_stack): Add chain_next to GTY.
27055 (struct binding_level): Deleted.
27056 (struct ada_binding_level): New struct.
27057 (free_block_chain): New.
27058 (global_binding_level, clear_binding_level): Deleted.
27059 (global_bindings_p): Rework to see if no chain.
27060 (kept_level_p, set_block): Deleted.
27061 (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
27062 new data structure and work directly on BLOCK node.
27063 (gnat_poplevel): Similarly.
27064 (get_decls): Look at BLOCK_VARS.
27065 (insert_block): Work directly on BLOCK node.
27066 (block_has_var): New function.
27067 (pushdecl): Rework for new binding structures.
27068 (gnat_init_decl_processing): Rename and rework calls to pushlevel and
27070 (build_subprog_body): Likewise.
27071 (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
27073 * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
27075 * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
27076 (DECL_STMT_VAR): Likewise.
27078 2004-05-17 Robert Dewar <dewar@gnat.com>
27080 * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
27083 * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
27084 of restriction synonyums by using
27085 Restrict.Process_Restriction_Synonyms.
27087 * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
27089 * s-restri.ads (Tasking_Allowed): Correct missing comment
27091 * s-rident.ads: Add entries for restriction synonyms
27093 * ali.adb: Fix some problems with badly formatted ALI files that can
27094 result in infinite loops.
27096 * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
27097 s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
27098 s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
27099 s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
27100 s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
27101 s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
27102 s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
27103 s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
27104 s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
27105 a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
27106 exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
27107 s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
27108 s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
27109 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
27110 s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
27111 s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
27112 s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
27113 s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
27114 s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
27115 s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
27116 to Task_Id (minor cleanup).
27118 2004-05-17 Vincent Celier <celier@gnat.com>
27120 * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
27121 directory separator.
27123 * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
27124 project being extended, if Languages is not declared in extending
27127 2004-05-17 Javier Miranda <miranda@gnat.com>
27129 * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
27130 limited view of a visible sibling.
27132 2004-05-14 Robert Dewar <dewar@gnat.com>
27134 * gnat_ugn.texi: Minor change to -gnatS documentation
27136 * sprint.adb: Remove some instances of Assert (False) and for this
27137 purpose replace them by output of a ??? string.
27139 * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
27142 * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
27143 flag processing. This was suppressing required dependencies in
27144 No_Run_Time mode and is not needed since the binder does not generate
27145 references for things in libgnat anyway.
27147 * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
27150 2004-05-14 Thomas Quinot <quinot@act-europe.fr>
27152 * gnat_ugn.texi: Document AIX-specific issue with initialization of
27155 * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
27156 action for the case of an actual parameter in an init proc call.
27158 2004-05-14 Ed Schonberg <schonberg@gnat.com>
27160 * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
27161 subtype, check visible entities in base type.
27163 * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
27164 actions if the object is a renaming.
27166 * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
27167 Check_Formal_Package_Instance, to determine more precisely when the
27168 formal and the actual denote the same entity.
27170 2004-05-14 Javier Miranda <miranda@gnat.com>
27172 * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
27174 * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
27175 corresponding to a private_with must be removed from visibility; it
27176 will be made visible later, just before we analyze the private part of
27178 (Check_Private_Child_Unit): Allow private_with clauses in public
27180 (Install_Siblings): Make visible the private entities of private-withed
27182 (Install_Withed_Unit): Do not install the private withed unit if we
27183 are compiling a package declaration and the Private_With_OK flag was
27184 not set by the caller. These declarations will be installed later,
27185 just before we analyze the private part of the package.
27187 * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
27188 during the evaluation of the expression that initializes the object,
27189 decorate it with the expected type to avoid cascade errors.
27192 * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
27193 subprogram we have to install the private_with clauses after its
27194 specification has been analyzed (as documented in AI-262.TXT).
27196 * sem_ch8.adb (Has_Private_With): New function. Determines if the
27197 current compilation unit has a private with on a given entity.
27198 (Find_Direct_Name): Detect the Beaujolais problem described in
27201 * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
27202 provides the functionality of the function Is_Ancestor that was
27203 previously available in sem_ch10. It has been renamed to avoid
27206 * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
27208 2004-05-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27210 * utils.c (build_vms_descriptor): Use SImode pointers.
27212 2004-05-14 Vasiliy Fofanov <fofanov@act-europe.fr>
27214 * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
27216 2004-05-14 GNAT Script <nobody@gnat.com>
27218 * Make-lang.in: Makefile automatically updated
27220 2004-05-14 Arnaud Charlet <charlet@act-europe.fr>
27222 Renaming of target specific files for clarity
27224 * Makefile.in: Rename GNAT target specific files.
27226 * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
27227 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
27228 3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
27229 3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
27230 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
27231 3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
27232 42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
27233 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
27234 4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
27235 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
27236 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
27237 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
27238 51osinte.adb, 51osinte.ads, 51system.ads,
27239 52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
27240 55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
27241 56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
27242 56tpopsp.adb, 57system.ads, 58system.ads,
27243 5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
27244 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
27245 5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
27246 5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
27247 5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
27248 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
27249 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
27250 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
27251 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
27252 5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
27253 5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
27254 5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
27255 5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
27256 5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
27257 5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
27258 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
27259 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
27260 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
27261 5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
27262 5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
27263 5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
27264 5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
27265 5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
27266 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
27267 5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
27268 5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
27269 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
27270 5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
27271 5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
27272 5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
27273 5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
27274 5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
27275 5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
27276 5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
27277 5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
27278 5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
27279 7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
27280 7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
27281 7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
27282 7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
27284 * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
27285 a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
27286 a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
27287 a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
27288 a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
27289 a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
27290 a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
27291 a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
27292 a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
27293 a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
27294 g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
27295 g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
27296 g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
27297 g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
27298 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
27299 g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
27300 g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
27301 g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
27302 interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
27303 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
27304 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
27305 mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
27306 s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
27307 s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
27308 s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
27309 s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
27310 s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
27311 s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
27312 s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
27313 s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
27314 s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
27315 s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
27316 s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
27317 s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
27318 s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
27319 s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
27320 s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
27321 s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
27322 s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
27323 s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
27324 s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
27325 s-osinte-vms.ads, s-osinte-vxworks.adb,
27326 s-osinte-vxworks.ads, s-osprim-mingw.adb,
27327 s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
27328 s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
27329 s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
27330 s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
27331 s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
27332 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
27333 s-stchop-vxworks.adb, s-taprop-dummy.adb,
27334 s-taprop-hpux-dce.adb, s-taprop-irix.adb,
27335 s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
27336 s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
27337 s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
27338 s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
27339 s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
27340 s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
27341 s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
27342 s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
27343 s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
27344 s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
27345 s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
27346 s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
27347 s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
27348 s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
27349 s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
27350 s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
27351 s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
27352 symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
27353 system-hpux.ads, system-interix.ads, system-irix-n32.ads,
27354 system-irix-o32.ads, system-linux-x86_64.ads,
27355 system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
27356 system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
27357 system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
27358 system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
27359 system-vxworks-alpha.ads, system-vxworks-m68k.ads,
27360 system-vxworks-mips.ads, system-vxworks-ppc.ads,
27361 system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
27364 2004-05-13 Zack Weinberg <zack@codesourcery.com>
27366 * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
27368 2004-05-13 Diego Novillo <dnovillo@redhat.com>
27370 Merge from tree-ssa-20020619-branch.
27372 * config-lang.in (boot_language, build_by_default): Set
27374 * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
27375 (max_size): Add static chain op for call_expr.
27377 2004-05-12 Richard Sandiford <rsandifo@redhat.com>
27380 * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
27382 2004-05-11 Roger Sayle <roger@eyesopen.com>
27384 * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
27387 2004-05-10 Doug Rupp <rupp@gnat.com>
27389 * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
27392 * s-auxdec.ads: Add Short_Address subtype (moved here from System).
27394 * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
27396 * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
27397 Fixes undefined symbols in IA64 gnatlib.
27399 * 5vinmaop.adb: Reference s-auxdec for Short_Address.
27401 * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
27402 Short_Address). This will be moved to system.auxdec.
27404 2004-05-10 Thomas Quinot <quinot@act-europe.fr>
27406 * sem_util.adb: Replace test for presence of a node that is always
27407 present with a call to Discard_Node.
27409 * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
27410 Analyze on the library unit node after generation of distribution stub
27411 constructs. The call was a no-op because Unit_Node has already been
27412 Analyzed, and the tree fragments for the distribution stubs are
27413 analyzed as they are inserted in Exp_Dist.
27414 Update comment regarding to distribution stubs to reflect that we
27415 do not generate stub in separate files anymore.
27417 * einfo.ads: Clarify the fact that a tagged private type has the
27418 E_Record_Type_With_Private Ekind.
27420 * erroutc.adb: Minor reformatting
27422 * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
27423 values if line length is increased using -gnatyM (noticed during code
27426 * eval_fat.adb: Minor reformatting
27427 Put spaces around exponentiation operator
27429 2004-05-10 Ed Schonberg <schonberg@gnat.com>
27432 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
27433 has been rewritten as an explicit dereference, retrieve type of
27434 original node to check for possibly unconstrained record type.
27436 2004-05-10 Ed Schonberg <schonberg@gnat.com>
27438 * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
27439 overriding, use the operation of the parent unconditionally.
27441 * sem_ch4.adb (Remove_Address_Interpretations): Remove address
27442 operation when either operand is a literal, to avoid further
27445 * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
27446 overridden by a previous explicit declaration, mark the previous entity
27449 * sem_disp.adb (Check_Dispatching_Operation): New predicate
27450 Is_Visibly_Controlled, to determine whether a declaration of a
27451 primitive control operation for a derived type overrides an inherited
27452 one. Add warning if the explicit declaration does not override.
27454 2004-05-10 Vincent Celier <celier@gnat.com>
27456 * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
27457 some cases when the sources are no longer present.
27459 * make.adb (Collect_Arguments): Fail if an external source, not part
27460 of any project need to be compiled, when switch -x has not been
27463 * makeusg.adb: Document new switch -x
27465 * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
27466 defaulted to False.
27468 * switch-m.adb (Scan_Make_Switches): New switch -x
27470 * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
27471 gnatmake switch -x.
27473 * gnat_ugn.texi: Document new gnatmake switch -x
27475 2004-05-10 Eric Botcazou <ebotcazou@act-europe.fr>
27477 * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
27479 * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
27480 (process_attributes): Likewise.
27482 2004-05-10 Joel Brobecker <brobecker@gnat.com>
27484 * s-inmaop.ads: Fix spelling mistake in one of the comments.
27486 2004-05-10 Robert Dewar <dewar@gnat.com>
27488 * gnat_ugn.texi: Document that for config pragma files, the maximum
27489 line length is always 32767.
27491 * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
27492 literals is now allowed.
27494 * gnat-style.texi: Remove statement about splitting long lines before
27495 an operator rather than after, since we do not follow this rule at all.
27496 Clarify rule (really lack of rule) for spaces around exponentiation
27498 * sem_elim.adb: Allow concatenation of string literals as well as a
27499 single string literal for pragma arguments.
27501 * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
27503 * a-textio.adb (Terminate_Line): Do not add line feed if nothing
27504 written for append case.
27506 * frontend.adb: Changes to avoid checking max line length in config
27509 * g-os_lib.ads: Minor reformatting
27511 * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
27512 wrong in any case. Instead use standard value. Noticed during code
27515 * opt.ads (Max_Line_Length): New field, used to implement removal of
27516 limitation on length of lines when scanning config pragma files.
27518 * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
27519 makeutl.ads, makeutl.adb: Minor reformatting
27521 * scn.adb: Do not check line length while scanning config pragma files
27522 Do not check line length while scanning out license information
27524 * scng.adb: Changes to avoid line length checks while parsing config
27527 2004-05-10 GNAT Script <nobody@gnat.com>
27529 * Make-lang.in: Makefile automatically updated
27531 2004-05-05 Arnaud Charlet <charlet@act-europe.fr>
27533 * osint.adb (Find_Program_Name): Fix handling of VMS version
27536 2004-05-05 Emmanuel Briot <briot@act-europe.fr>
27538 * g-os_lib.ads (Invalid_Time): New constant
27540 * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
27541 return OS_Time instead of time_t to match what is imported by Ada.
27542 Now return -1 if the file doesn't exist, instead of a random value
27544 2004-05-05 Robert Dewar <dewar@gnat.com>
27546 * usage.adb: Add line for -gnatR?s switch
27548 * sem_ch13.adb, exp_ch2.adb: Minor reformatting
27550 * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
27551 and for Match (Data_First, Data_last)
27553 * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
27554 written when we are dealing with multi-unit files.
27556 2004-05-05 Jerome Guitton <guitton@act-europe.fr>
27558 * Makefile.in: Remove unused targets and variables.
27560 2004-05-05 Vincent Celier <celier@gnat.com>
27562 * switch-m.adb: New gnatmake switch -eI
27564 * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
27565 of new gnatmake switch -eInnn.
27567 * makegpr.adb: Take into account new parameters Index and Src_Index in
27570 * clean.adb: Implement support for multi-unit sources, including new
27573 * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
27576 * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
27577 (Extract_From_Q): New out parameter Index
27578 (Mark, Is_Marked): Subprograms moved to Makeutl
27579 (Switches_Of): New parameter Source_Index
27580 (Add_Switch): New parameter Index
27581 (Check): New parameter Source_Index
27582 (Collect_Arguments): New parameter Source_Index
27583 (Collect_Arguments_And_Compile): New parameter Source_Index
27584 (Compile): New parameter Source_Index
27585 Put subprograms in alphabetical order
27586 Add support for multi-source sources, including in project files.
27588 * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
27589 (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
27592 * makeusg.adb: New gnatmake switch -eInnn
27594 * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
27597 * opt.ads (Main_Index): New variable, defaulted to 0.
27599 * osint.ads, osinte.adb (Add_File): New parameter Index
27600 (Current_Source_Index): New function
27602 * prj.adb: Take into account new components Index and Src_Index
27604 * prj.ads (String_Element): New component Index
27605 (Variable_Value): New component Index
27606 (Array_Element): New component Src_Index
27608 * prj-attr.adb: Indicate that optional index may be specified for
27609 attributes Main, Executable, Spec, Body and some of Switches.
27611 * prj-attr.ads (Attribute_Kind): New values for optional indexes
27612 (Attribute_Record): New component Optional_Index
27614 * prj-com.ads (File_Name_Data): New component Index
27616 * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
27618 * prj-env.adb (Put): Output optional index
27620 * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
27621 attributes Spec and Body.
27623 * prj-nmsc.adb: Process optional indexes
27625 * prj-pp.adb: Ouput "at" for optional indexes
27627 * prj-proc.adb: Take into account optional indexes
27629 * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
27630 Optional_Index. For string literal,
27631 process optional index when Optional_Index is True.
27632 (Parse_Expresion): New Boolean parameter Optional_Index
27634 * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
27635 (Set_Source_Index_Of): New procedure
27637 * prj-util.adb (Executable_Of, Value_Of): Take into account optional
27640 * prj-util.ads (Executable_Of): New parameter Index
27641 (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
27642 New parameter Src_Index, defaulted to 0.
27644 2004-05-05 Ed Schonberg <schonberg@gnat.com>
27647 * sem_ch3.adb (Access_Definition): If this is an access parameter
27648 whose designated type is imported through a limited_with clause, do
27649 not add the enclosing subprogram to the list of private dependents of
27652 2004-05-05 Ed Schonberg <schonberg@gnat.com>
27655 * sem_ch6.adb (Base_Types_Match): True if one type is imported through
27656 a limited_with clause, and the other is its non-limited view.
27658 2004-05-05 Thomas Quinot <quinot@act-europe.fr>
27660 * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
27662 * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
27663 exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
27664 Stand.Boolean_Literals to produce references to entities
27665 Standard_False and Standard_True from compile-time computed boolean
27668 * stand.ads (Boolean_Literals): New variable, provides the entity
27669 values for False and True, for use by the expander.
27671 2004-05-05 Doug Rupp <rupp@gnat.com>
27673 * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
27674 5vinmaop.adb: Unchecked convert Short_Address vice Address
27676 * adaint.c, raise.c: Caste CRTL function return value
27677 to avoid gcc error on 32/64 bit IVMS.
27679 * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
27682 * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
27684 * 5qsystem.ads (Address): Declare as Long_Integer
27685 (Short_Address): Declare as 32 bit subtype of Address
27686 Declare abstract address operations to avoid gratuitous ambiguities.
27688 2004-05-05 Jose Ruiz <ruiz@act-europe.fr>
27690 * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
27691 instead of the old Boolean_Entry_Barriers.
27692 Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
27694 2004-05-05 GNAT Script <nobody@gnat.com>
27696 * Make-lang.in: Makefile automatically updated
27698 2004-05-03 Arnaud Charlet <charlet@act-europe.fr>
27700 * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
27702 2004-05-03 Olivier Hainque <hainque@act-europe.fr>
27705 * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
27706 alone. Replacing object references by literals is inappropriate in a
27707 so low level context.
27709 2004-05-03 Arnaud Charlet <charlet@act-europe.fr>
27711 * a-exexpr.adb: Add comments
27713 2004-05-03 Joel Brobecker <brobecker@gnat.com>
27715 * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
27716 declare the Ancestor_Tags array in Type_Specific_Data with a small size
27717 without risking a bounds check error when accessing one of its
27719 (Type_Specific_Data): Define Ancestor_Tags as a small array.
27720 This prevents us from hitting a limitation during the debug info
27721 generation when using stabs.
27723 * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
27725 This prevents us from hitting a limitation during the debug info
27726 generation when using stabs.
27728 2004-05-03 Eric Botcazou <ebotcazou@act-europe.fr>
27730 lang-specs.h: Remove -gnatz* from specs.
27732 2004-05-03 Vincent Celier <celier@gnat.com>
27734 * gprmake.adb, makegpr.ads, makegpr.adb: New files.
27736 * Make-lang.in, Makefile.in: Add gprmake
27738 2004-05-03 Thomas Quinot <quinot@act-europe.fr>
27740 * sem_aggr.adb: Fix typo in comment.
27742 2004-05-03 Robert Dewar <dewar@gnat.com>
27744 * make.adb: Minor reformatting
27746 * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
27748 * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
27749 so that it works when address is not a private type.
27751 * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
27752 properly with rewritten unchecked conversions. This prevents
27753 order-of-elaboration issues that can otherwise arise.
27754 (Minimum_Size): Don't check size of access types under VMS
27756 * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
27757 interpretations of integer literals as type System.Address.
27759 * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
27760 (Is_Descendent_Of): New function
27762 2004-05-03 Jose Ruiz <ruiz@act-europe.fr>
27764 * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
27765 Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
27766 No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
27768 * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
27769 of the old Max_Entry_Queue_Depth.
27771 * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
27772 Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
27773 No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
27775 * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
27776 New entry for proper handling of Max_Entry_Queue_Depth.
27777 New entry for proper handling of No_Dynamic_Interrupts.
27779 * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
27780 supersedes the GNAT specific restriction Boolean_Entry_Barriers.
27781 Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
27782 the GNAT specific restriction Max_Entry_Queue_Depth.
27783 Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
27784 the GNAT specific restriction No_Dynamic_Interrupts.
27786 * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
27787 instead of the old Boolean_Entry_Barriers.
27788 Use the new restriction No_Dynamic_Attachment instead of the old
27789 No_Dynamic_Interrupts.
27791 * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
27792 supersedes the GNAT specific restriction Boolean_Entry_Barriers.
27794 * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
27795 of the old Max_Entry_Queue_Depth.
27797 2004-05-03 GNAT Script <nobody@gnat.com>
27799 * Make-lang.in: Makefile automatically updated
27801 2004-04-29 Ed Schonberg <schonberg@gnat.com>
27803 * checks.adb (Enable_Range_Check): If the prefix of an index component
27804 is an access to an unconstrained array, perform check unconditionally.
27806 2004-04-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27808 * decl.c (gnat_to_gnu_field): Also call make_packable_type if
27811 2004-04-29 Olivier Hainque <hainque@act-europe.fr>
27813 * init.c (__gnat_install_handler, __gnat_error_handler): Remove
27814 alternate stack setting. There was no support for the tasking cases
27815 and the changes eventually caused a number of side-effect failures in
27816 the non-tasking case too.
27818 2004-04-29 Eric Botcazou <ebotcazou@act-europe.fr>
27820 lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
27823 2004-04-29 Vincent Celier <celier@gnat.com>
27825 * make.adb (Gnatmake): Increase max size of argument array for
27826 gnatbind for the potential addition of -F.
27827 If there are Stand-Alone Library projects, invoke gnatbind with -F to
27828 be sure that elaboration flags will be checked.
27830 * switch-c.adb: Correct call to Scan_Pos for -gnateI
27832 2004-04-29 Thomas Quinot <quinot@act-europe.fr>
27834 * sem_warn.adb (Check_References): Move '<access-variable> may be
27835 null' warning out of under Warn_On_No_Value_Assigned.
27837 2004-04-29 Ed Falis <falis@gnat.com>
27839 * gnat_ugn.texi: Fixed texi error
27841 2004-04-29 Robert Dewar <dewar@gnat.com>
27843 * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
27844 abstract operations if they come from predefined files.
27846 * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
27849 * s-addope.adb: Correct obvious error in mod function
27851 2004-04-28 Andrew W. Reynolds <awreynolds@mac.com>
27853 * Makefile.in: Add target pairs for powerpc darwin*
27856 * a-intnam-darwin.ads, s-osinte-darwin.adb,
27857 s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
27859 2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
27861 * Makefile.in: Add target macro definitions for s390*-linux*.
27862 * system-linux-s390.ads: New file.
27863 * system-linux-s390x.ads: New file.
27865 2004-04-28 Joseph S. Myers <jsm@polyomino.org.uk>
27867 * gnat_ugn.texi: Correct argument to @setfilename.
27869 2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
27871 * a-exexpr.adb (Unwind_Word): New data type.
27872 (Unwind_Exception): Use it as type of Private1 and Private2.
27874 * raise.c (db_action_for): Fix debug printf.
27876 2004-04-27 Ed Schonberg <schonberg@gnat.com>
27878 * a-wtmoio.ads: Formal type must be a modular type, not a signed
27881 2004-04-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27883 * decl.c (gnat_to_gnu_entity, case object): Call
27884 __builtin_update_setjmp_buf.
27886 * gigi.h (update_setjmp_buf): Deleted.
27887 (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
27889 * misc.c: (update_setjmp_buf): Deleted.
27891 * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
27892 around block of RTL.
27894 * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
27896 2004-04-26 Thomas Quinot <quinot@act-europe.fr>
27898 * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
27899 subprogram for which no pragma All_Calls_Remote applies, store the
27900 address of the real subprogram in the underlying record type, so local
27901 dereferences do not go through the PCS.
27903 2004-04-26 Robert Dewar <dewar@gnat.com>
27905 * i-c.ads: Add some type qualifications to avoid ambiguities when
27906 compiling with s-auxdec.ads and a non-private address type.
27908 2004-04-26 Arnaud Charlet <charlet@act-europe.fr>
27910 * Makefile.rtl: Fix error in previous check-in:
27911 Add s-addope.o to non tasking object list (rather than tasking object
27914 2004-04-26 Javier Miranda <miranda@gnat.com>
27916 * sem_aggr.adb: Fix typo in comments
27917 (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
27918 Required to check the null-exclusion attribute.
27920 * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
27921 case of anonymous access types in record and array components. For a
27922 component definition the level is the same of the enclosing composite
27925 * sem_ch3.adb (Analyze_Component_Declaration): In case of components
27926 that are anonymous access types the level of accessibility depends on
27927 the enclosing type declaration. In order to have this information, set
27928 the scope of the anonymous access type to the enclosing record type
27930 (Array_Type_Declaration): In case of components that are anonymous
27931 access types the level of accessibility depends on the enclosing type
27932 declaration. In order to have this information, set the scope of the
27933 anonymous access type to the enclosing array type declaration.
27935 * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
27938 * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
27939 renaming of anonymous access-to-constant types allowed if and only if
27940 the renamed object is access-to-constant.
27942 * sem_util.adb (Type_Access_Level): In case of anonymous access types
27943 that are component_definition or discriminants of a nonlimited type,
27944 the level is the same as that of the enclosing component type.
27946 2004-04-26 Sergey Rybin <rybin@act-europe.fr>
27948 * sem_elim.adb: Some minor code reorganization from code reading. Fix
27949 misprint in the function name (File_Name_Match).
27951 2004-04-23 Laurent Guerby <laurent@guerby.net>
27953 * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
27956 2004-04-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
27958 * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
27960 2004-04-23 Emmanuel Briot <briot@act-europe.fr>
27962 * adaint.c (__gnat_try_lock): No longer requires that the parent
27963 directory be writable, the directory itself is enough.
27964 (gnat_is_absolute_path): Change profile, so that the call from
27965 GNAT.OS_Lib can be made more efficient.
27967 * adaint.h (gnat_is_absolute_path): Change profile, so that the call
27968 from GNAT.OS_Lib can be made more efficient.
27970 * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
27971 one copy of the file name. Found by code reading.
27973 2004-04-23 Vincent Celier <celier@gnat.com>
27975 * gnat_ugn.texi: Add documentation for gnatmake switch -eL
27976 Correct documentation on gnatmake switches transmitted to the compiler
27978 * ali.ads: Minor comment fix
27980 2004-04-23 Javier Miranda <miranda@gnat.com>
27982 * sem_ch6.adb: (Confirming Types): Code cleanup
27984 * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
27985 subprogram types: E_Anonymous_Access_Subprogram_Type and
27986 E_Anonymous_Access_Protected_Subprogram_Type.
27988 2004-04-23 Thomas Quinot <quinot@act-europe.fr>
27990 * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
27991 whether a pragma All_Calls_Remote applies to the subprogram on which
27993 No functional change is introduced by this revision; the new parameter
27994 will be used to allow calls to local RCI subprograms to be optimized
27995 to not use the PCS in the case where no pragma All_Calls_Remote applies,
27996 as is already done in the PolyORB implementation of the DSA.
27998 * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
27999 whether a pragma All_Calls_Remote applies to the subprogram on which
28001 No functional change is introduced by this revision; the new parameter
28002 will be used to allow calls to local RCI subprograms to be optimized
28003 to not use the PCS in the case where no pragma All_Calls_Remote applies,
28004 as is already done in the PolyORB implementation of the DSA.
28006 2004-04-23 Robert Dewar <dewar@gnat.com>
28008 * Makefile.rtl: Add entry for s-addope.o in run time library list
28009 * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
28010 * s-addope.ads, s-addope.adb: New files.
28012 * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
28013 s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
28014 s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
28015 System.Address to be non-private and signed.
28017 * sem_elim.adb: Minor reformatting (fairly extensive)
28018 Some minor code reorganization from code reading
28019 Add a couple of ??? comments
28021 2004-04-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28023 * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
28024 (tree_transform, case N_If_Statement): Remove non-determinism.
28026 * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
28028 2004-04-23 Sergey Rybin <rybin@act-europe.fr>
28030 * gnat_rm.texi: Small fixes in the changes made in the 'pragma
28031 Eliminate' section.
28033 * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
28034 no longer used as a parameter name for Eliminate pragma).
28036 2004-04-22 Laurent Guerby <laurent@guerby.net>
28038 PR optimization/14984
28039 PR optimization/14985
28040 * trans.c (gigi): Fix non determinism leading to bootstrap
28041 comparison failures.
28043 2004-04-21 Pascal Obry <obry@gnat.com>
28045 * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
28046 passed to spawnvp() to properly handle program pathname with spaces on
28049 2004-04-21 Emmanuel Briot <briot@act-europe.fr>
28051 * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
28052 (Allocate, Deallocate, Free_Physically): Make sure the tasks are
28053 unlocked in case of exceptions.
28055 2004-04-21 Joel Brobecker <brobecker@gnat.com>
28057 * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
28058 This function does not exist anymore.
28060 2004-04-21 Thomas Quinot <quinot@act-europe.fr>
28062 * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
28064 * link.c: Move variables to the __gnat name space.
28066 * Makefile.in: list link.o explicitly when needed.
28068 * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
28070 2004-04-21 Javier Miranda <miranda@gnat.com>
28072 * einfo.adb (Original_Access_Type): New subprogram
28073 (Set_Original_Access_Type): New subprogram
28074 (Write_Field21_Name): Write the name of the new field
28076 * einfo.ads (Original_Access_Type): New field present in access to
28078 Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
28079 E_Anonymous_Access_Protected_Subprogram_Type.
28081 * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
28084 * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
28085 to anonymous access to subprogram types.
28087 * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
28088 to subprogram types.
28090 * sem_ch3.adb (Access_Definition): Complete decoration of entities
28091 corresponding to anonymous access to subprogram types.
28092 (Analyze_Component_Declaration): Add new actual to the call to
28093 subprogram replace_anonymous_access_to_protected_subprogram.
28094 (Array_Type_Declaration): Add new actual to the call to subprogram
28095 replace_anonymous_access_to_protected_subprogram.
28096 (Process_Discriminants): Add new actual to the call to subprogram
28097 replace_anonymous_access_to_protected_subprogram.
28098 (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
28100 * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
28103 * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
28104 access to subprogram types.
28106 * sem_util.adb (Has_Declarations): Addition of package_specification
28109 2004-04-21 Ed Schonberg <schonberg@gnat.com>
28111 * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
28112 inlined flags to renamed entity only if in current unit.
28114 2004-04-21 Thomas Quinot <quinot@act-europe.fr>
28116 * s-parint.ads: Add DSA implementation marker.
28118 * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
28119 value of System.Partition_Interface.DSA_Implementation to determine
28120 what version of the distributed systems annex is available (no
28121 implementation, GLADE, or PolyORB).
28123 2004-04-21 Joel Brobecker <brobecker@gnat.com>
28125 * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
28127 2004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28129 * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
28130 with new type if alias sets differ.
28131 Fixes ACATS c41103b.
28133 2004-04-21 Vincent Celier <celier@gnat.com>
28135 * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
28136 Add array Lang_Args for the language specific compiling argument
28139 * gnat_ugn.texi: Explain in more details when a library is rebuilt.
28141 2004-04-21 Sergey Rybin <rybin@act-europe.fr>
28143 * gnat_rm.texi: Update the descripton of the Eliminate pragma
28144 according to the recent changes in the format of the parameters of the
28145 pragma (replacing Homonym_Number with Source_Location).
28147 2004-04-19 Arnaud Charlet <charlet@act-europe.fr>
28149 * 5isystem.ads: Removed, unused.
28151 * gnat_rm.texi: Redo 1.13 change.
28153 2004-04-19 Robert Dewar <dewar@gnat.com>
28155 * s-stoele.ads: Clean up definition of Storage_Offset (the new
28156 definition is cleaner, avoids the kludge of explicit Standard operator
28157 references, and also is consistent with a visible System.Address with
28158 no visible operations.
28160 * s-geveop.adb: Add declarations to avoid assumption of visible
28161 operations on type System.Address (since these might not be available
28162 if Address is a non-private type for which the operations
28163 are made abstract).
28165 * sem_eval.adb: Minor reformatting
28167 * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
28168 s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
28169 reformatting (new function spec format).
28171 * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
28172 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
28173 s-caun64.adb: Add declarations to avoid assumption of visible
28174 operations on type System.Address (since these might not be available
28175 if Address is a non-private type for which the operations are made
28178 * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
28180 * exp_intr.adb: Minor comment update
28182 * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
28184 * 5omastop.adb: Add declarations to avoid assumption of visible
28185 operations on type System.Address (since these might not be available
28186 if Address is a non-private type for which the operations
28187 are made abstract).
28189 2004-04-19 Vincent Celier <celier@gnat.com>
28191 * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
28193 * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
28196 * prj-proc.adb (Process): New Boolean parameter Process_Languages,
28198 Call Check with Process_Languages.
28199 (Check): New Boolean parameter Process_Languages. Call Recursive_Check
28200 with Process_Languages.
28201 (Recursive_Check): New Boolean parameter Process_Languages. Call
28202 Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
28205 * prj-proc.ads (Process): New Boolean parameter Process_Languages,
28207 * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
28208 parameter Ada_Main, defaulted to True.
28209 Check for Ada specific characteristics only when Ada_Main is True.
28211 * opt.ads: (Follow_Links): New Boolean flag for gnatmake
28213 * prj.adb: (Project_Empty): Add new Project_Data components.
28215 * prj.ads: New types and tables for non Ada languages.
28216 (Project_Data): New components Languages, Impl_Suffixes,
28217 First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
28218 Include_Path, Include_Data_Set.
28220 * prj-env.ads, prj-env.adb: Minor reformatting
28222 * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
28223 Put subprograms in alphabetical order
28225 * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
28226 defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
28229 * mlib-prj.adb: Back out modification in last version, as they are
28231 (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
28233 * make.adb: (Mains): Moved to package Makeutl
28234 (Linker_Opts): Moved to package Makeutl
28235 (Is_External_Assignment): Moved to package Makeutl
28236 (Test_If_Relative_Path): Moved to package Makeutl
28237 (Gnatmake): Move sorting of linker options to function
28238 Makeutl.Linker_Options_Switches.
28240 * makeutl.ads, makeutl.adb: New files.
28242 * Makefile.in: Add makeutl.o to the object files for gnatmake
28244 * makeusg.adb: Add line for new switch -eL.
28246 * gnatls.adb (Image): New function.
28247 (Output_Unit): If in verbose mode, output the list of restrictions
28248 specified by pragmas Restrictions.
28250 * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
28253 * a-calend.adb (Split): Shift the date by multiple of 56 years, if
28254 needed, to put it in the range 1970 (included) - 2026 (excluded).
28255 (Time_Of): Do not shift Unix_Min_Year (1970).
28256 Shift the date by multiple of 56 years, if needed, to put it in the
28257 range 1970 (included) - 2026 (excluded).
28259 * adaint.h, adaint.c (__gnat_set_executable): New function.
28261 2004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28263 * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
28264 and pop GC context.
28265 (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
28266 (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
28267 (tree_transform, case N_Procedure_Call_Statement): Build a tree.
28268 (tree_transform, case N_Code_Statement): Likewise.
28269 (gnat_expand_stmt, case LABEL_STMT): Don't look at
28270 LABEL_STMT_FIRST_IN_EH.
28271 (gnat_expand_stmt, case ASM_STMT): New case.
28273 * utils2.c (build_unary_op): Properly set TREE_READONLY of
28274 UNCONSTRAINED_ARRAY_REF.
28276 * utils.c (poplevel): Temporarily push/pop GC context around inline
28277 function expansion.
28279 * decl.c (maybe_variable): Properly set TREE_READONLY of
28280 UNCONSTRAINED_ARRAY_REF.
28281 (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
28283 * ada-tree.def: (ASM_STMT): New.
28285 * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
28286 (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
28287 ASM_STMT_INPUT): New.
28288 (ASM_STMT_CLOBBER): Likewise.
28290 2004-04-19 Thomas Quinot <quinot@act-europe.fr>
28292 * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
28293 general rcheck mechanism to raise Program_Error for E.4(18), instead
28294 of a custom raiser in System.Partition_Interface.
28295 Part of general cleanup work before PolyORB integration.
28297 * snames.ads, snames.adb: Add new runtime library entities and names
28300 * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
28302 (Build_Subprogram_Id): New subprogram provided by exp_dist
28303 Code reorganisation in preparation for PolyORB integration.
28305 * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
28307 (Build_Subprogram_Id): New subprogram provided by exp_dist
28309 * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
28310 actual parameter types for call to dereference of an
28311 access-to-subprogram type.
28313 * rtsfind.ads: Add new runtime library entities and names for PolyORB
28316 * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
28317 instead, which has the same behaviour here since we never pass it a
28320 * link.c (run_path_option, Solaris case): Use -Wl, as for other
28323 * Makefile.in: adjust object file lists for gnatlink and gnatmake
28324 to account for new dependency upon Interfaces.C.Strings + link.o
28325 For x86 FreeBSD, use 86numaux.
28327 * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
28328 from Mlib.Tgt to Mlib.
28330 * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
28331 target-independent.
28333 * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
28334 target-specific versions of this subprogram, now implemented as a
28335 target-independent function in Mlib.
28337 * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
28338 5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
28339 (Linker_Library_Path_Option): Remove target-specific versions of this
28340 subprogram, now implemented as a target-independent function in Mlib.
28342 * atree.adb: (Allocate_Initialize_Node): New subprogram.
28343 Factors out node table slots allocation.
28344 (Fix_Parents): New subprogram.
28345 Encapsulate the pattern of fixing up parent pointers for syntactic
28346 children of a rewritten node.
28347 (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
28348 (Rewrite): Use New_Copy when creating saved copy of original node.
28349 (Replace): Use Copy_Node to copy nodes.
28351 2004-04-19 Javier Miranda <miranda@gnat.com>
28353 * sprint.adb (Sprint_Node_Actual): Give support to the new
28354 Access_To_Subprogram node available in Access_Definition nodes. In
28355 addition, give support to the AI-231 node fields: null-exclusion,
28356 all-present, constant-present.
28358 * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
28360 * sinfo.ads, sinfo.adb:
28361 New field Access_To_Subprogram_Definition in Access_Definition nodes
28363 * sem_ch6.adb (Process_Formals): Move here the code that creates and
28364 decorates internal subtype declaration corresponding to the
28365 null-excluding formal. This code was previously in Set_Actual_Subtypes.
28366 In addition, carry out some code cleanup on this code. In case of
28367 access to protected subprogram call
28368 Replace_Anonymous_Access_To_Protected_Subprogram.
28369 (Set_Actual_Subtypes): Code cleanup.
28371 * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
28372 Find_Type in case of anonymous access renamings. Add warning in case of
28373 null-excluding attribute used in anonymous access renaming.
28375 * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
28378 * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
28380 (Access_Definition): In case of anonymous access to subprograms call
28381 the corresponding semantic routine to decorate the node.
28382 (Access_Subprogram_Declaration): Addition of some comments indicating
28383 some code that probably should be added here. Detected by comparison
28384 with the access_definition subprogram.
28385 (Analyze_Component_Declaration): In case of access to protected
28386 subprogram call Replace_Anonymous_Access_To_Protected.
28387 (Array_Type_Declaration): In case of access to protected subprogram call
28388 Replace_Anonymous_Access_To_Protected_Subprogram.
28389 (Process_Discriminants): In case of access to protected subprogram call
28390 Replace_Anonymous_Access_To_Protected_Subprogram.
28392 * par.adb (P_Access_Definition): New formal that indicates if the
28393 null-exclusion part was present.
28394 (P_Access_Type_Definition): New formal that indicates if the caller has
28395 already parsed the null-excluding part.
28397 * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
28398 (P_Identifier_Declarations): Code cleanup and give support to renamings
28399 of anonymous access to subprogram types.
28400 (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
28401 (P_Array_Type_Definition): Give support to AI-254.
28402 (P_Component_Items): Give support to AI-254.
28403 (P_Access_Definition): New formal that indicates if the header was
28404 already parsed by the caller.
28405 (P_Access_Type_Definition): New formal that indicates if the caller has
28406 already parsed the null-excluding part.
28408 * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
28409 call to P_Access_Definition.
28411 2004-04-19 Geert Bosch <bosch@gnat.com>
28413 * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
28414 the delicate semantics of floating-point to integer conversion.
28415 (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
28417 * eval_fat.adb (Machine_Mantissa): Moved to spec.
28418 (Machine_Radix): New function.
28420 * eval_fat.ads (Machine_Mantissa): Moved from body for use in
28422 (Machine_Radix): New function also for use in conversion checks.
28424 2004-04-19 Ed Schonberg <schonberg@gnat.com>
28426 * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
28428 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
28429 to decorate the access-to-protected subprogram and the equivalent type.
28431 * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
28432 to anonymous access to subprogram types.
28434 * exp_ch4.adb (Expand_N_In): Preserve Static flag before
28435 constant-folding, for legality checks in contexts that require an RM
28438 * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
28439 temporary but stack checking is not enabled, increment serial number
28440 to so that symbol generation is consistent with and without stack
28443 * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
28444 independent on whether stack checking is enabled, caller must check
28445 the corresponding flag.
28447 * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
28449 (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
28450 parent if it has discriminants.
28451 (Build_Derived_Private_Type): Constructed full view does
28452 not come from source.
28453 (Process_Discriminants): Default discriminants on a tagged type are
28454 legal if this is the internal completion of a private untagged
28457 * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
28458 no constraint checks, because it corresponds to an existing object.
28460 * sem_prag.adb (Process_Convention): Pragma applies
28461 only to subprograms in the same declarative part, i.e. the same unit,
28462 not the same scope.
28464 * sem_res.adb (Valid_Conversion): In an instance or inlined body,
28465 ignore type mismatch on a numeric conversion if expression comes from
28468 2004-04-19 Sergey Rybin <rybin@act-europe.fr>
28470 * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
28471 Homonym_Number parameter, add processing for Source_Location parameter
28473 (Check_Eliminated): Remove the check for homonym numbers, add the check
28474 for source location traces.
28476 * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
28477 with Arg_Source_Location corresponding to the changes in the format of
28480 * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
28481 Eliminate pragma corresponding to the changes in the format of the
28482 pragma: Homonym_Number is replaced with Source_Location, two ways of
28483 distinguishing homonyms are mutially-exclusive.
28485 2004-04-19 Joel Brobecker <brobecker@gnat.com>
28487 * get_targ.ads (Get_No_Dollar_In_Label): Remove.
28489 * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
28490 No_Dollar_In_Label, no longer necessary, as it is always True.
28491 (Strip_Suffixes): Likewise.
28493 2004-04-19 Gary Dismukes <dismukes@gnat.com>
28495 * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
28496 modulus for compatibility with size clause on targets with 16-bit
28499 * layout.adb (Discrimify): In the case of private types, set Vtyp to
28500 full type to fix type mismatches on calls to size functions for
28501 discriminant-dependent array components.
28503 2004-04-19 Jerome Guitton <guitton@act-europe.fr>
28505 * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
28508 2004-04-19 Pascal Obry <obry@gnat.com>
28510 * mdll-utl.adb (Locate): New version is idempotent.
28512 2004-04-17 Laurent Guerby <laurent@guerby.net>
28514 PR ada/14988 (partial)
28515 * impunit.adb: Fix typo.
28517 2004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
28519 * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
28520 and install-rts-cert targets. Remove all gnatlib and gnattools
28521 targets and all other rts-* targets (moved to libada). Remove (now)
28522 unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
28523 TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
28525 2004-04-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28527 * trans.c (tree_transform): Shortcut returning error_mark_node for
28528 statements in annotate_only_mode.
28529 (tree_transform, case N_Label, case N_Return_Statement,
28530 N_Goto_Statement): Make statement tree instead of generating code.
28531 (tree_transform, case N_Assignment_Statement): No longer check
28532 type_annotate_only.
28533 (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
28535 (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
28537 (gnat_to_gnu): Collect any RTL generated and deal with it.
28538 (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
28539 (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
28540 (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
28542 * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
28544 * ada-tree.def (EXPR_STMT): Fix typo in name.
28545 (BLOCK_STMT, IF_STMT): New nodes.
28547 * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
28548 LABEL_STMT_FIRST_IN_EH): New macros.
28549 (RETURN_STMT_EXPR): Likewise.
28551 * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
28552 IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
28554 2004-04-08 Thomas Quinot <quinot@act-europe.fr>
28556 * atree.ads: Correct documentation on extended nodes.
28558 * link.c: Set run_path_option for FreeBSD.
28560 2004-04-08 Vincent Celier <celier@gnat.com>
28562 * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
28563 one of the ALI file, do not link with DEC lib.
28565 * par.adb Remove the last two characters ("%s" or "%b") when checking
28566 if a language defined unit may be recompiled.
28568 2004-04-08 Ed Schonberg <schonberg@gnat.com>
28570 * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
28571 removal of abstract operation leaves no possible interpretation for
28574 * sem_eval.adb (Eval_Qualified_Expression): Use
28575 Set_Raises_Constraint_Error on node when needed, so that it does not
28576 get optimized away by subsequent optimizations.
28578 * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
28579 operands even when they are not wrapped in a type conversion.
28581 2004-04-08 Olivier Hainque <hainque@act-europe.fr>
28583 * sem_prag.adb (Set_Exported): Warn about making static as result of
28584 export only when the export is coming from source. This may be not
28585 be true e.g. on VMS where we expand export pragmas for exception codes
28586 together with imported or exported exceptions, and we don't want the
28587 user to be warned about something he didn't write.
28589 2004-04-08 Thomas Quinot <quinot@act-europe.fr>
28591 * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
28592 duplication between normal entities and those declared as renamings.
28593 No functional change.
28595 * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
28596 inline functions returning an unconstrained result.
28598 2004-04-08 Eric Botcazou <ebotcazou@act-europe.fr>
28600 * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
28601 conform to what other front-ends do.
28603 2004-04-08 Doug Rupp <rupp@gnat.com>
28605 * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
28608 2004-04-06 Pascal Obry <obry@gnat.com>
28610 * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
28612 * osint.adb (Program_Name): Do not look past a directory separator.
28614 2004-04-06 Thomas Quinot <quinot@act-europe.fr>
28616 * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
28618 * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
28619 requirement for preserving a copy of the original assignment node.
28621 * sinfo.ads: Update comment (Original_Tree -> Original_Node).
28623 2004-04-06 Olivier Hainque <hainque@act-europe.fr>
28625 (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
28628 2004-04-06 Ed Schonberg <schonberg@gnat.com>
28630 * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
28631 operator calls in functional notation, and apply
28632 Universal_Interpretation to operands, not to their type.
28634 2004-04-06 Robert Dewar <dewar@gnat.com>
28636 * 5wdirval.adb: Minor reformatting
28638 2004-04-06 Ed Falis <falis@gnat.com>
28640 * gnat_rm.texi: Improve a reference to the GCC manual
28642 2004-04-05 Vincent Celier <celier@gnat.com>
28644 * adaint.h, adaint.c: Add function __gnat_named_file_length
28646 * impunit.adb: Add Ada.Directories to the list
28648 * Makefile.in: Add VMS and Windows versions of
28649 Ada.Directories.Validity package body.
28651 * Makefile.rtl: Add a-direct and a-dirval
28653 * mlib-tgt.ads: Minor comment update.
28655 * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
28656 a-direct.ads, a-direct.adb: New files.
28658 2004-04-05 Vincent Celier <celier@gnat.com>
28661 * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
28662 just to the compiler.
28664 2004-04-05 Robert Dewar <dewar@gnat.com>
28666 * a-except.adb (Exception_Name_Simple): Make sure lower bound of
28667 returned string is 1.
28669 * ali-util.adb: Use proper specific form for Warnings (Off, entity)
28671 * eval_fat.ads: Minor reformatting
28673 * g-curexc.ads: Document that lower bound of returned string values
28676 * gnatlink.adb: Add ??? comment for previous change
28677 (need to document why this is VMS specific)
28679 * s-stoele.ads: Minor reformatting
28681 * tbuild.ads: Minor reformatting throughout (new function specs)
28683 * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
28686 * scng.adb: Minor reformatting
28688 2004-04-05 Geert Bosch <bosch@gnat.com>
28690 * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
28691 (Leading_Part): Still perform truncation to machine number if the
28692 specified radix_digits is greater or equal to machine_mantissa.
28694 2004-04-05 Javier Miranda <miranda@gnat.com>
28696 * par-ch3.adb: Complete documentation of previous change
28697 Correct wrong syntax documentation of the OBJECT_DECLARATION rule
28698 (aliased must appear before constant).
28700 * par-ch4.adb: Complete documentation of previous change.
28702 * par-ch6.adb: Complete documentation of previous change.
28704 * sinfo.ads: Fix typo in commment.
28706 2004-04-05 Ed Schonberg <schonberg@gnat.com>
28708 * sem_ch3.adb (Inherit_Components): If derived type is private and has
28709 stored discriminants, use its discriminants to constrain parent type,
28710 as is done for non-private derived record types.
28712 * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
28713 Ada 2005 AI-310: an abstract non-dispatching operation is not a
28714 candidate interpretation in an overloaded call.
28716 * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
28717 expression is Null and target type is not an access type (e.g. a
28718 non-private address type).
28720 2004-04-05 Thomas Quinot <quinot@act-europe.fr>
28722 * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
28723 statement whose right-hand side is an inlined call, save a copy of the
28724 original assignment subtree to preserve enough consistency for
28725 Analyze_Assignment to proceed.
28727 * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
28728 complete assignment subtree which is now unnecessary, as the expansion
28729 of inlined call has been improved to preserve a consistent assignment
28730 tree. Note_Possible_Modification must be called only
28731 after checks have been applied, or else unnecessary checks will
28734 * sem_util.adb (Note_Possible_Modification): Reorganise the handling
28735 of explicit dereferences that do not Come_From_Source:
28736 - be selective on cases where we must go back to the dereferenced
28737 pointer (an assignment to an implicit dereference must not be
28738 recorded as modifying the pointer);
28739 - do not rely on Original_Node being present (Analyze_Assignment
28740 calls Note_Possible_Modification on a copied tree).
28742 * sem_warn.adb (Check_References): When an unset reference to a pointer
28743 that is never assigned is encountered, prefer '<pointer> may be null'
28744 warning over '<pointer> is never assigned a value'.
28746 2004-04-05 Ramon Fernandez <fernandez@gnat.com>
28748 * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
28751 2004-04-05 Olivier Hainque <hainque@act-europe.fr>
28753 * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
28754 libexc. We currently don't reference anything in this library and
28755 linking it in triggers linker warnings we don't want to see.
28757 * init.c: Update comments.
28759 2004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28761 * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
28762 * utils.c (create_field_decl): Likewise.
28763 * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
28765 2004-04-02 Arnaud Charlet <charlet@act-europe.fr>
28767 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
28768 Replace ifinfo by ifnottex, to make makeinfo --html happy again.
28769 Add info directory entry and category.
28771 2004-04-02 Jan Hubicka <jh@suse.cz>
28773 * utils.c: Include function.h
28774 (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
28776 2004-04-01 Arnaud Charlet <charlet@act-europe.fr>
28779 * Make-lang.in: Clean up generation of documentation
28781 * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
28783 * xgnatug.adb: Removed, replaced by xgnatugn.adb
28785 * xgnatugn.adb: Replaces xgnatug.adb
28787 * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
28789 * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
28791 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
28792 gnat_ug_wnt.texi: Removed.
28794 2004-04-01 Arnaud Charlet <charlet@act-europe.fr>
28796 * utils2.c: Update copyright notice.
28798 2004-04-01 Robert Dewar <dewar@gnat.com>
28800 * checks.adb: Minor reformatting throughout
28801 Note that prev checkin added RM reference to alignment warning
28803 2004-04-01 Ed Schonberg <schonberg@gnat.com>
28805 * exp_aggr.adb (Get_Component_Val): Treat a string literal as
28806 non-static when building aggregate for bit-packed array.
28808 * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
28809 function call that is itself the actual in a procedure call, build
28812 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
28813 a string literal, create a temporary for it, constant folding only
28814 handles scalars here.
28816 2004-04-01 Vincent Celier <celier@gnat.com>
28818 * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
28819 Error_Msg_SP): New empty procedures to instantiate the Scanner.
28820 (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
28822 (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
28823 (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
28824 and get the checksum.
28826 * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
28828 Increase the Marking_Label at the end of the Multiple_Main_Loop,
28829 instead of at the beginning.
28831 * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
28833 (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
28836 * osint.ads (Multi_Unit_Index_Character): New Character global variable
28838 * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
28841 * par.adb: Remove test on file name to detect language defined units.
28842 Add test on unit name, after parsing, to detect language defined units
28843 that are not compiled with -gnatg (except System.RPC and its children)
28845 * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
28846 following units without style checking.
28848 * switch-c.adb: Change -gnatC to -gnateI
28850 * usage.adb: Document new switch -gnateInnn
28852 * scng.adb (Accumulate_Token_Checksum): New procedure
28853 (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
28854 word or literal number.
28855 (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
28858 2004-04-01 Thomas Quinot <quinot@act-europe.fr>
28861 g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
28862 switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
28863 5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
28864 5vtpopde.adb: Add missing 'constant' keywords.
28866 2004-04-01 Javier Miranda <miranda@gnat.com>
28868 * par-ch4.adb: (P_Allocator): Code cleanup
28870 * sem_ch3.adb (Access_Definition): Properly set the null-excluding
28873 * sinfo.ads: Complete documentation of previous change
28875 2004-04-01 Pascal Obry <obry@gnat.com>
28877 * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
28878 only on VMS. This special handling was done because an old GNU/ld bug
28879 on Windows which has been fixed.
28881 2004-04-01 GNAT Script <nobody@gnat.com>
28883 * Make-lang.in: Makefile automatically updated
28885 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28887 * decl.c (gnat_to_gnu_entity, make_type_from_size):
28888 Use TYPE_UNSIGNED, not TREE_UNSIGNED.
28889 * trans.c (tree_transform, convert_with_check): Likewise.
28890 * utils.c (gnat_signed_or_unsigned_type): Likewise.
28891 (build_vms_descriptor, unchecked_convert): Likewise.
28892 * utils2.c (nonbinary_modular_operation): Likewise.
28894 2004-03-29 Javier Miranda <miranda@gnat.com>
28896 * checks.adb (Null_Exclusion_Static_Checks): New subprogram
28897 (Install_Null_Excluding_Check): Local subprogram that determines whether
28898 an access node requires a runtime access check and if so inserts the
28899 appropriate run-time check.
28900 (Apply_Access_Check): Call Install_Null_Excluding check if required
28901 (Apply_Constraint_Check): Call Install_Null_Excluding check if required
28903 * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
28905 * einfo.ads: Fix typo in comment
28907 * exp_ch3.adb (Build_Assignment): Generate conversion to the
28908 null-excluding type to force the corresponding run-time check.
28909 (Expand_N_Object_Declaration): Generate conversion to the null-excluding
28910 type to force the corresponding run-time check.
28912 * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
28913 the null-excluding type to force the corresponding run-time check.
28915 * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
28916 case of access types unless they have the null-excluding attribute.
28918 * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
28921 * exp_util.ads: Fix typo in comment
28923 * par.adb (P_Null_Exclusion): New subprogram
28924 (P_Subtype_Indication): New formal that indicates if the null-excluding
28925 part has been scanned-out and it was present
28927 * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
28929 * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
28930 (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
28931 type to force the corresponding run-time check
28932 (Resolve_Aggregate): Propagate the null-excluding attribute to the array
28934 (Resolve_Array_Aggregate): Carry out some static checks
28935 (Resolve_Record_Aggregate.Get_Value): Carry out some static check
28937 * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
28938 attribute must be set only if specified by means of the null-excluding
28939 part. In addition, we must also propagate the access-constant attribute
28941 (Access_Subprogram_Declaration, Access_Type_Declaration,
28942 Analyze_Component_Declaration, Analyze_Object_Declaration,
28943 Array_Type_Declaration, Process_Discriminants,
28944 Analyze_Subtype_Declaration): Propagate the null-excluding attribute
28945 and carry out some static checks.
28946 (Build_Derived_Access_Type): Set the null-excluding attribute
28947 (Derived_Type_Declaration, Process_Subtype): Carry out some static
28950 * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
28952 * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
28954 * sem_ch6.adb (Process_Formals): Carry out some static checks.
28955 (Set_Actual_Subtypes): Generate null-excluding subtype if the
28956 null-excluding part was present; it is not required to be done here in
28957 case of anonymous access types.
28958 (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
28961 * sem_res.adb (Resolve_Actuals): Carry out some static check
28962 (Resolve_Null): Allow null in anonymous access
28964 * sinfo.adb: New subprogram Null_Exclusion_Present
28965 All_Present and Constant_Present available on access_definition nodes
28967 * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
28968 object_declaration, derived_type_definition, component_definition,
28969 discriminant_specification, access_to_object_definition,
28970 access_function_definition, allocator, access_procedure_definition,
28971 access_definition, parameter_specification, All_Present and
28972 Constant_Present flags available on access_definition nodes.
28974 2004-03-29 Robert Dewar <dewar@gnat.com>
28976 * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
28977 gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
28978 opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
28979 par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
28980 sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
28981 sem_prag.adb: Updates to handle multiple units/file
28983 * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
28985 * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
28986 sem_util.adb: Minor reformatting
28988 * sem_ch12.adb: Add comment for previous change
28990 2004-03-29 Laurent Pautet <pautet@act-europe.fr>
28992 * osint.adb (Executable_Prefix): Set Exec_Name to the current
28993 executable name when not initialized. Otherwise, use its current value.
28995 * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
28996 initialize it to another executable name than the current one. This
28997 allows to configure paths for an executable name (gnatmake) different
28998 from the current one (gnatdist).
29000 2004-03-29 Ed Schonberg <schonberg@gnat.com>
29002 * exp_ch6.adb (Expand_Call): A call to a function declared in the
29003 current unit cannot be inlined if it appears in the body of a withed
29004 unit, to avoid order of elaboration problems in gigi.
29006 * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
29007 information for protected (wrapper) operation as well, to simplify gdb
29010 * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
29011 protected body, indicate that the entity for the generated spec comes
29012 from source, to ensure that references are properly generated for it.
29013 (Build_Body_To_Inline): Do not inline a function that returns a
29016 * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
29017 apply convention to homonyms that are declared explicitly.
29019 * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
29020 that renames an equality operator and the operands are overloaded,
29021 resolve them with the declared formal types, before rewriting as an
29024 2004-03-29 GNAT Script <nobody@gnat.com>
29026 * Make-lang.in: Makefile automatically updated
29028 2004-03-25 Vasiliy Fofanov <fofanov@act-europe.fr>
29030 * memtrack.adb: Log realloc calls, which are treated as free followed
29033 2004-03-25 Vincent Celier <celier@gnat.com>
29035 * prj-makr.adb (Process_Directories): Detect when a file contains
29036 several units. Do not include such files in the config pragmas or
29037 in the naming scheme.
29039 * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
29040 Resolve links only when not in Trusted_Mode.
29041 (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
29042 Do not resolve links for the display names.
29044 * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
29045 resolve links when computing the display names.
29047 2004-03-25 Thomas Quinot <quinot@act-europe.fr>
29049 * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
29050 attribute reference does not denote a subtype, it can be any
29051 expression that has a classwide type, potentially after an implicit
29052 dereference. In particular, the prefix can be a view conversion for
29053 a classwide type (for which Is_Object_Reference holds), but it can
29054 also be a value conversion for an access-to-classwide type. In the
29055 latter case, there is an implicit dereference, and the original node
29056 for the prefix does not verify Is_Object_Reference.
29058 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
29059 conversion of a discriminant-dependent component of a mutable object
29062 2004-03-25 Ed Schonberg <schonberg@gnat.com>
29064 * freeze.adb (Freeze_Entity): When an inherited subprogram is
29065 inherited, has convention C, and has unconstrained array parameters,
29066 place the corresponding warning on the derived type declaration rather
29067 than the original subprogram.
29069 * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
29070 indication on renaming declaration, if formal has a box and actual
29073 * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
29074 determine whether to generate an implicit or explicit reference to
29075 the renamed entity.
29077 * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
29078 subprogram renaming comes from a defaulted formal subprogram in an
29081 2004-03-25 Gary Dismukes <dismukes@gnat.com>
29083 * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
29084 value expressions to ensure that calls within a component definition
29085 will be checked (since those are evaluated during the record type's
29088 2004-03-25 Arnaud Charlet <charlet@act-europe.fr>
29090 * s-tpobop.adb: Code clean up:
29091 (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
29093 (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
29095 2004-03-25 Jose Ruiz <ruiz@act-europe.fr>
29097 * Makefile.in: Clean up in the ravenscar run time.
29099 2004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29101 * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
29102 of No_Strict_Aliasing to build_pointer_type_for_mode.
29103 * utils.c (update_pointer_to): Walk pointer and ref chains.
29105 2004-03-22 Cyrille Comar <comar@act-europe.fr>
29107 * ali.ads: Fix Comment about Dynamic_Elab.
29109 * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
29110 Has_RACW, Is_Generic, etc.)
29111 (Output_Object, Gnatls): Take into account ALI files not attached to
29114 2004-03-22 Vincent Celier <celier@gnat.com>
29116 * gprep.adb: Change all String_Access to Name_Id
29117 (Is_ASCII_Letter): new function
29118 (Double_File_Name_Buffer): New procedure
29119 (Preprocess_Infile_Name): New procedure
29120 (Process_Files): New procedure
29121 (Gnatprep): Check if output and input are existing directories.
29122 Call Process_Files to do the real job.
29124 2004-03-22 Robert Dewar <dewar@gnat.com>
29126 * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
29127 s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
29129 2004-03-22 Sergey Rybin <rybin@act-europe.fr>
29131 * scn.adb (Contains): Add check for EOF, is needed for a degenerated
29132 case when the source contains only comments.
29134 2004-03-22 Ed Schonberg <schonberg@gnat.com>
29136 * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
29137 declaration for a child subprogram body that acts as a spec, indicate
29138 that the entity in the declaration needs debugging information.
29140 * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
29141 full view if the subtype is created for a constrained record component;
29142 gigi has enough information to construct the record, and there is no
29143 place in the tree for the declaration.
29145 * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
29146 serial number for the dummy body that is built for analysis, to avoid
29147 inconsistencies in the generation of internal names when compiling
29150 2004-03-22 Thomas Quinot <quinot@act-europe.fr>
29152 * sem_util.adb (Is_Object_Reference): A view conversion denotes an
29155 2004-03-22 GNAT Script <nobody@gnat.com>
29157 * Make-lang.in: Makefile automatically updated
29159 2004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29161 * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
29162 * trans.c (tree_transform, emit_index_check): Likewise.
29163 * utils.c (build_template): Likewise.
29164 (max_size, convert): Remove handling of WITH_RECORD_EXPR.
29165 (maybe_unconstrained_array, unchecked_convert): Likewise.
29166 * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
29167 (build_unary_op): Likewise.
29168 (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
29169 (fill_vms_descriptor): Likewise.
29170 (build_call_alloc_dealloc): Likewise.
29172 * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
29174 2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
29177 * gnat_ug.texi: Add info directory category and entry.
29178 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
29179 gnat_ug_wnt.texi: Regenerate.
29181 2004-03-19 Arnaud Charlet <charlet@act-europe.fr>
29183 * ada-tree.h: Update copyright notice.
29184 Minor reformatting.
29186 2004-03-19 Olivier Hainque <hainque@act-europe.fr>
29188 * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
29189 as regular exception objects and not as mere integers representing the
29190 condition code. The latter approach required some dynamics to mask off
29191 severity bits, which did not fit well into the GCC table based model.
29192 (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
29193 exception data objects. We don't it and it would conflict with the other
29194 external symbol we have to generate for such exceptions.
29196 * trans.c (tree_transform, case N_Exception_Handler): Remove part of
29197 the special code for VMS exceptions, since these are now represented
29198 as regular exceptions objects.
29200 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29202 * decl.c (debug_no_type_hash): Remove.
29203 (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
29204 * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
29206 2004-03-19 Laurent Guerby <laurent@guerby.net>
29208 * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
29209 aggregate, allows bootstrap from 3.3 on powerpc-darwin.
29211 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29213 * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
29214 (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
29215 (TYPE_RM_SIZE_INT): Directly use type.values.
29216 (TREE_LOOP_ID): Clean up check.
29217 * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
29218 TYPE_VALUES, not TYPE_FIELDS.
29219 * trans.c (convert_with_check): Delay access of bounds of basetype
29220 until sure is numeric.
29222 2004-03-18 Arnaud Charlet <charlet@act-europe.fr>
29224 * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
29227 * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
29228 5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
29229 Specific.Set instead of direct call to e.g pthread_setspecific.
29231 2004-03-18 Thomas Quinot <quinot@act-europe.fr>
29233 * adaint.c: Update comments.
29235 * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
29236 GNATLIB_SHARED for FreeBSD.
29238 2004-03-18 Jose Ruiz <ruiz@act-europe.fr>
29240 * init.c [VxWorks]: Do not fix the stack size for the environment task.
29241 When needed (stack checking) the stack size is retrieved
29242 from the VxWorks kernel.
29244 * Makefile.in: Flag -nostdinc is required when building the run time
29245 for avoiding looking for files in the base compiler.
29246 Add the VxWorks specific version of the package body for
29247 System.Stack_checking.Operations (5zstchop.adb).
29249 * Make-lang.in: Add the object file for
29250 System.Stack_Checking.Operations.
29252 * Makefile.rtl: Add object file for the package
29253 System.Stack_Checking.Operations.
29255 * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
29257 * s-stache.ads, s-stache.adb: Move the operations related to stack
29258 checking from this package to package System.Stack_Checking.Operations.
29259 This way, stack checking operations are only linked in the final
29260 executable when using the -fstack-check flag.
29262 2004-03-18 Doug Rupp <rupp@gnat.com>
29264 * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
29267 * 5qsystem.ads, 5xcrtl.ads: New files.
29269 2004-03-18 Vincent Celier <celier@gnat.com>
29271 * prj.adb (Reset): Reset hash table Files_Htable
29273 * prj-env.adb (Source_Paths, Object_Paths): New tables.
29274 (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
29275 the procedures Add_To_Path_File.
29276 (Set_Ada_Paths): Accumulate source and object dirs in the tables,
29277 making sure that each directory is present only once and, for object
29278 dirs, when a directory already present is added, the duplicate is
29279 removed and the directory is always put as the last in the table.
29280 Write the path files at the end of these accumulations.
29282 * prj-nmsc.adb (Record_Source): Add source file name in hash table
29283 Files_Htable for all sources.
29285 * prj-proc.adb (Process): Remove restrictions between not directly
29286 related extending projects.
29288 2004-03-18 Emmanuel Briot <briot@act-europe.fr>
29290 * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
29291 (Find_Sources): Minor speed optimization.
29293 * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
29294 parameter Trusted_Mode.
29296 2004-03-18 Sergey Rybin <rybin@act-europe.fr>
29298 * scn.adb (Determine_License): Take into account a degenerated case
29299 when the source contains only comments.
29301 2004-03-18 Ed Schonberg <schonberg@gnat.com>
29303 * sem_warn.adb (Check_References): For a warning on a selected
29304 component that does not come from source, locate an uninitialized
29305 component of the record type to produce a more precise error message.
29307 2004-03-15 Jerome Guitton <guitton@act-europe.fr>
29309 * 3zsoccon.ads: Fix multicast options.
29311 * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
29314 2004-03-15 Robert Dewar <dewar@gnat.com>
29316 * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
29317 pragma used for a private type.
29319 * lib-xref.adb (Generate_Reference): Do not generate warning if
29320 reference is in a different unit from the pragma Unreferenced.
29322 * 5vtpopde.adb: Minor reformatting
29323 Fix casing of To_Task_ID
29325 * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
29326 flag if we have an unchecked conversion to an access type in the same
29329 2004-03-15 Geert Bosch <bosch@gnat.com>
29331 * a-ngcoty.adb (Modulus): In alternate formula for large real or
29332 imaginary parts, use Double precision throughout.
29334 * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
29335 we want to be able to compile run-time with -gnata for testing, but
29336 this may also be instantiated in user code that is compiled with -gnata.
29338 2004-03-15 Olivier Hainque <hainque@act-europe.fr>
29340 * s-stalib.ads (Exception_Code): New type, to represent Import/Export
29341 codes. Having a separate type for this is useful to enforce consistency
29342 throughout the various run-time units.
29343 (Exception_Data): Use Exception_Code for Import_Code.
29345 * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
29346 Natural and Integer in various places.
29347 (Register_VMS_Exception): Use Base_Code_In to compute the exception code
29348 with the severity bits masked off.
29349 (Register_VMS_Exception): Handle the additional exception data pointer
29352 * raise.c (_GNAT_Exception structure): Remove the handled_by_others
29353 component, now reflected by an exported accessor.
29354 (is_handled_by): New routine to compute whether the propagated
29355 occurrence matches some handler choice specification. Extracted out of
29356 get_action_description_for, and expanded to take care of the VMS
29358 (get_action_description_for): Use is_handled_by instead of an explicit
29359 complex condition to decide if the current choice at hand catches the
29360 propagated occurrence.
29362 * raise.h (Exception_Code): New type for C.
29364 * rtsfind.ads (RE_Id, RE_Unit_Table): Add
29365 System.Standard_Library.Exception_Code, to allow references from the
29366 pragma import/export expander.
29368 * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
29369 New accessors to allow easy access to GNAT exception data
29371 (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
29372 redundant Handled_By_Others component, helper for the personality
29373 routine which will now be able to call the appropriate exception data
29376 * cstand.adb (Create_Standard): Adjust the type of the Import_Code
29377 component of Standard_Exception_Type to be the closest possible to
29378 Exception_Code in System.Standard_Library, that we cannot get at this
29379 point. Expand a ??? comment to notify that this type node should
29380 probably be rewritten later on.
29382 * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
29383 registration call to include a pointer to the exception object in the
29386 * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
29387 instead of int and explicit bitmasks.
29389 2004-03-15 Vincent Celier <celier@gnat.com>
29391 * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
29392 equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
29394 * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
29395 longer needed now that it is in the spec of
29396 System.Tasking.Task_Attributes.
29398 * adaint.h, adaint.c: (__gnat_create_output_file): New function
29400 * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
29402 * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
29404 * make.adb (Gnatmake): Do not check the executable suffix; it is being
29405 taken care of in Scan_Make_Arg.
29406 (Scan_Make_Arg): Add the executable suffix only if the argument
29407 following -o, in canonical case, does not end with the executable
29408 suffix. When in verbose mode and executable file name does not end
29409 with executable suffix, output the executable name, in canonical case.
29411 * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
29412 to avoid warnings when instantiating Ada.Task_Attributes.
29415 * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
29416 in the correct order.
29418 * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
29419 redirect standard output and error to a file for the invocation of the
29420 compiler, then read the file.
29422 * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
29423 directory, instead of the Value.
29424 (Find_Source_Dirs): Remove useless code & comments.
29426 2004-03-15 Ed Schonberg <schonberg@gnat.com>
29428 * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
29429 tagged type is inherited, and the parent operation is not frozen yet,
29430 force generation of a freeze node for the inherited operation, so the
29431 corresponding dispatch entry is properly initialized.
29432 (Make_Predefined_Primitive_Specs): Check that return type is Boolean
29433 when looking for user-defined equality operation.
29435 * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
29436 boolean when locating primitive equality of tagged component.
29438 * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
29439 bit-aligned field and the right-hand side a string literal, introduce
29440 a temporary before expanding assignment into a loop.
29442 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
29443 priority in full, to ensure that any expanded subepxressions of it are
29444 elaborated in the scope of the init_proc.
29446 * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
29447 after object declaration, skipping over code that may have been
29448 generated for validity checks.
29450 * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
29451 discriminants, ignore the known discriminants of its full view, if
29452 any, to check legality.
29454 * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
29455 component if type has unknown discriminants.
29456 (Analyze_Private_Extension_Declaration): Discriminant constraint is
29457 null if type has unknown discriminants.
29459 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
29460 for end label when present.
29462 * s-fileio.adb (Open): When called with a C_Stream, use given name for
29463 temporary file, rather than an empty string.
29465 2004-03-15 Ed Falis <falis@gnat.com>
29467 * s-thread.adb: Removed, no longer used.
29469 2004-03-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29471 * decl.c (target.h): Now include.
29472 (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
29473 in new build_pointer_from_mode calls for non-fat/non-thin pointer.
29474 (validate_size): For POINTER_TYPE, get smallest size permitted on
29477 * fe.h: Sort Einfo decls and add Set_Mechanism.
29479 * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
29480 (ada/decl.o): Depends on target.h.
29482 * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
29483 FUNCTION_BOUNDARY; always use TYPE_ALIGN.
29485 2004-03-15 Thomas Quinot <quinot@act-europe.fr>
29487 * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
29489 * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
29490 Insert_Dereference_Action when rewriting an implicit dereference into
29491 an explicit one, this will be taken care of during expansion of the
29492 explicit dereference.
29493 (Expand_N_Slice): Same. Always do the rewriting, even for the case
29494 of non-packed slices, since the dereference action generated by
29495 expansion of the explicit dereference is needed in any case.
29496 (Expand_N_Selected_Component): When rewriting an implicit dereference,
29497 analyze and resolve the rewritten explicit dereference so it is seen
29499 (Insert_Dereference_Action): This procedure is now called only for the
29500 expansion of an N_Explcit_Dereference_Node. Do insert a check even for
29501 dereferences that do not come from source (including explicit
29502 dereferences resulting from rewriting implicit ones), but do not
29503 recursively insert a check for the dereference nodes contained within
29505 (Insert_Dereference_Action): Clarify and correct comment.
29507 2004-03-08 Paolo Bonzini <bonzini@gnu.org>
29510 Move language detection to the top level.
29511 * config-lang.in: Build by default.
29513 2004-03-05 Robert Dewar <dewar@gnat.com>
29515 * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
29517 * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
29518 i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
29519 5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
29520 5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
29521 unchecked conversion to spec to avoid warnings.
29523 * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
29526 * 7stpopsp.adb: Correct casing in To_Task_ID call
29528 * a-strsea.ads, a-strsea.adb: Minor reformatting
29530 * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
29532 * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
29533 Adjust Max_Msg_Length to be clearly large enough.
29535 * fe.h: Define In_Same_Source_Unit
29537 * osint.adb: Add pragma Warnings Off to suppress warnings
29538 * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
29541 * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
29543 * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
29545 * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
29547 * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
29549 * sem_prag.adb: Implement pragma No_Strict_Aliasing.
29551 * sinfo.ads: Remove obsolete comment on validate unchecked conversion
29552 node. We now do generate them for gcc back end.
29554 * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
29557 * sinput-c.adb: Fix bad name in header.
29558 Add pragma Warnings Off to suppress aliasing warning.
29560 * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
29562 * snames.h, snames.ads, snames.adb: Add entry for pragma
29563 No_Strict_Aliasing.
29565 2004-03-05 Vincent Celier <celier@gnat.com>
29567 * prj-com.ads: Add hash table Files_Htable to check when a file name
29568 is already a source of another project.
29570 * prj-nmsc.adb (Record_Source): Before recording a new source, check
29571 if its file name is not already a source of another project. Report an
29574 * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
29575 source file name, call gnatpp with all the sources of the main project.
29577 * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
29580 * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
29581 NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
29582 /RUNTIME_SYSTEM=, converted to --RTS=
29583 /NOTABS, converted to -notabs
29585 2004-03-05 Pascal Obry <obry@gnat.com>
29587 * make.adb: Minor reformatting.
29589 2004-03-05 Ed Schonberg <schonberg@gnat.com>
29591 Part of implemention of AI-262.
29592 * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
29594 * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
29597 * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
29598 when component type is a partially constrained class-wide subtype.
29599 (Constrain_Discriminated_Type): If parent type has unknown
29600 discriminants, a constraint is illegal, even if full view has
29602 (Build_Derived_Record_Type): Inherit discriminants when deriving a type
29603 with unknown discriminants whose full view is a discriminated record.
29605 * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
29606 flag, to handle properly derivations of tagged types with unknown
29608 (Analyze_Package_Spec, Analyze_Package_Body): Install
29609 Private_With_Clauses before analyzing private part or body.
29611 * einfo.ads: Indicate that both Has_Unknown_Discriminants and
29612 Has_Discriminants can be true for a given type (documentation).
29614 2004-03-05 Arnaud Charlet <charlet@act-europe.fr>
29616 * s-restri.ads: Fix license (GPL->GMGPL).
29618 * s-tassta.adb: Minor reformatting.
29620 * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
29621 by calls to Exit_One_ATC_Level, since additional clean up is performed
29624 * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
29625 by calls to Exit_One_ATC_Level, since additional clean up is performed
29628 2004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29630 * trans.c: Reflect GCC changes to fix bootstrap problem.
29631 Add warning for suspicious aliasing unchecked conversion.
29633 2004-03-05 GNAT Script <nobody@gnat.com>
29635 * Make-lang.in: Makefile automatically updated
29637 2004-03-02 Emmanuel Briot <briot@act-europe.fr>
29639 * ali.adb (Read_Instantiation_Instance): Do not modify the
29640 current_file_num when reading information about instantiations, since
29641 this corrupts files in later references.
29643 2004-03-02 Vincent Celier <celier@gnat.com>
29645 * bcheck.adb (Check_Consistency): Get the full path of an ALI file
29646 before checking if it is read-only.
29648 * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
29649 of SRC_DIRS and eliminate duplicates.
29651 * gprcmd.adb: Replace command "path" with command "path_sep" to return
29652 the path separator.
29653 (Usage): Document path_sep
29655 * Makefile.generic: For Ada and GNU C++ cases, link directly with the
29656 C++ compiler. No need for a script.
29657 Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
29658 Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
29661 * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
29662 where there are Ada sources.
29663 (Set_Ada_Paths): Only add to the include path the source dirs of project
29665 (Add_To_Path): Add the Display_Values of the directories, not their
29668 * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
29671 * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
29673 (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
29674 Value is canonicalized.
29675 (Language_Independent_Check): Do not copy Value to Display_Value when
29676 canonicalizing Value.
29678 * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
29679 path to find limited with cycles.
29680 (Parse_Single_Project): Use canonical cased path to find the end of a
29683 2004-03-02 Ed Schonberg <schonberg@gnat.com>
29685 * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
29686 and not a child unit.
29688 * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
29689 appear in a with_clause.
29691 * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
29692 only happen in type_annotate mode, do not try to elaborate it.
29694 * exp_util.adb (Force_Evaluation): If expression is a selected
29695 component on the left of an assignment, use a renaming rather than a
29696 temporary to remove side effects.
29698 * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
29699 inlined instance body, which is analyzed before the end of the
29702 2004-03-02 Robert Dewar <dewar@gnat.com>
29704 * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
29705 sem_ch4.adb: Use new feature for substitution of keywords in VMS
29707 * errout.ads, errout.adb: Implement new circuit for substitution of
29710 * sem_case.adb (Analyze_Choices): Place message properly when case is
29711 a subtype reference rather than an explicit range.
29713 * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
29715 2004-03-02 Doug Rupp <rupp@gnat.com>
29717 * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
29719 2004-03-02 Thomas Quinot <quinot@act-europe.fr>
29721 * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
29723 2004-03-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29725 * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
29728 2004-02-25 Robert Dewar <dewar@gnat.com>
29730 * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
29731 55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
29732 5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
29733 5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
29734 5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
29735 5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
29736 the defining instance of the type to avoid aliasing problems.
29737 Fix copyright header. Fix bad comments in package header.
29739 * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
29741 2004-02-25 Ed Schonberg <schonberg@gnat.com>
29743 * exp_ch2.adb (Param_Entity): Handle properly formals that have been
29744 rewritten as references when aliased through an address clause.
29746 * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
29747 whether call can be interpreted as an indirect call to the result of a
29748 parameterless function call returning an access subprogram.
29750 2004-02-25 Arnaud Charlet <charlet@act-europe.fr>
29753 * exp_ch7.adb (Make_Clean): Remove generation of calls to
29754 Unlock[_Entries], since this is now done by Service_Entries directly.
29756 * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
29758 * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
29759 Requeue_Call for better code readability. Change spec and update calls:
29760 PO_Service_Entries now unlock the PO on exit.
29761 (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
29762 PO_Service_Entries.
29764 * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
29766 * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
29768 2004-02-25 Sergey Rybin <rybin@act-europe.fr>
29770 * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
29771 protected subprogram call and analyzing the result of such expanding
29772 in case when the called protected subprogram is eliminated.
29774 * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
29777 2004-02-25 Jerome Guitton <guitton@act-europe.fr>
29779 * Makefile.in: Clean ups.
29781 2004-02-23 Ed Schonberg <schonberg@gnat.com>
29783 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
29784 protected operations if original subprogram is flagged as eliminated.
29785 (Expand_N_Subprogram_Body): For a protected operation, create
29786 discriminals for next operation before checking whether the operation
29789 * exp_ch9.adb (Expand_N_Protected_Body,
29790 Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
29791 for internal protected operations if the original subprogram is
29794 * sem_elim.adb (Check_Eliminated): Handle properly protected operations
29795 declared in a single protected object.
29797 2004-02-23 Vincent Celier <celier@gnat.com>
29799 * prj-attr.adb: Make attribute Builder'Executable an associative array,
29800 case insensitive if file names are case insensitive, instead of a
29801 standard associative array.
29803 * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
29804 them as case insensitive on platforms where the file names are case
29807 * prj-part.adb (Parse_Single_Project): Make sure, when checking if
29808 project file has already been parsed that canonical path are compared.
29810 2004-02-23 Robert Dewar <dewar@gnat.com>
29812 * sinput-c.ads: Correct bad unit title in header
29814 * freeze.adb: Minor reformatting
29816 2004-02-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29818 * trans.c (tree_transform, case N_Procedure_Call_Statement): For
29819 nonaddressable COMPONENT_REF that is removing padding that we are
29820 taking the address of, take the address of the padded record instead
29821 if item is variable size.
29823 2004-02-20 Robert Dewar <dewar@gnat.com>
29825 * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
29827 2004-02-20 Ed Schonberg <schonberg@gnat.com>
29829 * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
29830 itype references for the constrained designated type of a component
29831 whose base type is already frozen.
29833 2004-02-20 Arnaud Charlet <charlet@act-europe.fr>
29835 * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
29836 avoid GCC warnings.
29838 2004-02-20 Sergey Rybin <rybin@act-europe.fr>
29840 * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
29841 identifier for a phantom package that rewrites the formal package
29842 declaration with a box. The Add semantic decorations for the defining
29843 identifier from the original node (that represents the formal package).
29845 2004-02-19 Matt Kraai <kraai@alumni.cmu.edu>
29847 * Make-lang.in (ada/stamp-sdefault): Use the top level
29850 2004-02-19 Richard Henderson <rth@redhat.com>
29852 * misc.c (record_code_position): Add third build arg for RTL_EXPR.
29854 2004-02-18 Emmanuel Briot <briot@act-europe.fr>
29856 * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
29857 Scan_ALI can be used for multiple ALI files without reinitializing
29860 2004-02-18 Robert Dewar <dewar@gnat.com>
29862 * debug.adb: Minor reformatting.
29864 2004-02-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29866 * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
29867 to zero if there is an address clause.
29869 2004-02-18 Thomas Quinot <quinot@act-europe.fr>
29871 * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
29873 2004-02-18 Gary Dismukes <dismukes@gnat.com>
29875 * layout.adb (Layout_Component_List): Revise generation of call to
29876 discriminant-checking function to pass selections of all of the type's
29877 discriminants rather than just the variant-controlling discriminant.
29879 2004-02-18 Olivier Hainque <hainque@act-europe.fr>
29881 * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
29882 fail in the current setup and triggers spurious system error messages.
29883 Pretend it occurred and failed instead.
29885 2004-02-18 Vincent Celier <celier@gnat.com>
29887 * bld.adb: Mark FLDFLAGS as saved
29888 (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
29889 it is not the root project. Put each directory to be
29890 extended between double quotes to prevent it to be expanded on Windows.
29891 (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
29892 the project file. Set them back to their initial values if they have not
29893 been set in the project file.
29895 * gprcmd.adb: (Gprdebug, Debug): New global variables
29896 (Display_Command): New procedure
29897 (Usage): Document new command "linkopts"
29898 Call Display_Command when env var GPRDEBUG has the value "TRUE"
29899 Implement new command "linkopts"
29900 Remove quotes that may be around arguments for "extend"
29901 Always call Normalize_Pathname with arguments formatted for the platform
29903 * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
29904 Change @echo to @$(display) in target clean to be able to clean silently
29906 * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
29908 * prj-part.adb (Project_Path_Name_Of): Do not put final result in
29911 * prj-part.adb (Parse_Single_Project): Always call with From_Extended
29912 = Extending_All when current project is an extending all project.
29914 * vms_conv.adb (Output_File_Expected): New Boolean global variable,
29915 set to True only for LINK command, after Unix switch -o.
29916 (Process_Arguments): Set Output_File_Expected to True for LINK command
29917 after Unix switch -o. When Output_File_Expected is True, never add an
29918 extension to a file name.
29920 * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
29921 option file name, only to the --for-linker= switch.
29922 (Option_File_Name): If option file name do not end with ".opt", append
29925 2004-02-18 GNAT Script <nobody@gnat.com>
29927 * Make-lang.in: Makefile automatically updated
29929 2004-02-17 Matt Kraai <kraai@alumni.cmu.edu>
29931 * Make-lang.in (stamp-sdefault): Do not depend on
29934 2004-02-12 Zack Weinberg <zack@codesourcery.com>
29936 * config-lang.in: Disable Ada by default until probe logic for
29937 a bootstrap Ada compiler can be moved to the top level configure
29940 2004-02-12 Olivier Hainque <hainque@act-europe.fr>
29942 * decl.c (components_to_record): Don't claim that the internal fields
29943 we make to hold the variant parts are semantically addressable, because
29946 * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
29947 adjust the comment describing the modular type form when we can use it.
29948 (Install_PAT): Account for the Esiz renaming.
29950 * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
29951 sc_onstack context indication before raising the exception to which
29952 the signal is mapped. Allows better handling of later signals possibly
29953 triggered by the resumed user code if the exception is handled.
29955 2004-02-12 Arnaud Charlet <charlet@act-europe.fr>
29957 * 5zinit.adb: Removed, no longer used.
29959 2004-02-12 Robert Dewar <dewar@gnat.com>
29961 * ali.adb: Remove separating space between parameters on R line. Makes
29962 format consistent with format used by the binder for Set_Globals call.
29964 * atree.ads, atree.adb: Minor reformatting (new function header format)
29966 * bindgen.adb: Add Run-Time Globals documentation section containing
29967 detailed documentation of the globals passed from the binder file to
29970 * gnatls.adb: Minor reformatting
29972 * init.c (__gnat_set_globals): Add note pointing to documentation in
29975 * lib-writ.ads, lib-writ.adb: Remove separating space between
29976 parameters on R line.
29977 Makes format consistent with format used by the binder for Set_Globals
29980 * osint.ads: Add 2004 to copyright notice
29983 * snames.ads: Correct capitalization of FIFO_Within_Priorities
29984 Noticed during code reading, documentation issue only
29986 * usage.adb: Remove junk line for obsolete C switch
29987 Noticed during code reading
29989 2004-02-12 Vincent Celier <celier@gnat.com>
29991 * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
29992 extend for each directory, so that multiple /** directories are
29993 extended individually.
29994 (Recursive_Process): Set the default for LANGUAGES to ada
29996 * gprcmd.adb: Define new command "ignore", to do nothing.
29997 Implement new comment "path".
29999 * Makefile.generic: Suppress output when SILENT is set
30000 Make sure that when compiler for C/C++ is gcc, the correct -x switch is
30001 used, so that the correct compiler is invoked.
30002 When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
30003 CXX_INCLUDE_PATH, to avoid failure with too long command lines.
30005 2004-02-12 Jerome Guitton <guitton@act-europe.fr>
30007 * Makefile.in: Clean ups and remove obsolete targets.
30009 2004-02-12 Ed Schonberg <schonberg@gnat.com>
30011 * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
30012 predicate declared in exp_util.
30014 * exp_util.adb: Add comments.
30016 * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
30017 visibility before compiling context of the subunit.
30019 * sem_res.adb (Check_Parameterless_Call): If the context expects a
30020 value but the name is a procedure, do not attempt to analyze as a call,
30021 in order to obtain more telling diagnostics.
30023 * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
30024 'Access on parameterless function calls.
30025 (Normalize_Actuals): For a parameterless function call with missing
30026 actuals, defer diagnostic until resolution of enclosing call.
30028 * sem_util.adb (Wrong_Type): If the context type is an access to
30029 subprogram and the expression is a procedure name, suggest a missing
30032 2004-02-10 Arnaud Charlet <charlet@act-europe.fr>,
30033 Nathanael Nerode <neroden@gcc.gnu.org>
30037 Merge with libada-branch:
30038 * config-lang.in: Build libada only when ada is built.
30040 2004-02-09 Ed Schonberg <schonberg@gnat.com>
30042 * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
30043 for a tagged type, verify that both formals have the same type.
30045 * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
30046 temporary when the formal is an in-parameter and the actual a possibly
30049 * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
30050 when expansion is disabled, to ensure proper name capture with
30051 overloaded literals. Condition can be of any boolean type, resolve
30054 * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
30055 renaming is for a formal subprogram with a default operator name, and
30056 there is a usable operator that is visible at the point of
30059 2004-02-09 Robert Dewar <dewar@gnat.com>
30061 * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
30062 rewrite to ignore errors in ali files, intended to allow tools downward
30063 compatibility with new versions of ali files.
30065 * ali.ads: Add new parameter Ignore_Errors
30067 * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
30068 duplicating the error message giving the file with restrictions.
30070 * debug.adb: Add debug flag I for gnatbind
30072 * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
30073 operators for the case where the operator is a defining operator.
30075 * exp_ch3.adb: Minor reformatting (new function spec format).
30077 * exp_ch4.adb: Add comment for previous change, and make minor
30078 adjustment to loop to always check for improper loop termination.
30079 Minor reformatting throughout (new function spec format).
30081 * gnatbind.adb: Implement -di debug flag for gnatbind
30083 * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
30085 * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
30087 * lib-load.adb: Fix bad assertion.
30088 Found by testing and code reading.
30089 Minor reformatting.
30091 * lib-load.ads: Minor reformatting.
30093 * lib-writ.adb: There is only one R line now.
30095 * lib-writ.ads: Add documentation on making downward compatible changes
30096 to ali files so old tools work with new ali files.
30097 There is only one R line now.
30098 Add documentation on format incompatibilities (with special GPS note)
30100 * namet.ads, namet.adb: (Is_Operator_Name): New procedure
30102 * par-load.adb: Minor reformatting
30104 * sem_ch8.adb: Fix to error message from last update
30105 Minor reformatting and restructuring of code from last update
30107 * par-prag.adb, snames.adb, snames.ads, snames.h,
30108 sem_prag.adb: Implement pragma Profile.
30110 * stylesw.adb: Implement -gnatyN switch to turn off all style check
30113 * usage.adb: Add line for -gnatyN switch
30115 * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
30117 2004-02-09 Albert Lee <lee@gnat.com>
30119 * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
30121 2004-02-09 Ed Schonberg <schonberg@gnat.com>
30123 * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
30126 * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
30127 is nested in an instance that is not frozen yet, to avoid
30128 order-of-elaboration problems in gigi.
30130 * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
30131 body the attribute is legal.
30133 2004-02-09 Robert Dewar <dewar@gnat.com>
30135 * s-rident.ads: Minor comment correction
30137 * targparm.adb: Remove dependence on uintp completely. There was
30138 always a bug in Make in that it called Targparm before initializing
30139 the Uint package. The old code appeared to get away with this, but
30140 the new code did not! This caused an assertion error in gnatmake.
30142 * targparm.ads: Fix bad comment, restriction pragmas with parameters
30143 are indeed fully supported.
30145 2004-02-06 Alan Modra <amodra@bigpond.net.au>
30147 * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
30149 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
30151 * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
30152 with targetm.calls.promote_prototypes.
30154 2004-02-04 Robert Dewar <dewar@gnat.com>
30156 * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
30157 ali.ads, gprcmd.adb: Minor reformatting
30159 * bindgen.adb: Output restrictions string for new style restrictions
30162 * impunit.adb: Add s-rident.ads (System.Rident) and
30163 s-restri (System.Restrictions)
30165 * lib-writ.adb: Fix bug in writing restrictions string (last few
30168 * s-restri.ads, s-restri.adb: Change name Restrictions to
30169 Run_Time_Restrictions to avoid conflict with package name.
30170 Add circuit to read and acquire run time restrictions.
30172 2004-02-04 Jose Ruiz <ruiz@act-europe.fr>
30174 * restrict.ads, restrict.adb: Use the new restriction
30175 No_Task_Attributes_Package instead of the old No_Task_Attributes.
30177 * sem_prag.adb: No_Task_Attributes is a synonym of
30178 No_Task_Attributes_Package.
30180 * snames.ads, snames.adb: New entry for proper handling of
30181 No_Task_Attributes.
30183 * s-rident.ads: Adding restriction No_Task_Attributes_Package
30184 (AI-00249) that supersedes the GNAT specific restriction
30185 No_Task_Attributes.
30187 2004-02-04 Ed Schonberg <schonberg@gnat.com>
30190 (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
30191 body, an identifier may be wrapped in an unchecked conversion.
30193 2004-02-04 Vincent Celier <celier@gnat.com>
30195 * lib-writ.ads: Comment update for the W lines
30197 * bld.adb: (Expression): An empty string list is static
30199 * fname-uf.adb: Minor comment update
30201 * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
30203 * gnatbind.adb: Initialize Cumulative_Restrictions with the
30204 restrictions on the target.
30206 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
30208 * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
30211 2004-02-02 Arnaud Charlet <charlet@gnat.com>
30213 * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
30215 2004-02-02 Vincent Celier <celier@gnat.com>
30217 * gprcmd.adb (Check_Args): If condition is false, print the invoked
30218 comment before the usage.
30219 Gprcmd: Fail when command is not recognized.
30220 (Usage): Document command "prefix"
30222 * g-md5.adb (Digest): Process last block.
30223 (Update): Do not process last block. Store remaining characters and
30226 * g-md5.ads (Update): Document that several call to update are
30227 equivalent to one call with the concatenated string.
30228 (Context): Add fields to allow new Update behaviour.
30230 * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
30231 defaulted to False.
30232 When May_Fail is True and no existing file can be found, return No_File.
30234 * 6vcstrea.adb: Inlined functions are now wrappers to implementation
30237 * lib-writ.adb (Write_With_Lines): When body file does not exist, use
30238 spec file name instead on the W line.
30240 2004-02-02 Robert Dewar <dewar@gnat.com>
30242 * ali.adb: Read and acquire info from new format restrictions lines
30244 * bcheck.adb: Add circuits for checking restrictions with parameters
30246 * bindgen.adb: Output dummy restrictions data
30247 To be changed later
30249 * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
30250 exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
30251 freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
30252 sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
30253 sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
30255 * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
30256 the warning message on access to possibly uninitialized variable S)
30257 Minor changes for new restrictions handling.
30259 * gnatbind.adb: Minor reformatting
30260 Minor changes for new restrictions handling
30261 Move circuit for -r processing here from bcheck (cleaner)
30263 * gnatcmd.adb, gnatlink.adb: Minor reformatting
30265 * lib-writ.adb: Output new format restrictions lines
30267 * lib-writ.ads: Document new R format lines for new restrictions
30270 * s-restri.ads/adb: New files
30272 * Makefile.rtl: Add entry for s-restri.ads/adb
30274 * par-ch3.adb: Fix bad error messages starting with upper case letter
30277 * restrict.adb: Major rewrite throughout for new restrictions handling
30278 Major point is to handle restrictions with parameters
30280 * restrict.ads: Major changes in interface to handle restrictions with
30281 parameters. Also generally simplifies setting of restrictions.
30283 * snames.ads/adb: New entry for proper handling of No_Requeue
30285 * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
30286 restriction counting.
30287 Other minor changes for new restrictions handling
30289 * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
30290 Restriction_Warnings now allows full parameter notation
30291 Major rewrite of Restrictions for new restrictions handling
30293 2004-02-02 Javier Miranda <miranda@gnat.com>
30295 * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
30296 syntax rule for object renaming declarations.
30297 (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
30298 component definitions.
30300 * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
30302 (Array_Type_Declaration): Give support to access components. In addition
30303 it was also modified to reflect the name of the object in anonymous
30304 array types. The old code did not take into account that it is possible
30305 to have an unconstrained anonymous array with an initial value.
30306 (Check_Or_Process_Discriminants): Allow access discriminant in
30308 (Process_Discriminants): Allow access discriminant in non-limited types
30309 Initialize the new Access_Definition field in N_Object_Renaming_Decl
30310 node. Change Ada0Y to Ada 0Y in comments
30312 * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
30313 equality operators.
30314 Change Ada0Y to Ada 0Y in comments
30316 * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
30317 renamings Change Ada0Y to Ada 0Y in comments
30319 * sem_type.adb (Find_Unique_Type): Give support to the equality
30320 operators for universal access types
30321 Change Ada0Y to Ada 0Y in comments
30323 * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
30325 * sinfo.ads (N_Component_Definition): Addition of Access_Definition
30327 (N_Object_Renaming_Declaration): Addition of Access_Definition field
30328 Change Ada0Y to Ada 0Y in comments
30330 * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
30331 component definition and object renaming nodes
30332 Change Ada0Y to Ada 0Y in comments
30334 2004-02-02 Jose Ruiz <ruiz@act-europe.fr>
30336 * restrict.adb: Use the new restriction identifier
30337 No_Requeue_Statements instead of the old No_Requeue for defining the
30338 restricted profile.
30340 * sem_ch9.adb (Analyze_Requeue): Check the new restriction
30341 No_Requeue_Statements.
30343 * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
30344 that supersedes the GNAT specific restriction No_Requeue. The later is
30345 kept for backward compatibility.
30347 2004-02-02 Ed Schonberg <schonberg@gnat.com>
30349 * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
30350 5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
30351 pragma and fix incorrect ones.
30353 * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
30354 warning if the pragma is redundant.
30356 2004-02-02 Thomas Quinot <quinot@act-europe.fr>
30358 * 5staprop.adb: Add missing 'constant' keywords.
30360 * Makefile.in: use consistent value for SYMLIB on
30361 platforms where libaddr2line is supported.
30363 2004-02-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30365 * utils.c (end_subprog_body): Do not call rest_of_compilation if just
30368 2004-02-02 Olivier Hainque <hainque@act-europe.fr>
30370 * init.c (__gnat_install_handler): Setup an alternate stack for signal
30371 handlers in the environment thread. This allows proper propagation of
30372 an exception on stack overflows in this thread even when the builtin
30373 ABI stack-checking scheme is used without support for a stack reserve
30376 * utils.c (create_field_decl): Augment the head comment about bitfield
30377 creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
30378 here, because the former is not accurate enough at this point.
30379 Let finish_record_type decide instead.
30380 Don't make a bitfield if the field is to be addressable.
30381 Always set a size for the field if the record is packed, to ensure the
30382 checks for bitfield creation are triggered.
30383 (finish_record_type): During last pass over the fields, clear
30384 DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
30385 not covered by the calls to layout_decl. Adjust DECL_NONADDRESSABLE_P
30386 from DECL_BIT_FIELD.
30388 2004-01-30 Kelley Cook <kcook@gcc.gnu.org>
30390 * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
30391 (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
30392 (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
30394 2004-01-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
30396 * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
30398 * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
30399 (ZCX_By_Default): Likewise.
30400 (Front_End_ZCX_Support): Likewise.
30402 * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
30403 (Initialize_Lock): Mark Level unreferenced.
30404 (Sleep): Mark Reason unreferenced.
30405 (Timed_Sleep): Likewise.
30406 (Wakeup): Likewise.
30407 (Exit_Task): Use Result.
30408 (Check_No_Locks): Mark Self_ID unreferenced.
30410 * 5gtasinf.adb (New_Sproc): Make Attr constant.
30411 (Bound_Thread_Attributes): Make Sproc constant.
30412 (New_Bound_Thread_Attributes): Likewise.
30414 2004-01-26 Ed Schonberg <schonberg@gnat.com>
30416 * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
30417 one-dimensional array an slice assignments, when component type is
30420 * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
30421 component type is controlled, and control_actions are in effect, use
30422 TSS procedure rather than generating inline code.
30424 * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
30425 arrays with controlled components.
30427 2004-01-26 Vincent Celier <celier@gnat.com>
30429 * gnatcmd.adb (GNATCmd): Add specification of argument file on the
30430 command line for the non VMS case.
30432 * gnatlink.adb (Process_Binder_File): When building object file, if
30433 GNU linker is used, put all object paths between quotes, to prevent ld
30434 error when there are unusual characters (such as '!') in the paths.
30436 * Makefile.generic: When there are sources in Ada and the main is in
30437 C/C++, invoke gnatmake with -B, instead of -z.
30439 * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
30440 from VMS_Conversion.
30441 (Process_Argument): New procedure, extracted from VMS_Conversion. Add
30442 specification of argument file on the command line.
30444 2004-01-26 Bernard Banner <banner@gnat.com>
30446 * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
30448 2004-01-26 Ed Schonberg <schonberg@gnat.com>
30450 * snames.adb: Update copyright notice.
30451 Add info on slice assignment for controlled arrays.
30453 2004-01-23 Robert Dewar <dewar@gnat.com>
30455 * exp_aggr.adb: Minor reformatting
30457 * exp_ch9.adb: Minor code clean up
30459 Fix bad character in comment
30462 * targparm.adb (Get_Target_Parameters): Give clean abort error on
30463 unexpected end of file, along with more detailed message.
30465 2004-01-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30467 * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
30470 * decl.c (copy_alias_set): New function.
30471 (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
30473 2004-01-23 Doug Rupp <rupp@gnat.com>
30475 * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
30476 lib$${file} in case subsequent character is not a separator.
30478 2004-01-23 Vincent Celier <celier@gnat.com>
30480 * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
30481 when the GCC version is at least 3.
30483 * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
30484 Remove all "Opt.", to prepare for opt split
30486 * prj-part.adb (Parse_Single_Project): New Boolean out parameter
30487 Extends_All. Set to True when the project parsed is an extending all
30488 project. Fails for importing an extending all project only when the
30489 imported project is an extending all project.
30490 (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
30491 depending on the value of Extends_All returned.
30493 * prj-proc.adb (Process): Check that no project shares its object
30494 directory with a project that extends it, directly or indirectly,
30495 including a virtual project.
30496 Check that no project extended by another project shares its object
30497 directory with another also extended project.
30499 * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
30500 Kind = N_With_Clause
30502 * prj-tree.ads: Minor reformatting
30503 Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
30505 2004-01-23 Ed Schonberg <schonberg@gnat.com>
30507 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
30508 applies to a type with an incomplete view, use full view in Name of
30509 clause, for consistency with uses of Get_Attribute_Definition_Clause.
30511 2004-01-23 Arnaud Charlet <charlet@act-europe.fr>
30513 * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
30514 SCHED_RR, since other values are not supported by this policy.
30515 (Initialize): Move initialization of mutex attribute to package
30516 elaboration, to prevent early access to this variable.
30518 * Makefile.in: Remove mention of Makefile.adalib, unused.
30520 * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
30521 1ssecsta.ads: Removed, unused.
30523 2004-01-21 Javier Miranda <miranda@gnat.com>
30525 * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
30526 entity if already built in the current scope.
30528 * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
30529 reminder in internal scopes. Required for nested limited aggregates.
30531 2004-01-21 Doug Rupp <rupp@gnat.com>
30533 * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
30534 VMS. Replace all occurences of libgnat- and libgnarl- with
30535 libgnat$(hyphen) and libgnarl$(hyphen).
30536 Fixed shared library build problem on VMS.
30538 2004-01-21 Robert Dewar <dewar@gnat.com>
30540 * mlib-prj.adb: Minor reformatting
30542 2004-01-21 Thomas Quinot <quinot@act-europe.fr>
30544 * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
30545 'constant' keywords for declaration of pointers that are not modified.
30547 * exp_pakd.adb: Fix English in comment.
30549 2004-01-21 Ed Schonberg <schonberg@gnat.com>
30552 * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
30553 copy all attributes of the parent, including the foreign language
30556 2004-01-21 Sergey Rybin <rybin@act-europe.fr>
30559 * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
30560 for 'delay until' statement.
30562 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
30564 * Make-lang.in: Replace $(docdir) with doc.
30565 (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
30566 doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
30567 to use consistent MAKEINFO rule.
30568 (ada.man, ada.srcman): Dummy entry.
30569 (ADA_INFOFILES): Define.
30570 (ada.info, ada.srcinfo): New rules.
30572 2004-01-19 Arnaud Charlet <charlet@act-europe.fr>
30574 * utils.c: Update copyright notice, missed in previous change.
30576 2004-01-19 Vincent Celier <celier@gnat.com>
30578 * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
30579 args if Bind is True. Set First_ALI, if not already done.
30580 (Build_Library): For Stand Alone Libraries, extract from one ALI file
30581 an eventual --RTS switch, for gnatbind, and all backend switches +
30582 --RTS, for linking.
30584 2004-01-19 Robert Dewar <dewar@gnat.com>
30586 * sem_attr.adb, memtrack.adb: Minor reformatting
30588 2004-01-19 Ed Schonberg <schonberg@gnat.com>
30590 * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
30591 that rename enumeration literals. This is properly done in sem_eval.
30593 * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
30594 to functions that rename enumeration literals.
30596 * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
30597 functions that rename enumeration literals.
30599 2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
30601 * Make-lang.in (utils.o): Depend on target.h.
30602 * utils.c: Include target.h.
30603 (process_attributes): Use targetm.have_named_sections instead
30604 of ASM_OUTPUT_SECTION_NAME.
30606 2004-01-16 Andreas Jaeger <aj@suse.de>
30608 * Makefile.in: Add $(DESTDIR).
30610 2004-01-15 Olivier Hainque <hainque@act-europe.fr>
30612 * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
30613 also when not defining if a Size clause applies. That information is
30616 2004-01-15 Arnaud Charlet <charlet@act-europe.fr>
30618 * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
30619 symbolic links for the shared gnat run time when needed.
30621 2004-01-15 Vasiliy Fofanov <fofanov@act-europe.fr>
30623 * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
30624 for writing, and terminate with an error message if not.
30626 2004-01-15 Ed Schonberg <schonberg@gnat.com>
30628 * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
30629 warning on an access to subprogram in an instance, when the target
30630 type is declared in the same generic unit.
30631 (Eval_Attribute): If 'access is known to fail accessibility check,
30632 rewrite as a raise statement.
30634 2004-01-15 GNAT Script <nobody@gnat.com>
30636 * Make-lang.in: Makefile automatically updated
30638 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
30640 * Make-lang.in (ada.srcextra): Dummy entry.
30642 2004-01-14 Kelley Cook <kcook@gcc.gnu.org>
30644 * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
30646 2004-01-13 Ed Schonberg <schonberg@gnat.com>
30648 * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
30649 components that are initialized with aggregates.
30651 2004-01-13 Vincent Celier <celier@gnat.com>
30653 * gnatlink.adb (Process_Binder_File): To find directory of shared
30654 libgcc, if "gcc-lib" is not a subdirectory, look for the last
30655 subdirectory "lib" in the path of the shared libgnat or libgnarl.
30657 * make.adb (Gnatmake): If GCC version is at least 3, link with
30658 -shared-libgcc, when there is at least one shared library project.
30660 * opt.ads (GCC_Version): New integer constant.
30662 * adaint.c (get_gcc_version): New function.
30664 2004-01-13 Robert Dewar <dewar@gnat.com>
30666 * sem_dist.adb, sem_res.adb, sem_util.adb,
30667 sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
30668 exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
30670 2004-01-13 Thomas Quinot <quinot@act-europe.fr>
30672 * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
30673 g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
30676 2004-01-12 Arnaud Charlet <charlet@act-europe.fr>
30678 * misc.c: Remove trailing spaces.
30679 Update copyright notice missed in previous change.
30682 * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
30685 * Makefile.generic: Update copyright.
30686 Add license notice.
30688 * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
30689 of prefix/share/make.
30691 * Makefile.prolog: Update copyright.
30692 Add license notice.
30694 2004-01-12 Laurent Pautet <pautet@act-europe.fr>
30696 * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
30697 3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
30698 g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
30701 * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
30704 2004-01-12 Javier Miranda <miranda@gnat.com>
30706 * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
30707 exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
30708 sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
30709 sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
30710 Component_Definition node.
30712 2004-01-12 Ed Falis <falis@gnat.com>
30714 * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
30716 2004-01-12 Thomas Quinot <quinot@act-europe.fr>
30718 * link.c: Change default libgnat kind to STATIC for FreeBSD.
30720 2004-01-12 Bernard Banner <banner@gnat.com>
30722 * Makefile.in: map 86numaux to a-numaux for x86_64
30724 2004-01-12 Ed Schonberg <schonberg@gnat.com>
30726 * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
30727 generated to rename a generic actual, go to the actual itself, the
30728 subtype is not a user-visible entity.
30730 * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
30731 part is a private subtype, reset the visibility of its full view, if
30732 any, to be consistent.
30735 * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
30736 to use a generic package G as a formal package for another generic
30739 2004-01-12 Robert Dewar <dewar@gnat.com>
30741 * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
30743 * usage.adb: Remove mention of obsolete -gnatwb switch
30744 Noticed during code reading
30746 2004-01-12 Jerome Guitton <guitton@act-europe.fr>
30748 * 1ssecsta.adb: Minor changes for -gnatwa warnings
30750 2004-01-12 GNAT Script <nobody@gnat.com>
30752 * Make-lang.in: Makefile automatically updated
30754 2004-01-09 Mark Mitchell <mark@codesourcery.com>
30756 * misc.c (gnat_expand_expr): Add alt_rtl parameter.
30758 2004-01-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
30760 * link.c [sgi] (shared_libgnat_default): Change to STATIC.
30762 2004-01-05 Kelley Cook <kcook@gcc.gnu.org>
30764 * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
30765 Update comment and copyright date.
30766 * stamp-xgnatug: Delete.
30768 2004-01-05 Robert Dewar <dewar@gnat.com>
30770 * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
30771 be modified by the binder generated main program if the -D switch is
30774 * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
30775 imported functions (since now we expect this to be done for imported
30778 * 5vtaprop.adb: Add several ??? for sections requiring more comments
30779 Minor reformatting throughout
30781 * 5zinit.adb: Minor reformatting
30782 Add 2004 to copyright date
30783 Minor changes to avoid -gnatwa warnings
30784 Correct some instances of using OR instead of OR ELSE (noted while
30785 doing reformatting)
30787 * sprint.adb: Minor updates to avoid -gnatwa warnings
30789 * s-secsta.ads, s-secsta.adb:
30790 (SS_Get_Max): New function to obtain high water mark for ss stack
30791 Default_Secondary_Stack is not a constant since it may be modified by
30792 the binder generated main program if the -D switch is used.
30794 * switch-b.adb: New -Dnnn switch for binder
30797 Make -gnatg imply all warnings currently in -gnatwa
30799 * vms_conv.adb: Minor reformatting
30800 Add 2004 to copyright notice
30801 Add 2004 to printed copyright notice
30803 * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
30804 3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
30805 5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
30806 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
30807 5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
30808 5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
30809 5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
30810 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
30811 5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
30812 5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
30813 6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
30814 vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
30815 xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
30816 sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
30817 checks.adb, clean.adb, cstand.adb, einfo.ads,
30818 einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
30819 exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
30820 prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
30821 sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
30822 g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
30823 lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
30824 Minor reformatting and code clean ups.
30825 Minor changes to prevent -gnatwa warnings
30827 * ali.adb: Minor reformatting and cleanup of code
30828 Acquire new SS indication of secondary stack use from ali files
30830 * a-numaux.ads: Add Pure_Function pragmas for all imported functions
30831 (since now we expect this to be done for imported functions)
30833 * bindgen.adb: Generate call to modify default secondary stack size if
30836 * bindusg.adb: Add line for new -D switch
30838 * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
30839 replacement name for Type_May_Have_Non_Bit_Aligned_Components!
30840 Add circuitry for both records and arrays to avoid gigi
30841 processing if the type involved has non-bit-aligned components
30843 * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
30844 N_String_Literal node always references an E_String_Literal_Subtype
30845 entity. This may not be true in the future.
30846 (Possible_Bit_Aligned_Component): Move processing of
30847 Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
30849 * exp_ch6.adb (Expand_Thread_Body): Pick up
30850 Default_Secondary_Stack_Size as variable so that we get value modified
30851 by possible -Dnnn binder parameter.
30853 * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
30854 (Type_May_Have_Bit_Aligned_Components): New function.
30856 * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
30857 (Type_May_Have_Bit_Aligned_Components): New function.
30859 * fe.h: (Set_Identifier_Casing): Fix prototype.
30860 Add declaration for Sem_Elim.Eliminate_Error_Msg.
30861 Minor reformatting.
30863 * freeze.adb (Freeze_Entity): Add RM reference to error message about
30864 importing constant atomic/volatile objects.
30865 (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
30866 unless explicit Pure_Function pragma given, to avoid insidious bug of
30867 call to non-pure imported function getting eliminated.
30869 * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
30870 gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
30871 gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
30872 Add 2004 to printed copyright notice
30874 * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
30877 * Makefile.rtl: Add entry for g-sestin.o
30878 g-sestin.ads: New file.
30880 * mdll.adb: Minor changes to avoid -gnatwa warnings
30882 * mlib-tgt.adb: Minor reformatting
30884 * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
30885 New switch Sec_Stack_Used (GNAT, GNATBIND)
30886 Make Default_Secondary_Stack_Size a variable instead of a constant,
30887 so that it can be modified by the new -Dnnn bind switch.
30889 * rtsfind.adb (Load_Fail): Give full error message in configurable
30890 run-time mode if all_errors mode is set. This was not done in the case
30891 of a file not found, which was an oversight.
30892 Note if secondary stack unit is used by compiler.
30894 * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
30895 ineffective elaborate all pragmas on non-visible packages (this
30896 happened when a renamed subprogram was called). Now the elaborate all
30897 always goes on the package containing the renaming rather than the one
30898 containing the renamed subprogram.
30900 * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
30901 (Process_Eliminate_Pragma): Add parameter to capture pragma location.
30903 * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
30904 has an Etype that references an E_String_Literal.
30905 (Eval_String_Literal): Avoid assumption that N_String_Literal node
30906 always references an E_String_Literal_Subtype entity. This may not
30907 be true in the future.
30909 * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
30912 * sem_res.adb (Resolve): Specialize msg for function name used in proc
30915 2004-01-05 Ed Falis <falis@gnat.com>
30917 * g-debuti.adb: Replaced direct boolean operator with short-circuit
30920 2004-01-05 Vincent Celier <celier@gnat.com>
30922 * bld.adb: Minor comment updates
30923 (Process_Declarative_Items): Correct incorrect name (Index_Name instead
30926 * make.adb (Gnatmake): Special process for files to compile/check when
30927 -B is specified. Fail when there are only foreign mains in attribute
30928 Main of the project file and -B is not specified. Do not skip bind/link
30929 steps when -B is specified.
30931 * makeusg.adb: Document new switch -B
30933 * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
30935 * switch-m.adb: (Scan_Make_Switches): Process -B switch
30937 * vms_data.ads: Add new GNAT PRETTY qualifier
30938 /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
30940 2004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30942 * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
30945 * misc.c (gnat_printable_name): If VERBOSITY is 2, call
30946 Set_Identifier_Casing.
30948 * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
30949 has size that overflows.
30951 2004-01-05 Gary Dismukes <dismukes@gnat.com>
30953 * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
30954 -gnatwa warning on static condition.
30956 2004-01-05 Doug Rupp <rupp@gnat.com>
30958 * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
30960 2004-01-05 Arnaud Charlet <charlet@act-europe.fr>
30962 * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
30963 all attributes, including read-only attribute.
30965 2004-01-05 Pascal Obry <obry@gnat.com>
30967 * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
30968 library naming scheme.
30970 * mlib-prj.adb (Build_Library): Generate different names for the static
30971 or dynamic version of the GNAT runtime. This is needed to support the
30972 new shared library naming scheme.
30973 (Process_Binder_File): Add detection of shared library in binder file
30974 based on the new naming scheme.
30976 * gnatlink.adb (Process_Binder_File): Properly detect the new naming
30977 scheme for the shared runtime libraries.
30980 (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
30982 (install-gnatlib): Do not create symlinks for shared libraries.
30983 (gnatlib-shared-default): Idem.
30984 (gnatlib-shared-dual-win32): New target. Not used for now as the
30985 auto-import feature does not support arrays/records.
30986 (gnatlib-shared-win32): Do not create copy for the shared libraries.
30987 (gnatlib-shared-vms): Fix shared runtime libraries names.
30989 * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
30990 dependent runtime shared library name.
30992 2004-01-05 Vasiliy Fofanov <fofanov@act-europe.fr>
30994 * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
30997 2004-01-05 Ed Schonberg <schonberg@gnat.com>
30999 * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
31000 protected objects when allocator has a subtype indication, not a
31001 qualified expression. Note that qualified expressions may have to be
31002 checked when limited aggregates are implemented.
31004 * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
31005 pure, emit warning.
31006 (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
31007 subprogram is imported, remove warning.
31009 2004-01-05 Geert Bosch <bosch@gnat.com>
31011 * s-poosiz.adb: Update copyright notice.
31012 (Allocate): Use Task_Lock to protect against concurrent access.
31013 (Deallocate): Likewise.
31015 2004-01-05 Joel Brobecker <brobecker@gnat.com>
31017 * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
31020 2003-12-23 Kelley Cook <kcook@gcc.gnu.org>
31022 * gnat_ug.texi: Force a CVS commit by updating copyright.
31023 * gnat_ug_vxw.texi: Regenerate.
31024 * gnat_ug_wnt.texi: Regenerate.
31025 * gnat_ug_vms.texi: Regenerate.
31026 * gnat_ug_unx.texi: Regenerate.
31028 2003-12-20 Kazu Hirata <kazu@cs.umass.edu>
31030 * trans.c: Remove uses of "register" specifier in
31031 declarations of local variables.
31033 2003-12-18 Kelley Cook <kcook@gcc.gnu.org>
31035 * stamp-xgnatug: New stamp file.
31036 * Make-lang.in (stamp-xgnatug): New stamp file and comment.
31037 (ada/doctools/xgnatug): Add $(build_exeext).
31038 (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
31039 ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
31041 2003-12-17 Ed Falis <falis@gnat.com>
31043 * a-elchha.adb (Tailored_Exception_Information): made Info constant to
31046 * a-exextr.adb: Add context clause for
31047 Ada.Exceptions.Last_Chance_Handler.
31049 2003-12-17 Sergey Rybin <rybin@act-europe.fr>
31051 * cstand.adb (Create_Standard): Change the way how the declaration of
31052 the Duration type is created (making it the same way as it is for all
31053 the other standard types).
31055 2003-12-17 Robert Dewar <dewar@gnat.com>
31057 * s-crtl.ads: Fix header format
31058 Change Pure to Preelaborate
31060 2003-12-17 Ed Schonberg <schonberg@gnat.com>
31062 * checks.adb (Selected_Length_Checks): Generate an Itype reference for
31063 the expression type only if it is declared in the current unit.
31065 * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
31066 are universal and already analyzed, as can occur in constrained
31067 subcomponents that depend on discriminants, when one constraint is a
31070 * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
31071 type Any_Fixed is legal as the argument of a conversion, if only one
31072 fixed-point type is in context.
31074 2003-12-17 GNAT Script <nobody@gnat.com>
31076 * Make-lang.in: Makefile automatically updated
31078 2003-12-15 Robert Dewar <dewar@gnat.com>
31080 * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
31083 2003-12-15 Vincent Celier <celier@gnat.com>
31085 * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
31086 (Gnatchop): Do not set failure status when reporting the number of
31089 2003-12-15 Doug Rupp <rupp@gnat.com>
31091 * s-ctrl.ads: New file.
31093 * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
31095 * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
31096 (GNATBIND_OBJS): Add ada/s-crtl.o.
31098 * Makefile.in [VMS]: Clean up ifeq rules.
31100 * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
31101 a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
31102 g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
31103 s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
31104 s-tasdeb.adb: Update copyright.
31105 Import System.CRTL.
31106 Make minor modifications to use System.CRTL declared functions instead
31107 of importing locally.
31109 2003-12-15 GNAT Script <nobody@gnat.com>
31111 * Make-lang.in: Makefile automatically updated
31113 2003-12-11 Ed Falis <falis@gnat.com>
31115 * 5zinit.adb: Clean up.
31117 * 5zintman.adb (Notify_Exception): replaced case statement with a call
31118 to __gnat_map_signal, imported from init.c to support
31119 signal -> exception mappings that depend on the vxWorks version.
31122 Created and exported __gnat_map_signal to support signal -> exception
31123 mapping that is dependent on the VxWorks version.
31124 Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
31126 2003-12-11 Vasiliy Fofanv <fofanov@act-europe.fr>
31128 * 5wosinte.ads: Link with -mthreads switch.
31130 2003-12-11 Arnaud Charlet <charlet@act-europe.fr>
31132 * init.c (__gnat_install_handler [NetBSD]): Set
31133 __gnat_handler_installed, as done on all other platforms.
31134 Remove duplicated code.
31136 2003-12-11 Jerome Guitton <guitton@act-europe.fr>
31138 * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
31140 2003-12-11 Thomas Quinot <quinot@act-europe.fr>
31142 * sinfo.ads: Fix inconsistent example code in comment.
31144 2003-12-11 Robert Dewar <dewar@gnat.com>
31146 * a-tiinau.adb: Add a couple of comments
31148 * sem_ch3.adb: Minor reformatting
31151 Fix bad prototype of Same_Base_Type in body (code reading cleanup)
31152 Minor reformatting throughout
31154 2003-12-11 Ed Schonberg <schonberg@gnat.com>
31156 * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
31157 bounds of a loop, create a separate block in order to generate proper
31158 cleanup actions to prevent memory leaks.
31160 * sem_res.adb (Resolve_Call): After a call to
31161 Establish_Transient_Scope, the call may be rewritten and relocated, in
31162 which case no further processing is needed.
31164 * sem_util.adb: (Wrong_Type): Refine previous fix.
31165 Fixes ACATS regressions.
31168 * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
31171 2003-12-08 Jerome Guitton <guitton@act-europe.fr>
31173 * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
31174 i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
31177 * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
31180 2003-12-08 Robert Dewar <dewar@gnat.com>
31182 * 7sintman.adb: Minor reformatting
31184 * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
31185 standard linker options to get standard libraries linked. We now plan
31186 to provide dummy versions of these libraries to match the appropriate
31187 configurable run-time (e.g. if a library is not needed at all, provide
31188 a dummy empty library).
31190 * targparm.ads: Configurable_Run_Time mode no longer affects linker
31191 options (-L parameters and standard libraries). What we plan to do is
31192 to provide dummy libraries where the libraries are not required.
31194 * gnatbind.adb: Minor comment improvement
31196 2003-12-08 Javier Miranda <miranda@gnat.com>
31198 * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
31199 aggregate in the parent. Otherwise constants with limited aggregates
31200 are not supported. Add new formal to pass the component type (Ctype).
31201 It is required to call the corresponding IP subprogram in case of
31202 default initialized components.
31203 (Gen_Assign): In case of default-initialized component, generate a
31204 call to the IP subprogram associated with the component.
31205 (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
31206 of aggregate with default initialized components.
31207 (Has_Default_Init_Comps): Improve implementation to recursively check
31208 all the present expressions.
31210 * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
31211 to indicate that the initialization call corresponds to a
31212 default-initialized component of an aggregate.
31213 In case of default initialized aggregate with tasks this parameter is
31214 used to generate a null string (this is just a workaround that must be
31215 improved later). In case of discriminants, this parameter is used to
31216 generate a selected component node that gives access to the discriminant
31219 * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
31220 subprogram, based on Build_Task_Allocate_Block, but adapted to expand
31221 allocated aggregates with default-initialized components.
31223 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
31224 the box notation is used in positional aggregates.
31226 2003-12-08 Samuel Tardieu <tardieu@act-europe.fr>
31228 * lib.ads: Fix typo in comment
31230 2003-12-08 Vincent Celier <celier@gnat.com>
31232 * prj.adb (Project_Empty): New component Unkept_Comments
31233 (Scan): Remove procedure; moved to Prj.Err.
31235 * prj.ads (Project_Data): New Boolean component Unkept_Comments
31236 (Scan): Remove procedure; moved to Prj.Err.
31238 * prj-dect.adb: Manage comments for the different declarations.
31240 * prj-part.adb (With_Record): New component Node
31241 (Parse): New Boolean parameter Store_Comments, defaulted to False.
31242 Set the scanner to return ends of line and comments as tokens, if
31243 Store_Comments is True.
31244 (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
31245 comments are associated with these nodes. Store the node IDs in the
31247 (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
31249 (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
31250 the N_Project node. Call Tree.Save and Tree.Reset before scanning the
31251 current project. Call Tree.Restore afterwards. Set the various nodes
31252 for comment storage (Next_End, End_Of_Line, Previous_Line,
31255 * prj-part.ads (Parse): New Boolean parameter Store_Comments,
31256 defaulted to False.
31258 * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
31259 to False. When Truncated is True, truncate the string, never go to the
31261 (Write_End_Of_Line_Comment): New procedure
31262 (Print): Process comments for nodes N_With_Clause,
31263 N_Package_Declaration, N_String_Type_Declaration,
31264 N_Attribute_Declaration, N_Typed_Variable_Declaration,
31265 N_Variable_Declaration, N_Case_Construction, N_Case_Item.
31266 Process nodes N_Comment.
31268 * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
31269 without comments and there are some comments, set the flag
31270 Unkept_Comments to True.
31271 (Scan): If there are comments, set the flag Unkept_Comments to True and
31272 clear the comments.
31273 (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
31274 (Next_End_Nodes: New table
31275 (Comment_Zones_Of): New function
31276 (Scan): New procedure; moved from Prj. Accumulate comments in the
31277 Comments table and set end of line comments, comments after, after end
31279 (Add_Comments): New procedure
31280 (Save, Restore, Seset_State): New procedures
31281 (There_Are_Unkept_Comments): New function
31282 (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
31283 (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
31285 (First_Comment_After, First_Comment_After_End): New functions
31286 (First_Comment_Before, First_Comment_Before_End): New functions
31287 (Next_Comment): New function
31288 (End_Of_Line_Comment, Follows_Empty_Line,
31289 Is_Followed_By_Empty_Line): New functions
31290 (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
31291 (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
31292 (Set_Next_Comment): New procedure
31293 (Default_Project_Node): Associate comment before if the node can store
31296 * scans.ads (Token_Type): New enumeration value Tok_Comment
31297 (Comment_Id): New global variable
31299 * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
31300 defaulted to False.
31301 (Scan): Store position of start of comment. If comments are tokens, set
31302 Comment_Id and set Token to Tok_Comment when scanning a comment.
31303 (Set_Comment_As_Token): New procedure
31305 * sinput-p.adb: Update Copyright notice
31306 (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
31307 that no longer exists.
31309 2003-12-08 Javier Miranda <miranda@gnat.com>
31311 * sem_aggr.adb: Add dependence on Exp_Tss package
31312 Correct typo in comment
31313 (Resolve_Aggregate): In case of array aggregates set the estimated
31314 type of the aggregate before calling resolve. This is needed to know
31315 the name of the corresponding IP in case of limited array aggregates.
31316 (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
31317 in case of default initialized array components.
31319 * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
31320 types. Required to give support to limited aggregates in generic
31323 2003-12-08 Ed Schonberg <schonberg@gnat.com>
31325 * sem_ch3.adb (Check_Initialization): For legality purposes, an
31326 inlined body functions like an instantiation.
31327 (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
31328 until bounds are analyzed, to diagnose premature use of type.
31330 * sem_util.adb (Wrong_Type): Improve error message when the type of
31331 the expression is used prematurely.
31333 2003-12-08 GNAT Script <nobody@gnat.com>
31335 * Make-lang.in: Makefile automatically updated
31337 2003-12-08 Arnaud Charlet <charlet@act-europe.fr>
31339 * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
31340 they are automatically generated by Make-lang.in and cause nothing but
31341 maintenance troubles.
31343 2003-12-05 Thomas Quinot <quinot@act-europe.fr>
31345 * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
31346 version of this unit).
31348 2003-12-05 Olivier Hainque <hainque@act-europe.fr>
31350 * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
31351 5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
31352 5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
31353 the body of System.Interrupt_Management common to several targets.
31354 Update copyright notice when appropriate.
31356 * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
31359 * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
31360 to ensure that the kernel fills in the interrupted context structure
31361 before calling a signal handler, which is necessary to be able to
31362 unwind past it. Update the copyright notice.
31364 2003-12-05 Jerome Guitton <guitton@act-europe.fr>
31366 * a-elchha.ads: New file.
31368 * a-elchha.adb: New default last chance handler. Contents taken from
31369 Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
31371 * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
31372 is moved to a-elchha.adb to provide a target-independent default last
31375 * Makefile.rtl: Add a-elchha.o
31377 * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
31379 2003-12-05 Ed Schonberg <schonberg@gnat.com>
31381 * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
31382 declared in an instance, do not inline the call if the instance is not
31383 frozen yet, to prevent order of elaboration problems.
31385 * sem_prag.adb: Add comments for previous fix.
31387 2003-12-05 Samuel Tardieu <tardieu@act-europe.fr>
31389 * g-table.adb: Use the right variable in Set_Item.
31390 Update copyright notice.
31392 2003-12-05 Arnaud Charlet <charlet@act-europe.fr>
31394 * Makefile.in: Remove unused rules.
31396 2003-12-05 Vincent Celier <celier@gnat.com>
31398 * switch-c.adb (Scan_Front_End_Switches): Remove processing of
31399 -nostdlib. Not needed here after all.
31401 2003-12-03 Thomas Quinot <quinot@act-europe.fr>
31404 * adaint.h, adaint.c, g-os_lib.ads:
31405 Do not assume that the offset argument to lseek(2) is a 32 bit integer,
31406 on some platforms (including FreeBSD), it is a 64 bit value.
31407 Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
31409 2003-12-03 Arnaud Charlet <charlet@act-europe.fr>
31411 * gnatvsn.ads (Library_Version): Now contain only the relevant
31413 (Verbose_Library_Version): New constant.
31415 * g-spipat.adb, g-awk.adb, g-debpoo.adb,
31416 g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
31417 s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
31419 * gnatlbr.adb: Clean up: replace Library_Version by
31420 Verbose_Library_Version.
31422 * make.adb, lib-writ.adb, exp_attr.adb:
31423 Clean up: replace Library_Version by Verbose_Library_Version.
31425 * 5lintman.adb: Removed.
31428 Update and simplify computation of LIBRARY_VERSION.
31429 Fix computation of GSMATCH_VERSION.
31430 5lintman.adb is no longer used: replaced by 7sintman.adb.
31432 2003-12-03 Robert Dewar <dewar@gnat.com>
31435 (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
31436 name. Modified to consider small non-bit-packed arrays as troublesome
31437 and in need of component-by-component assigment expansion.
31439 2003-12-03 Vincent Celier <celier@gnat.com>
31441 * lang-specs.h: Process nostdlib as nostdinc
31443 * back_end.adb: Update Copyright notice
31444 (Scan_Compiler_Arguments): Process -nostdlib directly.
31446 2003-12-03 Jose Ruiz <ruiz@act-europe.fr>
31449 When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
31450 redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
31451 included in HIE_NONE_TARGET_PAIRS.
31453 2003-12-03 Ed Schonberg <schonberg@gnat.com>
31456 (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
31457 is legal in an instance, because legality is cheched in the template.
31460 (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
31461 appplied to an unchecked conversion of a formal parameter.
31464 (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
31467 2003-12-03 Olivier Hainque <hainque@act-europe.fr>
31469 * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
31470 routines. The second one is new functionality to deal with backtracing
31471 through signal handlers.
31472 (unwind): Split into the two separate subroutines above.
31473 Update the documentation, and deal properly with sizeof (REG) different
31474 from sizeof (void*).
31476 2003-12-01 Nicolas Setton <setton@act-europe.fr>
31478 * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
31479 so that the debugger can reliably access the value of the parameter,
31480 and therefore is able to display the exception name when an exception
31481 breakpoint is reached.
31483 2003-12-01 Thomas Quinot <quinot@act-europe.fr>
31485 * fmap.adb: Fix typo in warning message.
31487 * g-socket.ads, g-socket.adb: Make Free a visible instance of
31488 Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
31490 2003-12-01 Vincent Celier <celier@gnat.com>
31492 * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
31494 (Build_Library): Get the switches only if Default_Switches is declared
31497 2003-12-01 Ed Schonberg <schonberg@gnat.com>
31499 * exp_ch6.adb (Expand_Actuals): When applying validity checks to
31500 actuals that are indexed components, reanalyze actual to ensure that
31501 packed array references are properly expanded.
31503 * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
31504 attempted assignment to a discriminant.
31506 2003-12-01 Robert Dewar <dewar@gnat.com>
31508 * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
31511 * switch-c.adb: Minor reformatting of comments
31513 2003-12-01 Arnaud Charlet <charlet@act-europe.fr>
31515 * Makefile.in: Clean ups.
31517 2003-12-01 GNAT Script <nobody@gnat.com>
31519 * Make-lang.in: Makefile automatically updated
31521 2003-12-01 Arnaud Charlet <charlet@act-europe.fr>
31523 * 5wsystem.ads: Disable zero cost exception, not ready yet.
31525 2003-11-29 Ulrich Weigand <uweigand@de.ibm.com>
31527 * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
31528 to force serialization.
31530 2003-11-26 Thomas Quinot <quinot@act-europe.fr>
31532 * g-socket.ads, g-socket.adb:
31533 Clarify documentation of function Stream. Introduce a Free procedure
31534 to release the returned Stream once it becomes unused.
31536 * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
31538 2003-11-26 Arnaud Charlet <charlet@act-europe.fr>
31540 (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
31541 since NT 4 cannot handle timeout values that are too large,
31542 e.g. DWORD'Last - 1.
31544 2003-11-26 Ed Schonberg <schonberg@gnat.com>
31547 (Expand_N_Slice): Recognize all cases of slices that appear as actuals
31548 in procedure calls and whose expansion must be deferred.
31550 * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
31554 (Build_Derived_Array_Type): Create operator for unconstrained type
31555 if ancestor is unconstrained.
31557 2003-11-26 Vincent Celier <celier@gnat.com>
31559 * make.adb (Project_Object_Directory): New global variable
31560 (Change_To_Object_Directory): New procedure
31561 (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
31562 of Change_Dir directly. Do not change working directory to object
31563 directory of main project after each compilation.
31564 (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
31566 Change to object directory of main project before binding step.
31567 (Initialize): Initialize Project_Object_Directory to No_Project
31570 (Build_Library): Take into account Builder'Default_Switches ("Ada") when
31571 binding a Stand-Alone Library.
31573 * output.adb: Update Copyright notice
31574 (Write_Char): Output buffer when full
31576 2003-11-26 Robert Dewar <dewar@gnat.com>
31578 * sem_ch13.adb: (Check_Size): Reset size if size is too small
31581 (Check_Size): Fix documentation to include bit-packed array case
31583 * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
31585 * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
31587 * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
31589 2003-11-24 Arnaud Charlet <charlet@act-europe.fr>
31592 * utils.c (init_gigi_decls): Change name of built-in setjmp to
31593 __builtin_setjmp, since this is apparently needed by recent
31596 2003-11-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
31598 * adadecode.c: Only include ctype.h if not IN_GCC.
31599 (__gnat_decode): Use ISDIGIT from safe-ctype.h.
31601 2003-11-24 Jose Ruiz <ruiz@act-europe.fr>
31604 Use 5zintman.ads for VxWorks targets. This file avoid confusion between
31605 signals and interrupts.
31607 * 5zintman.ads: New File.
31609 * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
31610 add exception signals to the set of unmasked signals.
31613 Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
31614 between signals and interrupts.
31615 Add to Unblocked_Signal_Mask the set of signals that are in
31619 Adding a check to see whether the Interrupt_ID we want to unmask is in
31620 the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
31621 reason is that the index type of the Keep_Unmasked array is not always
31622 Interrupt_ID; it may be a subtype of Interrupt_ID.
31624 2003-11-24 Gary Dismukes <dismukes@gnat.com>
31627 (Remove_Side_Effects): Condition constantness of object created for a
31628 an unchecked type conversion on the constantness of the expression
31629 to ensure the correct value for 'Constrained when passing components
31630 of view-converted class-wide objects.
31632 2003-11-24 Robert Dewar <dewar@gnat.com>
31634 * par-load.adb (Load): Improve handling of misspelled and missing units
31635 Removes several cases of compilation abandoned messages
31637 * lib.adb: (Remove_Unit): New procedure
31639 * lib.ads: (Remove_Unit): New procedure
31641 * lib-load.adb: Minor reformatting
31643 2003-11-24 Vincent Celier <celier@gnat.com>
31646 (Gnatmake, Initialize): Call Usage instead of Makeusg directly
31647 (Marking_Label): Label to mark processed source files. Incremented for
31649 (Gnatmake): Increase Marking_Labet for each executable
31650 (Is_Marked): Compare against marking label
31651 (Mark): Mark with marking label
31653 2003-11-24 Jerome Guitton <guitton@act-europe.fr>
31656 Move the declaration of the TSD for System.Threads to System.Soft_Links.
31659 * Makefile.in: Added target pair for s-thread.adb for cert runtime.
31660 (rts-cert): build a single relocatable object for the run-time lib.
31663 2003-11-24 Vasiliy Fofanov <fofanov@act-europe.fr>
31666 Use gnatls rather than gcc to obtain the location of GNAT RTL for
31669 2003-11-24 Sergey Rybin <rybin@act-europe.fr>
31671 * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
31672 can not use it as before (that is, as a variable) when dumping it into
31673 the tree file. Add a local variable to store the result of this
31674 function and to be used as the string to be written into the tree.
31676 * scn.adb (Initialize_Scanner): Add comments explaining the recent
31679 * sinput.adb (Source_First, Source_Last): In case of
31680 Internal_Source_File, replace returning attributes of
31681 Internal_Source_Ptr (which is wrong) with returning attributes of
31684 2003-11-24 Ed Schonberg <schonberg@gnat.com>
31687 (New_Concatenation_Op): Proper name for New_Binary_Operator, only
31688 used for implicit concatenation operators.
31692 (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
31693 task bodies that are in the scope of a Suppress pragma.
31694 (Check_A Call): Use the flag to prevent spurious elaboration checks.
31696 * sinfo.ads, sinfo.adb:
31697 New flag No_Elaboration_Check on function/procedure calls, to properly
31698 suppress checks on calls in task bodies that are within a local suppress
31702 (Expand_Concatenate_Other): Use the proper integer type for the
31703 expression for the upper bound, to avoid universal_integer computations
31706 2003-11-21 Kelley Cook <kcook@gcc.gnu.org>
31708 * .cvsignore: Delete.
31710 2003-11-21 Andreas Schwab <schwab@suse.de>
31712 * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
31714 2003-11-21 Vasiliy Fofanov <fofanov@act-europe.fr>
31716 * 5wsystem.ads: Enable zero cost exception.
31718 2003-11-21 Jerome Guitton <guitton@act-europe.fr>
31720 * 5ztiitho.adb: Remove an unreferenced variable.
31722 2003-11-21 Thomas Quinot <quinot@act-europe.fr>
31724 * adaint.c: For FreeBSD, use mkstemp.
31726 2003-11-21 Arnaud Charlet <charlet@act-europe.fr>
31728 * gnatlbr.adb: Now reference Gnat_Static_Version_String.
31730 2003-11-21 Robert Dewar <dewar@gnat.com>
31732 * bld.adb: Remove useless USE of gnatvsn
31734 * gnatchop.adb: Minor reformatting
31735 Clean up version handling to be more consistent
31737 * gnatxref.adb: Minor reformatting
31739 * gprcmd.adb: Minor reformatting
31740 Fix output of copyright to be more consistent with other tools
31742 2003-11-21 Vincent Celier <celier@gnat.com>
31744 * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
31746 2003-11-21 Sergey Rybin <rybin@act-europe.fr>
31748 * atree.adb (Initialize): Add initializations for global variables
31749 used in New_Copy_Tree.
31751 * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
31752 Internal_Source_File as the actual).
31753 Put the set of statements creating Any_Character before the set of
31754 statements creating Any_Array to have Any_Character fully initialized
31755 when it is used in creating Any_Array.
31757 * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
31758 not call Scan in case if the actual is Internal_Source_File
31759 Add 2003 to copyright note.
31761 * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
31762 processing Internal_Source_File.
31764 * types.ads: Add the constant Internal_Source_File representing the
31765 source buffer for artificial source-code-like strings created within
31766 the compiler (the definition of Source_File_Index is changed).
31768 2003-11-20 Arnaud Charlet <charlet@act-europe.fr>
31770 * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
31771 56system.ads: New file, FreeBSD version.
31773 2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
31775 * Make-lang.in (ada.extraclean): Delete.
31777 2003-11-19 Arnaud Charlet <charlet@act-europe.fr>
31779 * gnatmem.adb: Clean up verbose output.
31781 * gprcmd.adb: Change copyright to FSF.
31783 2003-11-19 Vincent Celier <celier@gnat.com>
31785 * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
31786 and Version (ignored).
31788 * symbols.ads: (Policy): New type
31789 (Initialize): New parameter Reference, Symbol_Policy and
31791 Remove parameter Force.
31792 Minor reformatting.
31794 * snames.ads, snames.adbadb: New standard names
31795 Library_Reference_Symbol_File and Library_Symbol_Policy
31798 (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
31802 (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
31804 * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
31806 * prj.adb: (Project_Empty): New component Symbol_Data
31808 * prj.ads: (Policy, Symbol_Record): New types
31809 (Project_Data): New component Symbol_Data
31812 New attributes Library_Symbol_File, Library_Symbol_Policy and
31813 Library_Reference_Symbol_File.
31816 (Ada_Check): When project is a Stand-Alone library project, process
31817 attribute Library_Symbol_File, Library_Symbol_Policy and
31818 Library_Reference_Symbol_File.
31820 * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
31821 5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
31822 5sml-tgt.adb (Build_Dynamic_Library): New parameter
31823 Symbol_Data (ignored).
31825 * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
31826 (Build_Dynamic_Library): New parameter Symbol_Data. New internal
31827 functions Option_File_Name and Version_String. Set new options of
31828 gnatsym related to symbol file, symbol policy and reference symbol
31832 Extensive modifications to take into account the reference symbol file,
31833 the symbol policy, the library version and to put in the symbol file the
31834 minor and major IDs.
31836 * bld.adb (Process_Declarative_Items): Put second argument of
31837 gprcmd to_absolute between single quotes, to avoid problems with
31840 * bld-io.adb: Update Copyright notice.
31841 (Flush): Remove last character of a line, if it is a back slash, to
31842 avoid make problems.
31845 Implement new scheme with reference symbol file and symbol policy.
31847 * g-os_lib.ads: (Is_Directory): Clarify comment
31849 2003-11-19 Robert Dewar <dewar@gnat.com>
31851 * atree.adb: Move New_Copy_Tree global variables to head of package
31853 * errout.adb: Minor reformatting
31855 2003-11-19 Javier Miranda <miranda@gnat.com>
31857 * sem_ch4.adb: (Diagnose_Call): Improve error message.
31858 Add reference to Ada0Y (AI-50217)
31860 * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
31861 sem_util.adb: Add reference to AI-50217
31863 * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
31865 * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
31867 * sem_aggr.adb: Complete documentation of AI-287 changes
31869 * par-ch4.adb: Document previous changes.
31871 * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
31872 sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
31875 * exp_aggr.adb: Add references to AI-287 in previous changes
31877 2003-11-19 Ed Schonberg <schonberg@gnat.com>
31880 (Add_Call_By_Copy_Node): Do not original node of rewritten expression
31881 in the rewriting is the result of an inlined call.
31883 * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
31884 parameter is a type conversion, use original node to construct the
31885 post-call assignment, because expression may have been rewritten, e.g.
31886 if it is a packed array.
31889 (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
31890 body, just as it is in an instance.
31891 Categorization routines
31893 * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
31894 Instantiate_Object): Set proper sloc reference for message on missing
31897 2003-11-19 Thomas Quinot <quinot@act-europe.fr>
31899 * Makefile.in: Add FreeBSD libgnat pairs.
31901 * usage.adb: Fix typo in usage message.
31903 2003-11-19 Jerome Guitton <guitton@act-europe.fr>
31905 * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
31906 s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
31907 pragma Thread_Body.
31908 Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
31910 * s-thread.adb: This file is now a dummy implementation of
31913 2003-11-19 Sergey Rybin <rybin@act-europe.fr>
31915 * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
31917 2003-11-19 Emmanuel Briot <briot@act-europe.fr>
31919 * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
31920 instanciation references in the parent type description.
31922 2003-11-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31924 * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
31926 * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
31927 TYPE_PRECISION directly from esize.
31929 2003-11-18 Thomas Quinot <quinot@act-europe.fr>
31932 Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
31934 * init.c: Initialization routines for FreeBSD
31936 * link.c: Link info for FreeBSD
31938 * sysdep.c: Add the case of FreeBSD
31940 2003-11-17 Jerome Guitton <guitton@act-europe.fr>
31942 * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
31943 already called in System.Threads.
31945 * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
31946 environment task, as it has been moved to System.Threads.Initialization.
31948 2003-11-17 Arnaud Charlet <charlet@act-europe.fr>
31950 * adaint.c (__gnatlib_install_locks): Only reference
31951 __gnat_install_locks on VMS, since other platforms can avoid using
31952 --enable-threads=gnat
31954 2003-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31956 * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
31958 * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
31959 TYPE_PACKED_ARRAY_TYPE_P.
31960 (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
31962 Part of PR ada/12806
31963 * utils.c (float_type_for_precision): Renamed from float_type_for_size.
31964 Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
31966 2003-11-17 Vincent Celier <celier@gnat.com>
31968 * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
31970 Do not set exit status to Failure when Warning is True.
31971 (Gnatchop): Make errors "no compilation units found" and
31972 "no source files written" warnings only.
31974 * make.adb (Gnatmake): When using a project file, set
31975 Look_In_Primary_Dir to False.
31976 (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
31977 and Local_Configuration_Pragmas in the project where they are declared
31978 not an extending project which might have inherited them.
31980 * osint.adb (Locate_File): If Name is already an absolute path, do not
31981 look for a directory.
31983 * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
31984 -gnats (Check_Syntax) is used, issue only a warning, not an error.
31986 * prj.adb (Register_Default_Naming_Scheme): Add new component Project
31987 in objects of type Variable_Value.
31989 * prj.ads: (Variable_Value): New component Project
31991 * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
31992 is in a project extended by Project.
31994 * prj-proc.adb (Add_Attributes): New parameter Project. Set component
31995 Project of Variable_Values to this new parameter value.
31996 (Expression): Set component Project of Variable_Values.
31997 (Process_Declarative_Items): Call Add_Attributes with parameter Project.
31998 Set the component Project in array elements.
32000 2003-11-17 Sergey Rybin <rybin@act-europe.fr>
32002 * errout.adb: (Initialize): Add initialization for error nodes.
32004 * sem_ch12.adb (Initialize): Add missing initializations for
32005 Exchanged_Views and Hidden_Entities.
32007 2003-11-17 Ed Schonberg <schonberg@gnat.com>
32009 * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
32010 already instantiated tree for use in subsequent inlining.
32011 (Analyze_Associations, Instantiate_Formal_Subprogram,
32012 Instantiate_Object): improve error message for mismatch in
32015 * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
32016 instantiations of subprograms declared in instances.
32018 2003-11-17 Javier Miranda <miranda@gnat.com>
32020 * sem_ch4.adb (Analyze_Allocator): Previous modification must be
32021 executed only under the Extensions_Allowed flag.
32023 2003-11-17 Robert Dewar <dewar@gnat.com>
32025 * a-exexda.adb (Address_Image): Fix documentation to indicate leading
32027 (Address_Image): Fix bug of returning 0x instead of 0x0
32028 Minor reformatting (function specs).
32030 * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
32031 (missed case of 33-63)
32033 * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
32035 * s-thread.adb: Add comments for pragma Restriction
32037 * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
32038 sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
32040 2003-11-17 Ed Falis <falis@gnat.com>
32042 * s-thread.adb: Added No_Tasking restriction for this implementation.
32044 2003-11-17 Emmanuel Briot <briot@act-europe.fr>
32046 * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
32047 instanciation references in the parent type description.
32049 2003-11-17 GNAT Script <nobody@gnat.com>
32051 * Make-lang.in: Makefile automatically updated
32053 2003-11-16 Jason Merrill <jason@redhat.com>
32055 * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
32056 and TAGS files that include them for each front end.
32058 2003-11-14 Andreas Jaeger <aj@suse.de>
32060 * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
32061 is the canonical version.
32062 * misc.c (gnat_handle_option): Likewise.
32064 * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
32066 * 5nsystem.ads: New file for x86_64-linux-gnu.
32068 2003-11-14 Arnaud Charlet <charlet@act-europe.fr>
32070 * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
32072 * comperr.adb: Fix logic in previous change.
32074 2003-11-13 Vincent Celier <celier@gnat.com>
32076 * 5bml-tgt.adb (Build_Dynamic_Library): Use
32077 Osint.Include_Dir_Default_Prefix instead of
32078 Sdefault.Include_Dir_Default_Name.
32080 * gnatlbr.adb: Update Copyright notice
32081 (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
32082 Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
32083 instead of Sdefault.Object_Dir_Default_Name
32086 (Process_Binder_File): Never suppress the option following -Xlinker
32089 (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
32090 Sdefault.Object_Dir_Default_Name.
32092 * osint.ads, osint.adb:
32093 (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
32094 Minor reformatting.
32096 * vms_conv.ads: Minor reformating
32097 Remove GNAT STANDARD and GNAT PSTA
32100 Allow GNAT MAKE to have several files on the command line.
32101 (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
32102 Sdefault.Object_Dir_Default_Name.
32104 Remove data for GNAT STANDARD
32107 Add new compiler qualifier /PRINT_STANDARD (-gnatS)
32108 Remove data for GNAT STANDARD
32109 Remove options and documentation for -gnatwb/-gnatwB: these warning
32110 options no longer exist.
32112 2003-11-13 Ed Falis <falis@gnat.com>
32114 * 5zthrini.adb: (Init_RTS): Made visible
32117 (Register): Removed unnecessary call to taskVarGet that checked whether
32118 an ATSD was already set as a task var for the argument thread.
32121 Updated comment to reflect that this is a VxWorks version
32122 Added context clause for System.Threads.Initialization
32123 Added call to System.Threads.Initialization.Init_RTS
32125 2003-11-13 Jerome Guitton <guitton@act-europe.fr>
32128 (Init_RTS): New procedure, for the initialization of the run-time lib.
32131 Remove dependancy on System.Init, so that this file can be used in the
32132 AE653 sequential run-time lib.
32134 2003-11-13 Robert Dewar <dewar@gnat.com>
32136 * bindgen.adb: Minor reformatting
32138 2003-11-13 Ed Schonberg <schonberg@gnat.com>
32141 (Apply_Discriminant_Check): Do no apply check if target type is derived
32142 from source type with no applicable constraint.
32145 (Ensure_System_Dependency): Do not apply the style checks that may have
32146 been specified for the main unit.
32149 (Find_Selected_Component): Further improvement in error message, with
32153 (Resolve): Handle properly the case of an illegal overloaded protected
32156 2003-11-13 Javier Miranda <miranda@gnat.com>
32159 (Has_Default_Init_Comps): New function to check the presence of
32160 default initialization in an aggregate.
32161 (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
32162 extension aggregate of a limited record. In addition, a new formal
32163 was added to do not initialize the record controller (if any) during
32164 this recursive expansion of ancestors.
32165 (Init_Controller): Add support for limited record components.
32166 (Expand_Record_Aggregate): In case of default initialized components
32167 convert the aggregate into a set of assignments.
32169 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
32170 describing the new syntax.
32171 Nothing else needed to be done because this subprogram delegates part of
32172 its work to P_Precord_Or_Array_Component_Association.
32173 (P_Record_Or_Array_Component_Association): Give support to the new
32174 syntax for default initialization of components.
32177 (Resolve_Aggregate): Relax the strictness of the frontend in case of
32178 limited aggregates.
32179 (Resolve_Record_Aggregate): Give support to default initialized
32181 (Get_Value): In case of default initialized components, duplicate
32182 the corresponding default expression (from the record type
32183 declaration). In case of default initialization in the *others*
32184 choice, do not check that all components have the same type.
32185 (Resolve_Extension_Aggregate): Give support to limited extension
32189 (Check_Initialization): Relax the strictness of the front-end in case
32190 of aggregate and extension aggregates. This test is now done in
32191 Get_Value in a per-component manner.
32193 * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
32194 expression corresponds to a limited aggregate. This test is now done
32197 * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
32200 * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
32201 present in an N_Component_Association node
32203 2003-11-13 Thomas Quinot <quinot@act-europe.fr>
32205 * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
32206 type-conformant entry only if they are homographs.
32208 2003-11-13 GNAT Script <nobody@gnat.com>
32210 * Make-lang.in: Makefile automatically updated
32212 2003-11-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
32214 * adadecode.c: Use <> form of include for ctype.h.
32215 * sysdep.c [IN_RTS]: Use <> form of include for time.h.
32217 2003-11-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
32219 * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
32220 Works around PR middle-end/6552.
32222 2003-11-10 Ed Falis <falis@gnat.com>
32224 * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
32226 * 5zinit.adb: (Install_Handler): Moved back to spec
32227 (Install_Signal_Handlers): Deleted
32229 * 5zthrini.adb: Added context clause for System.Storage_Elements
32230 (Register): Only handles creation of taskVar; initialization moved to
32232 (Reset_TSD): Deleted; replaced by Thread_Body_Enter
32233 Added declaration of environment task secondary stack and
32236 * s-thread.adb: Implement bodies for thread body processing
32239 Added comment identifying supported targets for pragma Thread_Body.
32241 2003-11-10 Pascal Obry <obry@gnat.com>
32243 * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
32247 (Open): Properly check for string length before copying into the buffer.
32248 Raises Name_Error if buffer is too small. Note that this was a potential
32251 2003-11-10 Romain Berrendonner <berrendo@act-europe.fr>
32253 * bindgen.adb, comperr.adb: Code clean ups.
32254 * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
32256 2003-11-10 Sergey Rybin <rybin@act-europe.fr>
32258 * gnat1drv.adb: Add call to Sem_Elim.Initialize.
32260 2003-11-10 Vincent Celier <celier@gnat.com>
32263 (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
32266 * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
32268 * prj.adb: (Project_Empty): Add new boolean component Virtual
32270 * prj.ads: (Virtual_Prefix): New constant string
32271 (Project_Data): New boolean component Virtual
32273 * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
32274 a library project is extended by a virtual extending project.
32277 Modifications throughout to implement extending-all project, including:
32278 (Virtual_Hash, Processed_Hash): New hash tables
32279 (Create_Virtual_Extending_Project): New procedure
32280 (Look_For_Virtual_Projects_For): New procedure
32283 (Process): After checking the projects, if main project is an
32284 extending-all project, set the object directory of all virtual extending
32285 project to the object directory of the main project.
32286 Adjust error message when a virtual extending project has the same
32287 object directory as an project being extended.
32288 (Recursive_Process): If name starts with the virtual prefix, set Virtual
32289 to True in the project data.
32292 (Default_Project_Node): Add new boolean component Extending_All
32293 (Is_Extending_All): New function
32294 (Set_Is_Extending_All): New procedure
32296 * prj-tree.ads: (Is_Extending_All): New function
32297 (Set_Is_Extending_All): New procedure
32298 (Project_Node_Record): New boolean component Extending_All
32300 * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
32303 Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
32305 * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
32306 "gprcmd prefix" to define it.
32308 2003-11-10 Thomas Quinot <quinot@act-europe.fr>
32310 * einfo.ads: Fix a typo and remove an extraneous word in comments.
32313 (Create_Dummy_Package_Unit): Set the scope of the entity for the
32314 created dummy package to Standard_Standard, not to itself, to
32315 defend other parts of the front-end against encoutering a cycle in
32319 (Analyze_With_Clause): When setting the entities for the successive
32320 N_Expanded_Names that constitute the name of a child unit, do not
32321 attempt to go further than Standard_Standard in the chain of scopes.
32322 This case arises from the placeholder units created by
32323 Create_Dummy_Package_Unit in the case of a with_clause for a
32324 nonexistent child unit.
32326 2003-11-10 Ed Schonberg <schonberg@gnat.com>
32329 (Expand_Thread_Body): Place subprogram on scope stack, so that new
32330 declarations are given the proper scope.
32333 (Check_Expr_Constants): Reject an expression that contains a constant
32334 created during expansion, and that appears after the object to which
32335 the address clause applies.
32337 * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
32338 Analyze_Iteration_Scheme, to rewrite a loop parameter specification
32339 that uses 'Range of a function call with controlled components, so
32340 that the function result can be finalized before starting the loop.
32343 (Find_Selected_Component): Improve error message when prefix is
32344 an implicit dereference of an incomplete type.
32346 2003-11-10 Robert Dewar <dewar@gnat.com>
32348 * opt.ads: New Print_Standard flag for -gnatS switch
32350 * sem_ch13.adb: Remove some additional checks for unaligned arrays
32352 * cstand.adb (Create_Standard): Print out package standard if -gnatS
32355 * debug.adb: Update doc for -gnatds to discuss relationship with new
32358 * sinfo.adb: Add new field Entity_Or_Associated_Node
32360 * sinfo.ads: Add new field Entity_Or_Associated_Node
32361 Update documentation for Associated_Node and Entity fields to clarify
32362 relationship and usage.
32365 (Write_Id): Properly process Associated_Node field in generic template
32368 Recognize new -gnatS switch for printing package Standard
32369 This replaces gnatpsta
32372 Add line for new -gnatS switch for printing package Standard
32373 This replaces gnatpsta
32375 2003-11-10 Andreas Jaeger <aj@suse.de>
32377 * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
32380 2003-11-10 Arnaud Charlet <charlet@act-europe.fr>
32382 * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
32385 2003-11-10 Arnaud Charlet <charlet@act-europe.fr>
32387 * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
32390 * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
32392 * sysdep.c: Add handling of cygwin.
32394 2003-11-10 GNAT Script <nobody@gnat.com>
32396 * Make-lang.in: Makefile automatically updated
32398 2003-11-10 Arnaud Charlet <charlet@act-europe.fr>
32401 * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
32402 functions. Used to handle dynamic prefix relocation, via set_std_prefix.
32403 Replace GNAT_ROOT by GCC_ROOT.
32405 * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
32407 2003-11-06 Zack Weinberg <zack@codesourcery.com>
32409 * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
32410 and update for changed meaning of GET_MODE_BITSIZE.
32412 2003-11-04 Doug Rupp <rupp@gnat.com>
32414 * sysdep.c: Problem discovered during IA64 VMS port.
32415 [VMS] #include <unixio.h> to get proper prototypes.
32418 Issues discovered/problems fixed during IA64 VMS port.
32419 [VMS] #define _POSIX_EXIT for proper semantics.
32420 [VMS] #include <unixio.h> for proper prototypes.
32421 [VMS] (fork): #define IA64 version.
32422 (__gnat_os_exit): Remove unnecessary VMS specific code.
32424 2003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32426 Part of PR ada/12806
32427 * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
32431 (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
32434 * targtyps.c, decl.c, misc.c,
32435 gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
32436 routines to work around change in FP sizing semantics in GCC.
32439 (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
32441 * gigi.h: (enumerate_modes): New function.
32443 * Make-lang.in: (ada/misc.o): Add real.h.
32445 * misc.c: (enumerate_modes): New function.
32447 2003-11-04 Robert Dewar <dewar@gnat.com>
32449 * 3vtrasym.adb: Minor reformatting
32450 Use terminology encoded/decoded name, rather than C++ specific notion
32451 of mangling (this is the terminology used throughout GNAT).
32453 * einfo.h: Regenerated
32455 * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
32458 (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
32460 * par-prag.adb: Add dummy entry for Thread_Body pragma
32463 Add entries for System.Threads entities for thread body processing
32466 (Analyze_Pragma, Access attributes): Check these are not applied to a
32467 thread body, since this is not permitted
32469 * sem_prag.adb: Add processing for Thread_Body pragma.
32473 (Resolve_Call): Check for incorrect attempt to call a thread body
32474 procedure with a direct call.
32476 * snames.ads, snames.adb: Add entry for Thread_Body pragma
32477 Add names associated with thread body expansion
32479 * snames.h: Add entry for Thread_Body pragma
32481 * s-thread.adb: Add entries for thread body processing
32482 These are dummy bodies so far
32484 * s-thread.ads: Add documentation on thread body handling.
32485 Add entries for thread body processing.
32487 2003-11-04 Javier Miranda <miranda@gnat.com>
32490 (Build_Limited_Views): Return after posting an error in case of limited
32491 with_clause on subprograms, generics, instances or generic renamings
32492 (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
32493 on subprograms, generics, instances or generic renamings
32495 2003-11-04 Arnaud Charlet <charlet@act-europe.fr>
32497 * raise.c (setup_to_install): Correct mistake in last revision; two
32498 arguments out of order.
32500 * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
32501 gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
32502 notice, missed in previous change.
32503 Remove trailing blanks and other style errors introduced in previous
32506 2003-11-04 Olivier Hainque <hainque@act-europe.fr>
32508 * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
32509 rid of the wrapper for a LJM type, ensuring we don't do that if the
32510 field is addressable. This avoids potential low level type view
32511 mismatches later on, for instance in a by-reference argument passing
32514 2003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32516 * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
32517 aligned at byte boundary.
32519 2003-11-04 Joel Brobecker <brobecker@gnat.com>
32521 * decl.c (components_to_record): Do not delete the empty variants from
32522 the end of the union type.
32524 2003-11-04 Ed Schonberg <schonberg@gnat.com>
32526 * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
32527 operation for a derived type, an explicit declaration may use a local
32528 subtype of Boolean.
32530 2003-11-04 Vincent Celier <celier@gnat.com>
32532 * make.adb (Gnatmake): Allow main sources on the command line with a
32533 library project when it is only for compilation (no binding or
32536 2003-11-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
32538 * Makefile.in: Remove many duplicate variables.
32540 2003-11-03 Kelley Cook <kcook@gcc.gnu.org>
32542 * Make-lang.in (dvi): Move targets to $(docobjdir).
32543 (gnat_ug_vms.dvi): Simplify rule and adjust target.
32544 (gnat_ug_wnt.dvi): Likewise.
32545 (gnat_ug_unx.dvi): Likewise.
32546 (gnat_ug_vxw.dvi): Likewise.
32547 (gnat_rm.dvi): Likewise.
32548 (gnat-style.dvi): Likewise.
32550 2003-10-31 Kelley Cook <kcook@gcc.gnu.org>
32552 * gigi.h: Missed commit from update for C90.
32554 2003-10-31 Kelley Cook <kcook@gcc.gnu.org>
32556 * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
32558 2003-10-31 Andreas Schwab <schwab@suse.de>
32560 * raise.c (get_action_description_for): Fix typo in last change.
32562 2003-10-31 Nathanael Nerode <neroden@gcc.gnu.org>
32565 * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
32566 T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
32568 2003-10-30 Kelley Cook <kcook@gcc.gnu.org>
32570 * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
32571 ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
32572 gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
32573 sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
32574 trans.c, utils.c, utils2.c: Convert function prototypes to C90.
32576 2003-10-30 Vasiliy Fofanov <fofanov@act-europe.fr>
32579 Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
32580 numbers when symbol name is too long.
32582 2003-10-30 Ed Falis <falis@gnat.com>
32584 * g-signal.ads, g-signal.adb: New files
32586 * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
32588 * Makefile.rtl: Introduce GNAT.Signals
32590 2003-10-30 Robert Dewar <dewar@gnat.com>
32592 * freeze.adb: Minor reformatting
32594 * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
32596 * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
32597 par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
32598 New handling of Id_Check parameter to improve recognition of keywords
32599 used as identifiers.
32600 Update copyright notice to include 2003
32602 2003-10-29 Robert Dewar <dewar@gnat.com>
32604 * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
32605 sem_ch10.adb: Minor reformatting
32607 * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
32608 (Expand_Assign_Record): Test right hand side for bit unaligned as well
32610 2003-10-29 Vasiliy Fofanov <fofanov@act-europe.fr>
32612 * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
32613 Support for TBK$SYMBOLIZE-based symbolic traceback.
32615 2003-10-29 Jose Ruiz <ruiz@act-europe.fr>
32618 Revert previous change, that did not work well when pragma No_Run_Time
32619 was used in conjunction with a run-time other than ZFP.
32621 2003-10-29 Vincent Celier <celier@gnat.com>
32624 (Gnatmake): When there are no Ada mains in attribute Main, disable the
32625 bind and link steps only is switch -z is not used.
32627 2003-10-29 Arnaud Charlet <charlet@act-europe.fr>
32629 * Makefile.generic: Remove duplicated setting of CC.
32631 * Makefile.prolog: Set CC to gcc by default, to override make's
32634 * einfo.h: Regenerated.
32636 2003-10-29 Ed Schonberg <schonberg@gnat.com>
32638 * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
32639 current body, after compiling subunit.
32641 * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
32642 when in deleted code, because gigi needs properly ordered freeze
32643 actions to annotate types.
32645 * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
32646 prevent the premature freezing of record type that contains
32647 subcomponents with a private type that does not yet have a completion.
32649 2003-10-29 Javier Miranda <miranda@gnat.com>
32652 (Analyze_Package_Instantiation): Check that instances can not be used in
32653 limited with_clauses.
32656 (Analyze_Package_Renaming): Check that limited withed packages cannot
32657 be renamed. Improve text on error messages related to limited
32660 * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
32662 * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
32663 Update copyright notice.
32665 * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
32666 (Install_Limited_Context_Clauses): New subprogram that isolates all the
32667 checks required for limited context_clauses and installs the limited
32669 (Install_Limited_Withed_Unit): Complete its documentation.
32670 (Analyze_Context): Check that limited with_clauses are only allowed in
32672 (Install_Context): Call Install_Limited_Context_Clauses after the
32673 parents have been installed.
32674 (Install_Limited_Withed_Unit): Add documentation. Mark the installed
32675 package as 'From_With_Type'; this mark indicates that the limited view
32676 is installed. Used to check bad usages of limited with_clauses.
32677 (Build_Limited_Views): Do not add shadow entities to the scope's list
32678 of entities. Do not add real entities to the Non_Limited_Views chain.
32679 Improve error notification.
32680 (Remove_Context_Clauses): Remove context clauses in two phases:
32681 limited views first and regular views later (to maintain the
32683 (Remove_Limited_With_Clause): If the package is analyzed then reinstall
32684 its visible entities.
32686 2003-10-29 Thomas Quinot <quinot@act-europe.fr>
32688 * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
32689 with any type that Is_Fixed_Point_Type.
32691 * sinfo.ads: Fix documentation for Associated_Node attribute.
32693 2003-10-29 Sergey Rybin <rybin@act-europe.fr>
32695 * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
32696 both '-gnatc' and '-gnatt' are specified.
32698 * atree.adb (Initialize): Add initialization for Node_Count (set to
32701 2003-10-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32703 * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
32704 do not consider as Pure.
32706 Part of implementation of function-at-a-time:
32708 * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
32709 (tree_transform): Add new argument to build_component_ref.
32710 (tree_transform, case N_Assignment_Statement): Make and return an
32712 (tree_transform): If result IS_STMT, set flags and return it.
32713 (gnat_expand_stmt, set_lineno_from_sloc): New functions.
32715 * utils2.c (build_simple_component_ref, build_component_ref): Add new
32717 (build_binary_op, case EQ_EXPR): Pass additional arg to it.
32718 (build_allocator): Likewise.
32720 * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
32721 Add new arg to build_component_ref.
32722 (maybe_unconstrained_array, unchecked_convert): Likewise.
32724 * ada-tree.def (EXPR_STMT): New code.
32726 * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
32728 * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
32729 build_component_ref calls.
32731 * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
32733 * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
32734 (build_component_ref): Add new argument, NO_FOLD_P.
32736 2003-10-27 Arnaud Charlet <charlet@act-europe.fr>
32738 * Makefile.generic: Add missing substitution on object_deps handling.
32741 * Make-lang.in (check-ada): Enable ACATS test suite.
32743 2003-10-27 Robert Dewar <dewar@gnat.com>
32746 (Freeze_Array_Type): We do not need an initialization routine for types
32747 derived from String or Wide_String. They should be treated the same
32748 as String and Wide_String themselves. This caused problems with the
32749 use of Initialize_Scalars.
32752 (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
32753 composites. This allows use of component clauses that are not byte
32757 (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
32758 is an attempt to pack an array of atomic objects.
32760 * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
32762 2003-10-27 Pascal Obry <obry@gnat.com>
32765 (Basename): Check for drive letters in a pathname only on DOS based OS.
32767 2003-10-27 Vincent Celier <celier@gnat.com>
32770 (Gnatmake): When unable to change dir to the object dir, display the
32771 content of the parent dir of the obj dir, to try to understand why this
32774 2003-10-27 GNAT Script <nobody@gnat.com>
32776 * Make-lang.in: Makefile automatically updated
32778 2003-10-27 Ed Schonberg <schonberg@gnat.com>
32781 (Inline_Instance_Body): Indicate that the save/restore of use_clauses
32782 should not be done in Save/Restore_Scope_Stack, because it is performed
32786 (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
32787 whether use clauses should be removed/restored.
32790 (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
32791 whether use clauses should be removed/restored.
32793 2003-10-26 Andreas Jaeger <aj@suse.de>
32795 * Makefile.in: Remove duplicated lines.
32797 2003-10-24 Arnaud Charlet <charlet@act-europe.fr>
32799 * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
32800 minimize the differences with ACT tree.
32802 * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
32803 gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
32804 Gnatvsn.Gnat_Static_Version_String to reduce differences between
32807 2003-10-24 Pascal Obry <obry@gnat.com>
32810 * adadecode.c (ostrcpy): New function.
32811 (__gnat_decode): Use ostrcpy of strcpy.
32812 (has_prefix): Set first parameter a const.
32813 (has_suffix): Set first parameter a const.
32814 Update copyright notice. Fix source name in header.
32815 Removes a trailing space.
32817 2003-10-24 Jose Ruiz <ruiz@act-europe.fr>
32820 Remove the test against being in No_Run_Time_Mode before generating a
32821 call to Register_Tag. It is redundant with the test against the
32822 availability of the function Register_Tag.
32824 2003-10-24 Vincent Celier <celier@gnat.com>
32826 * g-catiio.adb: (Month_Name): Correct spelling of February
32828 * make.adb: (Mains): New package
32829 (Initialize): Call Mains.Delete
32830 (Gnatmake): Check that each main on the command line is a source of a
32831 project file and, if there are several mains, each of them is a source
32832 of the same project file.
32833 (Gnatmake): When a foreign language is specified in attribute Languages,
32834 no main is specified on the command line and attribute Mains is not
32835 empty, only build the Ada main. If there is no Ada main, just compile
32836 the Ada sources and their closure.
32837 (Gnatmake): If a main is specified on the command line with directory
32838 information, check that the source exists and, if it does, that the path
32839 is the actual path of a source of a project.
32842 (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
32843 Full_Path is True, return the full path instead of the simple file name.
32844 (Project_Of): New function
32847 (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
32848 defaulted to False.
32849 (Project_Of): New function
32851 2003-10-24 Arnaud Charlet <charlet@act-europe.fr>
32853 * Makefile.generic:
32854 Ensure objects of main project are always checked and rebuilt if needed.
32855 Set CC to gcc by default.
32856 Prepare new handling of link by creating a global archive (not activated
32859 * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
32860 stringt.h: Update copyright notice. Remove trailing blanks.
32861 Fix source name in header.
32863 2003-10-24 Robert Dewar <dewar@gnat.com>
32865 * sem_ch12.adb: Minor reformatting
32868 Minor reformatting (including new function return style throughout)
32871 Minor reformatting (including new function return style throughout)
32873 2003-10-24 Arnaud Charlet <charlet@act-europe.fr>
32875 * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
32876 stringt.h: Update copyright notice. Remove trailing blanks.
32877 Fix source name in header.
32879 2003-10-24 GNAT Script <nobody@gnat.com>
32881 * Make-lang.in: Makefile automatically updated
32883 2003-10-23 Nathanael Nerode <neroden@gcc.gnu.org>
32885 * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
32886 stringt.h: Convert to ISO C90 declarations and definitions.
32888 2003-10-23 Thomas Quinot <quinot@act-europe.fr>
32891 * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
32892 External_Tag attribute definition clauses.
32894 2003-10-23 Ed Schonberg <schonberg@gnat.com>
32897 * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
32898 child unit, generate a fully qualified name to avoid spurious errors
32899 when the context contains renamings of different child units with
32900 the same simple name.
32902 * exp_dbug.ads: Add documentation on name qualification for renamings
32905 2003-10-23 Robert Dewar <dewar@gnat.com>
32907 * g-regpat.ads, g-regpat.adb: Minor reformatting
32909 2003-10-23 Jose Ruiz <ruiz@act-europe.fr>
32911 * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
32913 2003-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32915 * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
32918 * urealp.h: (Machine): Update to proper definition.
32920 2003-10-23 Arnaud Charlet <charlet@act-europe.fr>
32922 * init.c, adaint.c: Minor reformatting.
32924 2003-10-23 Danny Smith <dannysmith@users.sourceforge.net>
32926 * adaint.c (w32_epoch_offset): Define static const at file level.
32927 (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
32928 rather than t_create, t_access in call to GetFileTime. Use union
32929 to convert between FILETIME and unsigned long long.
32930 (__gnat_file_time_name): Test for invalid file handle.
32931 (__gnat_set_filetime_name): Support win32 targets using
32932 w32api SetFileTime.
32934 2003-10-22 Danny Smith <dannysmith@users.sourceforge.net>
32936 * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
32938 * ctrl_c.c (__gnat_int_handler): Remove declaration.
32940 * decl.c (creat_concat_name): Const-ify prefix.
32942 * adaint.c: Include ctype.h if __MINGW32__.
32943 (__gnat_readlink): Mark arguments as possibly unused.
32944 (__gnat_symlink): Likewise.
32945 (__gnat_is_symbolic_link): Likewise.
32946 (__gnat_portable_spawn): Likewise. Cast last arg of spawnvp to match
32948 (__gnat_file_time_name): Don't declare struct stat statbuf when
32950 (__gnat_is_absolute_path): Add parenthesis around condition of
32951 'if' statement to avoid warning.
32952 (__gnat_plist_init): Specify void as parameter.
32953 (plist_enter): Likewise.
32954 (plist_leave): Likewise.
32955 (remove_handle): Make static. Initialize prev.
32957 2003-10-22 Arnaud Charlet <charlet@act-europe.fr>
32960 * Makefile.in: Disable build of gnatpsta.
32961 * cstreams.c (__gnat_full_name): Minor improvements and clean up
32962 of previous change.
32964 2003-10-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
32966 * tracebak.c (MAX): Avoid redefinition warning.
32968 * init.c [sgi] (__gnat_error_handler): Remove i, unused.
32969 Change msg to const char *.
32970 (__gnat_install_handler): Remove ss, unused.
32971 [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
32973 * cstreams.c (__gnat_full_name): Declare p only when used.
32974 (__gnat_full_name) [sgi] Return buffer.
32976 2003-10-22 Arnaud Charlet <charlet@act-europe.fr>
32978 * mingw32.h: New file.
32979 * gnat_wrapper.adb: New file.
32981 2003-10-22 Jerome Roussel <roussel@act-europe.fr>
32983 * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
32984 string match a pre compiled regular expression (the corresponding
32985 version of the function working on a raw regular expression)
32986 Fix typos in various comments
32987 Update copyright notice in spec
32989 2003-10-21 Gary Dismukes <dismukes@gnat.com>
32992 (Component_Needs_Simple_Initialization): Return False when the type is a
32993 packed bit array. Revise spec comments to document this case.
32996 (Expand_Pragma_Import): Set any expression on the imported object to
32997 empty to avoid initializing imported objects (in particular this
32998 covers the case of zero-initialization of bit arrays).
32999 Update copyright notice.
33001 2003-10-21 Ed Schonberg <schonberg@gnat.com>
33004 (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
33005 a subunit is missing.
33006 (Instantiate_Subprogram_Body): If body of function is missing, set type
33007 of return expression explicitly in dummy body, to prevent cascaded
33008 errors when a subunit is missing.
33012 (Access_Subprogram_Declaration): Verify that return type is valid.
33016 (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
33021 (Corresponding_Discriminant): If the scope of the discriminant is a
33022 private type without discriminant, use its full view.
33025 2003-10-21 Arnaud Charlet <charlet@act-europe.fr>
33027 * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
33028 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
33029 3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
33030 55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
33031 56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
33032 59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
33033 5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
33034 5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
33035 5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
33036 5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
33037 5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
33038 5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
33039 5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
33040 5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
33041 7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
33042 a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
33043 a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
33044 a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
33045 bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
33046 erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
33047 err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
33048 g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
33049 g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
33050 g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
33051 g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
33052 g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
33053 g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
33054 gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
33055 g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
33056 g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
33057 i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
33058 prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
33059 prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
33060 s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
33061 s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
33062 s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
33063 s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
33064 s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
33065 s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
33066 s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
33067 s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
33068 socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
33069 s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
33070 s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
33071 s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
33072 styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
33073 s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
33074 tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
33075 vms_conv.ads, vms_conv.adb, vms_data.ads,
33076 vxaddr2line.adb: Files added. Merge with ACT tree.
33078 * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
33079 5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
33080 5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
33081 5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
33082 g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
33083 s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
33084 s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
33085 s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
33086 s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
33087 s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
33089 * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
33090 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
33091 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
33092 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
33093 4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
33094 4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
33095 4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
33096 4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
33097 51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
33098 53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
33099 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
33100 5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
33101 5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
33102 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
33103 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
33104 5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
33105 5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
33106 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
33107 5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
33108 5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
33109 5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
33110 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
33111 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
33112 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
33113 5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
33114 5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
33115 5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
33116 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
33117 5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
33118 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
33119 5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
33120 5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
33121 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
33122 5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
33123 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
33124 7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
33125 7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
33126 a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
33127 a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
33128 a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
33129 a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
33130 a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
33131 ali.adb, ali.ads, ali-util.adb, ali-util.ads,
33132 a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
33133 a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
33134 a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
33135 a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
33136 a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
33137 a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
33138 a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
33139 a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
33140 a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
33141 a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
33142 a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
33143 a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
33144 atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
33145 a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
33146 a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
33147 bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
33148 checks.adb, checks.ads, cio.c, comperr.adb,
33149 comperr.ads, csets.adb, cstand.adb, cstreams.c,
33150 debug_a.adb, debug_a.ads, debug.adb, decl.c,
33151 einfo.adb, einfo.ads, errout.adb, errout.ads,
33152 eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
33153 expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
33154 exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
33155 exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
33156 exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
33157 exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
33158 exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
33159 exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
33160 exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
33161 fe.h, fmap.adb, fmap.ads, fname.adb,
33162 fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
33163 freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
33164 g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
33165 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
33166 g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
33167 g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
33168 g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
33169 g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
33170 g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
33171 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
33172 g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
33173 g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
33174 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
33175 g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
33176 gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
33177 gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
33178 gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
33179 gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
33180 gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
33181 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
33182 g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
33183 g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
33184 g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
33185 g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
33186 g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
33187 g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
33188 g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
33189 i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
33190 i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
33191 inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
33192 itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
33193 layout.adb, lib.adb, lib.ads, lib-list.adb,
33194 lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
33195 lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
33196 link.c, live.adb, make.adb, make.ads,
33197 Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
33198 mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
33199 mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
33200 misc.c, mkdir.c, mlib.adb, mlib.ads,
33201 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
33202 mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
33203 namet.adb, namet.ads, namet.h, nlists.ads,
33204 nlists.h, nmake.adt, opt.adb, opt.ads,
33205 osint.adb, osint.ads, osint-b.adb, osint-c.adb,
33206 par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
33207 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
33208 par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
33209 par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
33210 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
33211 prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
33212 prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
33213 prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
33214 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
33215 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
33216 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
33217 prj-util.adb, prj-util.ads, raise.c, raise.h,
33218 repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
33219 rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
33220 s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
33221 s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
33222 scans.ads, scn.adb, scn.ads, s-crc32.adb,
33223 s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
33224 sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
33225 sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
33226 sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
33227 sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
33228 sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
33229 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
33230 sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
33231 sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
33232 sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
33233 sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
33234 sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
33235 s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
33236 s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
33237 s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
33238 s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
33239 s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
33240 s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
33241 s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
33242 sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
33243 sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
33244 sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
33245 s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
33246 s-memory.adb, s-memory.ads, snames.adb, snames.ads,
33247 snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
33248 s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
33249 s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
33250 s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
33251 s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
33252 s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
33253 s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
33254 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
33255 s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
33256 s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
33257 s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
33258 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
33259 s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
33260 s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
33261 s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
33262 s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
33263 s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
33264 stringt.adb, stringt.ads, stringt.h, style.ads,
33265 stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
33266 s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
33267 s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
33268 switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
33269 s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
33270 table.adb, table.ads, targparm.adb, targparm.ads,
33271 targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
33272 trans.c, tree_io.adb, treepr.adb, treeprs.adt,
33273 ttypes.ads, types.ads, types.h, uintp.adb,
33274 uintp.ads, uintp.h, uname.adb, urealp.adb,
33275 urealp.ads, urealp.h, usage.adb, utils2.c,
33276 utils.c, validsw.adb, validsw.ads, widechar.adb,
33277 xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
33278 xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
33279 einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
33280 gnatvsn.ads: Merge with ACT tree.
33282 * gnatvsn.adb: Rewritten in a simpler and more efficient way.
33284 2003-10-20 Mark Mitchell <mark@codesourcery.com>
33286 * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
33287 (gnat_ug_vmx.info): Likewise.
33288 (gnat_ug_vxw.info): Likewise.
33289 (gnat_ug_wnt.info): Likewise.
33290 (gnat_rm.info): Likewise.
33291 (gnat-style.info): Likewise.
33293 * Make-lang.in (ada.install-info): Remove target.
33294 (info): New target.
33295 (install-info): Likewise.
33296 (gnat_ug_unx.info): Simplify rule.
33297 (gnat_ug_vmx.info): Likewise.
33298 (gnat_ug_vxw.info): Likewise.
33299 (gnat_ug_wnt.info): Likewise.
33300 (gnat_rm.info): Likewise.
33301 (gnat-style.info): Likewise.
33303 2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
33305 * Make-lang.in: Replace uses of $(target_alias) with
33306 $(target_noncanonical).
33307 * ada/Makefile.in: Remove unused mention of $(target_alias).
33309 2003-10-06 Mark Mitchell <mark@codesourcery.com>
33311 * Make-lang.in (ada.info): Replace with ...
33313 (ada.dvi): Replace with ...
33316 2003-09-29 Zack Weinberg <zack@codesourcery.com>
33318 * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
33319 initialize dconstp5 and dconstmp5.
33321 2003-09-28 Richard Henderson <rth@redhat.com>
33323 * trans.c (tree_transform): Update call to expand_asm_operands.
33325 2003-09-21 Richard Henderson <rth@redhat.com>
33327 * trans.c, utils.c: Revert.
33329 2003-09-21 Richard Henderson <rth@redhat.com>
33331 * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
33334 2003-09-04 Michael Matz <matz@suse.de>
33336 * misc.c: Include "target.h".
33337 * Make-lang.in (misc.o): Add dependency on target.h.
33339 2003-09-03 DJ Delorie <dj@redhat.com>
33341 * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
33344 2003-08-30 Zack Weinberg <zack@codesourcery.com>
33346 * Makefile.in: Update substitutions to match changes to
33347 configure. Use include directives instead of @-insertions
33348 to read in host and target fragments. Add a rule to
33349 regenerate ada/Makefile.
33351 2003-07-18 Neil Booth <neil@daikokuya.co.uk>
33353 * lang-options.h: Remove.
33354 * lang.opt: Add help text.
33356 2003-07-07 Nathan Sidwell <nathan@codesourcery.com>
33358 * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
33361 2003-07-06 Neil Booth <neil@daikokuya.co.uk>
33363 * misc.c (gnat_handle_option): Don't handle filenames.
33365 2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
33367 * Make-lang.in: Replace PWD with PWD_COMMAND.
33368 * Makefile.adalib: Likewise.
33369 * Makefile.in: Likewise.
33371 2003-07-04 Matt Kraai <kraai@alumni.cmu.edu>
33373 * misc.c (gnat_argv): Revert last change.
33374 (gnat_handle_option, gnat_init_options): Copy arguments.
33376 2003-07-03 Neil Booth <neil@daikokuya.co.uk>
33378 * misc.c (gnat_argv): Make const.
33380 2003-07-02 Neil Booth <neil@daikokuya.co.uk>
33382 * misc.c (save_argc, save_argv): Keep non-static!
33384 2003-07-02 Neil Booth <neil@daikokuya.co.uk>
33386 * misc.c (save_argc, save_argv): Make static.
33387 (gnat_init_options): New prototype.
33388 (gnat_init_options): Update.
33390 2003-07-01 Matt Kraai <kraai@alumni.cmu.edu>
33392 * gnat_ug.texi: Remove unlikely characters from @vars.
33393 * gnat_ug_vms.texi: Regenerate.
33395 2003-06-27 Nathan Sidwell <nathan@codesourcery.com>
33397 * misc.c (record_code_position): Adjust emit_note call.
33399 2003-06-26 Neil Booth <neil@daikokuya.co.uk>
33401 * misc.c (gnat_handle_option): Don't check for missing arguments.
33403 2003-06-20 Nathan Sidwell <nathan@codesourcery.com>
33405 * utils.c (end_subprog_body): Adjust expand_function_end call.
33407 2003-06-16 Matt Kraai <kraai@alumni.cmu.edu>
33409 * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
33412 2003-06-15 Neil Booth <neil@daikokuya.co.uk>
33414 * lang.opt: Declare Ada.
33415 * misc.c (gnat_init_options): Update.
33417 2003-06-14 Nathan Sidwell <nathan@codesourcery.com>
33419 * utils.c (begin_subprog_body): Adjust init_function_start call.
33421 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
33423 * Make-lang.in: Update to use options.c and options.h.
33424 * misc.c: Include options.h not aoptions.h.
33425 (gnat_handle_option): Abort on unrecognized switch.
33426 (gnat_init_options): Request Ada switches.
33428 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
33430 * lang.opt: Add -Wall.
33431 * misc.c (gnat_handle_option): Handle it.
33433 2003-06-12 Neil Booth <neil@daikokuya.co.uk>
33435 * misc.c (gnat_handle_option): Fix warnings.
33437 2003-06-11 Matt Kraai <kraai@alumni.cmu.edu>
33439 * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
33441 2003-06-11 Neil Booth <neil@daikokuya.co.uk>
33443 * Make-lang.in: Update to handle command-line options.
33444 * lang.opt: New file.
33445 * misc.c: Include aoptions.h.
33446 (cl_options_count, cl_options): Remove.
33447 (gnat_handle_option): New.
33448 (gnat_decode_option): Remove.
33449 (LANG_HOOKS_DECODE_OPTION): Remove.
33450 (LANG_HOOKS_HANDLE_OPTION): Override.
33452 2003-06-10 Nathanael Nerode <neroden@gcc.gnu.org>
33454 * init.c, misc.c, trans.c, utils.c: Remove dead code.
33456 2003-06-09 Nathanael Nerode <neroden@gcc.gnu.org>
33458 * Makefile.in: Replace "host_canonical" with "host" for autoconf
33461 2003-06-08 Neil Booth <neil@daikokuya.co.uk>
33463 * Make-lang.in: Update.
33464 * misc.c: Include opts.h. Define cl_options_count and cl_options.
33466 2003-06-07 Neil Booth <neil@daikokuya.co.uk>
33468 * misc.c (gnat_init_options): Update.
33470 2003-06-05 Matt Kraai <kraai@alumni.cmu.edu>
33472 * Make-lang.in (ada/b_gnatb.o-warn): Remove.
33473 * bindgen.adb (Gen_Main_C): Mark ensure_reference with
33474 __attribute__ ((__unused__)).
33476 2003-06-05 Jan Hubicka <jh@suse.cz>
33478 * Make-lang.in: Add support for stageprofile and stagefeedback
33480 2003-06-05 Matt Kraai <kraai@alumni.cmu.edu>
33482 * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
33483 (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
33485 2003-06-04 Matt Kraai <kraai@alumni.cmu.edu>
33487 * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
33488 Remove non-VMS directive.
33489 (Switches for gnatlbr, Optimization Levels): Remove non-VMS
33491 (Examples of gnatls Usage): Remove VMS alternative.
33493 2003-06-04 Olivier Hainque <hainque@act-europe.fr>
33496 * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
33497 and turn ZCX_By_Default back to False since the underlying support
33498 is not quite there yet.
33500 2003-06-01 Andreas Jaeger <aj@suse.de>
33502 * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
33503 and ROUND_TYPE_SIZE_UNIT.
33505 2003-05-22 Geert Bosch <bosch@gnat.com>
33507 * gnat_rm.texi : Remove reference to Ada Core Technologies.
33509 2003-05-03 Nathan Sidwell <nathan@codesourcery.com>
33511 * trans.c (tree_transform): Use location_t and input_location
33513 (build_unit_elab): Likewise.
33514 * utils.c (create_label_decl): Likewise.
33516 2003-05-01 Nathan Sidwell <nathan@codesourcery.com>
33518 * trans.c (tree_transform, build_unit_elab,
33519 set_lineno): Rename lineno to input_line.
33520 * utils.c (pushdecl, create_label_decl, begin_subprog_body,
33521 end_subprog_body): Likewise.
33522 * utils2.c (build_call_raise): Likewise.
33524 2003-05-01 Laurent Guerby <guerby@acm.org>
33527 * 5iosinte.ads: Increase pthread_cond_t size to match recent
33528 LinuxThread and NPTL version, merge from ACT.
33530 2003-04-28 Zack Weinberg <zack@codesourcery.com>
33532 * utils.c (convert): No need to clear TREE_CST_RTL.
33534 2003-04-23 Geert Bosch <bosch@gnat.com>
33536 * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
33537 1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
33538 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
33539 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
33540 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
33541 4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
33542 4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
33543 4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
33544 4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
33545 4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
33546 4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
33547 4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
33548 52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
33549 5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
33550 5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
33551 5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
33552 5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
33553 5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
33554 5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
33555 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
33556 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
33557 5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
33558 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
33559 5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
33560 5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
33561 5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
33562 5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
33563 5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
33564 5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
33565 5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
33566 5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
33567 5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
33568 5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
33569 5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
33570 5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
33571 5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
33572 5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
33573 5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
33574 5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
33575 5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
33576 5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
33577 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
33578 5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
33579 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
33580 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
33581 7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
33582 7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
33583 9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
33584 a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
33585 a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
33586 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
33587 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
33588 a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
33589 a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
33590 a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
33591 a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
33592 a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
33593 a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
33594 a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
33595 a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
33596 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
33597 a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
33598 a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
33599 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
33600 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
33601 a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
33602 a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
33603 a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
33604 a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
33605 a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
33606 a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
33607 a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
33608 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
33609 a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
33610 a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
33611 a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
33612 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
33613 a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
33614 a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
33615 a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
33616 a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
33617 a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
33618 a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
33619 a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
33620 a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
33621 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
33622 a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
33623 a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
33624 a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
33625 a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
33626 a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
33627 a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
33628 a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
33629 a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
33630 a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
33631 a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
33632 a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
33633 a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
33634 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
33635 a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
33636 a-wttest.ads, ada-tree.h, ada.ads, ada.h,
33637 adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
33638 ali.adb, ali.ads, alloc.ads, argv.c,
33639 atree.adb, atree.ads, atree.h, aux-io.c,
33640 back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
33641 binde.adb, binde.ads, binderr.adb, binderr.ads,
33642 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
33643 butil.adb, butil.ads, cal.c, calendar.ads,
33644 casing.adb, casing.ads, ceinfo.adb, checks.adb,
33645 checks.ads, cio.c, comperr.adb, comperr.ads,
33646 config-lang.in, csets.adb, csets.ads, csinfo.adb,
33647 cstand.adb, cstand.ads, cuintp.c, debug.adb,
33648 debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
33649 dec-io.ads, dec.ads, deftarg.c, directio.ads,
33650 einfo.adb, einfo.ads, elists.adb, elists.ads,
33651 elists.h, errno.c, errout.adb, errout.ads,
33652 eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
33653 exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
33654 exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
33655 exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
33656 exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
33657 exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
33658 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
33659 exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
33660 exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
33661 exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
33662 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
33663 exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
33664 exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
33665 exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
33666 exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
33667 fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
33668 fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
33669 freeze.adb, freeze.ads, frontend.adb, frontend.ads,
33670 g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
33671 g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
33672 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
33673 g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
33674 g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
33675 g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
33676 g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
33677 g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
33678 g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
33679 g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
33680 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
33681 g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
33682 g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
33683 g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
33684 g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
33685 g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
33686 g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
33687 g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
33688 g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
33689 g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
33690 g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
33691 g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
33692 get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
33693 gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
33694 gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
33695 gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
33696 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
33697 gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
33698 gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
33699 gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
33700 hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
33701 i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
33702 i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
33703 i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
33704 i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
33705 i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
33706 i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
33707 inline.adb, inline.ads, interfac.ads, ioexcept.ads,
33708 itypes.adb, itypes.ads, krunch.adb, krunch.ads,
33709 layout.adb, layout.ads, lib-list.adb, lib-load.adb,
33710 lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
33711 lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
33712 lib.adb, lib.ads, live.adb, live.ads,
33713 machcode.ads, make.adb, make.ads, makeusg.adb,
33714 makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
33715 mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
33716 memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
33717 mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
33718 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
33719 mlib.ads, namet.adb, namet.ads, nlists.adb,
33720 nlists.ads, opt.adb, opt.ads, osint-b.adb,
33721 osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
33722 osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
33723 osint.ads, output.adb, output.ads, par-ch10.adb,
33724 par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
33725 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
33726 par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
33727 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
33728 par-tchk.adb, par-util.adb, par.adb, par.ads,
33729 prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
33730 prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
33731 prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
33732 prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
33733 prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
33734 prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
33735 prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
33736 prj.adb, prj.ads, repinfo.adb, repinfo.ads,
33737 restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
33738 rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
33739 s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
33740 s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
33741 s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
33742 s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
33743 s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
33744 s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
33745 s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
33746 s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
33747 s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
33748 s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
33749 s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
33750 s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
33751 s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
33752 s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
33753 s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
33754 s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
33755 s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
33756 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
33757 s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
33758 s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
33759 s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
33760 s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
33761 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
33762 s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
33763 s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
33764 s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
33765 s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
33766 s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
33767 s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
33768 s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
33769 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
33770 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
33771 s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
33772 s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
33773 s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
33774 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
33775 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
33776 s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
33777 s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
33778 s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
33779 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
33780 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
33781 s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
33782 s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
33783 s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
33784 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
33785 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
33786 s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
33787 s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
33788 s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
33789 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
33790 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
33791 s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
33792 s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
33793 s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
33794 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
33795 s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
33796 s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
33797 s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
33798 s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
33799 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
33800 s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
33801 s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
33802 s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
33803 s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
33804 s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
33805 s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
33806 s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
33807 s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
33808 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
33809 s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
33810 s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
33811 s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
33812 s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
33813 s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
33814 s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
33815 s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
33816 s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
33817 s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
33818 s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
33819 s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
33820 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
33821 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
33822 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
33823 s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
33824 s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
33825 s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
33826 s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
33827 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
33828 s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
33829 s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
33830 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
33831 s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
33832 scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
33833 sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
33834 sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
33835 sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
33836 sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
33837 sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
33838 sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
33839 sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
33840 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
33841 sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
33842 sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
33843 sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
33844 sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
33845 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
33846 sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
33847 sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
33848 sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
33849 sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
33850 sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
33851 sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
33852 sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
33853 snames.ads, sprint.adb, sprint.ads, stand.adb,
33854 stand.ads, stringt.adb, stringt.ads, style.adb,
33855 style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
33856 switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
33857 switch-m.ads, switch.adb, switch.ads, system.ads,
33858 table.adb, table.ads, targparm.adb, targparm.ads,
33859 tbuild.adb, tbuild.ads, text_io.ads, trans.c,
33860 tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
33861 tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
33862 ttypef.ads, ttypes.ads, types.adb, types.ads,
33863 uintp.adb, uintp.ads, uname.adb, uname.ads,
33864 unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
33865 usage.adb, usage.ads, validsw.adb, validsw.ads,
33866 widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
33867 xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
33868 xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
33869 formatting and other trivial changes from ACT.
33871 2003-04-12 Zack Weinberg <zack@codesourcery.com>
33873 * gigi.h, utils2.c (build_constructor):
33874 Rename gnat_build_constructor. Use build_constructor.
33875 * decl.c (gnat_to_gnu_entity)
33876 * trans.c (tree_transform, pos_to_constructor, extract_values)
33877 * ada/utils.c (build_template, convert_to_fat_pointer, convert)
33878 (unchecked_convert)
33879 * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
33880 (fill_vms_descriptor):
33883 2003-04-06 Zack Weinberg <zack@codesourcery.com>
33885 * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
33886 * misc.c (gnat_tree_size): New function.
33887 (LANG_HOOKS_TREE_SIZE): Override.
33889 2003-04-03 Jason Merrill <jason@redhat.com>
33891 * misc.c (gnat_adjust_rli): #if 0.
33893 2003-03-31 Geert Bosch <bosch@gnat.com>
33896 * link.c : Fix misspelled "const" keyword
33898 2003-03-23 Mark Mitchell <mark@codesourcery.com>
33901 * utils2.c: Adjust calls to put_var_into_stack.
33903 2003-03-12 Nathanael Nerode <neroden@gcc.gnu.org>
33905 * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
33907 2003-03-08 Neil Booth <neil@daikokuya.co.uk>
33909 * misc.c (gnat_init): Update for new prototype.
33911 2003-03-05 Olivier Hainque <hainque@gnat.com>
33914 * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
33915 warning, and fix return type for the IN_RTS && !SJLJ case.
33917 2003-03-04 Tom Tromey <tromey@redhat.com>
33919 * Make-lang.in (ada.tags): New target.
33921 2003-03-04 Olivier Hainque <hainque@act-europe.fr>
33924 * a-except.adb (Unwind_RaiseException): Import a GNAT specific
33925 wrapper, which name remains constant whatever underlying GCC
33928 * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
33929 the stable interface needed for a-except.
33931 2003-03-02 Andreas Jaeger <aj@suse.de>
33933 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33934 gnat_ug_wnt.texi: Regenerate.
33936 2003-03-02 Laurent Guerby <guerby@acm.org>
33938 * Makefile.in (install-gnatlib): Match previous change there
33941 2003-02-28 Andreas Schwab <schwab@suse.de>
33943 * Make-lang.in (install-gnatlib): Change to ada directory before
33944 running make instead of using ada/Makefile directly.
33946 2003-02-18 Ben Elliston <bje@redhat.com>
33948 Part of PR ada/9406
33949 * gnat_ug.texi (Binder output file): Grammar fix.
33951 2003-02-18 Ben Elliston <bje@redhat.com>
33954 * 5qtaprop.adb (Sleep): Fix typo in comment.
33956 2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
33958 * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
33959 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
33960 gnat_ug_wnt.texi: Regenerate.
33962 2003-02-03 Christian Cornelssen <ccorn@cs.tu-berlin.de>
33964 * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
33965 be created if necessary.
33966 (ada.install-common): Let $(DESTDIR)$(bindir) be created
33967 if necessary. Remove erroneous and redundant gnatchop
33968 installation commands. Test for gnatdll before attempting
33970 (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
33971 and gnatdll from all plausible locations.
33973 2003-02-01 Richard Sandiford <rsandifo@redhat.com>
33975 * utils2.c (build_unary_op): Don't check flag_volatile.
33976 * gnat_ug.texi: Remove -fvolatile from example.
33977 * gnat_ug_vxw.texi: Likewise.
33979 2003-01-29 Laurent Guerby <guerby@acm.org>
33982 * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
33983 * Makefile.in: match previous change.
33984 * Make-lang.in: match previous change.
33986 2003-01-29 Joel Sherrill <joel@OARcorp.com>
33988 * 5rosinte.ads: Add SIGXCPU.
33989 * 5rtpopsp.adb: New file.
33990 * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
33991 * Makefile.in: Recognize more RTEMS targets and add the RTEMS
33992 specific file 5rtpopsp.adb.
33993 * adaint.h: Add include of <stdio.h> when target is RTEMS. This
33994 is likely needed for all newlib targets.
33995 * init.c: Add RTEMS specific version of __gnat_initialize().
33997 2003-01-28 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
33999 * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
34001 2003-01-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
34003 * init.c (__gnat_error_handler): Make msg const.
34005 * gmem.c (convert_addresses): Move declaration ...
34006 * adaint.h: ... here.
34007 * adaint.c (convert_addresses): Adapt addrs type to match
34010 * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
34012 2003-01-24 Andreas Schwab <schwab@suse.de>
34014 * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
34015 size_t to avoid warning.
34017 2003-01-21 Zack Weinberg <zack@codesourcery.com>
34019 * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
34021 2003-01-09 Geoffrey Keating <geoffk@apple.com>
34023 * gnat_rm.texi: Remove RCS version number.
34025 * ada-tree.h (union lang_tree_node): Add chain_next option.
34027 2003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
34029 * Make-lang.in (ada.install-info, ada.install-common,
34030 ada.uninstall): Prepend $(DESTDIR) to the destination
34031 directory in all (un)installation commands.
34032 * Makefile.in (install-gnatlib, install-rts): Ditto.
34034 2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
34036 * gnat_rm.texi, gnat_ug.texi: Use @copying.
34037 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
34038 gnat_ug_wnt.texi: Regenerate.
34040 2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
34042 * gnat_rm.texi: Include gcc-common.texi. Use GCC version number
34044 * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
34045 $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
34046 $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
34047 ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
34048 ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
34049 $(srcdir)/doc/include/gcc-common.texi.
34051 2002-12-15 Geert Bosch <bosch@gnat.com>
34053 * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
34055 2002-12-14 Geert Bosch <bosch@gnat.com>
34058 * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
34059 case of a body created for a Renaming_As_Body, on which
34060 conformance checks are not performed.
34062 2002-11-30 Zack Weinberg <zack@codesourcery.com>
34064 * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
34065 utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
34066 not already included.
34067 * Make-lang.in: Update dependencies.
34069 2002-11-18 Nathanael Nerode <neroden@gcc.gnu.org>
34070 * adaint.c (__gnat_tmp_name): Better, but good enough for now,
34071 solution to buffer overflow bug on GNU/Linux.
34073 2002-11-14 Nathanael Nerode <neroden@gcc.gnu.org>
34077 * bindgen.adb: Remove all references to Public_Version.
34078 * comperr.adb: Remove all references to Public_Version and
34079 GNATPRO_Version; correct bug reporting instructions.
34080 * comperr.ads: Change to match bug box.
34081 * gnatvsn.ads: Remove all references to Public version and
34084 2002-11-13 Nathanael Nerode <neroden@gcc.gnu.org>
34087 * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
34091 * config-lang.in: Remove diff_excludes.
34093 2002-11-05 Graham Stott <graham.stott@btinternet.com>
34096 * trans.c (gnu_pending_elaboration_lists): New GC root.
34097 (build_unit_elab): Use..
34099 2002-10-30 Geert Bosch <bosch@gnat.com>
34102 * misc.c : Include optabs.h
34104 * Make-lang.in (misc.o): Add dependency on optabs.h
34106 2002-10-29 Geert Bosch <bosch@gnat.com>
34109 * Make-lang.in (gnatbind): Depend on CONFIG_H
34111 2002-10-29 Geert bosch <bosch@gnat.com>
34114 * misc.c: Unrevert misc.c (1.13)
34116 2002-10-28 Nathanael Nerode <neroden@gcc.gnu.org>
34118 * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
34119 maintainership comments.
34121 2002-09-25 Nathanael Nerode <neroden@gcc.gnu.org>
34124 * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
34125 5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
34126 5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
34127 7staprop.adb: Correct statements in comments about
34128 maintainership of GNAT.
34131 * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
34132 gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
34133 osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
34134 osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
34135 s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
34136 s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
34137 sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
34138 switch-c.ads switch-m.adb switch-m.ads: Correct statements in
34139 comments about maintainership of GNAT.
34141 PR ada/6919 (forward port of patch for PR ada/5904)
34142 * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
34143 4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
34144 4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
34145 4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
34146 4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
34147 4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
34148 4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
34149 52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
34150 5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
34151 5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
34152 5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
34153 5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
34154 5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
34155 5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
34156 5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
34157 5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
34158 5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
34159 5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
34160 5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
34161 5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
34162 5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
34163 5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
34164 5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
34165 5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
34166 5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
34167 5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
34168 5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
34169 5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
34170 7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
34171 a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
34172 a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
34173 a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
34174 a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
34175 a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
34176 a-except.adb a-except.ads a-excpol.adb a-exctra.adb
34177 a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
34178 a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
34179 a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
34180 a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
34181 a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
34182 a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
34183 a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
34184 a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
34185 a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
34186 a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
34187 a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
34188 a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
34189 a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
34190 a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
34191 a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
34192 a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
34193 a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
34194 a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
34195 a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
34196 a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
34197 a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
34198 a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
34199 a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
34200 a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
34201 a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
34202 a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
34203 a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
34204 a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
34205 a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
34206 a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
34207 a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
34208 a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
34209 a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
34210 adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
34211 alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
34212 back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
34213 binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
34214 bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
34215 ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
34216 csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
34217 cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
34218 debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
34219 einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
34220 errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
34221 exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
34222 exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
34223 exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
34224 exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
34225 exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
34226 exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
34227 exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
34228 exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
34229 exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
34230 exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
34231 exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
34232 exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
34233 exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
34234 final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
34235 fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
34236 freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
34237 g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
34238 g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
34239 gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
34240 gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
34241 gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
34242 gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
34243 gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
34244 gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
34245 i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
34246 i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
34247 i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
34248 i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
34249 impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
34250 itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
34251 lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
34252 lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
34253 lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
34254 lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
34255 makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
34256 namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
34257 nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
34258 osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
34259 par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
34260 par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
34261 par-endh.adb par-labl.adb par-load.adb par-prag.adb
34262 par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
34263 prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
34264 prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
34265 prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
34266 prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
34267 prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
34268 prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
34269 repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
34270 rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
34271 s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
34272 s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
34273 s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
34274 s-direio.adb s-direio.ads s-except.ads s-exctab.adb
34275 s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
34276 s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
34277 s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
34278 s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
34279 s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
34280 s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
34281 s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
34282 s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
34283 s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
34284 s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
34285 s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
34286 s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
34287 s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
34288 s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
34289 s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
34290 s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
34291 s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
34292 s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
34293 s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
34294 s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
34295 s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
34296 s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
34297 s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
34298 s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
34299 s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
34300 s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
34301 s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
34302 s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
34303 s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
34304 s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
34305 s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
34306 s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
34307 s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
34308 s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
34309 s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
34310 s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
34311 s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
34312 s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
34313 s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
34314 s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
34315 s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
34316 s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
34317 s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
34318 s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
34319 s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
34320 s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
34321 s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
34322 s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
34323 s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
34324 s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
34325 s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
34326 s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
34327 s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
34328 s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
34329 s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
34330 s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
34331 s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
34332 s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
34333 s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
34334 s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
34335 s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
34336 s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
34337 s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
34338 s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
34339 s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
34340 s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
34341 s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
34342 s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
34343 s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
34344 s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
34345 s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
34346 s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
34347 s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
34348 s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
34349 s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
34350 s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
34351 s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
34352 s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
34353 scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
34354 sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
34355 sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
34356 sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
34357 sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
34358 sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
34359 sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
34360 sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
34361 sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
34362 sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
34363 sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
34364 sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
34365 sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
34366 sem_type.adb sem_type.ads sem_util.adb sem_util.ads
34367 sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
34368 sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
34369 sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
34370 sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
34371 snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
34372 stringt.ads stringt.h style.adb style.ads stylesw.adb
34373 stylesw.ads switch.adb switch.ads sysdep.c system.ads
34374 table.adb table.ads targparm.adb targparm.ads targtyps.c
34375 tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
34376 tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
34377 treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
34378 types.adb types.ads types.h uintp.adb uintp.ads uintp.h
34379 uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
34380 usage.ads utils.c utils2.c validsw.adb validsw.ads
34381 widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
34382 xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
34383 xtreeprs.adb: Correct statements in comments about maintainership
34386 2002-09-23 Zack Weinberg <zack@codesourcery.com>
34388 * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
34389 * Makefile.in (TOOLS_LIBS): Add ../../version.o.
34390 * gnatvsn.ads: Gnat_Version_String is now a function.
34391 * gnatvsn.adb: New file. When asked for Gnat_Version_String,
34392 copy the C version_string into a String and return it.
34393 * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
34394 gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
34395 Remove pragma Ident (Gnat_Version_String). If this was the
34396 sole use of package Gnatvsn, remove the with statement too.
34397 * gnat1drv.adb: Tweak -gnatv output.
34399 2002-09-17 Richard Henderson <rth@redhat.com>
34401 * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
34402 * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
34403 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
34404 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
34405 * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
34406 and real_2expN instead of a loop.
34407 * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
34408 (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
34410 2002-08-25 Andre Leis <a.leis@gmx.net>
34411 David Billinghurst <David.Billinghurst@riotinto.com>
34413 * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
34415 2002-08-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
34417 * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
34418 Remove $(CONFIG_H) dependency.
34420 2002-08-08 Nathan Sidwell <nathan@codesourcery.com>
34422 * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
34424 2002-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
34426 * adadecode.c (ada_demangle): Use xstrdup in lieu of
34428 * misc.c (gnat_decode_option): Likewise.
34430 2002-07-15 Florian Weimer <fw@deneb.enyo.de>
34432 * make.adb (Add_Switch): Make Generic_Position a procedure. The
34433 function approach did not work well because of a side effect (the
34434 function call could reallocate the table which was being indexed
34435 using its result). Fixes ada/4851. [RESURRECTED]
34437 2002-07-01 Roger Sayle <roger@eyesopen.com>
34439 * ada/utils.c (builtin_function): Accept an additional parameter.
34441 2002-06-28 Andreas Jaeger <aj@suse.de>
34444 * Makefile.in: Fix typo in comment, patch by Adrian Knoth
34447 2002-06-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
34449 * Makefile.in (SHELL): Set to @SHELL@.
34451 2002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
34453 * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
34454 array size calculation.
34456 2002-06-04 Andreas Jaeger <aj@suse.de>
34458 * Make-lang.in (gnatbind): Readd rule that has been lost in last
34461 2002-06-03 Geoffrey Keating <geoffk@redhat.com>
34463 Merge from pch-branch:
34465 * config-lang.in (gtfiles): Add ada-tree.h.
34466 * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
34467 (SET_TYPE_MODULUS): New.
34468 (SET_TYPE_INDEX): New.
34469 (SET_TYPE_DIGITS_VALUE): New.
34470 (SET_TYPE_RM_SIZE): New.
34471 (SET_TYPE_UNCONSTRAINED_ARRAY): New.
34472 (SET_TYPE_ADA_SIZE): New.
34473 (SET_TYPE_ACTUAL_BOUNDS): New.
34474 (SET_DECL_CONST_CORRESPONDING_VAR): New.
34475 (SET_DECL_ORIGINAL_FIELD): New.
34476 (TREE_LOOP_ID): Correct typo.
34477 * decl.c: Use new macros.
34478 * utils.c: Include debug.h, use new macros.
34479 * utils2.c: Use new macros.
34481 * ada-tree.h: Update all macros for new tree description.
34482 (struct tree_loop_id): New.
34483 (union lang_tree_node): New.
34484 (struct lang_decl): New.
34485 (struct lang_type): New.
34486 * misc.c (gnat_mark_tree): Delete.
34487 (LANG_HOOKS_MARK_TREE): Delete.
34488 * trans.c (tree_transform): No longer any need to cast
34491 * utils.c (struct language_function): New dummy structure.
34493 * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
34494 (misc.o): Likewise.
34495 (utils.o): Likewise; also gtype-ada.h.
34496 * Make-lang.in (gnat1): Add dependency on s-gtype.
34497 (gnatbind): Add dependency on $(CONFIG_H).
34498 * utils.c: Correct last #include.
34499 (stuct e_stack): Remove unnecessary 'static'.
34500 (mark_e_stack): Remove unused prototype.
34502 * scn-nlit.adb: Remove whitespace after version number to
34503 keep lines under 80 chars.
34504 * snames.adb: Likewise.
34505 * treepr.ads: Likewise.
34507 * Makefile.in (decl.o): Include gt-ada-<filename>.h.
34508 (misc.o): Likewise.
34509 (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
34510 * config-lang.in (gtfiles): New.
34511 * decl.c: Use gengtype for roots.
34512 * gigi.h: Use gengtype for roots.
34513 * trans.c: Use gengtype for roots.
34514 * utils.c: Use gengtype for roots, marking. Include gtype-ada.h.
34516 2002-06-02 Gabriel Dos Reis <gdr@codesourcery.com>
34518 * misc.c (gnat_init): Adjust setting of internal_error_function.
34520 2002-06-01 Joseph S. Myers <jsm28@cam.ac.uk>
34522 * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
34523 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
34524 gnat_ug_wnt.texi: Regenerate.
34526 2002-05-31 Florian Weimer <fw@deneb.enyo.de>
34528 * 5ntaprop.adb (with System.OS_Primitives): Remove.
34530 * cstreams.c (max_path_len): Move from here ...
34531 * adaint.c (__gnat_max_path_len): ... to here.
34532 * adaint.c (__gnat_max_path_len): Declare.
34533 * g-dirope.adb (Max_Path): Adjust.
34534 * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
34535 * i-cstrea.ads (max_path_len): Adjust.
34536 * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
34537 * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
34539 * Makefile.in, Make-lang.in: Documentation is now built in
34540 Make-lang.in. Store Info and generated Texinfo files in the
34542 * gnat_ug.texi: Remove CVS keywords, correct version number.
34543 Set file name correctly.
34545 * gnat_ug_*.texi: Add.
34546 * .cvsignore: Ignore generated Texinfo files.
34548 2002-05-30 Zack Weinberg <zack@codesourcery.com>
34550 * ada.h: Add MI guard macro.
34551 (SUBTYPE): Define constants with an anonymous enum, not static
34553 (IN): Cast constants to appropriate type before use.
34555 2002-05-26 Joseph S. Myers <jsm28@cam.ac.uk>
34557 * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
34560 2002-05-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
34562 * Make-lang.in (CP, ECHO): Copy from Makefile.in.
34563 (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
34564 (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
34565 (ALL_ADA_CFLAGS): Likewise.
34566 (ADA_INCLUDES): Likewise.
34567 Adapt for new working dir.
34568 (GNATBIND): Use Makefile.in version.
34569 (.SUFFIXES): Copy from Makefile.in.
34570 (ada-warn): Define.
34571 (.adb.o, .ads.o): Copy from Makefile.in.
34572 Added $(OUTPUT_OPTION).
34573 (GNAT1_C_OBJS): Moved from Makefile.in.
34574 Prefix with ada subdir.
34575 (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
34576 (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
34577 Adapt for new working dir.
34578 (EXTRA_GNATBIND_OBJS): Likewise.
34579 (ADA_BACKEND): Moved from Makefile.in.
34580 Renamed to avoid conflict with global BACKEND.
34582 (TARGET_ADA_SRCS): Moved from Makefile.in.
34583 (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
34585 (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
34586 (ada_extra_files): Moved from Makefile.in.
34587 Prefix with ada subdir.
34588 (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
34589 (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
34590 (ada/nmake.ads): Likewise.
34591 (update-sources): Moved from Makefile.in.
34592 Prefix with ada subdir.
34593 (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
34594 (ADA_TREE_H): Likewise.
34595 (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
34596 (ada/memtrack.o): Likewise.
34597 (ada/adadecode.o): Likewise.
34598 Update dependencies.
34599 (ada/adaint.o): New.
34600 (ada/argv.o): Moved from Makefile.in.
34601 Prefix with ada subdir.
34602 Update dependencies.
34603 (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
34604 (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
34605 (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
34606 Prefix with ada subdir.
34607 (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
34608 (GNAT DEPENDENCIES): Regenerate.
34609 * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
34610 toplevel Makefile.in.
34611 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
34612 (TARGET_ADA_SRCS): Removed.
34613 (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
34614 (GNATBIND_OBJS): Likewise.
34615 (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
34616 (BACKEND): Removed.
34617 (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
34618 (TREE_H): Likewise.
34619 (ada_extra_files): Likewise.
34620 (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
34621 (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
34622 (update-sources): Likewise.
34623 (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
34624 (ADA_TREE_H): Likewise.
34625 (adadecoce.o): Likewise.
34626 (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
34627 (GNAT DEPENDENCIES): Likewise.
34629 2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
34631 * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
34632 * Makefile.in: Likewise.
34634 2002-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
34636 * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
34637 Restore $(CONFIG_H) and prefix.o dependencies.
34638 (ada.stage[1-4]): Depend on stage?-start.
34640 * Makefile.in (b_gnatb.c): Depend on interfac.o.
34642 2002-05-02 Jim Wilson <wilson@redhat.com>
34644 * utils.c (finish_record_type): Change record_size to record_type.
34646 2001-05-02 John David Anglin <dave@hiauly1.hia.nrc.ca>
34648 * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
34649 (ALL_ADA_CFLAGS): Define. Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
34650 ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
34652 2002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
34654 * misc.c (gnat_parse_file): Update.
34656 2002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
34658 * misc.c (gnat_init): Don't set lang_attribute_common.
34660 2002-04-21 Joseph S. Myers <jsm28@cam.ac.uk>
34662 * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
34664 2002-04-21 Florian Weimer <fw@deneb.enyo.de>
34666 * gnat_ug.texi: New file.
34668 * gnat_rm.texi: Do not include texiplus.texi. Include fdl.texi
34669 instead of gfdl.texi
34671 * xgnatug.adb, ug_words: New files.
34673 * Makefile.in (doc, dvi): New targets. Build gnat_ug_*,
34674 gnat_rm and gnat-style manuals.
34676 2002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
34678 * gigi.h (incomplete_type_error): Remove.
34679 * utils.c (incomplete_type_error): Remove.
34681 2002-04-16 Mark Mitchell <mark@codesourcery.com>
34683 * trans.c (tree_transform): Add has_scope argument to
34684 expand_start_stmt_expr.
34686 2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
34688 * gigi.h (truthvalue_conversion): Rename.
34689 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
34690 * trans.c (tree_transform): Update.
34691 * utils2.c (truthvalue_conversion): Rename, update.
34692 (build_binary_op, build_unary_op): Update.
34694 2002-04-04 Laurent Guerby <guerby@acm.org>
34696 * make.adb: Implement -margs, remove restriction about file name placement.
34697 * makeusg.adb: Documentation update.
34698 * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
34699 * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
34701 2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
34703 * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
34704 (builtin_function): Similarly.
34706 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
34708 * decl.c (gnat_to_gnu_entity): Update.
34709 * gigi.h (mark_addressable): Rename.
34710 * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
34711 * trans.c (tree_transform): Update.
34712 * utils.c (create_var_decl): Update.
34713 * util2.c (build_binary_op, build_unary_op,
34714 fill_vms_descriptor): Update.
34715 (mark_addressable): Rename, update.
34717 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
34719 * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
34721 * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
34722 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
34723 * trans.c (tree_transform, convert_with_check): Update.
34724 * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
34727 2002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
34729 * gigi.h (finish_incomplete_decl): Rename.
34730 * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
34731 * utils.c (gnat_init_decl_processing): Don't set hook.
34732 (finish_incomplete_decl): Rename.
34734 2002-03-29 Andreas Schwab <schwab@suse.de>
34736 * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
34739 2001-03-28 Robert Dewar <dewar@gnat.com>
34742 (Remove_Checks): New procedure
34745 (Remove_Checks): New procedure
34748 Use new Duplicate_Subexpr functions
34749 (Duplicate_Subexpr_No_Checks): New procedure
34750 (Duplicate_Subexpr_No_Checks_Orig): New procedure
34751 (Duplicate_Subexpr): Restore original form (checks duplicated)
34752 (Duplicate_Subexpr): Call Remove_Checks
34755 (Duplicate_Subexpr_No_Checks): New procedure
34756 (Duplicate_Subexpr_No_Checks_Orig): New procedure
34757 Add 2002 to copyright notice
34759 * sem_util.adb: Use new Duplicate_Subexpr functions
34762 (Eval_Indexed_Component): This is the place to call
34763 Constant_Array_Ref and to replace the value. We simply merge
34764 the code of this function in here, since it is now no longer
34765 used elsewhere. This fixes the problem of the back end not
34766 realizing we were clever enough to see that this was
34768 (Expr_Val): Remove call to Constant_Array_Ref
34769 (Expr_Rep_Val): Remove call to Constant_Array_Ref
34771 (Constant_Array_Ref): Deal with string literals (patch
34772 suggested by Zack Weinberg on the gcc list)
34774 2001-03-28 Ed Schonberg <schonber@gnat.com>
34776 * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
34777 Duplicate_Subexpr_Move_Checks.
34779 * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
34780 Duplicate_Subexpr_Move_Checks.
34782 * sem_eval.adb: (Constant_Array_Ref): Verify that constant
34783 value of array exists before retrieving it (it may a private
34784 protected component in a function).
34786 2002-03-28 Geert Bosch <bosch@gnat.com>
34788 * prj-pp.adb : New file.
34790 * prj-pp.ads : New file.
34792 2002-03-28 Andreas Jaeger <aj@suse.de>
34794 * Makefile.in (stamp-sdefault): Fix path for Makefile.
34796 2002-03-28 Neil Booth <neil@daikokuya.demon.co.uk>
34798 * misc.c (gnat_expand_expr): Move prototype.
34800 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
34802 * misc.c (insert_default_attributes): Remove.
34804 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
34806 * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
34807 (gnat_init): Don't set hook.
34808 (gnat_expand_expr): Fix prototype.
34810 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
34812 * misc.c (ggc_p): Remove.
34814 2002-03-27 Geert Bosch <bosch@gnat.com>
34816 * prj-makr.ads, prj-makr.adb : New files.
34818 2002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
34820 * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
34821 (lang_mark_tree): Make static, rename.
34823 2002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
34825 * misc.c (maybe_build_cleanup): Remove.
34827 2002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
34829 * gigi.h (yyparse): Remove.
34831 2002-03-23 Florian Weimer <fw@deneb.enyo.de>
34833 From Ben Brosgol <brosgol@gnat.com>
34834 * gnat_rm.texi: Sync with ACT version.
34836 2002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
34838 * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
34839 (gnat_init): Remove old hook.
34841 2002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
34843 * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
34844 (yyparse): Rename gnat_parse_file.
34846 2002-03-14 Geoffrey Keating <geoffk@redhat.com>
34848 Delete all lines containing "$Revision:".
34849 * xeinfo.adb: Don't look for revision numbers.
34850 * xnmake.adb: Likewise.
34851 * xsinfo.adb: Likewise.
34852 * xsnames.adb: Likewise.
34853 * xtreeprs.adb: Likewise.
34855 2002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
34857 * misc.c (gnat_tree_code_type, gnat_tree_code_length,
34858 gnat_tree_code_name): Delete.
34859 (tree_code_type, tree_code_length, tree_code_name): Define.
34860 (gnat_init): Don't try to copy into the various tree_code
34863 2002-03-11 Richard Henderson <rth@redhat.com>
34865 * Makefile.in (.NOTPARALLEL): Add fake tag.
34867 2002-03-07 Geert Bosch <bosch@gnat.com>
34869 * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
34870 s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
34871 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
34872 switch-m.adb, switch-m.ads : New files.
34874 2002-03-07 Geert Bosch <bosch@gnat.com>
34876 * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
34877 4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
34878 4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
34879 4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
34880 5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
34881 5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
34882 5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
34883 5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
34884 5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
34885 5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
34886 5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
34887 5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
34888 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
34889 5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
34890 5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
34891 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
34892 5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
34893 5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
34894 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
34895 5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
34896 7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
34897 Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
34898 a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
34899 a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
34900 a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
34901 a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
34902 a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
34903 a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
34904 a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
34905 adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
34906 atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
34907 bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
34908 csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
34909 einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
34910 eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
34911 exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
34912 exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
34913 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
34914 exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
34915 exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
34916 expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
34917 freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
34918 g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
34919 g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
34920 g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
34921 g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
34922 g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
34923 g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
34924 gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
34925 gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
34926 gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
34927 i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
34928 impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
34929 lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
34930 lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
34931 memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
34932 mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
34933 nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
34934 output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
34935 par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
34936 prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
34937 prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
34938 prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
34939 rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
34940 s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
34941 s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
34942 s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
34943 s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
34944 s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
34945 s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
34946 s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
34947 s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
34948 s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
34949 s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
34950 s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
34951 s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
34952 s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
34953 s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
34954 s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
34955 sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
34956 sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
34957 sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
34958 sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
34959 sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
34960 sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
34961 sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
34962 sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
34963 sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
34964 sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
34965 snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
34966 stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
34967 table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
34968 tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
34969 treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
34970 types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
34971 utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
34972 xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
34974 * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
34975 g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
34976 mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
34977 osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
34979 * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
34980 5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
34982 * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
34983 to mdll-fil.ad[bs] and mdll-util.ad[bs]
34985 * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
34986 from mdllfile.ad[bs] and mdlltool.ad[bs]
34988 2002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
34990 * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
34991 lieu of explicit sizeof/sizeof.
34993 2002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
34995 * misc.c (copy_lang_decl): Remove.
34997 2002-02-27 Zack Weinberg <zack@codesourcery.com>
34999 * misc.c: Delete traditional-mode-related code copied from the
35000 C front end but not used, or used only to permit the compiler
35003 2002-02-07 Richard Henderson <rth@redhat.com>
35005 * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
35006 * adaint.h (__gnat_to_gm_time): Update prototype.
35008 2002-01-30 Richard Henderson <rth@redhat.com>
35010 * trans.c (tree_transform) [N_Loop_Statement]: Use
35011 expand_exit_loop_top_cond.
35013 2001-12-23 Richard Henderson <rth@redhat.com>
35015 * utils.c (end_subprog_body): Push GC context around
35016 rest_of_compilation for nested functions.
35018 2001-12-23 Richard Henderson <rth@redhat.com>
35020 * 5nosinte.ads: Get definition of "int" from Interfaces.C.
35022 2001-12-23 Florian Weimer <fw@deneb.enyo.de>
35024 * gnat-style.texi (Declarations and Types): Remove ancient style
35025 rule which was mandated by code generation issues.
35027 * gnat-style.texi (header): Add @dircategory, @direntry.
35028 (title page): Remove date.
35029 (general) Add @./@: where approriate, and two spaces after the
35030 full stop at the end of a sentence. Use @samp markup when
35031 referring concrete lexical entities (keywords, attribute names
35032 etc.), and @syntax for ARM grammar elements. Use @r for English
35033 text in comments. Use @emph for emphasis. Change "if-statements"
35034 etc. to "if statements" (without @samp). Break long lines. Make
35035 casing of section names consistent.
35036 (Identifiers): Use @samp markup for variable names.
35037 (Comments): Use @samp markup for comment characters. Line-end
35038 comments may follow any Ada code, not just statements. Fix
35039 misspelling of "Integer" as "integer".
35040 (Loop statements): Do not use variable name "I", use "J".
35041 (Subprogram Declarations): Document alignment.
35042 (Subprogram Bodies, Block statements): Document empty line before
35045 2001-12-22 Florian Weimer <fw@deneb.enyo.de>
35047 * make.adb (Add_Switch): Make Generic_Position a procedure. The
35048 function approach did not work well because of a side effect (the
35049 function call could reallocate the table which was being indexed
35050 using its result). Fixes ada/4851.
35052 2001-12-19 Robert Dewar <dewar@gnat.com>
35054 * bindgen.adb: Minor reformatting
35056 * cstand.adb: Minor reformatting
35058 * fmap.adb: Minor reformatting
35059 Change name from Add for Add_To_File_Map (Add is much too generic)
35060 Change Path_Name_Of to Mapped_Path_Name
35061 Change File_Name_Of to Mapped_File_Name
35062 Fix copyright dates in header
35065 Change name from Add for Add_To_File_Map (Add is much too generic)
35066 Change Path_Name_Of to Mapped_Path_Name
35067 Change File_Name_Of to Mapped_File_Name
35068 Fix copyright dates in header
35070 * fname-uf.adb: Minor reformatting. New names of stuff in Fmap.
35071 Add use clause for Fmap.
35073 * make.adb: Minor reformatting
35075 * osint.adb: Minor reformatting. Change of names in Fmap.
35076 Add use clause for Fmap.
35078 * prj-env.adb: Minor reformatting
35080 * prj-env.ads: Minor reformatting
35082 * switch.adb: Minor reformatting. Do proper raise of Bad_Switch if
35083 error found (there were odd exceptions to this general rule in
35084 -gnatec/-gnatem processing)
35086 2001-12-19 Olivier Hainque <hainque@gnat.com>
35088 * raise.c (__gnat_eh_personality): Exception handling personality
35089 routine for Ada. Still in rough state, inspired from the C++ version
35090 and still containing a bunch of debugging artifacts.
35091 (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
35092 inspired from the C++ library.
35094 * raise.c (eh_personality): Add comments. Part of work for the GCC 3
35095 exception handling integration.
35097 2001-12-19 Arnaud Charlet <charlet@gnat.com>
35099 * Makefile.in: Remove use of 5smastop.adb which is obsolete.
35100 (HIE_SOURCES): Add s-secsta.ad{s,b}.
35101 (HIE_OBJS): Add s-fat*.o
35102 (RAVEN_SOURCES): Remove files that are no longer required. Add
35103 interrupt handling files.
35104 (RAVEN_MOD): Removed, no longer needed.
35106 2001-12-19 Robert Dewar <dewar@gnat.com>
35108 * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
35109 Add 2001 to copyright date
35111 * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
35112 need to force universal inlining for these cases.
35114 2001-12-19 Arnaud Charlet <charlet@gnat.com>
35116 * s-taprob.adb: Minor clean ups so that this unit can be used in
35119 * exp_ch7.adb: Allow use of secondary stack in HI mode.
35120 Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
35122 2001-12-19 Vincent Celier <celier@gnat.com>
35124 * prj-tree.ads (Project_Node_Record): Add comments for components
35125 Pkg_Id and Case_Insensitive.
35127 2001-12-19 Pascal Obry <obry@gnat.com>
35129 * g-socket.adb: Minor reformatting. Found while reading code.
35131 2001-12-19 Robert Dewar <dewar@gnat.com>
35133 * prj-tree.ads: Minor reformatting
35135 2001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
35137 * config-lang.in (diff_excludes): Remove.
35139 2001-12-17 Ed Schonberg <schonber@gnat.com>
35141 * sem_res.adb (Resolve_Selected_Component): do not generate a
35142 discriminant check if the selected component is a component of
35143 the argument of an initialization procedure.
35145 * trans.c (tree_transform, case of arithmetic operators): If result
35146 type is private, the gnu_type is the base type of the full view,
35147 given that the full view itself may be a subtype.
35149 2001-12-17 Robert Dewar <dewar@gnat.com>
35151 * sem_res.adb: Minor reformatting
35153 * trans.c (tree_transform, case N_Real_Literal): Add missing third
35154 parameter in call to Machine (unknown horrible effects from this
35157 * urealp.h: Add definition of Round_Even for call to Machine
35158 Add third parameter for Machine
35160 2001-12-17 Ed Schonberg <schonber@gnat.com>
35162 * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
35163 predefined units in No_Run_Time mode.
35165 2001-12-17 Richard Kenner <kenner@gnat.com>
35167 * misc.c (insn-codes.h): Now include.
35169 2001-12-17 Olivier Hainque <hainque@gnat.com>
35171 * a-except.adb: Preparation work for future integration of the GCC 3
35172 exception handling mechanism
35173 (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
35174 to factorize previous code sequences and make them externally callable,
35175 e.g. for the Ada personality routine when the GCC 3 mechanism is used.
35176 (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
35177 Use the new notification routines.
35179 2001-12-17 Emmanuel Briot <briot@gnat.com>
35181 * prj-tree.ads (First_Choice_Of): Document the when others case
35183 2001-12-17 Arnaud Charlet <charlet@gnat.com>
35185 * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
35186 HI-E mode, in order to support Ravenscar profile properly.
35188 * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
35189 mode on 32 bits targets.
35191 2001-12-17 Vincent Celier <celier@gnat.com>
35193 * fmap.adb: Initial version.
35195 * fmap.ads: Initial version.
35197 * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
35198 If search is successfully done, add to mapping.
35200 * frontend.adb: Initialize the mapping if a -gnatem switch was used.
35203 (Gnatmake): Add new local variable Mapping_File_Name.
35204 Create mapping file when using project file(s).
35205 Delete mapping file before exiting.
35207 * opt.ads (Mapping_File_Name): New variable
35209 * osint.adb (Find_File): Use path name found in mapping, if any.
35211 * prj-env.adb (Create_Mapping_File): New procedure
35213 * prj-env.ads (Create_Mapping_File): New procedure.
35215 * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
35218 * usage.adb: Add entry for new switch -gnatem.
35220 * Makefile.in: Add dependencies for fmap.o.
35222 2001-12-17 Ed Schonberg <schonber@gnat.com>
35224 * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
35225 is a package instantiation rewritten as a package body.
35226 (Install_Withed_Unit): Undo previous change, now redundant.
35228 2001-12-17 Gary Dismuke <dismukes@gnat.com>
35231 (Compute_Length): Move conversion to Unsigned to callers.
35232 (Get_Max_Size): Convert Len expression to Unsigned after calls to
35233 Compute_Length and Determine_Range.
35234 (Layout_Array_Type): Convert Len expression to Unsigned after calls to
35235 Compute_Length and Determine_Range.
35236 Above changes fix problem with length computation for supernull arrays
35237 where Max (Len, 0) wasn't getting applied due to the Unsigned
35238 conversion used by Compute_Length.
35240 2001-12-17 Arnaud Charlet <charlet@gnat.com>
35243 (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
35244 System.Secondary_Stack.
35245 (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
35247 Remove unused entity RE_Exception_Data.
35249 * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
35251 * rident.ads (No_Secondary_Stack): New restriction.
35253 2001-12-17 Joel Brobecker <brobecke@gnat.com>
35255 * gnat_rm.texi: Fix minor typos. Found while reading the section
35256 regarding "Bit_Order Clauses" that was sent to a customer.
35257 Very interesting documentation!
35259 2001-12-17 Robert Dewar <dewar@gnat.com>
35261 * sem_case.adb (Choice_Image): Avoid creating improper character
35262 literal names by using the routine Set_Character_Literal_Name. This
35263 fixes bombs in certain error message cases.
35265 2001-12-17 Arnaud Charlet <charlet@gnat.com>
35267 * a-reatim.adb: Minor reformatting.
35269 2001-12-17 Ed Schonberg <schonber@gnat.com>
35271 * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
35272 case where the formal is an extension of another formal in the current
35273 unit or in a parent generic unit.
35275 2001-12-17 Arnaud Charlet <charlet@gnat.com>
35277 * s-tposen.adb: Update comments. Minor reformatting.
35278 Minor code clean up.
35280 * s-tarest.adb: Update comments. Minor code reorganization.
35282 2001-12-17 Gary Dismukes <dismukes@gnat.com>
35284 * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
35287 2001-12-17 Robert Dewa <dewar@gnat.com>
35289 * exp_attr.adb: Minor reformatting
35291 2001-12-17 Ed Schonberg <schonber@gnat.com>
35293 * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
35294 derivations nested within a child unit: verify that the parent
35295 type is declared in an outer scope.
35297 2001-12-17 Robert Dewar <dewar@gnat.com>
35299 * sem_ch12.adb: Minor reformatting
35301 2001-12-17 Ed Schonberg <schonber@gnat.com>
35303 * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
35304 warning if current unit is a predefined one, from which bodies may
35307 2001-12-17 Robert Dewar <dewar@gnat.com>
35309 * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
35310 Fix header format. Add 2001 to copyright date.
35312 * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
35313 which caused CE during compilation if checks were enabled.
35315 2001-12-17 Vincent Celier <celier@gnat.com>
35318 (Switches_Of): New function
35319 (Test_If_Relative_Path): New procedure
35320 (Add_Switches): Use new function Switches_Of
35321 (Collect_Arguments_And_Compile): Use new function Switches_Of.
35322 When using a project file, test if there are any relative
35323 search path. Fail if there are any.
35324 (Gnatmake): Only add switches for the primary directory when not using
35325 a project file. When using a project file, change directory to the
35326 object directory of the main project file. When using a project file,
35327 test if there are any relative search path. Fail if there are any.
35328 When using a project file, fail if specified executable is relative
35329 path with directory information, and prepend executable, if not
35330 specified as an absolute path, with the exec directory. Make sure
35331 that only one -o switch is transmitted to the linker.
35333 * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
35336 (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
35337 when using a non standard naming scheme.
35338 (Check_Ada_Naming_Scheme): Make sure that error messages
35339 do not raise exceptions.
35340 (Is_Illegal_Append): Return True if there is no dot in the suffix.
35341 (Language_Independent_Check): Check the exec directory.
35343 * prj.adb (Project_Empty): Add new component Exec_Directory
35346 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
35347 (Project_Data): Add component Exec_Directory
35349 * snames.adb: Updated to match snames.ads revision 1.215
35351 * snames.ads: Added Exec_Dir
35353 2001-12-17 Robert Dewar <dewar@gnat.com>
35355 * make.adb: Minor reformatting
35357 * prj-nmsc.adb: Minor reformatting
35359 * snames.adb: Updated to match snames.ads
35361 * snames.ads: Alphebetize entries for project file
35363 2001-12-17 Ed Schonberg <schonber@gnat.com>
35365 * trans.c (process_freeze_entity): Do nothing if the entity is a
35366 subprogram that was already elaborated.
35368 2001-12-17 Richard Kenner <kenner@gnat.com>
35370 * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
35371 and Esize if object is referenced via pointer.
35373 2001-12-17 Ed Schonberg <schonber@gnat.com>
35375 * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
35376 is discrete before analyzing choices.
35378 2001-12-17 Joel Brobecker <brobecke@gnat.com>
35380 * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
35381 containing the name of the Ada Main Program. This string is mainly
35382 intended for the debugger.
35383 (Gen_Output_File_C): Do the equivalent change when generating a C file.
35385 2001-12-17 Robert Dewar <dewar@gnat.com>
35387 * ali.adb: Set new Dummy_Entry field in dependency entry
35389 * ali.ads: Add Dummy_Entry field to source dependency table
35391 * bcheck.adb (Check_Consistency): Ignore dummy D lines
35393 * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
35395 * lib-writ.ads: Document dummy D lines for missing files.
35397 * types.ads: (Dummy_Time_Stamp): New value for non-existant files
35399 2001-12-17 Robert Dewar <dewar@gnat.com>
35401 * ali.adb: Type reference does not reset current file.
35403 * ali.adb: Recognize and scan renaming reference
35405 * ali.ads: Add spec for storing renaming references.
35407 * lib-xref.ads: Add documentation for handling of renaming references
35409 * lib-xref.adb: Implement output of renaming reference.
35412 (Determine_Range): Document local variables
35413 (Determine_Range): Make sure Hbound is initialized. It looks as though
35414 there could be a real problem here with an uninitialized reference
35415 to Hbound, but no actual example of failure has been found.
35417 2001-12-17 Laurent Pautet <pautet@gnat.com>
35420 Fix comment of Shutdown_Socket and Close_Socket. These functions
35421 should not fail silently because if they are called twice, this
35422 probably means that there is a race condition in the user program.
35423 Anyway, this behaviour is consistent with the rest of this unit.
35424 When an error occurs, an exception is raised with the error message
35425 as exception message.
35427 2001-12-17 Robert Dewar <dewar@gnat.com>
35429 * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
35430 that it happens before modification of Sloc values for -gnatD.
35432 * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
35433 so that it happens before modification of Sloc values for -gnatD.
35435 * switch.adb: Minor reformatting
35437 2001-12-15 Richard Henderson <rth@redhat.com>
35439 * sem_ch7.adb: Wrap comment.
35441 2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
35443 * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
35444 5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
35445 5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
35446 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
35447 5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
35448 7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
35449 a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
35450 a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
35451 cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
35452 exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
35453 exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
35454 g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
35455 gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
35456 make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
35457 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
35458 repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
35459 s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
35460 s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
35461 s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
35462 s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
35463 sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
35464 sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
35465 sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
35466 sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
35469 2001-12-14 Vincent Celier <celier@gnat.com>
35471 * osint.adb(Create_Debug_File): When an object file is specified,
35472 put the .dg file in the same directory as the object file.
35474 2001-12-14 Robert Dewar <dewar@gnat.com>
35476 * osint.adb: Minor reformatting
35478 * lib-xref.adb (Output_Instantiation): New procedure to generate
35479 instantiation references.
35481 * lib-xref.ads: Add documentation of handling of generic references.
35483 * ali.adb (Read_Instantiation_Ref): New procedure to read
35484 instantiation references
35486 * ali.ads: Add spec for storing instantiation references
35488 * bindusg.adb: Minor reformatting
35490 * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
35492 * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
35494 * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
35496 * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
35500 Add 2001 to copyright date
35501 Add entry for Latin-5 (Cyrillic ISO-8859-5)
35503 2001-12-14 Matt Gingell <gingell@gnat.com>
35505 * adaint.c: mktemp is a macro on Lynx and can not be used as an
35508 2001-12-14 Richard Kenner <kenner@gnat.com>
35510 * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
35511 if operand is CONSTRUCTOR.
35513 2001-12-14 Ed Schonberg <schonber@gnat.com>
35515 * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
35516 before emiting check on right-hand side, so that exception information
35519 2001-12-14 Richard Kenner <kenner@gnat.com>
35521 * utils.c (create_var_decl): Throw away initializing expression
35522 if just annotating types and non-constant.
35524 2001-12-14 Vincent Celier <celier@gnat.com>
35526 * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
35529 * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
35531 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
35533 * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
35535 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
35537 2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
35539 * ChangeLog: Remove piece of diff output.
35541 2001-12-14 Geert Bosch <bosch@gnat.com>
35543 * config-lang.in: Update copyright notice
35545 * layout.adb: Remove commented out code.
35547 * mdllfile.ads: Update copyright notice. Fix header format.
35549 * sem_case.ads: Likewise.
35551 * sem_ch3.adb: Minor reformatting.
35553 2001-12-12 Geert Bosch <bosch@gnat.com>
35555 * freeze.ads: Update copyright date.
35557 * g-comlin.ads: Minor reformatting.
35559 * gnat-style.texi: Fix typo.
35561 2001-12-12 Geert Bosch <bosch@gnat.com>
35563 * einfo.h: Regenerate.
35565 2001-12-12 Ed Schonberg <schonber@gnat.com>
35567 * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
35568 on known node types, rather than untyped fields. Further cleanups.
35570 2001-12-12 Robert Dewar <dewar@gnat.com>
35573 (Save_Entity_Descendant): Minor comment update.
35574 (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
35575 of an N_Attribute_Reference node. As per note below, this does not
35576 eliminate need for Associated_Node in attribute ref nodes.
35577 (Associated_Node): Documentation explicitly mentions attribute
35578 reference nodes, since this field is used in such nodes.
35580 * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
35582 2001-12-12 Robert Dewar <dewar@gnat.com>
35584 * s-stalib.adb: Add more comments on with statements being needed
35586 * par-ch12.adb: Minor reformatting
35588 * prj-dect.ads: Fix copyright header
35590 * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
35591 inputs fit in 32 bits, but the result still overflows.
35593 * s-fatgen.ads: Minor comment improvement
35595 2001-12-12 Ed Schonberg <schonber@gnat.com>
35597 * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
35598 formal derived type, look for an inherited component from the full
35599 view of the parent, if any.
35601 2001-12-12 Robert Dewar <dewar@gnat.com>
35603 * checks.ads (Apply_Alignment_Check): New procedure.
35605 * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
35606 ensure that the alignment of objects with address clauses is
35607 appropriate, and raise PE if not.
35609 * exp_util.ads (Must_Be_Aligned): Removed, replaced by
35610 Exp_Pakd.Known_Aligned_Enough
35612 * mdllfile.ads: Minor reformatting
35614 * mlib-fil.ads: Minor reformatting
35616 2001-12-12 Ed Schonberg <schonber@gnat.com>
35618 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
35619 fix to any component reference if enclosing record has non-standard
35622 2001-12-12 Vincent Celier <celier@gnat.com>
35624 * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
35627 2001-12-12 Ed Schonberg <schonber@gnat.com>
35629 * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
35632 2001-12-12 Robert Dewar <dewar@gnat.com>
35634 * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
35636 2001-12-12 Emmanuel Briot <briot@gnat.com>
35638 * g-regexp.adb: Remove all debug code, since it isn't required anymore,
35639 and it adds dependencies to system.io.
35641 2001-12-12 Pascal Obry <obry@gnat.com>
35643 * g-dirope.adb (Expand_Path.Var): Correctly detect end of
35646 2001-12-11 Ed Schonberg <schonber@gnat.com>
35648 * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
35649 that is the parent of other generics, the instance body replaces the
35650 instance node. Retrieve the instance of the spec, which is the one
35651 that is visible in clients and within the body.
35653 2001-12-11 Vincent Celier <celier@gnat.com>
35655 * gnatmain.adb: Initial version.
35657 * gnatmain.ads: Initial version.
35659 * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
35661 * snames.adb: Updated to match snames.ads.
35663 * snames.ads: Added Gnatstub.
35665 2001-12-11 Vincent Celier <celier@gnat.com>
35667 * prj-attr.adb (Initialization_Data): Change name from
35668 Initialisation_Data.
35670 2001-12-11 Emmanuel Briot <briot@gnat.com>
35672 * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
35673 + and * applied to backslashed expressions like \r.
35675 2001-12-11 Vasiliy Fofanov <fofanov@gnat.com>
35677 * g-os_lib.ads: String_List type added, Argument_List type is now
35678 subtype of String_List.
35680 2001-12-11 Robert Dewar <dewar@gnat.com>
35682 * g-os_lib.ads: Change copyright to FSF
35683 Add comments for String_List type
35685 2001-12-11 Vincent Celier <celier@gnat.com>
35687 * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
35688 string to the buffer).
35690 2001-12-11 Ed Schonberg <schonber@gnat.com>
35692 * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
35695 * sem_attr.adb: Simplify previous fix for Address.
35696 (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
35697 to avoid anomalies where the bound of the type appears to raise
35700 2001-12-11 Robert Dewar <dewar@gnat.com>
35702 * lib-xref.adb (Output_Refs): Make sure pointers are always properly
35705 2001-12-11 Ed Schonber <schonber@gnat.com>
35707 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
35708 renamed unit before checking for recursive instantiations.
35710 2001-12-11 Emmanuel Briot <briot@gnat.com>
35712 * prj.ads: Add comments for some of the fields.
35714 2001-12-11 Robert Dewar <dewar@gnat.com>
35716 * lib-xref.adb (Output_Refs): Don't output type references outside
35717 the main unit if they are not otherwise referenced.
35719 2001-12-11 Ed Schonberg <schonber@gnat.com>
35721 * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
35722 code and diagnose additional illegal uses
35724 * sem_util.adb (Is_Object_Reference): An indexed component is an
35725 object only if the prefix is.
35727 2001-12-11 Vincent Celier <celier@gnat.com>
35729 * g-diopit.adb: Initial version.
35731 * g-diopit.ads: Initial version.
35734 (Expand_Path): Avoid use of Unbounded_String
35735 (Find, Wildcard_Iterator): Moved to child package Iteration
35737 * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
35739 2001-12-11 Robert Dewar <dewar@gnat.com>
35741 * sem_attr.adb: Minor reformatting
35743 2001-12-11 Ed Schonberg <schonber@gnat.com>
35745 * sem_ch3.adb: Clarify some ???.
35747 2001-12-11 Robert Dewar <dewar@gnat.com>
35749 * exp_util.adb (Must_Be_Aligned): Removed, replaced by
35750 Exp_Pakd.Known_Aligned_Enough
35752 * sem_ch13.adb (Check_Address_Alignment): Removed, extended
35753 version is moved to Exp_Ch13.
35755 2001-12-11 Robert Dewar <dewar@gnat.com>
35757 * einfo.ads: Minor reformatting
35759 * exp_ch5.adb: Add comment for previous.change
35761 * ali.adb: New interface for extended typeref stuff.
35763 * ali.ads: New interface for typeref stuff.
35765 * checks.adb (Apply_Alignment_Check): New procedure.
35767 * debug.adb: Add -gnatdM for modified ALI output
35769 * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
35771 * lib-xref.adb: Extend generation of <..> notation to cover
35772 subtype/object types. Note that this is a complete rewrite,
35773 getting rid of the very nasty quadratic algorithm previously
35774 used for derived type output.
35776 * lib-xref.ads: Extend description of <..> notation to cover
35777 subtype/object types. Uses {..} for these other cases.
35778 Also use (..) for pointer types.
35780 * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
35782 * exp_pakd.adb: Minor reformatting. Note that prevous RH should say:
35783 (Known_Aligned_Enough): Replaces Must_Be_Aligned.
35785 2001-12-11 Vincent Celier <celier@gnat.com>
35788 Changed /COMPILE_ONLY to /ACTIONS=COMPILE
35789 Changed /BIND_ONLY to /ACTIONS=BIND
35790 Changed /LINK_ONLY to /ACTIONS=LINK
35792 2001-12-11 Ed Schonberg <schonber@gnat.com>
35794 * sem_ch8.adb (Find_Selected_Component): improved search for a
35795 candidate package in case of error.
35797 * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
35798 chain back on scope stack before reinstalling use clauses.
35800 * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
35801 is enabled, do not kill the code for the condition, to preserve
35804 2001-12-11 Robert Dewar <dewar@gnat.com>
35806 * checks.adb (Insert_Valid_Check): Apply validity check to expression
35807 of conversion, not to result of conversion.
35809 2001-12-11 Ed Schonberg <schonber@gnat.com>
35811 * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
35812 before freezing parent. If the declarations are mutually recursive,
35813 an access to the current record type may be frozen before the
35814 derivation is complete.
35816 2001-12-05 Vincent Celier <celier@gnat.com>
35818 * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
35819 -c /COMPILE_ONLY, -l /LINK_ONLY
35822 (Bind_Only): New Flag
35823 (Link_Only): New flag
35825 * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
35828 * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
35831 (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
35832 (Gnatmake): Set the step flags. Only perform a step if the
35833 corresponding step flag is True.
35834 (Scan_Make_Arg): Reset the bind and link step flags when -u
35835 or -gnatc has been specified.
35837 2001-12-05 Ed Schonberg <schonber@gnat.com>
35839 * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
35840 get bounds from right operand.
35842 * sem_eval.adb: Minor reformatting
35844 * exp_util.adb (Make_Literal_Range): use bound of literal rather
35845 than Index'First, its lower bound may be different from 1.
35847 * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
35850 2001-12-05 Vincent Celier <celier@gnat.com>
35852 * prj-nmsc.adb Minor reformatting
35854 * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
35855 set and libraries are not supported.
35857 2001-12-05 Ed Schonberg <schonber@gnat.com>
35859 * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
35860 private view explicitly, so the back-end can treat as a global
35863 2001-12-05 Ed Schonberg <schonber@gnat.com>
35865 * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
35866 unit, always replace instance node with new body, for ASIS use.
35868 2001-12-05 Vincent Celier <celier@gnat.com>
35870 * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
35871 libraries are not supported and both attributes Library_Name and
35872 Library_Dir are specified.
35874 * prj-proc.adb (Expression): Set location of Result to location of
35877 * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
35878 (prj-nmsc is now importing MLib.Tgt)
35880 * prj-proc.adb: Put the change indicated above that was forgotten.
35882 2001-12-05 Robert Dewar <dewar@gnat.com>
35884 * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
35886 2001-12-05 Ed Schonberg <schonber@gnat.com>
35888 * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
35889 constraint, introduce explicit subtype declaration and derive from it.
35891 * sem_ch3.adb: Minor reformatting
35893 2001-12-05 Robert Dewar <dewar@gnat.com>
35895 * checks.adb (Determine_Range): Increase cache size for checks.
35898 * exp_ch6.adb: Minor reformatting
35899 (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
35900 a parameter whose root type is System.Address, since treating such
35901 subprograms as pure in the code generator is almost surely a mistake
35902 that will lead to unexpected results.
35904 * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
35905 change handling of conversions.
35907 * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
35909 2001-12-05 Ed Schonberg <schonber@gnat.com>
35911 * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
35912 aggregate with static wrong size, attach generated Raise node to
35915 2001-12-05 Robert Dewar <dewar@gnat.com>
35917 * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
35918 Fixes compilation abandoned bomb in B24009B.
35920 2001-12-05 Ed Schonberg <schonber@gnat.com>
35923 Document use of Associated_Node on Selected_Components.
35924 (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
35925 to clarify use of untyped descendant fields.
35927 2001-12-05 Robert Dewar <dewar@gnat.com>
35929 * prj-dect.ads: Add ??? comment
35930 Add 2001 to copyright notice (was not done in after all)
35932 * prj-part.adb: Minor reformatting. Reword one awkward error message.
35934 * prj.ads: Minor reformatting throughout, and add some ??? comments
35936 * snames.ads: Minor reformatting
35938 2001-12-05 Geert Bosch <bosch@gnat.com>
35940 * snames.adb: Autoupdate
35942 2001-12-05 Vincent Celier <celier@gnat.com>
35944 * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
35946 * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
35948 * prj-env.adb: Minor comment changes (modifying -> extends).
35950 * prj-nmsc.adb: Minor comment changes (modifying -> extends).
35952 * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
35955 * prj.adb (Initialize): Change Modifying to Extends.
35957 * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
35959 * prj.ads: Minor comment change (Modifying -> extending).
35961 * snames.ads: Change modifying to extends.
35963 2001-12-05 Robert Dewar <dewar@gnat.com>
35965 * sem_warn.adb: Remove stuff for conditionals, we are not going to
35968 * sem_warn.ads: Remove stuff for conditionals, we are not going to
35969 do this after all. Add 2001 to copyright notice
35971 2001-12-04 Geert Bosch <bosch@gnat.com>
35973 * einfo.h, sinfo.h, treeprs.ads: Regenerate.
35975 2001-12-04 Robert Dewar <dewar@gnat.com>
35977 * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
35978 location if we already have errors. Stops some cases of cascaded
35981 * errout.adb: Improve comment.
35983 2001-12-04 Robert Dewar <dewar@gnat.com>
35986 (Analyze_Formal_Type_Definition): Defend against Error.
35987 (Analyze_Formal_Subprogram): Defend against Error.
35989 * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
35990 remove following semicolon if present. Removes cascaded error.
35992 2001-12-04 Douglas B. Rupp <rupp@gnat.com>
35995 (Gen_Exception_Table_Ada): Write "begin" and then return if Num
35996 exceptions equals 0.
35997 (Gen_Exception_Table_C): Return if Num exceptions equals 0.
35998 Fixes PIWG E tests (which have to be run with -gnatL).
36000 2001-12-04 Robert Dewar <dewar@gnat.com>
36002 * einfo.ads: Minor reformatting
36004 2001-12-04 Ed Schonberg <schonber@gnat.com>
36006 * einfo.ads: Block_Node points to the identifier of the block, not to
36007 the block node itself, to preserve the link when the block is
36008 rewritten, e.g. within an if-statement with a static condition.
36010 * inline.adb (Cleanup_Scopes): recover block statement from block
36011 entity using new meaning of Block_Node.
36013 * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
36014 identifier of block node, rather than to node itself.
36016 2001-12-04 Gary Dismukes <dismukes@gnat.com>
36019 (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
36020 (Discrimify): Go back to setting the Etypes of the selected component
36021 because the Vname component does not exist at this point and will
36022 fail name resolution. Also set Analyzed.
36023 Remove with and use of Sem_Res.
36025 2001-12-04 Arnaud Charlet <charlet@gnat.com>
36027 * Makefile.in: (HIE_SOURCES): add s-fat*.
36029 2001-12-04 Robert Dewar <dewar@gnat.com>
36032 (Compile_Time_Known_Attribute): New procedure.
36033 (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
36034 proper range check.
36036 2001-12-04 Ed Schonberg <schonber@gnat.com>
36038 * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
36039 processing discriminants to diagnose illegal default values.
36041 2001-12-04 Ed Schonberg <schonber@gnat.com>
36043 * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
36044 access discriminant within a type extension that constrains its
36045 parent discriminants.
36047 2001-12-04 Ed Schonberg <schonber@gnat.com>
36049 * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
36050 is malformed, use instance of Any_Id to allow analysis to proceed.
36052 * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
36053 type definition is illegal.
36054 (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
36057 2001-12-04 Ed Schonberg <schonber@gnat.com>
36059 * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
36062 2001-12-04 Robert Dewar <dewar@gnat.com>
36064 * errout.adb: Minor reformatting
36066 2001-12-04 Robert Dewar <dewar@gnat.com>
36068 * exp_util.adb: Minor reformatting from last change
36070 * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
36071 which is a rewriting of an expression, traverse the original
36072 expression to remove warnings that may have been posted on it.
36074 2001-12-04 Ed Schonberg <schonber@gnat.com>
36076 * exp_util.adb (Must_Be_Aligned): Return false for a component of a
36077 record that has other packed components.
36079 2001-12-04 Douglass B. Rupp <rupp@gnat.com>
36081 * adaint.c: Minor cleanups.
36083 2001-12-04 Douglass B. Rupp <rupp@gnat.com>
36085 * adaint.c: Do not use utime.h on vxworks.
36087 2001-12-04 Arnaud Charlet <charlet@gnat.com>
36089 * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
36090 more confusion than it solves.
36092 2001-12-04 Geert bosch <bosch@gnat.com>
36094 * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
36096 2001-12-04 Geert Bosch <bosch@gnat.com>
36098 * Makefile.in (update-sources): New target.
36099 For use by gcc_release script.
36101 2001-12-04 Ed Schonberg <schonber@gnat.com>
36103 * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
36104 a configuration pragma, it is now legal wherever a pragma can appear.
36106 2001-12-04 Zack Weinberg <zack@codesourcery.com>
36108 * Makefile.in: Don't set ALL. Delete @cross_defines@,
36109 @cross_overrides@, @build_overrides@ stanzas. INTERNAL_CFLAGS
36110 is now @CROSS@ -DIN_GCC; update comment.
36112 2001-12-04 Robert Dewar <dewar@gnat.com>
36114 * einfo.adb (Has_Pragma_Pure_Function): New flag.
36115 Fix problem that stopped ceinfo from working
36117 * einfo.ads (Has_Pragma_Pure_Function): New flag.
36119 * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
36121 2001-12-04 Douglas B. Rupp <rupp@gnat.com>
36124 (File_Time_Stamp): New procedure.
36125 (Preserve_Mode): New boolean.
36126 (Write_Unit): Pass time stamp.
36127 Implement -p switch (preserve time stamps).
36129 * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
36131 * gnatchop.adb: Do usage info for -p switch
36133 * adaint.h (__gnat_set_file_time_name): New function
36135 * adaint.c (__gnat_set_file_time_name): Implement
36137 * adaint.h: Fix typo
36139 2001-12-03 Robert Dewar <dewar@gnat.com>
36141 * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
36142 have Associated_Node.
36144 2001-12-03 Robert Dewar <dewar@gnat.com>
36146 * prj-proc.adb: Minor reformatting
36148 * make.adb: Minor reformatting
36150 2001-12-03 Geert Bosch <bosch@gnat.com>
36152 * make.adb: Minor reformatting.
36154 2001-12-03 Robert Dewar <dewar@gnat.com>
36156 * sem_ch12.adb: Minor reformatting
36158 2001-12-03 Ed Schonberg <schonber@gnat.com>
36160 * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
36161 push Standard on the stack before analyzing the instance body,
36162 in order to have a clean visibility environment.
36164 * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
36166 2001-12-03 Ed Schonberg <schonber@gnat.com>
36168 * sem_ch12.adb (Instantiate_Package_Body): Protect against double
36169 instantiation of a body that contains an inlined body.
36171 2001-12-03 Ed Schonberg <schonber@gnat.com>
36174 (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
36175 to prevent freezing within formal packages.
36176 (Freeze_Subprogram_Body): If body comes from another instance that
36177 appeared before its own body, place freeze node at end of current
36178 declarative part, to prevent a back-end crash.
36179 (Inline_Instance_Body): Handle properly a package instance within
36180 a subprogram instance that is a child unit.
36182 2001-12-01 Graham Stott <grahams@redhat.com>
36184 * Makefile.in (misc.o): Add missing $(srcdir) prefix
36185 and add optabs.h dependency.
36187 * misc.c: Include optabs.h
36188 (gnat_tree_code_type): Make static and const.
36189 (gnat_tree_code_length): Likewise.
36190 (gnat_tree_code_name): Likewise.
36191 (update_setjmp_buf): Obtain operands mode from insn_data.
36193 2001-11-29 Richard Henderson <rth@redhat.com>
36195 * init.c: Remove obsolete dwarf2 frame.h section.
36197 2001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
36199 * Make-lang.in (ada.generated-manpages): New dummy target.
36201 2001-11-29 Ed Schonberg <schonber@gnat.com>
36203 * g-os_lib.adb (Add_To_Command): use explicit loop to move string
36204 into Command, an array conversion is illegal here. Uncovered by
36207 2001-11-28 Geert Bosch <bosch@gnat.com>
36209 * init.c: Minor whitespace changes.
36211 2001-11-28 Doug Rupp <rupp@gnat.com>
36213 * init.c: (__gnat_install_handler,VMS): Increase size of alternate
36216 2001-11-28 Zack Weinberg <zack@codesourcery.com>
36218 * misc.c (gnat_expand_constant): Move declaration above
36219 definition of lang_hooks.
36220 (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
36221 (gnat_init): lang_expand_constant no longer exists.
36223 (internal_error_function): Remove #ifdef HAVE_VPRINTF. We
36224 always have vprintf.
36225 (gnat_init): Always call set_internal_error_function.
36227 2001-11-27 Andreas Jaeger <aj@suse.de>
36229 * Makefile.in (stamp-tool_src_dir): Use symbolic link.
36231 2001-11-27 Laurent Guerby <guerby@acm.org>
36233 * Makefile.in: Regenerate Ada dependencies.
36235 2001-11-26 Richard Henderson <rth@redhat.com>
36237 * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
36238 gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
36239 gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
36241 2001-11-25 Laurent Guerby <guerby@acm.org>
36243 * sysdep.c (rts_get_*): Fix style.
36245 2001-11-19 Laurent Guerby <guerby@acm.org>
36247 * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
36248 since it is of no apparent use and cause warnings.
36250 2001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
36252 * misc.c (gnat_decode_option, gnat_init_options): Make definitions
36254 (gnat_init): Don't return NULL.
36255 (finish_parse): Remove.
36257 2001-11-17 Laurent Guerby <guerby@acm.org>
36259 * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
36260 * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
36261 * io-aux.c: Provide K&R prototypes to all functions, reformat code.
36262 * lang-spec.h: Add missing struct field to silence warnings.
36263 * sysdep.c (rts_get_*): Provide K&R prototype.
36264 * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
36265 * traceback.c (Unlock_Task, Lock_Task): Likewise.
36266 * tracebak.c (__gnat_backtrace): Remove unused variable.
36267 * utils.c (end_subprog_body): Move to K&R style.
36269 Thu Nov 15 18:16:17 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36271 * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
36273 2001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
36275 * misc.c (gnat_init): Change prototype. Include the
36276 functionality of the old init_parse and init_decl_processing.
36277 (gnat_init_decl_processing): New prototype.
36278 (init_parse): Remove.
36279 * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
36281 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
36283 * misc.c (gnat_print_decl, gnat_print_type): Renamed.
36284 (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
36285 (print_lang_statistics, lang_print_xnode, print_lang_identifier,
36286 set_yydebug): Remove.
36288 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
36290 * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
36291 (struct lang_hooks): Constify.
36292 (language_string, lang_identify): Remove.
36293 * utils.c (init_decl_processing): Update.
36295 2001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
36297 * misc.c: Include langhooks-def.h.
36298 * Makefile.in: Update.
36300 2001-10-30 Robert Dewar <dewar@gnat.com>
36303 (Check_Identifier): Rewrite circuit to be compatible with use of letters
36304 in the upper half of ASCII.
36305 (Check_Identifier): Minor reformatting
36307 2001-10-30 Geert Bosch <bosch@gnat.com>
36309 * (Associated_Node, Set_Associated_Node): Do not check for
36312 2001-10-30 Robert Dewar <dewar@gnat.com>
36314 * a-reatim.ads: Minor reformatting
36316 2001-10-30 Robert Dewar <dewar@gnat.com>
36318 * gnatdll.adb: Minor reformatting throughout. Many ??? added for
36319 undocumented declarations.
36321 2001-10-30 Pascal Obry <obry@gnat.com>
36323 * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
36324 to the binder and linker.
36327 * mdll.ads: Fix layout. Update copyright notice.
36329 * mdll.adb: Fix layout. Update copyright notice.
36331 2001-10-30 Robert Dewar <dewar@gnat.com>
36333 * usage.adb: Minor fix to output for -gnaty.
36335 2001-10-30 Ed Schonberg <schonber@gnat.com>
36337 * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
36338 to accommodate all its possible values.
36340 * a-reatim.adb (Split): Special-case handling of Time_Span_First
36341 and of small absolute values of T.
36343 2001-10-30 Richard Kenner <kenner@gnat.com>
36345 * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
36346 set_mem_attributes since not needed and wrong if RESULT if a REG;
36347 fixes ACATS failures.
36349 2001-10-30 Geert Bosch <bosch@gnat.com>
36351 * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
36352 s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
36354 2001-10-30 Robert Dewar <dewar@gnat.com>
36356 * bindusg.adb: Undocument -f switch.
36358 * gnatcmd.adb: Remove /FULL_ELABORATION.
36360 * opt.ads (Force_RM_Elaboration_Order): Document that this is
36363 * gnatbind.adb: Output new warning for use of obsolescent -f switch.
36365 * gnatbind.adb: Minor update of warning msg.
36367 2001-10-30 Vincent Celier <celier@gnat.com>
36369 * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
36370 for project file switches (-P (/PROJECT_FILE=),
36371 -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
36374 2001-10-30 Geert Bosch <bosch@gnat.com>
36376 * decl.c: Minor whitespace fixes.
36378 2001-10-30 Richard Kenner <kenner@gnat.com>
36380 * utils2.c (build_allocator): Test for SIZE overflow in array case too
36382 2001-10-30 Geert Bosch <bosch@gnat.com>
36384 * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
36385 Found due to GCC 3.0 warning of using uninitialized value.
36388 (Get_Max_Size): Use variant record for tracking value/expression.
36389 Makes logic clearer and prevents warnings for uninitialized variables.
36390 (Layout_Array_Type): Use variant record for tracking value/expression.
36391 Makes logic clearer and prevents warnings for uninitialized variables.
36393 2001-10-30 Robert Dewar <dewar@gnat.com>
36395 * lib.adb: Minor reformatting
36397 * s-taprop.ads: Minor reformatting
36399 2001-10-29 Laurent Guerby <guerby@acm.org>
36402 (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
36404 (_gnat_error_handler): Make MSG const.
36406 2001-10-29 Richard Kenner <kenner@gnat.com>
36408 * sysdep.c: Fix localtime_r problem on LynxOS.
36409 Also remove #elif to avoid warnings.
36411 * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
36414 * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
36416 2001-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
36418 * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
36419 exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
36420 g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
36421 g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
36422 layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
36423 s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
36424 sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
36425 sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
36426 sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
36427 types.ads, urealp.adb: Fix spelling errors.
36429 2001-10-27 Laurent Guerby <guerby@acm.org>
36431 * trans.c (gigi): Fix non determinism leading to bootstrap
36432 comparison failures for debugging information.
36434 2001-10-26 Florian Weimer <fw@deneb.enyo.de>
36436 * gnat_rm.texi: Use @./@: where appropriate.
36438 2001-10-26 Robert Dewar <dewar@gnat.com>
36440 * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
36442 2001-10-26 Richard Kenner <kenner@gnat.com>
36444 * gmem.c (__gnat_gmem_read_next): Properly check for EOF
36446 2001-10-26 Richard Kenner <kenner@gnat.com>
36448 * decl.c (validate_size): Modify message for bad size to avoid
36449 implication that compiler is modifying the size.
36451 2001-10-26 Robert Dewar <dewar@gnat.com>
36453 * prj-util.adb: Minor reformatting. Fix bad header format.
36455 2001-10-26 Robert Dewar <dewar@gnat.com>
36457 * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
36459 * sinfo.ads: Clarify use of Associated_Node (documentation only).
36461 * sem_ch12.adb: Change Node4 to Associated_Node. Change
36462 Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
36463 much more narrowly in places where needed. These are cleanups.
36465 2001-10-26 Joel Brobecker <brobecke@gnat.com>
36467 * 5zosinte.ads (null_pthread): new constant.
36470 (Initialize_TCB): Initialize thread ID to null, to be able to verify
36471 later that this field has been set.
36472 (Finalize_TCB): ditto.
36473 (Suspend_Task): Verify that the thread ID is not null before using it.
36474 (Resume_Task): ditto.
36477 (Resume_All_Tasks): Lock the tasks list before using it.
36478 (Suspend_All_Tasks): ditto.
36480 2001-10-26 Richard Kenner <kenner@gnat.com>
36482 * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
36483 Make constant variant of designated type for Is_Access_Constant.
36484 Call update_pointer_to with main variant.
36486 * trans.c (process_freeze_entity, process_type):
36487 Call update_pointer_to on main variant.
36489 * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
36490 If main variant, update all other variants.
36492 * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
36495 2001-10-26 Robert Dewar <dewar@gnat.com>
36497 * prj-util.adb: Minor reformatting
36499 2001-10-26 Robert Dewar <dewar@gnat.com>
36501 * prj-util.adb: Minor reformatting
36503 2001-10-26 Robert Dewar <dewar@gnat.com>
36505 * prj-attr.adb: Minor reformatting throughout
36507 2001-10-26 Robert Dewar <dewar@gnat.com>
36509 * prj-attr.ads: Minor reformatting
36510 Add ??? comment (this whole spec has almost no comments)
36512 2001-10-26 Vincent Celier <celier@gnat.com>
36514 * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
36515 ("//") that precede the drive letter on Interix.
36517 2001-10-26 Geert Bosch <bosch@gnat.com>
36519 * gnat_rm.texi: Add GNAT Reference Manual.
36521 2001-10-25 Robert Dewar <dewar@gnat.com>
36523 * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
36524 is Error. Similar change for other renaming cases.
36526 2001-10-25 Robert Dewar <dewar@gnat.com>
36528 * s-atacco.ads: Add pragma Inline_Always for functions.
36529 Fix header format. Add copyright 2001
36531 2001-10-25 Ed Schonberg <schonber@gnat.com>
36533 * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
36534 return Error rather than Empty so that analysis can proceed.
36536 2001-10-25 Ed Schonberg <schonber@gnat.com>
36538 * sem_util.adb (Enter_Name): better handling of cascaded error
36539 messages when a unit appears in its own context.
36541 2001-10-25 Ed Schonberg <schonber@gnat.com>
36543 * sem_util.adb (Defining_Entity): in case of error, attach created
36544 entity to specification, so that semantic analysis can proceed.
36546 2001-10-25 Robert Dewar <dewar@gnat.com>
36549 (Defining_Entity): Deal with Error.
36550 (Process_End_Label): Deal with bad end label for.
36552 2001-10-25 Ed Schonberg <schonber@gnat.com>
36554 * sem_elab.adb (Check_A_Call): refine message when call is in an
36555 instance but callee is not declared in the generic unit.
36557 2001-10-25 Ed Schonberg <schonber@gnat.com>
36559 * sem_elab.adb (Check_A_Call): check for renaming before finding the
36560 enclosing unit, which may already be different from the calling unit.
36562 2001-10-25 Geert Bosch <bosch@gnat.com>
36564 * 4gintnam.ads: fix header format.
36566 2001-10-25 Ed Schonberg <schonber@gnat.com>
36568 * sem_res.adb (Resolve_Call): if the call is actually an indexing
36569 operation on the result of a parameterless call, perform elaboration
36570 check after the node has been properly rewritten.
36572 * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
36573 inlined within the generic tree, the defining identifier is not a
36576 2001-10-25 Ed Schonberg <schonber@gnat.com>
36578 * sem_res.adb (Resolve): special-case resolution of Null in an
36579 instance or an inlined body to avoid view conflicts.
36581 * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
36582 compatibility by retrieving the access type of the generic copy.
36584 2001-10-25 Robert Dewar <dewar@gnat.com>
36587 (Analyze_Number_Declaration): Handle error expression.
36588 (Signed_Integer_Type_Declaration): Handle error bound.
36589 (Analyze_Subtype_Indication): Handle error range.
36591 * sem_util.adb (Get_Index_Bounds): Check for Error.
36593 2001-10-25 Robert Dewar <dewar@gnat.com>
36595 * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
36596 in no run time mode.
36598 2001-10-25 Pascal Obry <obry@gnat.com>
36600 * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
36601 mode case for ALLOC case.
36603 * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
36604 all platforms. Improvement of last change.
36606 2001-10-25 Robert Dewar <dewar@gnat.com>
36608 * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
36610 2001-10-25 Geert Bosch <bosch@gnat.com>
36612 * osint.adb (Is_Relative): Remove duplicate.
36614 2001-10-25 Pascal Obry <obry@gnat.com>
36616 * osint.adb (Read_Default_Search_Dirs): correctly detect relative
36617 pathnames in UNIX and DOS style with drive letter.
36618 (Is_Relative): new routine.
36620 * osint.adb: Minor reformatting
36622 * osint.adb (Is_Relative): implementation using
36623 GNAT.OS_Lib.Is_Absolute_Path. Better fix.
36625 2001-10-25 Pascal Obry <obry@gnat.com>
36627 * g-dirope.adb (Basename): correctly compute offset between the
36628 original Path and the translated one.
36630 * g-dirope.adb: (Base_Name): add some comments.
36632 2001-10-25 Robert Dewar <dewar@gnat.com>
36634 * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
36635 in HIE mode, avoids compilation abandoned message
36637 * exp_imgv.adb: Correct typo in previous change
36639 * exp_imgv.adb: Correct typo in previous change (not my day!)
36641 2001-10-25 Robert Dewar <dewar@gnat.com>
36643 * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
36645 2001-10-25 Pascal Obry <obry@gnat.com>
36647 * g-awk.ads: Move all pragma inlines next to the routine
36648 declarations. This is more uniform with other GNAT spec.
36650 2001-10-22 Geert Bosch <bosch@gnat.com>
36652 * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
36654 2001-10-19 Geert Bosch <bosch@gnat.com>
36656 * Makefile.in (tools, gnattools): Remove gnatmem.
36658 2001-10-17 Richard Henderson <rth@redhat.com>
36660 * Makefile.in (misc.o): Depend on langhooks.h.
36661 * misc.c: Include it.
36662 (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
36663 (LANG_HOOKS_DECODE_OPTION): New.
36664 (lang_hooks): Use LANG_HOOKS_INITIALIZER.
36666 2001-10-16 Florian Weimer <fw@deneb.enyo.de>
36668 * trans.c (tree_transform): Adjust to recent change in
36669 expand_asm_operands to implement named asm operands.
36671 2001-10-11 Ed Schonberg <schonber@gnat.com>
36673 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
36674 renaming of discriminant for mutable record type.
36676 2001-10-11 Robert Dewar <dewar@gnat.com>
36678 * validsw.adb: Properly save -gnatVn status.
36680 2001-10-11 Robert Dewar <dewar@gnat.com>
36682 * usage.adb: Add lines for V switch.
36684 * gnatcmd.adb (COMPILE): Revise translations for -gnatV
36685 (/VALIDITY_CHECKING).
36687 2001-10-11 Ed Schonberg <schonber@gnat.com>
36689 * sem_type.adb (Add_One_Interp): an operator for a type declared in
36690 an extension of System is known to be visible.
36692 2001-10-11 Ed Schonberg <schonber@gnat.com>
36694 * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
36695 properly. Fixes regression on ACATS C34005G.
36697 2001-10-11 Robert Dewar <dewar@gnat.com>
36699 * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
36700 loop in generic instance, since this is likely not very useful.
36702 2001-10-11 Robert Dewar <dewar@gnat.com>
36704 * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
36705 the error message for high integrity mode.
36707 * rtsfind.adb (RTE): Give message if we try to find an entity that
36708 is not available in high integrity mode.
36711 (OK_To_Use_In_HIE_Mode): New array.
36712 (RTE): May return Empty in high integrity mode.
36714 * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
36715 OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
36717 * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
36718 unit if not inlined always and in no runtime mode. Fixes problem
36719 caused by new Rtsfind changes.
36721 * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
36724 * rtsfind.adb (RTE): Make sure we do not try to load unit after
36725 giving message for entity not available in high integrity mode.
36727 2001-10-11 Pascal Obry <obry@gnat.com>
36729 * impunit.adb: Add GNAT.CRC32.
36731 2001-10-11 Ed Schonberg <schonber@gnat.com>
36733 * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
36734 properly the case where one universal operand in a non-static
36735 exponentiation of a real literal.
36737 2001-10-11 Ed Schonberg <schonber@gnat.com>
36739 * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
36740 clause, return the gobal finalization list, for lack of anthing else.
36742 2001-10-11 Ed Schonberg <schonber@gnat.com>
36744 * exp_ch7.adb (Make_Transient_Block): if statement is within
36745 exception handler, always use new transient scope to place Clean
36748 2001-10-11 Pascal Obry <obry@gnat.com>
36751 (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
36752 (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
36753 (GNATLS_RTL_OBJS): add g-crc32.o
36754 (GNATMAKE_RTL_OBJS): add g-crc32.o
36757 (CRC_Match): new function.
36758 (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
36759 instead of the previous simple checksum algorithm.
36760 (Time_Stamp_Mismatch): use CRC_Match for comparison.
36761 (Set_Source_Table): idem.
36764 (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
36765 instead of simple checksum.
36766 (CRC_Match): new function.
36767 (CRC_Error): new constant.
36769 * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
36770 a CRC now and not a simple checksum. A CRC uses lower-case hex
36771 letters, fixes ambiguity in parsing.
36773 * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
36774 is what this variable will store.
36776 * bcheck.adb: Change reference to chechsum in comments by CRC.
36777 (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
36778 rename All_Checksum_Match to All_CRC_Match. Change due to API
36779 renaming since now GNAT does not use a simple checksum but a
36780 CRC using GNAT.CRC32.
36782 * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
36783 now and not anymore a simple checksum.
36785 * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
36788 * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
36791 (Restore_Scan_State): rename Checksum to CRC.
36792 (Save_Scan_State): idem.
36796 (Checksum): rename to CRC.
36797 (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
36799 * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
36800 GNAT.CRC32). Update copyright notice.
36802 * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
36803 GNAT.CRC32). Update copyright notice.
36806 (Accumulate_Checksum): removed.
36807 (Update): new procedure. Add a wide-character into the CRC.
36810 (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
36811 (Load_File): fix initialization of S (change Source_Checksum to
36814 * sinput-p.adb (Load_Project_File): rename Source_Checksum to
36815 Source_CRC in S initialization.
36817 * sinput.adb (Source_Checksum): renamed to Source_CRC.
36819 * sinput.ads (Source_Checksum): renamed to Source_CRC.
36820 Update comments for the CRC.
36822 * types.adb (Hex): Use lowercase for the letter part.
36824 * types.ads (Get_Hex_String): Returns the hexadecimal representation
36825 for a word. This is currently used only for CRC. In previous version,
36826 the checksum was using a representation with all letter being
36827 upper-case. With the new implementation (using CRC) we do not remove
36828 the 32th bit of the CRC, so we can have an upper-case starting letter
36829 in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
36830 It is ambigous since the CRC was optional and could be followed by
36831 options like EB, EE. So now this routines uses lower-case letter for
36832 the hexadecimal representation. Strange enough only lower case letters
36833 where checked in Scan_ALI (even if this was not a possible case).
36835 * gnatvsn.ads (Library_Version): changed to 3.15a.
36837 * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
36840 * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
36843 * ali-util.adb: Redo previous change to avoid using word CRC everywhere
36844 Add 2001 to copyright notice
36845 (Accumulate_Checksum): Modify to use System.CRC32.
36847 * ali-util.ads: Redo changes of previous revision to continue to use
36848 the word Checksum. Add 2001 to copyright notice.
36850 * ali.adb: Undo some of previous changes, not needed.
36851 Keep the change for lower case letters in the checksum.
36853 * ali.ads: Undo previous change not needed.
36855 * bcheck.adb: Undo most of previous change, not needed.
36856 But do use Checksums_Match for checksum comparison.
36858 * gnatls.adb: Undo most of previous change, not needed.
36859 But do use Checksums_Match for comparing checksums.
36861 * lib-load.adb: Undo previous change, not needed.
36863 * lib-writ.adb: Undo previous change, not needed.
36865 * lib-writ.ads: Document that checksums use lower case,
36866 not upper case letters.
36868 * scans.adb: Undo previous change, not needed
36870 * scans.ads: Undo previous change, not needed.
36872 * scn-nlit.adb: Undo previous changes, not needed.
36874 * scn-slit.adb: Undo previous change, not needed. Fix header format.
36877 (Accumulate_Checksum): Use System.CRC32.
36878 (Initialize_Checksum): New procedure.
36879 Remove other changes of previous revision.
36881 * sinput-p.adb: Undo previous change, not needed.
36883 * sinput.adb: Undo previous change, not needed.
36885 * sinput-l.adb: Undo previous change, not needed.
36887 * sinput.ads: Undo previous change, not needed. Keep only comment
36888 on new checksum algorithm
36890 * Makefile.in: Add s-crc32 as needed, remove g-crc32.
36891 Also remove a-tags and a-stream from GNAT sources.
36893 * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
36895 * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
36897 2001-10-11 Geert Bosch <bosch@gnat.com>
36899 * einfo.h: Regenerate.
36901 * nmake.ads: Regenerate.
36903 * nmake.adb: Regenerate.
36905 * sinfo.h: Regenerate.
36907 * treeprs.adb: Regenerate.
36909 2001-10-10 Geert Bosch <bosch@gnat.com>
36911 * gnat-style.texi: New file describing coding guidelines for Ada.
36913 2001-10-10 Ed Schonberg <schonber@gnat.com>
36915 * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
36918 2001-10-10 Geert Bosch <bosch@gnat.com>
36920 * snames.ads: Add new names for project facility.
36922 * snames.adb: Update to reflect snames.ads changes.
36924 * snames.h: Update to reflect snames.ads changes.
36926 2001-10-10 Vincent Celier <celier@gnat.com>
36929 (Add_Switches): reflect the changes for the switches attributes
36930 Default_Switches indexed by the programming language,
36931 Switches indexed by the file name.
36932 (Collect_Arguments_And_Compile): Idem.
36933 Reflect the attribute name changes.
36936 (Initialisation_Data): Change the names of some packages and
36938 (Initialize): process case insensitive associative arrays.
36941 (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
36944 (Parse_Attribute_Declaration): For case insensitive associative
36945 arrays, set the index string to lower case.
36948 Reflect the changes of the project attributes.
36951 Replace Check_Naming_Scheme by Ada_Check and
36952 Language_Independent_Check.
36955 Replaced Check_Naming_Scheme by 2 procedures:
36956 Ada_Check and Language_Independent_Check.
36959 (Process_Declarative_Items): For case-insensitive associative
36960 arrays, set the index string to lower case.
36961 (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
36962 Prj.Nmsc.Check_Naming_Scheme.
36965 (Case_Insensitive): New function
36966 (Set_Case_Insensitive): New procedure
36969 (Case_Insensitive): New function
36970 (Set_Case_Insensitive): New procedure
36971 (Project_Node_Record): New flag Case_Insensitive.
36974 (Value_Of): new function to get the string value of a single
36975 string variable or attribute.
36978 (Value_Of): new function to get the string value of a single
36979 string variable or attribute.
36982 (Ada_Default_Spec_Suffix): New function
36983 (Ada_Default_Impl_Suffix): New function
36984 Change definitions of several constants to reflect
36985 new components of record types.
36988 (Naming_Data): Change several components to reflect new
36989 elements of naming schemes.
36990 (Project_Data): New flags Sources_Present and
36991 Language_Independent_Checked.
36992 (Ada_Default_Spec_Suffix): New function.
36993 (Ada_Default_Impl_Suffix): New function.
36996 Modification of predefined names for project manager: added
36997 Implementation, Specification_Exceptions, Implementation_Exceptions,
36998 Specification_Suffix, Implementation_Suffix, Separate_Suffix,
36999 Default_Switches, _Languages, Builder, Cross_Reference,
37000 Finder. Removed Body_Part, Specification_Append, Body_Append,
37001 Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
37004 * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
37007 * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
37008 not that it is Nil_Variable_Value.
37010 * prj.ads: Add ??? for uncommented declarations
37012 2001-10-10 Ed Schonberg <schonber@gnat.com>
37014 * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
37015 constant, do not indicate possible modification, so that gigi can
37016 treat it as a bona fide constant.
37018 2001-10-10 Robert Dewar <dewar@gnat.com>
37020 * sem_prag.adb: Add processing for pragma External.
37022 * snames.ads: Add entry for pragma External.
37024 * par-prag.adb: Add pragma External.
37026 * snames.adb: Updated to match snames.ads.
37028 2001-10-10 Ed Schonberg <schonber@gnat.com>
37030 * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
37031 a dynamic task if the allocator appears in an indexed assignment
37032 or selected component assignment.
37034 * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
37035 For a dynamic task in an assignment statement, use target of
37036 assignment to generate meaningful name.
37038 2001-10-10 Ed Schonberg <schonber@gnat.com>
37040 * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
37043 * einfo.ads: Body_Entity is also defined for generic package.
37044 Documentation change only
37046 * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
37047 others_choice for a discriminated component initialization,
37048 convert discriminant references into the corresponding discriminals.
37050 * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
37051 only if original type is private and expression has to be wrapped
37055 (Apply_Constraint_Check): Do not perform length check
37056 if expression is an aggregate with only an others_choice.
37057 (Length_N_Cond): two references to the same in_parameter
37058 (typically the discriminal in an init_proc) denote the same value.
37059 Two useful optimization uncovered by bugfixes above.
37061 2001-10-10 Robert Dewar <dewar@gnat.com>
37063 * xeinfo.adb: Change int to char in translation of enumeration types.
37064 This fixes a problem in the C representation of component alignment.
37065 Add 2001 to copyright notice
37067 2001-10-10 Richard Kenner <kenner@gnat.com>
37069 * decl.c: (validate_size): Do check size of object of integral type
37070 if it is a packed array type.
37072 2001-10-10 Richard Kenner <kenner@gnat.com>
37074 * decl.c: (gnat_to_gnu_entity, case object): Also materialize
37075 VAR_DECL for constant if not Is_Public but -O0.
37077 2001-10-10 Richard Kenner <kenner@gnat.com>
37079 * misc.c (struct lang_hooks): Add new initializer to match GCC change.
37081 2001-10-10 Geert Bosch <bosch@gnat.com>
37083 * xnmake.adb (XNmake): Fix handling of -s/-b options. No longer
37084 use '/' as switch character, allowing for absolute file names.
37086 2001-10-09 Joseph S. Myers <jsm28@cam.ac.uk>
37088 * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
37091 2001-10-08 Geert Bosch <bosch@gnat.com>
37093 * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
37094 Automatically build utilities when files need to be regenerated.
37096 2001-10-08 Geert Bosch <bosch@gnat.com>
37098 * xsnames.adb: New utility for updating snames.ads and snames.adb
37100 2001-10-08 Zack Weinberg <zack@codesourcery.com>
37102 * Make-lang.in (ADAFLAGS): Add -W -Wall.
37103 (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
37104 (gnat1): Also depend on attribs.o.
37105 (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
37106 * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
37107 (ADAC): Set to @ADAC@ in stage1, $(CC) later.
37108 (ADAFLAGS): Add -W -Wall.
37109 (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
37112 (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
37113 s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
37114 s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
37115 Use $(ADAC), not $(CC), as compilation command.
37117 (gnattools): Depend directly on tools to build, don't use
37119 (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
37121 * einfo.h, sinfo.h: New files (autogenerated).
37123 2001-10-08 Richard Henderson <rth@redhat.com>
37125 * comperr.adb (Abort_In_Progress): New.
37126 (Compiler_Abort): Use it to prevent recursion.
37128 2001-10-08 Robert Dewar <dewar@gnat.com>
37130 * atree.adb: Set Error_Posted in Error node, helps error recovery.
37132 * par-endh.adb (Output_End_Expected): We should also not test
37133 Error_Posted on the Error node, since now it is always set.
37135 * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
37136 to help error recovery. Part of general work on 9407-004.
37138 * par.adb: Add ??? for misuse of error
37141 (Resolve): Defend against Error, fixes 9407-003.
37142 (Resolve_Discrete_Subtype_Indication): Defend against Error.
37144 * sinfo.ads (N_Error): Now has Etype field (which will be set
37145 to Any_Type to help error recovery).
37147 2001-10-08 Richard Kenner <kenner@gnat.com>
37149 * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
37150 Consistently set MEM attributes from expression; fixes
37151 bootstrap failure on x86.
37153 2001-10-08 Geert Bosch <bosch@gnat.com>
37155 * 5oosinte.adb: Add 2001 to copyright notice.
37157 2001-10-08 Geert Bosch <bosch@gnat.com>
37159 * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
37161 * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
37163 2001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
37165 * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
37167 2001-10-05 Geert Bosch <bosch@gnat.com>
37169 * adaint.h: Small formatting fix.
37171 2001-10-04 Geert Bosch <bosch@gnat.com>
37173 * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
37174 Arg is int, not FILE *, in dummy version of functions.
37176 * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
37177 Arg is int, not FILE *.
37179 2001-10-04 Geert Bosch <bosch@gnat.com>
37181 * 3lsoccon.ads: Added file, missed with initial check ins.
37183 * 4lintnam.ads: Fix header format.
37184 Change Linux to GNU/Linux.
37186 * 5iosinte.adb: Change Linux to GNU/Linux.
37188 * 5iosinte.ads: Change Linux to GNU/Linux.
37190 * 5itaprop.adb: Change Linux to GNU/Linux.
37192 * 5itaspri.ads: Change Linux to GNU/Linux.
37193 Update copyright notice.
37195 * 5lintman.adb: Change Linux to GNU/Linux.
37197 * 5lml-tgt.adb: Change Linux to GNU/Linux.
37199 * 5losinte.ads: Change Linux to GNU/Linux.
37201 * 5lsystem.ads: Change Linux to GNU/Linux.
37203 * 5qosinte.adb: Change Linux to GNU/Linux.
37205 * 5qosinte.ads: Change Linux to GNU/Linux.
37207 * 5qparame.ads: Change Linux to GNU/Linux.
37209 * 5qtaprop.adb: Change Linux to GNU/Linux.
37211 * 5qtaspri.ads: Change Linux to GNU/Linux.
37212 Add 2001 to copyright notice.
37214 * 5vintman.ads: Change Linux to GNU/Linux.
37215 Fix header format. Add 2001 to copyright notice.
37217 * g-soccon.ads: Change Linux to GNU/Linux.
37219 * g-trasym.ads: Change Linux to GNU/Linux.
37220 Add 2001 to copyright notice.
37222 * memtrack.adb: Change Linux to GNU/Linux.
37224 * s-intman.ads: Change Linux to GNU/Linux.
37225 Add 2001 to copyright notice. Fix header format.
37227 * s-stache.adb: Change Linux to GNU/Linux.
37229 * adaint.c: Change Linux to GNU/Linux.
37231 * cio.c: Change Linux to GNU/Linux.
37233 * cstreams.c: Change Linux to GNU/Linux.
37235 * init.c: Change Linux to GNU/Linux.
37237 * gmem.c: Change Linux to GNU/Linux.
37239 * tracebak.c: Change Linux to GNU/Linux.
37242 2001-10-02 Geert Bosch <bosch@gnat.com>
37244 * misc.c (insert_default_attributes): Add dummy version.