1 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
4 * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
5 * sem_ch12.adb (Instantiate_Object): Use it.
6 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
7 storage pool denotes a variable as per RM 13.11(15).
9 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
11 * sem_util.ads, sem_util.adb (In_Subprogram): New function.
12 * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
14 2008-04-14 Rolf Ebert <rolf.ebert.gcc@gmx.de>
17 * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
18 line endings even on non-Unix platforms.
20 2008-04-14 Samuel Tardieu <sam@rfc1149.net>
23 * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
26 2008-04-13 Samuel Tardieu <sam@rfc1149.net>
29 * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
32 2008-04-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
34 * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
35 sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
36 snames.ads, sprint.adb, stand.ads, stringt.ads,
37 styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
38 switch.ads, sysdep.c, table.adb, table.ads,
39 targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
40 trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
41 uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
42 vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
43 widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
44 xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
47 * sem_ch10.adb, sem_ch10.ads,
48 sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
49 sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
50 sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
51 sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
52 sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
53 sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
54 sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
55 sem_warn.ads: Fix comment typos.
57 * s-secsta.adb, s-sequio.ads, s-shasto.ads,
58 s-soflin.ads, s-stalib.ads, s-stausa.adb,
59 s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
60 s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
61 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
62 s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
63 s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
64 s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
65 s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
66 s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
67 s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
68 s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
69 s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
70 s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
71 s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
72 scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
73 sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
74 sem_cat.adb, sem_cat.ads: Fix comment typos.
76 2008-04-12 Joel Sherrill <joel@oarcorp.com>
79 * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
81 2008-04-12 Arnaud Charlet <charlet@adacore.com>
83 * s-linux-hppa.ads: Fix syntax errors.
85 2008-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
87 * gnat_ugn.texi: Fix typos.
88 * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
89 restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
90 s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
91 s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
92 s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
93 s-finimp.adb, s-finroo.ads, s-fishfl.ads,
94 s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
95 s-hibaen.ads, s-htable.ads, s-imgcha.adb,
96 s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
97 s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
98 s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
99 s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
100 s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
101 s-osinte-darwin.ads, s-osinte-freebsd.ads,
102 s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
103 s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
104 s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
105 s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
106 s-parame-hpux.ads, s-parame-vms-alpha.ads,
107 s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
108 s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
109 s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
110 s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
111 s-rident.ads: Fix comment typos.
113 2008-04-09 Samuel Tardieu <sam@rfc1149.net>
116 * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
117 environment if generic instance is a top-level one.
119 2008-04-09 Doug Rupp <rupp@adacore.com>
121 * decl.c (validate_size): Set minimum size for fat pointers same as
122 access types. Code clean ups.
124 * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
125 (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
127 * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
129 * s-crtl.ads (malloc32) New function, alias for malloc
130 (realloc32) New function, alias for realloc
132 * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
134 * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
135 allocator size is 32 and default pointer size is 64.
136 (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
137 lhs type if smaller, whatever the modes.
139 * gigi.h (malloc32_decl): New macro definition
141 * utils.c (init_gigi_decls): New malloc32_decl
142 Various code clean ups.
144 * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
145 Task_Address vice System.Address.
147 * s-taspri-vms.ads: Import System.Aux_DEC
148 (Task_Address): New subtype of System.Aux_DEC.Short_Address
149 (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
151 * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
152 Task_Address vice System.Address.
154 * s-inmaop-vms.adb: Import System.Task_Primitives
155 (To_Address): Unchecked convert to Task_Address vice System.Address
157 * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
159 (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
160 (To_Address) Unchecked convert to Task_Address vice System.Address
162 * s-tpopde-vms.adb: Remove unnecessary warning pragmas
164 * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
166 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
168 * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
169 (fdesc_type_node): Define.
170 (null_fdesc_node): Likewise.
171 * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
172 uses descriptors for vtables and the type comes from a dispatch table,
173 return the descriptor type.
174 * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
175 uses descriptors for vtables and the type comes from a dispatch table,
176 build a descriptor in the static case and copy the existing one in the
178 (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
179 the type is a pointer-to-subprogram coming from a dispatch table,
180 return the null descriptor.
181 <N_Unchecked_Type_Conversion>: If the target uses descriptors for
182 vtables, the source type is the descriptor type and the target type
183 is a pointer type, first build the pointer.
184 * utils.c (init_gigi_decls): If the target uses descriptors for vtables
185 build the descriptor type and the null descriptor.
187 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
189 * decl.c (prepend_attributes): Fix typo.
190 * trans.c (Pragma_to_gnu): Likewise.
191 * utils.c (gnat_genericize): Likewise.
193 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
194 Richard Kenner <kenner@adacore.com>
196 * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
197 * decl.c (gnat_to_gnu_entity): Adjust for above change.
198 <E_Record_Type>: Try to get a better form of the component for
199 packing, even if it has an integral mode.
200 <E_Record_Subtype>: Likewise.
201 * trans.c (gnat_to_gnu): Do not require BLKmode for the special
202 exception suppressing the final conversion between record types.
204 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
206 * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
207 alignment for space, promote the alignment of non-scalar variables with
208 no size and alignment.
209 * gigi.h (gnat_types_compatible_p): Declare.
210 * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
211 * trans.c (gnat_to_gnu): Revert revision 129339 change. Minor cleanup.
212 * utils.c (gnat_types_compatible_p) : New predicate.
213 (convert): Use it throughout to test for cases where a mere view
214 conversion is sufficient.
215 * utils2.c (build_binary_op): Minor tweaks.
216 (build_unary_op): Likewise.
218 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
220 * decl.c (adjust_packed): Expand comment.
222 2008-04-08 Arnaud Charlet <charlet@adacore.com>
224 * s-tasuti.ads: Use Task_Address instead of System.Address.
226 * makeutl.adb (Path_Or_File_Name): New function
228 * nlists.ads, itypes.ads: Update comments.
230 * s-crtl.ads (malloc32, realloc32): New functions.
232 * s-auxdec.ads (Short_Address_Size): New constant.
234 * a-taside.adb, s-tasdeb.adb: Use Task_Address.
236 * s-ststop.ads, s-ststop.adb: New file.
238 * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
241 2008-04-08 Pascal Obry <obry@adacore.com>
243 * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
244 (Stop_Bits_Number): New type.
245 (Parity_Check): Likewise.
246 (Set): Add parameter to set the number of stop bits and
247 the parity. Parameter timeout is now a duration instead
250 * g-sercom-linux.adb:
251 Implement the stop bits and parity support for GNU/Linux.
252 Fix handling of timeout, it must be given in tenth of seconds.
254 * g-sercom-mingw.adb:
255 Implement the stop bits and parity support for Windows.
256 Use new s-win32.ads unit instead of declaring Win32 services
257 directly into this body.
258 Update handling of timeout as now a duration.
260 * s-win32.ads, s-winext.ads: New files.
262 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
263 Arnaud Charlet <charlet@adacore.com>
265 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
267 s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
268 s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
270 * s-osinte-lynxos-3.ads,
271 (Alternate_Stack): Remove when not needed. Simplify declaration
273 (Alternate_Stack_Size): New constant.
275 s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
276 'Unrestricted_Access.
278 * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
279 s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
280 s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
281 s-osinte-solaris.ads, s-osinte-vms.ads
282 (SA_ONSTACK): New constant.
283 (stack_t): New record type.
284 (sigaltstack): New imported function.
285 (Alternate_Stack): New imported variable.
286 (Alternate_Stack_Size): New constant.
288 * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
290 * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
291 s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
292 s-taspri-vms.ads (Task_Address): New subtype of System.Address
293 (Task_Address_Size): New constant size of System.Address
294 (Alternate_Stack_Size): New constant.
296 * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
297 (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
298 Establish the alternate stack if the platform makes use of n alternate
299 signal stack for stack overflows.
300 (Create_Task): Take into account the alternate stack in the stack size.
301 (Initialize): Save the address of the alternate stack into the ATCB for
302 the environment task.
303 (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
305 * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
307 * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
309 * s-intman-posix.adb:
310 (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
311 alternate signal stack for stack overflows.
313 * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
314 x86-64, adjust the saved value of the stack pointer if the signal was
315 raised by a stack checking probe.
316 (HP-UX section): Use global __gnat_alternate_stack as signal handler
317 stack and only for SIGSEGV.
318 (Linux section): Likewise on x86 and x86-64.
320 (__gnat_map_signal): Now static.
321 (__gnat_error_handler): Not static any more.
322 (__gnat_adjust_context_for_raise): New function. Signal context
323 adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
324 propagation circuitry.
325 (__gnat_error_handler): Second argument of a sigaction handler is a
326 pointer, not an int, and is unused.
327 Adjust signal context before mapping to exception.
328 Install signal handlers for LynxOS case.
330 * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
331 (Task_Id): Set size to Task_Address_Size
332 (To_Task_id): Unchecked convert from Task_Address vice System.Address
333 (To_Address): Unchecked convert to Task_Address vice System.Address
335 * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
336 address into the ATCB if the platform makes use of an alternate signal
337 stack for stack overflows.
338 (Free_Task): Add call to Finalize_Attributes_Link.
339 Add argument Relative_Deadline to pass the value specified for
340 the task. This is not yet used for any target.
342 * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
343 the value specified for the task.
345 2008-04-08 Arnaud Charlet <charlet@adacore.com>
347 (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
348 (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
349 s-vxwext-rtp.adb): New files.
351 * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
352 Minor updates to accomodate changes above.
354 2008-04-08 Pascal Obry <obry@adacore.com>
356 * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
357 s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
358 Use new s-win32.ads unit instead of declaration
359 from s-osinte-mingw.ads.
361 * s-osinte-mingw.ads:
362 Move all non tasking based interface to s-win32.ads.
364 * s-osprim-mingw.adb:
365 Remove duplicated declarations and use s-win32.ads
368 2008-04-08 Vincent Celier <celier@adacore.com>
369 Arnaud Charlet <charlet@adacore.com>
371 * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
372 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
373 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
374 mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
375 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
377 * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
378 mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
379 mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
380 mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
381 mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
382 mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
383 mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
384 mlib-tgt-specific-mingw.adb: New names.
387 On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
389 (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
390 Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
391 Minor updates for VMS
395 2008-04-08 Thomas Quinot <quinot@adacore.com>
397 * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
398 g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
399 gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
400 a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
401 s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
402 ASCII.NUL throughout.
404 2008-04-08 Arnaud Charlet <charlet@adacore.com>
405 Matthew Heaney <heaney@adacore.com>
407 * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
410 * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
411 a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
412 to convention for non-RM specs.
413 Add descriptive header, and documented each operation
414 document each operation
416 2008-04-08 Robert Dewar <dewar@adacore.com>
417 Bob Duff <duff@adacore.com>
418 Gary Dismukes <dismukes@adacore.com>
419 Ed Schonberg <schonberg@adacore.com>
421 * alloc.ads: Add entries for Obsolescent_Warnings table
423 * einfo.ads, einfo.adb: Minor reformatting.
424 (Is_Discriminal): New subprogram.
425 (Is_Prival): New subprogram.
426 (Is_Protected_Component): New subprogram.
427 (Is_Protected_Private): Removed.
428 (Object_Ref, Set_Object_Ref): Removed.
429 (Prival, Set_Prival): Change assertion.
430 (Privals_Chain, Set_Privals_Chain): Removed.
431 (Prival_Link, Set_Prival_Link): New subprogram.
432 (Protected_Operation, Set_Protected_Operation): Removed.
433 (Protection_Object, Set_Protection_Object): New subprogram.
434 (Write_Field17_Name): Remove case for Object_Ref.
435 (Write_Field20_Name): Add case for Prival_Link.
436 (Write_Field22_Name): Remove case for Protected_Operation,
438 Add case for Protection_Object.
439 (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
441 (Overlays_Constant): New flag
442 (Is_Constant_Object): New predicate
443 (Is_Standard_Character_Type): New predicate
444 (Optimize_Alignment_Space): New flag
445 (Optimize_Alignment_Time): New flag
446 (Has_Postconditions): New flag
447 (Obsolescent_Warrning): Field removed
448 (Spec_PPC_List): New field
449 (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
450 subprograms to get and set the relative deadline associated to a task.
452 * exp_attr.adb (May_Be_External_Call): Account for the case where the
453 Access attribute is part of a named parameter association.
454 (Expand_Access_To_Protected_Op): Test for the attribute occurring
455 within an init proc and use that directly as the scope rather than
456 traversing up to the protected operation's enclosing scope. Only apply
457 assertion on Is_Open_Scopes in the case the scope traversal is done.
458 For the init proc case use the address of the first formal (_init) as
459 the protected object reference.
460 Implement Invalid_Value attribute
461 (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
462 contents of the dispatch table there is no need to duplicate the
463 itypes associated with record types (i.e. the implicit full view
465 Implement Enum_Val attribute
466 (Expand_N_Attribute_Reference, case Old): Properly handle appearence
467 within _Postconditions procedure
468 (Expand_N_Attribute_Reference, case Result): Implement new attribute
470 * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
471 a return statement calls a function that is not available in
472 configurable runtime.
473 (Analyze_If_Statement): don't optimize simple True/False cases in -O0
474 (Expand_Non_Function_Return): Generate call to _Postconditions proc
475 (Expand_Simple_Function_Return): Ditto
477 * frontend.adb: Add call to Sem_Aux.Initialize
479 * sem_aux.ads, sem_aux.adb: New file.
481 * par-prag.adb: Add entries for pragmas Precondition/Postcondition
482 Add new Pragma_Relative_Deadline.
483 Add support for pragmas Check and Check_Policy
485 * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
486 (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
487 (Analyze_Attribute): In case of attributes 'Alignment and 'size add
488 missing check because they are not allowed in CPP tagged types.
489 Add Sure parameter to Note_Possible_Modification calls
490 Add implementation of Invalid_Value attribute
491 Implement new attribute Has_Tagged_Values
492 Implement Enum_Val attribute
493 (Analyze_Attribute, case Range): Set Name_Req True for prefix of
494 generated attributes.
495 (Analyze_Attribute, case Result): If prefix of the attribute is
496 overloaded, it always resolves to the enclosing function.
497 (Analyze_Attribute, case Result): Properly deal with analysis when
498 Postconditions are not active.
499 (Resolve_Attribute, case Result): Properly deal with appearence during
501 Add processing for attribute Result
503 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
505 (Analyze_Subprogram_Body): Install private_with_clauses when the body
507 (Check_Inline_Pragma): recognize an inline pragma that appears within
508 the subprogram body to which it applies.
509 (Analyze_Function_Return): Check that type of the expression of a return
510 statement in a function with a class-wide result is not declared at a
511 deeper level than the function.
512 (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
513 (Verify_Overriding_Indicator): Handle properly subprogram bodies for
514 user- defined operators.
515 (Install_Formals): Moved to spec to allow use from Sem_Prag for
516 analysis of precondition/postcondition pragmas.
517 (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
518 Last_Formal, along with lots of comments on what this is about
519 (Analyze_Subprogram_Body): Fix case where we move entities from the
520 spec to the body when there are no body entities (now possible with
521 precondition and postcondition pragmas).
522 (Process_PPCs): New procedure
523 (Analyze_Subprogram_Body): Add call to Process_PPCs
525 * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
527 (Pop_Scope): Restore Check_Policy_List on scope exit
528 (Push_Scope): Save Check_Policy_List on scope entry
529 Change name In_Default_Expression => In_Spec_Expression
530 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
531 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
532 (Analyze_Object_Renaming): Allow 'Reference as object
533 (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
534 (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
535 of restriction identifier.
536 Add Sure parameter to Note_Possible_Modication calls
538 * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
539 Don't check for primitive operations when calling Rep_Item_Too_Late.
540 (Process_Import_Or_Interface): Do not place flag on formal
542 (Analyze_Pragma, case Export): If the entity is a deferred constant,
543 propagate information to full view, which is the one elaborated by the
545 (Make_Inline): the pragma is effective if it applies to an internally
546 generated subprogram declaration for a body that carries the pragma.
547 (Analyze_Pragma, case Optimize_Alignment): Set new flag
548 Optimize_Alignment_Local.
549 (Analyze_PPC_In_Decl_Part): New procedure
550 (Get_Pragma_Arg): Moved to outer level
551 (Check_Precondition_Postcondition): Change to allow new visibility
552 rules for package spec
553 (Analyze_Pragma, case Check_Policy): Change placement rules to be
554 same as pragma Suppress/Unsuppress.
555 Change name In_Default_Expression => In_Spec_Expression
556 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
557 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
558 (Check_Precondition_Postcondition): Do proper visibility preanalysis
559 for the case of these pragmas appearing in the spec.
560 (Check_Enabled): New function
561 (Initialize): New procedure
562 (Tree_Read): New procedure
563 (Tree_Write): New procedure
564 (Check_Precondition_Postcondition): New procedure
565 Implement pragmas Check and Check_Policy
566 Merge Assert processing with Check
568 * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
569 New warning flag -gnatw.e
571 * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
572 returning whether a task (or main procedure) has a pragma
574 (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
575 (or main procedure) has a pragma Relative_Deadline.
576 Add Next_Pragma field to N_Pragma node
577 (PPC_Enabled): New flag
578 (Next_Pragma): Now used for Pre/Postcondition processing
580 * snames.h, snames.ads, snames.adb: New standard name
582 Add entry for 'Invalid_Value attribute
583 Add entry for new attribute Has_Tagged_Values
584 Add entry for Enum_Val attribute
585 Add new standard names Aggregate, Configuration and Library.
588 Add Pragma_Precondition
589 Add Pragma_Postcondition
591 New standard name Archive_Builder_Append_Option
592 (Preset_Names): Add _relative_deadline and relative_deadline definitions
593 There was also a missing non_preemptive_within_priorities.
594 (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
596 Add support for pragmas Check and Check_Policy
598 * tree_gen.adb: Call Sem_Aux.Tree_Write
600 * tree_in.adb: Call Sem_Aux.Tree_Read
602 * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
605 * exp_intr.adb (Expand_Source_Info): New Build_Location calling
608 * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
609 (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
611 (Expand_Pragma_Check): New procedure
613 * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
616 * sinfo.adb (PPC_Enabled): New flag
618 2008-04-08 Robert Dewar <dewar@adacore.com>
619 Gary Dismukes <dismukes@adacore.com>
620 Javier Miranda <miranda@adacore.com>
621 Ed Schonberg <schonberg@adacore.com>
623 * fe.h: Remove global Optimize_Alignment flag, no longer used
625 * layout.adb: Test Optimize_Alignment flags rather than global switch
627 * lib.ads, lib.adb: New OA_Setting field in library record
629 * lib-load.adb: New OA_Setting field in library record
631 * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
632 units mentioned in limited_with_ clauses in the ali file, with an
634 New Ox fields in U line
636 * opt.adb: New flag Optimize_Alignment_Local
637 (Check_Policy_List[_Config]): New flags
639 * opt.ads (Invalid_Value_Used): New flag
640 New switch Optimize_Alignment_Local
641 (Warn_On_Parameter_Order): New flag
642 (Check_Policy_List[_Config]): New flags
644 * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
645 limited_with clauses.
646 New data structures for Optimize_Alignment
648 * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
650 (Check_Consistent_Optimize_Alignment): Rework for new structure
651 (Check_Consistent_Restrictions): Fix incorrect error message
653 sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
654 created class-wide type (to the Parent field of the specific type).
655 (Install_Siblings): Handle properly private_with_clauses on subprogram
656 bodies and on generic units.
657 (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
658 illegal limited_with_clause that names a non-existent package.
659 (Check_Body_Required): Determine whether a unit named a limited_with
661 (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
662 Capture Optimize_Alignment settings to set new OA_Setting field in
664 (Build_Limited_Views): Include task and protected type declarations.
666 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
667 case of a possible constant redeclaration where the current object is
668 an entry index constant.
669 (Analyze_Object_Declaration): Generate an error in case of CPP
670 class-wide object initialization.
671 (Analyze_Object_Declaration): Add extra information on warnings for
672 declaration of unconstrained objects.
673 (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
674 conflicts with the setting of Stored_Constraint in the case where the
675 access type entity has already been created as an E_Incomplete_Type due
676 to a limited with clause.
677 Use new Is_Standard_Character_Type predicate
678 (Analyze_Object_Declaration): Apply access_constant check only after
679 expression has been resolved, given that it may be overloaded with
680 several access types.
681 (Constant_Redeclaration): Additional legality checks for deferred
682 constant declarations tha involve anonymous access types and/or null
683 exclusion indicators.
684 (Analyze_Type_Declaration): Set Optimize_Alignment flags
685 (Analyze_Subtype_Declaration): Ditto
686 (Analyze_Object_Declaration): Ditto
687 (Analyze_Object_Declaration): Don't count tasks in generics
688 Change name In_Default_Expression => In_Spec_Expression
689 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
690 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
691 (Process_Discriminants): Additional check for illegal use of default
692 expressions in access discriminant specifications in a type that is not
694 (Check_Abstract_Overriding): If an inherited function dispaches on an
695 access result, it must be overridden, even if the type is a null
697 (Derive_Subprogram): The formals of the derived subprogram have the
698 names and defaults of the parent subprogram, even if the type is
699 obtained from the actual subprogram.
700 (Derive_Subprogram): In the presence of interfaces, a formal of an
701 inherited operation has the derived type not only if it descends from
702 the type of the formal of the parent operation, but also if it
703 implements it. This is relevant for the renamings created for the
704 primitive operations of the actual for a formal derived type.
705 (Is_Progenitor): New predicate, to determine whether the type of a
706 formal in the parent operation must be replaced by the derived type.
708 * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
709 predicate recursive to handle components that have a user-defined
710 Initialize procedure. Handle controlled derived types whose ancestor
711 has a user-defined Initialize procedured.
712 (Note_Possible_Modification): Add Sure parameter, generate warning if
713 sure modification of constant
714 Use new Is_Standard_Character_Type predicate
715 (Find_Parameter_Type): when determining whether a protected operation
716 implements an interface operation, retrieve the type of the formal from
717 the entity when the formal is an access parameter or an
718 anonymous-access-to-subprogram.
719 Move Copy_Parameter_List to sem_util, for use when building stubbed
721 (Has_Access_Values): Tagged types now return False
722 (Within_HSS_Or_If): New procedure
723 (Set_Optimize_Alignment_Flags): New procedure
724 Change name In_Default_Expression => In_Spec_Expression
725 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
726 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
728 2008-04-08 Tristan Gingold <gingold@adacore.com>
730 * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
732 2008-04-08 Tristan Gingold <gingold@adacore.com>
736 * cuintp.c: Fix 16 bits issue for AVR.
737 On AVR, integer is 16 bits, so it can't be used to do math with
739 So use long_integer instead.
741 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
743 * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
744 System.OS_Primitives.
745 Change type of various constants, parameters and local variables from
746 Time to representation type OS_Time.
747 (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
748 Remove the declaration of constant Mili_F from several routines. New
749 body for internal package Conversions_Operations.
750 (Time_Of): Add default parameters for several formals.
752 * a-caldel.adb: Minor reformatting
754 * a-calend.ads, a-calend.adb: New body for internal package
755 Conversions_Operations.
756 (Time_Of): Add default parameters for several formals.
758 * Makefile.rtl: Add a-ststop
759 Add Ada.Calendar.Conversions to the list of runtime files.
762 * a-calcon.adb, a-calcon.ads: New files.
764 2008-04-08 Jose Ruiz <ruiz@adacore.com>
765 Tristan Gingold <gingold@adacore.com>
767 * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
768 (Install_Restricted_Handlers): New procedure
769 which is a simplified version of Install_Handlers that does not store
770 previously installed.
772 * s-interr-vxworks.adb: Fix ACATS cxc3001
773 On VxWorks interrupts can't be detached.
774 (Install_Restricted_Handlers): New procedure.
776 * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
779 2008-04-08 Olivier Hainque <hainque@adacore.com>
781 * s-intman-vxworks.ads, s-intman-vxworks.adb
782 (Map_And_Raise_Exception): Remove. Was an import of only part of the
783 required services already implemented elsewhere.
784 (Notify_Exception): Delete body, import __gnat_error_handler instead.
785 (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
786 argument passed to the handler, which we need for ZCX propagation
789 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
791 * adaint.h, adaint.c (__gnat_current_time_string): New routine.
793 * g-timsta.adb, g-timsta.ads: New files.
795 2008-04-08 Robert Dewar <dewar@adacore.com>
797 * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
798 (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
799 (Raise_Exception_Always): Fix documentation accordingly
801 2008-04-08 Robert Dewar <dewar@adacore.com>
803 * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
806 * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
809 2008-04-08 Javier Miranda <miranda@adacore.com>
810 Robert Dewar <dewar@adacore.com>
811 Ed Schonberg <schonberg@adacore.com>
813 * a-tags.adb (Register_Interface_Offset): New subprogram.
814 (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
815 (To_Predef_Prims_Table_Ptr): Removed.
817 (To_Acc_Size): Removed.
818 (Parent_Size): Modified to the call the subprogram returning the size of
819 the parent by means of the new TSD component Size_Func.
821 * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
822 (DT_Offset_To_Top_Offset): New constant value that is used to generate
823 code referencing the Offset_To_Top component of the dispatch table's
825 (Prim_Ptr): New declaration of access to procedure. Used to avoid the
826 use of 'address to initialize dispatch table slots.
827 (Size_Func): New component of the TSD. Used by the run-time to call the
828 size primitive of the tagged type.
830 * checks.adb (Apply_Access_Check): Avoid check when accessing the
831 Offset_To_Top component of a dispatch table.
832 (Null_Exclusion_Static_Checks): If the non-null access type appears in a
833 deferred constant declaration. do not add a null expression, to prevent
834 spurious errors when full declaration is analyzed.
835 (Apply_Discriminant_Check): If both discriminant constraints share a
836 node which is not static but has no side effects, do not generate a
837 check for that discriminant.
838 (Generate_Index_Checks): Set Name_Req to true in call to duplicate
839 subexpr, since the prefix of an attribute is a name.
841 * checks.ads: Fix nit in comment.
843 * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
844 and body of predefined primitives in case of CPP tagged type
846 (Freeze_Type): Deal properly with no storage pool case
847 (Make_Predefined_Primitive_Specs): Generate specification of abstract
848 primitive Deep_Adjust if a nonlimited interface is derived from a
850 (Build_Dcheck_Functions): Create discriminant-checking functions only
851 for variants that have some component(s).
852 (Build_Slice_Assignment): In expanded code for slice assignment, handle
853 properly the case where the slice bounds extend to the last value of the
854 underlying representation.
855 (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
856 (Is_Variable_Size_Record): An array component has a static size if
857 index bounds are enumeration literals.
859 * exp_disp.adb (Make_DT): Use the first subtype to determine whether
860 an external tag has been specified for the type.
861 (Building_Static_DT): Add missing support for private types.
862 (Make_DT): Add declaration of Parent_Typ to ensure consistent access
863 to the entity associated with the parent of Typ. This is done to
864 avoid wrong access when the parent is a private type.
865 (Expand_Interface_Conversion): Improve error message when the
866 configurable runtime has no support for dynamic interface conversion.
867 (Expand_Interface_Thunk): Add missing support to interface types in
868 configurable runtime.
869 (Expand_Dispatching_Call): remove obsolete code.
870 (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
871 ensure that all subtypes and aggregates associated with dispatch
872 tables have the attribute Is_Dispatch_Table_Entity set to true.
873 (Register_Primitive): Rename one variable to improve code reading.
874 Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
875 of the pointer to the 'size primitive in the TSD.
877 * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
878 (RE_Offset_To_Top_Ptr): New entity.
879 (RE_Register_Interface_Offset): New entity.
880 (RE_Set_Dynamic_Offset_To_Top): New entity.
881 (RE_Set_Offset_To_Top): Removed entity.
882 (RE_Prim_Ptr): New entity
883 (RE_Size_Func): New entity
884 (RE_Size_Ptr): New entity
885 (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
886 (Ada_Dispatching_Child): Define this new subrange.
887 (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
888 RE_Time_Span, and RE_Time_Span_Zero).
889 (RE_Unit_Table): Add new required run-time calls
891 * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
894 * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
895 (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
896 initializes the Offset_To_Top component of a dispatch table.
897 (Build_Predef_Prims): Removed.
898 (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
900 (Build_Set_Size_Function): New subprogram.
902 * exp_ch13.adb: Do not generate storage variable for storage_size zero
903 (Expand): Handle setting/restoring flag Inside_Freezing_Actions
905 2008-04-08 Robert Dewar <dewar@adacore.com>
907 * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
908 computing Fore when Exp > 0
910 2008-04-08 Robert Dewar <dewar@adacore.com>
912 * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
914 * errout.adb: Remove Big_String_Ptr declarations (now in Types)
915 Change name Is_Style_Msg to Is_Style_Or_Info_Msg
917 * fmap.adb: Remove Big_String declarations (now in Types)
918 (No_Mapping_File): New Boolean global variable
919 (Initialize): When mapping file cannot be read, set No_Mapping_File to
921 (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
922 tables were empty before adding entries, open the mapping file
923 with Truncate = True, instead of delete/re-create.
925 * fname-sf.adb: Remove Big_String declarations (now in Types)
927 * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
928 s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
931 * table.ads: Add for Table_Ptr'Storage_Size use 0
933 * types.ads: Add Big_String declarations
934 Add Size_Clause of zero for big pointer types
936 2008-04-08 Vincent Celier <celier@adacore.com>
938 * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
939 (Usage): Add line for switch --subdirs=
940 Add new switch -eL, to follow symbolic links when processing project
943 * gnatcmd.adb: Process switches -eL and --subdirs=
944 (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
945 Program_Name to get proper tool names when AAMP_On_Target is set.
946 (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
947 AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
950 * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
951 (Usage): Add lines for switches -eL and --subdirs=
953 * makeusg.adb: Add line for switch --subdirs=
956 (Source_Data): New Boolean component Compiled, defaulted to True
957 (Empty_File_Name: New global variable in private part, initialized in
958 procedure Initialize.
959 (Subdirs_Option): New constant string
960 (Subdirs): New String_Ptr global variable
961 (Language_Config): New component Include_Compatible_Languages
962 (Project_Qualifier): New type for project qualifiers
963 (Project_Data): New component Qualifier
964 (Project_Configuration): New component Archive_Builder_Append_Option
966 * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
967 another imported project indicate the name of this imported project.
968 (Check_File): When a unit is in two project files, indicate the project
969 names and the paths of the source files for each project.
970 (Add_Source): Set Compiled to False if compiler driver is empty. Only
971 set object, dependency and switches file names if Compiled is True.
972 (Process_Compiler): Allow the empty string for value of attribute Driver
973 (Get_Directories): When Subdirs is not null and Object_Dir is not
974 specified, locate and create if necessary the actual object dir.
975 (Locate_Directory): When Subdirs is not empty and Create is not the
976 empty string, locate and create if necessary the actual directory
977 as a subdirectory of directory Name.
978 (Check_Library_Attributes.Check_Library): Allow a project where the only
979 "sources" are header files of file based languages to be imported by
980 library projects, in multi-language mode (gprbuild).
981 (Check_Library_Attributes.Check_Library): In multi-language mode
982 (gprbuild), allow a library project to import a project with no
983 sources, even when this is not declared explicitly.
984 (Check_If_Externally_Built): A virtual project extending an externally
985 built project is also externally built.
986 (Check_Library_Attributes): For a virtual project extending a library
987 project, inherit the library directory.
988 (Process_Project_Level_Array_Attributes): Process new attribute
990 For projects with specified qualifiers "standard", "library" or
991 "abstract", check that the project conforms to the qualifier.
992 (Process_Project_Level_Simple_Attributes): Process new attribute
993 Archive_Builder_Append_Option.
995 * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
996 (Normalize_Compiler_Switches): Only keep compiler switches that are
997 passed to gnat1 by the gcc driver and that are stored in the ALI file
999 Do not take into account switc -save-temps
1001 * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
1002 gprmake is called with -eL.
1003 (Scan_Arg): Recognize switch -eL
1004 (Usage): Add line for switch -eL
1006 * prj.adb (Initialize): Initialize Empty_File_Name
1007 (Project_Empty): New component Qualifier
1009 * prj-attr.ads, prj-attr.adb: New project level attribute
1010 Inherit_Source_Path.
1011 New project level attribute Archive_Builder_Append_Option
1013 * prj-dect.adb: Replace System.Strings by GNAT.Strings.
1015 * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
1016 <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
1017 upward compatibility.
1019 * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
1020 each Trying ..." on different lines.
1021 (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
1022 is "configuration" when not in configuration. Fail when in configuration
1023 when a specified qualifier is other than "configuration".
1025 * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
1026 full associative array together.
1027 (Recursive_Process): Put the project qualifier in the project data
1029 * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
1030 (Set_Project_Qualifier_Of): New procedure
1032 2008-04-08 Robert Dewar <dewar@adacore.com>
1034 * errout.ads: Update comments for new handling of info: messages
1036 * erroutc.adb (Matches): New procedure
1037 (Warning_Specifically_Suppressed): Modified to handle multiple * chars
1038 (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
1039 info messages as well as style messages.
1041 * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
1043 * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
1045 (Check_A_Call): Special "info: " warnings now have ? in the text
1046 (Elab_Warning): Use info message in static case
1048 2008-04-08 Ed Schonberg <schonberg@adacore.com>
1050 * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
1051 whether an array aggregate with static bounds and scalar components
1052 should be expanded into a static constant.
1054 2008-04-08 Gary Dismukes <dismukes@adacore.com>
1055 Ed Schonberg <schonberg@adacore.com>
1056 Robert Dewar <dewar@adacore.com>
1058 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
1059 Has_Stream_Attribute_ Definition when checking for available stream
1060 attributes on parameters of a limited type in Ada 2005. Necessary for
1061 proper recognition of visible stream attribute clauses.
1062 (Has_Stream_Attribute_Definition): If the type is derived from a
1063 private type, then use the derived type's underlying type for checking
1064 whether it has stream attributes.
1065 (Validate_Object_Declaration): The check for a user-defined Initialize
1066 procedure applies also to types with controlled components or a
1067 controlled ancestor.
1068 Reject an object declaration in a preelaborated unit if the type is a
1069 controlled type with an overriding Initialize procedure.
1070 (Validate_Remote_Access_To_Class_Wide_Type): Return without further
1071 checking when the parent of a dereference is a selected component and
1072 the name has not been analyzed.
1074 * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
1075 prefixes that are invalid explicit dereferences of remote
1076 access-to-class-wide values, first checking whether the selected
1077 component is a prefixed form of call to a tagged operation.
1078 (Analyze_Call): Remove code that issues an error for limited function
1079 calls in illegal contexts, as we now support all of the contexts that
1080 were forbidden here.
1081 Allow a function call that returns a task.and appears as the
1082 prefix of a selected component.
1083 (Analyze_Reference): Give error message if we try to make a 'Reference
1084 for an object that is atomic/aliased without its type having the
1085 corresponding attribute.
1086 (Analyze_Call): Remove condition checking for attributes to allow
1087 calls to functions with inherently limited results as prefixes of
1088 attributes. Remove related comment about Class attributes.
1089 (Analyze_Selected_Component): If the prefix is a remote type, check
1090 whether this is a prefixed call before reporting an error.
1091 (Complete_Object_Operation): If the controlling formal is an access to
1092 variable reject an actual that is a constant or an access to one.
1093 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
1094 primitive operations from base type.
1096 * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
1098 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
1099 (Expand_N_Selected_Component): Test for prefix that is a build-in-place
1100 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
1101 (Expand_N_Slice): Test for prefix that is a build-in-place function call
1102 and call Make_Build_In_Place_Call_In_Anonymous_Context.
1103 (Analyze_Call): Remove code that issues an error for limited function
1104 calls in illegal contexts, as we now support all of the contexts that
1105 were forbidden here.
1106 New calling sequence for Get_Simple_Init_Val
1107 (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
1108 (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
1110 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
1111 Ed Schonberg <schonberg@adacore.com>
1112 Robert Dewar <dewar@adacore.com>
1114 * exp_ch2.adb: Minor reformatting.
1115 (Expand_Entry_Index_Parameter): Set the type of the identifier.
1116 (Expand_Entry_Reference): Add call to Expand_Protected_Component.
1117 (Expand_Protected_Component): New routine.
1118 (Expand_Protected_Private): Removed.
1119 Add Sure parameter to Note_Possible_Modification calls
1121 * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
1122 generated subprogram declaration must inherit the overriding indicator
1123 from the instantiation node.
1124 (Validate_Access_Type_Instance): If the designated type of the actual is
1125 a limited view, use the available view in all cases, not only if the
1126 type is an incomplete type.
1127 (Instantiate_Object): Actual is illegal if the formal is null-excluding
1128 and the actual subtype does not exclude null.
1129 (Process_Default): Handle properly abstract formal subprograms.
1130 (Check_Formal_Package_Instance): Handle properly defaulted formal
1131 subprograms in a partially parameterized formal package.
1132 Add Sure parameter to Note_Possible_Modification calls
1133 (Validate_Derived_Type_Instance): if the formal is non-limited, the
1134 actual cannot be limited.
1135 (Collect_Previous_Instances): Generate instance bodies for subprograms
1138 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
1140 Add Sure parameter to Note_Possible_Modification calls
1141 (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
1142 (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
1143 constant overlaid by variable and issue warning.
1144 Use new Is_Standard_Character_Type predicate
1145 (Analyze_Record_Representation_Clause): Check that the specified
1146 Last_Bit is not less than First_Bit - 1.
1147 (Analyze_Attribute_Definition_Clause, case Address): Check for
1148 self-referential address clause
1150 * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
1151 detection mechanism when the lhs is a prival.
1152 (Analyze_Assignment): Call Check_Unprotected_Access to detect
1153 assignment of a pointer to protected data, to an object declared
1154 outside of the protected object.
1155 (Analyze_Loop_Statement): Check for unreachable code after loop
1156 Add Sure parameter to Note_Possible_Modication calls
1157 Protect analysis from previous syntax error such as a scope mismatch
1159 (Analyze_Assignment_Statement): The assignment is illegal if the
1160 left-hand is an interface.
1162 * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
1163 violation of restriction No_Implicit_Conditionals
1164 Add Sure parameter to Note_Possible_Modication calls
1165 Use new Is_Standard_Character_Type predicate
1166 (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
1167 call as operator. Fixes problems (e.g. validity checking) which
1168 come from the result looking as though it does not come from source).
1169 (Resolve_Call): Check case of name in named parameter if style checks
1171 (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
1172 from the checking that such calls should not occur from an entry body.
1173 (Resolve_Call): If the return type of an Inline_Always function
1174 requires the secondary stack, create a transient scope for the call
1175 if the body of the function is not available for inlining.
1176 (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
1177 that are actuals for in-out formals.
1178 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
1179 primitive operations from base type.
1180 (Analyze_Selected_Component): If the context is a call to a protected
1181 operation the parent may be an indexed component prior to expansion.
1182 (Resolve_Actuals): If an actual is of a protected subtype, use its
1183 base type to determine whether a conversion to the corresponding record
1185 (Resolve_Short_Circuit): Handle pragma Check
1187 * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
1188 Use new Is_Standard_Character_Type predicate
1189 (Eval_Relational_Op): Catch more cases of string comparison
1191 2008-04-08 Robert Dewar <dewar@adacore.com>
1192 Gary Dismukes <dismukes@adacore.com>
1194 * s-rident.ads: Add No_Default_Initialization restriction
1197 (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
1198 (Set_TSS): Handle No_Default_Initialization case
1200 * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
1201 No_Default_Initialization
1202 (Expand_N_Subprogram_Body): Remove redundant initialization of out
1203 parameters when Normalize_Scalars is active.
1204 (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
1205 Fix casing error in formal parameter name in call
1206 (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
1207 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
1208 dispatching call on VM targets.
1210 2008-04-08 Gary Dismukes <dismukes@adacore.com>
1211 Thomas Quinot <quinot@adacore.com>
1213 * exp_ch7.adb (Find_Final_List): Change the test for generating a
1214 selected component from an access type's Associated_Final_Chain to
1215 check for the presence of that field, rather than assuming it exists
1216 for all named access types.
1217 (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
1218 procedure to call at the end of the generated cleanup procedure.
1219 (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
1220 and an At_End_Proc already exists in the handled sequence of statements
1221 for which cleanup actions are being expanded, the original cleanup
1222 action must be preserved.
1224 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
1225 Ed Schonberg <schonberg@adacore.com>
1226 Robert Dewar <dewar@adacore.com>
1227 Gary Dismukes <dismukes@adacore.com>
1229 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
1230 Build_Unprotected_Subprogram_Body): Generate debug info for
1231 declarations related to the handling of private data in task and
1233 (Debug_Private_Data_Declarations): New subprogram.
1234 (Install_Private_Data_Declarations): Remove all debug info flagging.
1235 This is now done by Debug_Private_Data_Declarations at the correct
1237 (Build_Simple_Entry_Call): If the task name is a function call, expand
1238 the prefix into an object declaration, and make the surrounding block a
1240 (Build_Master_Entity): An internal block is a master if it wraps a call.
1241 Code reformatting, update comments. Code clean up.
1242 (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
1243 (Replicate_Entry_Formals): If the formal is an access parameter or
1244 anonymous access to subprogram, copy the original tree to create new
1245 entities for the formals of the subprogram.
1246 (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
1247 for tasks to store the value passed using pragma Relative_Deadline.
1248 (Make_Task_Create_Call): Add the Relative_Deadline argument to the
1249 run-time call to create a task.
1250 (Build_Wrapper_Spec): If the controlling argument of the interface
1251 operation is an access parameter with a non-null indicator, use the
1252 non-null indicator on the wrapper.
1254 * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
1255 present, which it may not be in the case where the type entity is an
1256 incomplete view brought in by a limited with.
1257 (Analyze_Task_Type): Only retrieve the full view when present, which it
1258 may not be in the case where the type entity is an incomplete view brought
1259 in by a limited with.
1260 (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
1261 private components of a protected type, to prevent the generation of freeze
1262 nodes for which there is no proper scope of elaboration.
1264 * exp_util.ads, exp_util.adb
1265 (Remove_Side_Effects): If the expression is a function call that returns a
1266 task, expand into a declaration to invoke the build_in_place machinery.
1267 (Find_Protection_Object): New routine.
1268 (Remove_Side_Effects): Also make a copy of the value
1269 for attributes whose result is of an elementary type.
1270 (Silly_Boolean_Array_Not_Test): New procedure
1271 (Silly_Boolean_Array_Xor_Test): New procedure
1272 (Is_Volatile_Reference): New function
1273 (Remove_Side_Effects): Use Is_Volatile_Reference
1274 (Possible_Bit_Aligned_Component): Handle slice case properly
1276 * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
1277 case test to Exp_Util
1278 (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
1280 2008-04-08 Thomas Quinot <quinot@adacore.com>
1282 * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
1284 (Add_RACW_Features): When processing an RACW in another unit than the
1285 main unit, set Body_Decls to No_List to indicate that the bodies of
1286 the type's TSS must not be generated.
1287 (GARLIC_Support.Add_RACW_Read_Attribute,
1288 GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
1289 Body_Decls is No_List.
1290 (PolyORB_Support.Add_RACW_Read_Attribute,
1291 PolyORB_Support.Add_RACW_Write_Attribute,
1292 PolyORB_Support.Add_RACW_From_Any,
1293 PolyORB_Support.Add_RACW_To_Any,
1294 PolyORB_Support.Add_RACW_TypeCode): Same.
1295 (Transmit_As_Unconstrained): New function.
1296 (Build_Ordered_Parameters_List): Use the above to order parameters.
1297 (GARLIC_Support.Build_General_Calling_Stubs):
1298 Use the above to determine which parameters to unmarshall using 'Input
1299 at the point where their temporary is declared (as opposed to later on
1301 (PolyORB_Support.Build_General_Calling_Stubs):
1302 Use the above to determine which parameters to unmarshall using From_Any
1303 at the point where their temporary is declared (as opposed to later on
1304 with an assignment).
1306 2008-04-08 Ed Schonberg <schonberg@adacore.com>
1308 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
1309 an Input function for an access type, do not perform default
1310 initialization on the local variable that receives the value, to
1311 prevent spurious warnings when the type is null-excluding.
1313 2008-04-08 Robert Dewar <dewar@adacore.com>
1314 Ed Schonberg <schonberg@adacore.com>
1316 * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
1318 (Size_Known): Generic formal scalar types have known at compile
1319 time size, so remove check.
1320 Fix casing error in formal parameter name in call
1321 (Freeze_Subprogram): If the subprogram is a user-defined operator,
1322 recheck its overriding indication.
1324 2008-04-08 Vincent Celier <celier@adacore.com>
1326 * gnat1drv.adb: Send all messages indicating an error to standard error
1328 2008-04-08 Robert Dewar <dewar@adacore.com>
1330 * gnatbind.adb (Restriction_Could_Be_Set): New procedure
1331 (List_Applicable_Restrictions): Do not list existing restrictions
1333 2008-04-08 Thomas Quinot <quinot@adacore.com>
1335 * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
1336 add a pointer to generic sockets literature
1337 do not mention that the given example is "typical" usage.
1338 Remove obsolete comment about multicast not being supported on Windows.
1339 (Connect_Socket): Make Server mode IN rather than IN OUT
1340 since this formal is never modified.
1342 2008-04-08 Robert Dewar <dewar@adacore.com>
1344 * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
1345 the declaration for some different entity.
1346 (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
1347 list is precent (following the parent subtype indication), display
1348 appropriate "and" keyword.
1350 * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
1351 Remove unnecessary calls to Init_Size_Align and Init_Esize.
1352 Add notes on use of Parent field of an Itype
1354 2008-04-08 Ed Schonberg <schonberg@adacore.com>
1355 Robert Dewar <dewar@adacore.com>
1356 Gary Dismukes <dismukes@adacore.com>
1358 * lib-xref.adb (Is_On_LHS): Remove dead code
1359 (Output_Overriden_Op): If the overridden operation is itself inherited,
1360 list the ancestor operation, which is the one whose body or absstract
1361 specification is actually being overridden. For source navigation
1364 * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
1365 operation is primitive for the type.
1366 (Declare_Inherited_Private_Subprograms): If the new operation overrides
1367 an inherited private subprogram, set properly the Overridden_Operation
1368 attribute, for better cross-reference information.
1369 (Analyze_Package_Specification): Do late analysis of spec PPCs
1370 (Install_Private_Declaration, Uninstall_Declarations): Save/restore
1371 properly the full view and underlying full views of a private type in a
1372 child unit, whose full view is derived from a private type in a parent
1373 unit, and whose own full view becomes visible in the child body.
1375 * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
1376 primitive operation after the type has been frozen, add an explicit
1377 reference to the type and the operation, because other primitive
1378 references have been emitted already.
1379 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
1380 dispatching call on VM targets.
1382 2008-04-08 Vincent Celier <celier@adacore.com>
1383 Thomas Quinot <quinot@adacore.com>
1385 * make.adb: (Gnatmake_Called): Remove, no longer necessary
1386 (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
1387 is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
1388 (Insert_Project_Sources): Take into account index in multi-unit source
1390 After building a library project, delete all temporary files.
1391 (Initialize): Reset current output after parsing project file.
1392 (Collect_Arguments_And_Compile): Never insert in the queue the sources
1393 of library projects that are externally built.
1394 Put file name in error and inform messages if -df is used
1395 (Display): If invoked with -d7, do not display path names, but only
1398 * makeutl.ads (Path_Or_File_Name): New function
1399 (Path_Or_File_Name): New function
1401 2008-04-08 Arnaud Charlet <charlet@adacore.com>
1403 * Make-lang.in: Disable warnings during first stage of bootstrap
1405 Update dependencies.
1407 2008-04-08 Vincent Celier <celier@adacore.com>
1409 * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
1410 case to decide if ALI object file is included in library.
1411 (Build_Library): Never attempt to build a library if the project is
1414 2008-04-08 Thomas Quinot <quinot@adacore.com>
1416 * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
1417 (No_List) is defined to return Empty.
1419 2008-04-08 Jose Ruiz <ruiz@adacore.com>
1421 * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
1424 (Read_Default_Search_Dirs): Do not consider spaces as path separators
1425 because spaces may be part of legal paths.
1427 2008-04-08 Robert Dewar <dewar@adacore.com>
1429 * par-ch11.adb (P_Exception_Handler): Check indentation level for
1432 2008-04-08 Ed Schonberg <schonberg@adacore.com>
1434 * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
1435 in a type declaration, if this is not an interface declaration or
1436 private type extension.
1438 2008-04-08 Vincent Celier <celier@adacore.com>
1440 * prj-util.adb (Executable_Of): New String parameter Language. When
1441 Ada_Main is False and Language is not empty, attempt to remove the body
1442 suffix or the spec suffix of the language to get the base of the
1443 executable file name.
1444 (Put): New Boolean parameter Lower_Case, defauilted to False. When
1445 Lower_Case is True, put the value in lower case in the name list.
1446 (Executable_Of): If there is no executable suffix in the configuration,
1447 then do not modify Executable_Extension_On_Target.
1449 * prj-util.ads (Executable_Of): New String parameter Language,
1450 defaulted to the empty string.
1451 (Put): New Boolean parameter Lower_Case, defauilted to False
1453 2008-04-08 Robert Dewar <dewar@adacore.com>
1455 * scng.adb (Scan_Identifier): Handle case of identifier starting with
1456 wide character using UTF-8 encoding.
1458 2008-04-08 Javier Miranda <miranda@adacore.com>
1460 * sem.adb (Analyze): Consider case in which we analyze an empty node
1461 that was generated by a call to a runtime function that is not
1462 available under the configurable runtime.
1464 * sem.ads (Inside_Freezing_Actions): New flag.
1465 (Save_Check_Policy_List): New field in scope stack entry
1467 2008-04-08 Ed Schonberg <schonberg@adacore.com>
1468 Robert Dewar <dewar@adacore.com>
1470 * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
1471 the ancestor part of an extension aggregate for a limited type.
1472 (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
1473 enumeration index bounds.
1474 (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
1475 when array is too short.
1476 (Check_Expr_OK_In_Limited_Aggregate): Move function
1477 Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
1479 (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
1480 Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
1481 component associations.
1482 (Check_Non_Limited_Type): Moved to outer level and renamed.
1483 (Resolve_Record_Aggregate): In an extension aggregate, an association
1484 with a box initialization can only designate a component of the
1485 extension, not a component inherited from the given ancestor
1487 * sem_case.adb: Use new Is_Standard_Character_Type predicate
1489 2008-04-08 Robert Dewar <dewar@adacore.com>
1491 * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
1493 (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
1494 Properly handle case where Aft > Scale and input number is less than
1497 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
1499 * s-stoele.ads, s-soflin.ads: Move the location of
1500 Dummy_Communication_Block from System.Storage_Elements to
1503 * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
1504 emulate Communication_Block in certain scenarios.
1506 2008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
1508 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
1510 Add new subtype S_WWC, unchecked conversion routines From_WWC and
1512 (I_WWC, O_WWC): New routines for input and output of
1513 Wide_Wide_Character.
1515 2008-04-08 Robert Dewar <dewar@adacore.com>
1517 * stringt.adb (Write_String_Table_Entry): Handle wide characters
1520 2008-04-08 Robert Dewar <dewar@adacore.com>
1522 * styleg.adb (Check_Comment): Allow special char after -- in
1523 non-end-of-line case
1525 2008-04-08 Robert Dewar <dewar@adacore.com>
1527 * stylesw.adb: Implement -gnaty + - y options
1528 (Set_GNAT_Style_Check_Options): Includ I in style check string
1530 * stylesw.ads: Add comments for new style switch options
1532 2008-04-08 Sergey Rybin <rybin@adacore.com>
1534 * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
1535 to the set of the GNAT components needed by ASIS.
1537 2008-04-08 Bob Duff <duff@adacore.com>
1539 * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
1541 2008-04-08 Tristan Gingold <gingold@adacore.com>
1543 * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
1544 Improve error message generation.
1546 2008-04-08 Vincent Celier <celier@adacore.com>
1548 * a-direct.adb (Start_Search): Check for Name_Error before checking for
1549 Use_Error, as specified in the RM. Check if directory is open and raise
1550 Use_Error if it is not.
1552 2008-04-08 Vincent Celier <celier@adacore.com>
1553 Robert Dewar <dewar@adacore.com>
1555 * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
1556 AAMP_On_Target is set.
1558 * vms_data.ads: Add NOxxx to style check switch list
1559 Add entry COMPONENTS for -gnatVe
1560 Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
1562 (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
1563 Add qualifiers for gnatmetric coupling options
1564 Add note that -gnata enables all checks
1565 Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
1566 Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
1567 New warning flag -gnatw.e
1569 * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
1570 Add entry for -gnatyN (forgotten before)
1571 Line for new warning switch -gnatw.p
1572 New warning flag -gnatw.e
1574 * gnat_ugn.texi: Add documentation fpr project file switch -aP
1575 Document -gnaty - + y
1576 Replace occurences of "package specification" with "package spec"
1577 Define preprocessing symbols in documentation of gnatprep
1578 Clarify reason for distinguishing overflow checking
1579 Add documentation for project-aware tool switches -eL and --subdirs=
1580 Complete list of configuration pragmas
1581 Specify that, even when gnatmake switch -x is used, mains on the command
1582 line need to be sources of project files.
1583 Editing of gnatcheck/gnatmetric doc.
1584 Add documentation for -gnatw.p/-gnatw.P
1585 Add missing documentation for -fno-inline-functions.
1586 Add documentation for -gnatw.e
1588 * gnat_rm.texi: Add documentation for No_Default_Initialization
1589 Replace occurences of "package specification" with "package spec"
1590 Document use of * in Warnings Off string
1591 Update documentation of alignment/component clauses.
1592 Add documentation for Invalid_Value
1593 Document new consistency rule for Optimize_Alignment
1594 Add documentation for Precondition and Postcondition pragmas
1595 Add documentation for Check and Check_Policy pragmas
1596 Document new Enum_Val attribute
1597 Remove requirement for static string in pragma Assert
1598 Add documentation on GNAT.Time_Stamp
1600 * ug_words: add entry for -gnatVe
1601 Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
1602 Add entry for -gnatw.e
1604 * debug.adb: Add missing documentation for d.a flag
1605 Document new -gnatd.a switch.
1606 Add documentation for new gnatmake debug switch -df
1608 2008-04-08 Thomas Quinot <quinot@adacore.com>
1610 * gen-soccon.c: Bump year in copyright notices.
1612 * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
1614 2008-04-08 Eric Botcazou <ebotcazou@adacore.com>
1616 * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
1619 2008-04-08 Robert Dewar <dewar@adacore.com>
1620 Bob Duff <duff@adacore.com>
1622 * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
1623 Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
1625 * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
1627 * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
1629 * g-trasym.ads: Minor comment improvements
1631 * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
1633 * a-sequio.ads, a-direio.ads: improve message for tagged type
1635 * a-strunb.ads: Minor reformatting
1637 * a-tifiio.adb: Minor reformatting
1639 * atree.adb (Fix_Parents): Use clearer names for formals
1640 Cleanup and simplify code
1641 Use named notation in calls
1643 * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
1646 * uintp.adb: Used named notation for some confusing calls
1648 * bindusg.adb: Minor change in one line of output
1650 * cstand.adb: Minor reformatting of src representation of Standard
1652 * a-assert.ads: Add comment.
1654 * g-decstr.adb: Fix bad indentation
1656 * expander.ads, expander.adb: Code clean up.
1658 * sem_dist.ads: Minor comment improvement
1660 * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
1661 s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
1663 * i-cstrin.adb: Fix casing error in formal parameter name in call
1665 2008-04-08 Ed Schonberg <schonberg@adacore.com>
1667 * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
1668 mentioned in limited_with_clauses to do create semantic dependencies
1669 even though they appear in the ali file.
1671 2008-04-08 Emmanuel Briot <briot@adacore.com>
1673 * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
1675 (Get_Configuration): New subprogram.
1677 * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
1678 These optional parameters help preserve the casing of the project's name
1679 when pretty-printing.
1681 2008-04-08 Jerome Lambourg <lambourg@adacore.com>
1682 Arnaud Charlet <charlet@adacore.com>
1684 * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
1685 then use __gnat_set_exit_status to report the returned status code.
1687 * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
1688 messages on .NET, since some constructs of the language are not
1691 * gnatlink.adb (Gnatlink): In case the command line is too long for the
1692 .NET linker, gnatlink now concatenate all .il files and pass this to
1695 2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
1696 Xavier Grave <grave@ipno.in2p3.fr>
1698 * Makefile.in: Add make ifeq define for mips/mipsel support.
1699 * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
1700 system-linux-mips.ads: New files.
1702 2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
1704 * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
1705 detect systems using GNU libc.
1711 2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
1713 * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
1714 constant constant for sysconf call.
1715 (bit_field): New packed boolean type used by cpu_set_t.
1716 (cpu_set_t): New type corresponding to the C type with
1717 the same name. Note that on the Ada side we use a bit
1718 field array for the affinity mask. There is not need
1719 for the C macro for setting individual bit.
1720 (pthread_setaffinity_np): New imported routine.
1721 * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
1724 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
1726 * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
1728 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
1730 * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
1731 * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
1732 * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
1733 * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
1734 Return by Depressed Stack Pointer.
1736 2008-04-06 Eric Botcazou <ebotcazou@adacore.com>
1738 * decl.c (is_variable_size): Do not unconditionally return false
1739 on non-strict alignment platforms.
1741 2008-04-06 Eric Botcazou <ebotcazou@adacore.com>
1743 * decl.c (rest_of_type_decl_compilation_no_defer): New local function
1744 used to process all the variants of the specified type.
1745 (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
1746 types too. Call rest_of_type_decl_compilation_no_defer if undeferring.
1747 (rest_of_type_decl_compilation): Likewise.
1748 * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
1750 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
1752 * gigi.h (insert_block): Kill.
1753 * utils.c (insert_block): Kill.
1755 2008-04-02 Eric Botcazou <ebotcazou@adacore.com>
1757 * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
1758 type has self-referential size, get the size from the initializing
1759 expression directly if it is also a constant whose nominal type
1760 has self-referential size.
1762 2008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1765 * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
1768 * env.c: Always include crt_externs.h if __APPLE__ is defined.
1769 (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
1771 2008-04-01 Andreas Jaeger <aj@suse.de>
1773 * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
1776 2008-03-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1778 * g-table.adb, g-tasloc.adb, g-traceb.ads,
1779 g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
1780 gnatbind.adb, gnatchop.adb, gnatcmd.adb,
1781 gnatcmd.ads, gnatdll.adb, gnatfind.adb,
1782 gnatlink.adb, gnatmem.adb, gprep.adb,
1783 i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
1784 i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
1785 layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
1786 lib-xref.ads, lib.adb, link.c, live.ads,
1787 make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
1788 mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
1789 misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
1790 mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
1791 namet.adb, namet.h, nlists.adb, nlists.ads,
1792 nlists.h, opt.ads, osint-b.ads, osint-c.adb,
1793 osint-c.ads, osint.adb, osint.ads, output.ads,
1794 par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
1795 par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
1796 par-endh.adb, par-labl.adb, par-prag.adb,
1797 par-sync.adb, par-tchk.adb, par-util.adb,
1798 par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
1799 prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
1800 prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
1801 prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
1803 2008-03-31 Eric Botcazou <ebotcazou@adacore.com>
1805 * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
1806 size if it has overflowed.
1808 2008-03-31 Olivier Hainque <hainque@adacore.com>
1809 Eric Botcazou <ebotcazou@adacore.com>
1811 * utils2.c (find_common_type): Document assumption on t1/t2 vs
1812 lhs/rhs. Force use of lhs type if smaller, whatever the modes.
1814 2008-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1816 * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
1817 einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
1818 exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
1819 exp_pakd.ads, exp_prag.adb, exp_smem.adb,
1820 exp_tss.ads, exp_util.adb, exp_util.ads,
1821 exp_vfpt.adb, freeze.adb, freeze.ads,
1822 frontend.adb, g-alleve.adb, g-altcon.adb,
1823 g-altive.ads, g-alveop.ads, g-alvevi.ads,
1824 g-arrspl.adb, g-busorg.ads, g-calend.adb,
1825 g-calend.ads, g-casuti.ads, g-cgideb.adb,
1826 g-comlin.adb, g-comlin.ads, g-curexc.ads,
1827 g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
1828 g-dirope.adb, g-dirope.ads, g-dynhta.ads,
1829 g-dyntab.adb, g-encstr.ads, g-excact.ads,
1830 g-except.ads, g-expect.ads, g-heasor.adb,
1831 g-hesora.adb, g-hesorg.adb, g-htable.ads,
1832 g-locfil.ads, g-md5.adb, g-md5.ads,
1833 g-memdum.ads, g-moreex.ads, g-os_lib.adb,
1834 g-pehage.adb, g-pehage.ads, g-regexp.adb,
1835 g-regexp.ads, g-regpat.adb, g-regpat.ads,
1836 g-soccon-aix.ads, g-soccon-darwin.ads,
1837 g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
1838 g-soccon-hpux.ads, g-soccon-irix.ads,
1839 g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
1840 g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
1841 g-soccon-mingw.ads, g-soccon-solaris-64.ads,
1842 g-soccon-solaris.ads, g-soccon-tru64.ads,
1843 g-soccon-vms.ads, g-soccon-vxworks.ads,
1844 g-soccon.ads, g-socket.adb, g-socket.ads,
1845 g-socthi-mingw.adb, g-socthi-vms.adb,
1846 g-socthi-vxworks.adb, g-soliop-mingw.ads,
1847 g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
1848 g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
1851 2008-03-27 Eric Botcazou <ebotcazou@adacore.com>
1853 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
1854 if the procedure is imported.
1856 2008-03-26 Arnaud Charlet <charlet@adacore.com>
1858 * adaint.c: Fix warnings.
1860 2008-03-26 Arnaud Charlet <charlet@adacore.com>
1862 * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
1864 2008-03-26 Arnaud Charlet <charlet@adacore.com>
1866 * a-witeio.adb: Fix problem with Current_Output (introduce Self).
1867 Fix problem of status check for null file
1869 2008-03-26 Arnaud Charlet <charlet@adacore.com>
1871 * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
1872 s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
1873 s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
1874 i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
1875 s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
1878 2008-03-26 Thomas Quinot <quinot@adacore.com>
1881 * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
1882 Get_Socket_Option): Add support for Receive_Packet_Info.
1884 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
1885 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
1886 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
1887 g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
1888 g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
1889 new constants SO_REUSEPORT and IP_PKTINFO
1891 2008-03-26 Robert Dewar <dewar@adacore.com>
1893 * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
1894 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
1895 a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
1896 a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
1897 a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
1898 a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
1899 s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
1900 s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
1901 a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
1902 s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
1903 s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
1904 s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
1905 s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
1906 s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
1907 s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
1908 s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
1909 s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
1910 s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
1911 s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
1912 s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
1913 a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
1914 a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
1915 s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
1916 s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
1917 s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
1918 s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
1919 s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
1920 a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
1921 a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
1922 s-tasloc.adb: Minor reformatting.
1924 Remove "used for" sections from comments.
1926 2008-03-26 Robert Dewar <dewar@adacore.com>
1928 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
1929 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
1930 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
1931 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
1932 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
1933 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
1934 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
1935 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
1936 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
1937 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
1938 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
1939 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
1940 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
1941 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
1942 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
1943 double spaced if it fits on one line and otherwise single spaced.
1945 2008-03-26 Arnaud Charlet <charlet@adacore.com>
1947 * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
1948 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
1949 s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
1950 or task info if the thread could not be created.
1952 2008-03-26 Arnaud Charlet <charlet@adacore.com>
1954 * gnatvsn.ads (Library_Version): Bump to 4.4.
1955 (Current_Year): Bump to 2008.
1957 2008-03-26 Robert Dewar <dewar@adacore.com>
1959 * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
1961 * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
1963 * debug.adb: Add debug flags d.r and d.v
1964 Add debug flag .T (Optimize_Alignment (Time))
1965 Add debug flag .S (Optimize_Alignment (Space))
1967 * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
1968 depending on setting of relevant debug flags.
1969 Replace use of Warnings_Off by Has_Warnings_Off
1970 (Freeze_Entity): In circuit for warning on suspicious convention
1971 actuals, do not give warning if subprogram has same entity as formal
1972 type, or if subprogram does not come from source.
1973 (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
1974 if Optimize_Alignment set to Space.
1976 * frontend.adb: Add call to Sem_Warn.Initialize
1977 Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
1978 Reset Optimize_Alignment mode from debug switches .S and .T
1980 * layout.adb (Layout_Composite_Object): Rewritten for
1981 Optimize_Aligment pragma.
1983 * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
1986 * opt.ads, opt.adb: (Optimize_Alignment): New global switch
1988 * par-prag.adb (N_Pragma): Chars field removed, use Chars
1989 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
1990 this change. Add entry for pragma Optimize_Alignment
1992 * sem_prag.adb (N_Pragma): Chars field removed, use Chars
1993 (Pragma_Identifier (..
1994 instead, adjustments throughout to accomodate this change.
1995 (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
1996 (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
1997 Add implementation of pragma Optimize_Alignment
1999 2008-03-26 Vincent Celier <celier@adacore.com>
2001 * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
2002 Improve memory usage to avoid use of stack.
2004 2008-03-26 Robert Dewar <dewar@adacore.com>
2006 * a-teioed.ads: Correct value of Default_Fill
2008 * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
2010 2008-03-26 Robert Dewar <dewar@adacore.com>
2012 * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
2013 with Current_Output (introduce Self).
2015 2008-03-26 Robert Dewar <dewar@adacore.com>
2017 * checks.adb (Ensure_Valid): Capture valid status if possible
2020 2008-03-26 Robert Dewar <dewar@adacore.com>
2022 * stand.ads: Deal with reordering of package standard declarations
2024 * cstand.adb: Put package Standard declarations in proper order
2026 2008-03-26 Robert Dewar <dewar@adacore.com>
2028 * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
2029 (Pragma_Identifier (.. instead.
2030 (OK_To_Reorder_Components): New flag
2031 (Has_Entries): Code cleanup.
2032 (Warnings_Off_Used): New flag
2033 (Warnings_Off_Used_Unmodified): New flag
2034 (Warnings_Off_Used_Unreferenced): New flag
2035 (Has_Warnings_Off): New function
2036 (Has_Unmodified): New function
2037 (Has_Unreferenced): New function
2038 (Is_Trivial_Subprogram): New flag
2039 (Is_Static_Dispatch_Table_Entity): New attribute.
2040 Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
2041 (more consistent with other similar names)
2042 (Access_Subprogram_Type): New classification function
2044 2008-03-26 Robert Dewar <dewar@adacore.com>
2046 * errout.ads: Document new !! insertion sequence
2048 * errout.adb (N_Pragma): Chars field removed, use Chars
2049 (Pragma_Identifier (.. instead.
2050 Replace use of Warnings_Off by Has_Warnings_Off
2051 (Error_Msg_Internal): Don't delete warning ending in !!
2053 2008-03-26 Robert Dewar <dewar@adacore.com>
2055 * par.adb (Check_No_Right_Paren): Removed no longer used
2057 * par-ch10.adb (N_Pragma): Chars field removed, use Chars
2058 (Pragma_Identifier (.. instead.
2060 * par-ch10.adb (P_Subunit): Improvement in error recovery and message
2062 * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
2063 par-ch4.adb: Minor improvements in error recovery and messages.
2065 * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
2068 * par-ch9.adb: Minor improvements in error recovery and messages
2069 (P_Protected): Better error recovery for "protected type x;"
2071 * par-util.adb: Minor improvements in error recovery and messages
2072 (Check_No_Right_Paren): Removed no longer used
2074 2008-03-26 Ed Schonberg <schonberg@adacore.com>
2076 * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
2077 that the prefix of an attribute is the type of the aggregate being
2080 2008-03-26 Javier Miranda <miranda@adacore.com>
2081 Robert Dewar <dewar@adacore.com>
2083 * exp_attr.adb (N_Pragma): Chars field removed.
2084 (Expand_N_Attribute_Reference): If the designated type associated with
2085 attribute 'Unrestricted_Access is a subprogram entity then replace it
2086 by an E_Subprogram_Type itype.
2087 Implement attribute Old
2089 * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
2091 * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
2093 New_Internal_Entity by call to Create_Itype to centralize calls
2094 building itypes, ad propagate the convention of the designated
2095 subprogram. In addition, disable the machinery cleaning constant
2096 indications from all entities in current scope when 'Unrestricted_Access
2097 corresponds with a node initializing a dispatch table slot.
2098 (Analyze_Attribute): Parameterless attributes returning a string or a
2099 type will not be called with improper arguments, so we can remove junk
2100 code that was dealing with this case.
2101 Implement attribute Old
2103 * snames.ads, snames.h, snames.adb: Add entries for attribute Old
2104 Add entry for pragma Optimize_Alignment
2105 New standard names Sync and Synchronize
2107 2008-03-26 Robert Dewar <dewar@adacore.com>
2108 Arnaud Charlet <charlet@adacore.com>
2110 * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
2112 (No_Exception_Propagation_Active): New function.
2113 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
2114 Update comments, and review all uses of No_Exception_Propagation, which
2115 are now correct and in sync with what gigi expects.
2117 * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
2119 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
2120 Update comments, and review all uses of No_Exception_Propagation, which
2121 are now correct and in sync with what gigi expects.
2123 2008-03-26 Ed Schonberg <schonberg@adacore.com>
2125 * sem_ch3.adb (Access_Definition): If the access type is the return
2126 result of a protected function, create an itype reference for it
2127 because usage will be in an inner scope from the point of declaration.
2128 (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
2129 OK_To_Reorder_Components.
2130 (Make_Index): If an overloaded range includes a universal integer
2131 interpretation, resolve to Standard.Integer.
2132 (Analyze_Subtype_Indication): Copy Convention to subtype
2133 (Check_Abstract_Interfaces): Complete semantic checks on the legality of
2134 limited an synchronized progenitors in type declaration and private
2135 extension declarations.
2137 * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
2138 protected subprogram body, determine proper scope from subprogram
2141 2008-03-26 Robert Dewar <dewar@adacore.com>
2143 * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
2146 2008-03-26 Gary Dismukes <dismukes@adacore.com>
2148 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
2149 of a heap allocator for a limited unconstrained function return when
2150 resstriction No_Allocators is active.
2151 (Analyze_Allocator): The restriction No_Allocators is now only checked
2152 on allocators that have Comes_From_Source set, as per RM-H.4(7).
2154 * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
2155 of a heap allocator for a limited unconstrained function return when
2156 resstriction No_Allocators is active.
2157 (Analyze_Allocator): The restriction No_Allocators is now only checked
2158 on allocators that have Comes_From_Source set, as per RM-H.4(7).
2159 (Has_Fixed_Op): If the name in a function call is Standard."*" and the
2160 operands are fixed-point types, the universal_fixed predefined operation
2161 is used, regardless of whether the operand type (s) have a primitive
2162 operation of the same name.
2164 2008-03-26 Javier Miranda <miranda@adacore.com>
2166 * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
2167 Is_Static_Dispatch_Table
2168 (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
2169 to Exchange_Declarations to exchange the private and full-view. Bug
2170 found working in this issue.
2171 (Expand_Dispatching_Call): Propagate the convention of the subprogram
2172 to the subprogram pointer type.
2173 (Make_Secondary_DT): Replace generation of Prim'Address by
2174 Address (Prim'Unrestricted_Access)
2175 (Make_DT): Replace generation of Prim'Address by
2176 Address (Prim'Unrestricted_Access)
2177 (Make_Disp_*_Bodies): When compiling for a restricted profile, use
2178 simple call form for single entry.
2179 (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
2180 tables of predefined primitives).
2181 (Make_Secondary_DT): Add support to handle access to dispatch tables of
2182 predefined primitives.
2183 (Make_Tags): Add entities to Access_Dispatch_Table associated with
2184 access to dispatch tables containing predefined primitives.
2186 * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
2187 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
2189 (Register_Predefined_DT_Entry): Updated to handle the new contents
2190 of attribute Access_Disp_Table (pointers to dispatch tables containing
2191 predefined primitives).
2193 * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
2195 (Find_Interface_ADT): Updated to skip the new contents of attribute
2196 Access_Dispatch_Table (pointers to dispatch tables containing predefined
2199 * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
2201 (Set_Convention): Use new function Is_Access_Subprogram_Type
2202 (Collect_Interfaces_Info): Updated to skip the new contents of attribute
2203 Access_Dispatch_Table (pointers to dispatch tables containing predefined
2206 * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
2207 expanded code avoiding calls to Build_Predef_Prims.
2208 (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
2209 call to Build_Get_Predefined_Prim_Op_Address.
2211 2008-03-26 Javier Miranda <miranda@adacore.com>
2213 * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
2214 subprogram Corresponding_Runtime_Package to know the runtime package
2215 that will provide support to a given protected type.
2217 * exp_ch9.adb (Add_Private_Declarations,
2218 Build_Protected_Subprogram_Call,
2219 Build_Protected_Entry, Build_Simple_Entry_Call,
2220 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
2221 Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
2222 cleanup using the new centralized subprogram Corresponding_Runtime
2223 Package to know the runtime package that provides support to
2224 a given protected type.
2226 2008-03-26 Ed Schonberg <schonberg@adacore.com>
2228 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
2229 assignment is within the initialization procedure for a packed array,
2230 and Initialize_Scalars is enabled, compile right-hand side with checks
2231 off, because the value is purposely out of range.
2233 2008-03-26 Vincent Celier <celier@adacore.com>
2235 * gnatcmd.adb: Add processing for GNAT SYNC
2237 * vms_conv.ads: (Command_Type): Add command Sync
2239 * vms_conv.adb (Initialize): Add Command_List data for new command Sync
2241 * vms_data.ads: Add entries for -gnatw.w
2242 Add qualifier for gnatstub --header-file option
2243 Add switches for GNAT SYNC
2245 * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
2246 (Add_Package_Name): New procedure
2247 (Package_Name_List): New function
2248 (Initialize): Add known package names to the list
2249 (Register_New_Package): Add the new package name to the list
2251 2008-03-26 Robert Dewar <dewar@adacore.com>
2253 * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
2254 s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
2255 Raise_Exception by "raise with" construct.
2257 2008-03-26 Pascal Obry <obry@adacore.com>
2259 * Makefile.in: Add proper GNAT.Serial_Communications implementation on
2260 supported platforms.
2262 * Makefile.rtl: Add g-sercom.o.
2264 * impunit.adb: Add g-sercom.adb.
2266 * s-crtl.ads (open): New routine.
2270 * s-osinte-mingw.ads (BYTE): New type.
2272 (OVERLAPPED): Likewise.
2273 (GENERIC_READ): New constant.
2274 (GENERIC_WRITE): Likewise.
2275 (OPEN_EXISTING): Likewise.
2276 (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
2278 (CreateFile): New routine.
2279 (WriteFile): Likewise.
2280 (ReadFile): Likewise.
2281 (CloseHandle): Move next to the other file oriented routines.
2283 * g-sercom.ads: New unit.
2285 * g-sercom.adb: Default implementation, calls to this unit will raise
2286 a program error exception.
2288 * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
2289 GNU/Linux implementations.
2291 2008-03-26 Robert Dewar <dewar@adacore.com>
2293 * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
2295 * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
2296 unchecked conversion for different conventions only for subprogram
2299 2008-03-26 Vincent Celier <celier@adacore.com>
2301 * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
2302 to check if the specified object file is correct.
2304 2008-03-26 Thomas Quinot <quinot@adacore.com>
2306 * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
2307 Comes_From_Source to exclude primitives from being checked. We want to
2308 exclude predefined primitives only, so use the appropriate specific
2309 predicate. Also, flag a formal parameter of an anonymous
2310 access-to-subprogram type as illegal for a primitive operation of a
2311 remote access to class-wide type.
2313 2008-03-26 Vincent Celier <celier@adacore.com>
2315 * prj-dect.adb (Parse_Package_Declaration): When a package name is not
2316 known, check if it may be a missspelling of a known package name. In
2317 not verbose, not mode, issue warnings only if the package name is a
2318 possible misspelling.
2319 In verbose mode, always issue a warning for a not known package name,
2320 plus a warning if the name is a misspelling of a known package name.
2322 * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
2323 limited withs or limited withs are parse during one call.
2324 (Parse_Single_Project): Post parse context clause in two passes: non
2325 limited withs before current project and limited withs after current
2328 * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
2329 project with the name With_Name, even if it is only extended indirectly.
2330 (Recursive_Process): Process projects in order: first single withs, then
2331 current project, then limited withs.
2333 * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
2334 project with the name With_Name, even if it is only extended indirectly.
2336 2008-03-26 Robert Dewar <dewar@adacore.com>
2338 * scn.adb (Initialize_Scanner): Format messages belong on standard error
2340 2008-03-26 Ed Schonberg <schonberg@adacore.com>
2342 * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
2343 a generic subprogram that is imported, do not attempt to compile
2346 * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
2347 imported, do not generate a raise_program_error for the non-existent
2349 (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
2350 perform minimal name resolution on the generic to avoid spurious
2352 (Find_Actual_Type): the designated type of the actual in a child unit
2353 may be declared in a parent unit without being an actual.
2355 2008-03-26 Robert Dewar <dewar@adacore.com>
2357 * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
2358 * sinfo.ads, sinfo.adb (From_At_End): New flag
2360 2008-03-26 Ed Schonberg <schonberg@adacore.com>
2362 * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
2363 operations that have an interface parameter.
2364 (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
2365 Don't treat No_Return call as raise.
2367 * sem_disp.adb (Check_Dispatching_Operations): apply check for
2368 non-primitive interface primitives to access parameters, not to all
2369 parameters of an access type.
2371 2008-03-26 Ed Schonberg <schonberg@adacore.com>
2373 * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
2374 declarations of a parent unit are made visible when compiling a child
2375 instance, the parent is not a hidden open scope, even though it may
2376 contain other pending instance.
2378 * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
2379 hidden open scope for some child instance, it does affect the
2380 visibility status of other stach entries.
2381 (Analyze_Object_Renaming): Check that a class-wide object cannot be
2382 renamed as an object of a specific type.
2384 2008-03-26 Robert Dewar <dewar@adacore.com>
2386 * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
2387 recursion and raise SE directly.
2388 (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
2389 set for formal type for IN mode parameter.
2391 2008-03-26 Robert Dewar <dewar@adacore.com>
2393 * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
2394 (Initialize): New procedure
2395 (Output_Warnings_Off_Warnings): New procedure
2396 (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
2397 (Output_Non_Modifed_In_Out_Warnings): Ditto
2398 (Warn_On_Unreferenced_Entity): Ditto
2400 2008-03-26 Vincent Celier <celier@adacore.com>
2402 * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
2405 2008-03-26 Matthew Heaney <heaney@adacore.com>
2407 * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
2408 a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
2409 Marked with clauses as private, and controlled operations as overriding
2411 2008-03-26 Robert Dewar <dewar@adacore.com>
2413 * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
2415 2008-03-26 Robert Dewar <dewar@adacore.com>
2417 * back_end.adb, back_end.ads: Minor reformatting
2419 * bindgen.adb: Minor clarification of comments
2421 * fname.ads: Minor comment fixes
2423 * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
2424 prj-nmsc.adb, sem_aggr.adb: Minor reformatting
2426 * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
2427 xsnames.adb: Remove warnings off pragma no longer needed
2429 * a-catizo.ads, a-calari.ads, a-calfor.adb,
2430 a-calfor.ads: Fix header.
2432 2008-03-26 Tristan Gingold <gingold@adacore.com>
2434 * init.c: Do not adjust pc for HPARITH on alpha/vms.
2436 2008-03-26 Robert Dewar <dewar@adacore.com>
2438 * lib-xref.adb: (OK_To_Set_Reference): New function
2439 (Generate_Reference): Don't set referenced from occurrence in Warnings,
2440 Unmodified, or Unreferenced pragma
2442 2008-03-26 Robert Dewar <dewar@adacore.com>
2444 * alloc.ads: Add entries for Warnings_Off_Pragmas table
2446 2008-03-26 GNAT Script <nobody@adacore.com>
2448 * Make-lang.in: Makefile automatically updated
2450 2008-03-26 Robert Dewar <dewar@adacore.com>
2452 * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
2453 par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
2454 removed, use Chars (Pragma_Identifier (.. instead, adjustments
2455 throughout to accomodate this change.
2457 * s-pooglo.ads, s-pooloc.ads: Minor comment updates
2459 * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
2460 Einfo.Set_Needs_Debug_Info)
2462 2008-03-26 Robert Dewar <dewar@adacore.com>
2464 * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
2465 Add description for the new gnatstub option '--header-file'
2466 clarification of -gnatwz/-gnatwZ
2467 Add a "Irix-Specific Considerations" section to document the need to
2468 set LD_LIBRARY_PATH when using the default shared runtime library.
2469 Added documentation for both gcov and gprof.
2471 * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
2472 messages that are not suppressed when clients are compiled.
2473 Add documentation of s-pooglo s-pooloc
2474 Document the new GNAT.Serial_Communications API.
2475 Add documentation for 'Old attribute
2476 Add description of pragma Optimize_Alignment
2478 * ug_words: Add entries for -gnatw.w -gnatw.W
2480 * usage.adb: Add line for -gnatw.w (warn on warnings off)
2482 2008-03-25 Eric Botcazou <ebotcazou@adacore.com>
2485 2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
2487 * decl.c (maybe_pad_type): Avoid padding an integral type when
2488 bumping its alignment is sufficient.
2490 2008-03-25 Arnaud Charlet <charlet@adacore.com>
2492 * exp_ch6.adb, exp_disp.adb: Update copyright notice.
2493 Fix wrong formatting (lines too long)
2495 2008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2497 * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
2498 a-calend-vms.adb, a-calend.adb, a-calend.ads,
2499 a-calfor.adb, a-chahan.ads, a-chtgke.adb,
2500 a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
2501 a-cohama.ads, a-comlin.ads, a-coorse.adb,
2502 a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
2503 a-except-2005.ads, a-except.adb, a-except.ads,
2504 a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
2505 a-exextr.adb, a-filico.ads, a-finali.ads,
2506 a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
2507 a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
2508 a-sequio.ads, a-strbou.ads, a-strfix.adb,
2509 checks.adb, exp_ch3.adb, exp_ch4.adb,
2510 exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
2511 exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
2512 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
2513 exp_dbug.ads, exp_disp.adb, exp_dist.adb,
2514 exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
2516 2008-03-24 Robert Dewar <dewar@adacore.com>
2518 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
2519 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
2520 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
2521 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
2522 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
2523 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
2524 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
2525 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
2526 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
2527 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
2528 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
2529 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
2530 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
2531 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
2532 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
2533 double spaced if it fits on one line and otherwise single spaced.
2535 2008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2537 PR documentation/15479
2538 * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
2539 (doc/gnat_ugn_unw.texi): ... this, and adjusted.
2540 (doc/gnat_ugn.info): Renamed from ...
2541 (doc/gnat_ugn_unw.info): ... this.
2542 (doc/gnat_ugn.dvi): Renamed from ...
2543 (doc/gnat_ugn_unw.dvi): ... this.
2544 (doc/gnat_ugn.pdf): Renamed from ...
2545 (doc/gnat_ugn_unw.pdf): ... this.
2546 (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
2548 * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
2549 unconditionally to gnat_ugn.info. Fix cross references to the
2550 GNAT Reference Manual. Convert links to the GCC, GDB, Emacs,
2551 and GNU make manuals to be proper texinfo links.
2552 * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
2554 2008-03-21 Olivier Hainque <hainque@adacore.com>
2556 * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
2557 ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
2559 2008-03-21 Eric Botcazou <ebotcazou@adacore.com>
2561 * trans.c (addressable_p): Add notes on addressability issues.
2563 2008-03-21 Olivier Hainque <hainque@adacore.com>
2564 Ed Schonberg <schonberg@adacore.com>
2566 * trans.c (addressable_p): Accept COND_EXPR when both arms
2568 (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
2569 (call_to_gnu): Do not use name reference in the error message
2570 for a misaligned by_reference_parameter. The actual may be a
2573 2008-03-18 Paolo Bonzini <bonzini@gnu.org>
2575 * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
2577 2008-03-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2579 * gnat_rm.texi (Implementation Defined Characteristics)
2580 (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
2582 * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
2583 (Switches for gnatchop, Installing a library): Likewise.
2585 2008-03-10 Eric Botcazou <ebotcazou@adacore.com>
2587 * trans.c (emit_range_check): Do not emit the check if the base type
2588 of the expression is the type against which its range must be checked.
2590 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2592 * decl.c (maybe_pad_type): Use value_factor_p.
2594 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2596 * lang.opt (nostdlib): Move around.
2597 * misc.c (gnat_handle_option): Fix formatting.
2598 (gnat_dwarf_name): Move around.
2599 * trans.c (Case_Statement_to_gnu): Fix formatting.
2600 (gnat_to_gnu): Likewise.
2601 * utils.c (aggregate_type_contains_array_p): Likewise.
2602 (create_subprog_decl): Likewise.
2604 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2606 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
2607 bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
2609 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2611 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
2612 BIGGEST_ALIGNMENT when capping the alignment of records with
2613 strict alignment and size clause.
2615 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2617 * lang-specs.h: Pass -gnatwa if -Wall is passed.
2618 * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
2619 and -Wuninitialized.
2620 (gnat_post_options): Clear warn_unused_parameter.
2622 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2624 * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
2625 aligned bit-fields, bumping the alignment of the record type if deemed
2627 (value_factor_p): Return false instead of 0.
2629 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2631 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
2632 for scalar types with small alignment.
2634 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2636 * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
2637 from that of the front-end's end label.
2638 (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
2639 from that of the loop label.
2641 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
2643 * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
2644 comment for the packed array type case.
2645 * utils.c (build_template): Use a loop to strip padding or
2646 containing records for justified modular types.
2648 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
2650 * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
2651 large alignments specified for types.
2652 (validate_alignment): Minor cleanup.
2654 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
2656 * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
2657 (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
2658 the component for packing, if possible, as well as if a component
2659 size clause is specified.
2660 <E_Record_Subtype>: For an array type used to implement a packed
2661 array, get the component type from the original array type.
2662 Try to get a smaller form of the component for packing, if possible,
2663 as well as if a component size clause is specified.
2664 (round_up_to_align): New function.
2665 (make_packable_type): Add in_record parameter.
2666 For a padding record, preserve the size. If not in_record and the
2667 size is too large for an integral mode, attempt to shrink the size
2668 by lowering the alignment.
2669 Ditch the padding bits of the last component.
2670 Compute sizes and mode manually, and propagate the RM size.
2671 Return a BLKmode record type if its size has shrunk.
2672 (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
2673 Use Original_Array_Type to retrieve the type in case of an error.
2674 Adjust call to make_packable_type.
2675 (gnat_to_gnu_field): Likewise.
2676 (concat_id_with_name): Minor tweak.
2677 * trans.c (larger_record_type_p): New predicate.
2678 (call_to_gnu): Compute the nominal type of the object only if the
2679 parameter is by-reference. Do the conversion actual type -> nominal
2680 type if the nominal type is a larger record.
2681 (gnat_to_gnu): Do not require integral modes on the source type to
2682 avoid the conversion for types with identical names.
2683 (addressable_p): Add gnu_type parameter. If it is specified, do not
2684 return true if the expression is not addressable in gnu_type.
2685 Adjust recursive calls.
2686 * utils.c (finish_record_type): Remove dead code.
2688 2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
2691 * decl.c (maybe_pad_type): Avoid padding an integral type when
2692 bumping its alignment is sufficient.
2694 2008-03-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2696 * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
2697 * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
2699 * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
2700 gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
2701 sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
2702 code output strings.
2703 * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
2704 system-vms_64.ads: Fix typos in ada source code comments.
2705 * sinfo-cn.adb: Remove incomplete sentence.
2707 PR documentation/15479
2708 * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
2710 2008-02-27 Samuel Tardieu <sam@rfc1149.net>
2713 * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
2715 2008-02-27 Samuel Tardieu <sam@rfc1149.net>
2718 * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
2719 that underlying type is present.
2721 2008-02-26 Tom Tromey <tromey@redhat.com>
2723 * misc.c (internal_error_function): Remove test of
2724 USE_MAPPED_LOCATION.
2725 * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
2726 (Sloc_to_locus): Remove old location code.
2728 2008-02-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2730 * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
2731 `i.e.' by adding comma or `@:' as appropriate.
2732 * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
2733 plain characters `C', use `@samp{C}'.
2734 * gnat_ugn.texi (File Naming Rules, About gnatkr)
2735 (Krunching Method): Likewise.
2737 * gnat_ugn.texi (Conventions): List environment variables and
2738 metasyntactic variables.
2739 (Compiling Programs): Fix notation of metasyntactic variables.
2740 Add @file where appropriate. Use @file for file extensions,
2742 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
2743 instead of @file, @env instead of @code.
2745 2008-02-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2747 PR documentation/15479
2748 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
2749 and `...' with `@dots{}' or `@enddots{}'.
2751 PR documentation/15479
2752 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
2753 use @command instead of @code, @option instead of @samp or @code,
2754 @code instead of @var, @samp instead of @file.
2756 PR documentation/15479
2757 * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
2758 in Makefile rules, by using `&&' rather than `;'.
2760 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2762 PR documentation/15479
2763 * gnat_ugn.texi: In non-code, avoid space before colon.
2764 (Regular Expressions in gnatfind and gnatxref): Fix indentation.
2765 (Examples of gnatxref Usage): Use @command{vi} instead of
2767 (Character Set Control): Do not use @code for UTF-8.
2768 (Validity Checking): Fix typo "NaNs" instead of "NaN's". Do not
2770 * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
2772 * gnat_rm.texi, gnat_ugn.texi: Fix typos. Bump copyright years.
2774 2008-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
2777 * env.c: Add __rtems__ to if defined.
2778 * s-osinte-rtems.adb: Add To_Target_Priority. Fix formatting.
2779 * s-osinte-rtems.ads: Add To_Target_Priority prototype and
2780 PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants. Add
2781 pragma Convention as required.
2782 * gsocket.h: Make compile in and out of RTS.
2783 * Makefile.in: Add system-rtems.ads. Build DEC extensions.
2784 Use g-soccon-rtems.ads.
2785 * g-soccon-rtems.ads, system-rtems.ads: New files.
2787 2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2790 * Make-lang.in (gnat1): Add $(GMPLIBS).
2792 2008-01-26 Eric Botcazou <ebotcazou@adacore.com>
2794 * decl.c (components_to_record): Improve comment.
2796 2008-01-22 Eric Botcazou <ebotcazou@adacore.com>
2798 * decl.c (components_to_record): Do not reuse the empty union type
2799 if there is a representation clause on the record.
2800 * trans.c (addressable_p): Return true for INTEGER_CST.
2802 2008-01-21 Eric Botcazou <ebotcazou@adacore.com>
2804 * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
2805 in pointer arithmetics.
2806 * utils2.c (build_allocator): Likewise.
2808 2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
2810 * utils.c (build_function_stub): Properly build the call expression.
2812 2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
2814 * decl.c (gnat_to_gnu_entity) <object>: Process renamings
2815 before converting the expression to the type of the object.
2816 * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
2817 Stabilize constructors for special wrapping types.
2819 2008-01-13 Eric Botcazou <ebotcazou@adacore.com>
2821 * trans.c (call_to_gnu): Invoke the addressable_p predicate only
2822 when necessary. Merge some conditional statements. Update comments.
2823 Rename unchecked_convert_p local variable to suppress_type_conversion.
2824 Do not suppress conversions in the In case.
2825 (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
2826 into account on non strict-alignment platforms.
2828 2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
2830 * utils.c (aggregate_type_contains_array_p): New predicate.
2831 (create_field_decl): In a packed record, force byte alignment
2832 for fields without specified position that contain an array.
2834 2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
2836 * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
2838 2008-01-10 John David Anglin <dave.anglin.@nrc-cnrc.gc.ca>
2841 * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
2843 (bit_field): New packed boolean type used by cpu_set_t.
2844 (cpu_set_t): New type corresponding to the C type with
2845 the same name. Note that on the Ada side we use a bit
2846 field array for the affinity mask. There is not need
2847 for the C macro for setting individual bit.
2848 (pthread_setaffinity_np): New imported routine.
2850 2008-01-03 Tero Koskinen <tero.koskinen@iki.fi>
2853 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
2854 on OpenBSD as is done on other BSD systems.
2857 * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
2858 getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
2862 * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
2866 * init.c (__gnat_error_handler, __gnat_install_handler,
2867 __gnat_init_float): Define for OpenBSD.
2869 * initialize.c (__gnat_initialize): Define for OpenBSD.
2871 2007-12-27 Samuel Tardieu <sam@rfc1149.net>
2874 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
2875 instead of mktemp() or tmpnam() on NetBSD.
2877 2007-12-23 Eric Botcazou <ebotcazou@adacore.com>
2879 * trans.c (call_to_gnu): Make the temporary for non-addressable
2880 In parameters passed by reference.
2881 (addressable_p): Return true for STRING_CST and CALL_EXPR.
2883 2007-12-19 Robert Dewar <dewar@adacore.com>
2885 * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
2886 Add pragma Warnings (Off) for unassigned IN OUT arguments
2888 * sem_warn.adb (Output_Reference): Suppress messages for internal names
2889 (Check_References): Extensive changes to tune up warnings
2890 (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
2891 (Has_Pragma_Unmodifed_Check_Spec): New function
2892 (Check_References): Implement pragma Unmodified
2893 (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
2895 * par-prag.adb: Dummy entry for pragma Unmodified
2897 * sem_prag.adb: Implement pragma Unmodified
2899 * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
2900 (Proc_Next_Component_Or_Discriminant): Fix typo.
2903 * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
2905 (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
2906 because the former already takes care of discarding the result.
2907 (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
2910 * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
2912 2007-12-19 Eric Botcazou <ebotcazou@adacore.com>
2914 * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
2915 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
2916 system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
2917 system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
2918 system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
2919 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
2920 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
2921 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
2922 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
2923 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
2924 (Dynamic_Trampolines_Used): Delete.
2926 * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
2927 Turn on stack probing mechanism on LynxOS.
2929 2007-12-19 Bob Duff <duff@adacore.com>
2931 * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
2932 the resulting tail recursion by hand. This prevents running out of
2933 memory on deeply nested concatenations, since Field2 is where the left
2934 operand of concatenations is stored.
2935 Fix bug (was returning OK_Orig in some cases). Fix return subtype to
2936 clarify that it can only return OK or Abandon.
2938 * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
2939 operand by iteration, in order to avoid running out of memory on
2940 deeply-nested concatenations. Use the Parent pointer to get back up the
2942 (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
2943 Resolve_Op_Concat_Rest): New procedures split out of
2944 Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
2947 * checks.adb (Remove_Checks): Use Traverse_Proc instead of
2948 Traverse_Func, because the former already takes care of discarding the
2951 * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
2952 because the former already takes care of discarding the result.
2953 (Remove_Warning_Messages): Use appropriate subtype for Status and
2956 2007-12-19 Ed Schonberg <schonberg@adacore.com>
2958 * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
2959 discriminants forces expansion of the aggregate into assignments.
2960 (Init_Record_Controller): If the type of the aggregate is untagged and
2961 is not inherently limited, the record controller is not limited either.
2963 2007-12-19 Robert Dewar <dewar@adacore.com>
2965 * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
2966 handling compile time known size of record or array (case of front end
2967 layout active, e.g. in GNAAMP).
2969 2007-12-19 Javier Miranda <miranda@adacore.com>
2971 * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
2972 that forces the construction of static dispatch tables in case of
2975 2007-12-19 Robert Dewar <dewar@adacore.com>
2977 * exp_ch9.adb (Null_Statements): Moved to library level
2978 (Trivial_Accept_OK): New function
2979 (Expand_Accept_Declaration): Use Trivial_Accept_OK
2980 (Expand_N_Accept_Statement): Use Trivial_Accept_OK
2982 2007-12-19 Robert Dewar <dewar@adacore.com>
2984 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
2985 in complex case where array is Volatile.
2987 2007-12-19 Ed Schonberg <schonberg@adacore.com>
2989 * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
2990 properly the Ada2005 rules concerning when the current instance of a
2991 record type is aliased.
2993 2007-12-19 Ed Schonberg <schonberg@adacore.com>
2995 * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
2997 (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
2999 (P_Variant_Part): Cleaner patch for parenthesized discriminant
3001 2007-12-19 Vincent Celier <celier@adacore.com>
3003 * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
3004 package is not known
3006 * prj-attr.ads (Unknown_Package): New constant
3007 Do not crash when an unknown package is in several projects
3009 * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
3012 * prj-nmsc.adb (Check): Remove obsolete code related to no longer
3013 existing package Language_Processing.
3015 2007-12-19 Ed Schonberg <schonberg@adacore.com>
3016 Gary Dismukes <dismukes@adacore.com>
3017 Samuel Tardieu <sam@rfc1149.net>
3019 PR ada/15803, ada/15805
3020 * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
3021 illegal access subtypes when there is a constrained partial view.
3022 (Check_For_Premature_Usage): New procedure inside
3023 Access_Subprogram_Declaration for checking that an access-to-subprogram
3024 type doesn't reference its own name within any formal parameters or
3025 result type (including within nested anonymous access types).
3026 (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
3027 (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
3028 context is an access_to_variable, the expression cannot be an
3031 2007-12-19 Bob Duff <duff@adacore.com>
3033 * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
3034 (Analyze_Concatenation): Use iteration instead of recursion in order
3035 to avoid running out of stack space for deeply nested concatenations.
3037 2007-12-19 Ed Schonberg <schonberg@adacore.com>
3038 Gary Dismukes <dismukes@adacore.com>
3040 * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
3041 whose renamed entity is a subprogram that requires overriding.
3042 (Premature_Usage): Test for the case of N_Full_Type_Declaration when
3043 issuing an error for premature usage and issue a message that says
3044 'type' rather than 'object'.
3046 2007-12-19 Gary Dismukes <dismukes@adacore.com>
3049 * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
3050 presence of a statically tagged operand (Present (Static_Tag)) with
3051 test for Indeterm_Ancestor_Call when determining whether to propagate
3052 the static tag to tag-indeterminate operands (which forces dispatching
3054 (Check_Controlling_Formals): Ada2005, access parameters can have
3056 (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
3057 not insert subprogram in list of primitive operations if already there.
3059 2007-12-19 Tristan Gingold <gingold@adacore.com>
3061 * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
3064 2007-12-19 Thomas Quinot <quinot@adacore.com>
3066 Part of PR ada/33688
3067 * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
3068 datagram info on Linux.
3070 2007-12-19 Vincent Celier <celier@adacore.com>
3072 * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
3073 that the source path name is always found in the dependencies.
3075 2007-12-19 Robert Dewar <dewar@adacore.com>
3077 * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
3078 Fix name of Wide_Wide_Latin_1/9 file names
3079 Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
3080 Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
3081 Add missing documentation for Ada.Command_Line.Response_File
3082 Update list of warning letters for Warnings pragma
3083 Add documentation for pragma Unmodified
3085 2007-12-19 Samuel Tardieu <sam@rfc1149.net>
3087 * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
3089 2007-12-17 Arnaud Charlet <charlet@adacore.com>
3091 * s-vxwork-alpha.ads: Removed, no longer used.
3093 2007-12-15 Jakub Jelinek <jakub@redhat.com>
3095 * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
3097 2007-12-13 Samuel Tardieu <sam@rfc1149.net>
3100 * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
3101 mlib-tgt-specific.adb.
3103 2007-12-13 Bob Duff <duff@adacore.com>
3105 * trans.c (Attribute_to_gnu): Check for violations of the
3106 No_Implicit_Dynamic_Code restriction. This checking used to be done in
3107 the front end, but is moved here so we can make it more accurate.
3109 2007-12-13 Pascal Obry <obry@adacore.com>
3111 * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
3112 version is provided for older GNU/Linux distribution not
3113 supporting thread affinity sets.
3115 * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
3117 (bit_field): New packed boolean type used by cpu_set_t.
3118 (cpu_set_t): New type corresponding to the C type with
3119 the same name. Note that on the Ada side we use a bit
3120 field array for the affinity mask. There is not need
3121 for the C macro for setting individual bit.
3122 (pthread_setaffinity_np): New imported routine.
3124 * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
3126 (Create_Task): Set the processor affinity mask if information
3129 * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
3131 2007-12-13 Robert Dewar <dewar@adacore.com>
3133 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
3134 s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
3135 s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
3136 s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
3137 s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
3138 s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
3139 s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
3140 i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
3141 for subprogram pointers.
3143 * g-ctrl_c.adb: New file.
3145 * g-ctrl_c.ads (Install_Handler): New body.
3147 * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
3148 instead of obsolete function Is_Always_Inlined.
3149 (Freeze_Entity): check for tagged type in imported C subprogram
3150 (Freeze_Entity): check for 8-bit boolean in imported C subprogram
3151 (Freeze_Entity): check for convention Ada subprogram pointer in
3152 imported C subprogram.
3153 (Freeze_Fixed_Point_Type): In the case of a base type where the low
3154 bound would be chopped off and go from negative to zero, force
3155 Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
3156 bound) so that the size computation for the base type will take
3157 negative values into account.
3159 2007-12-13 Eric Botcazou <ebotcazou@adacore.com>
3160 Bob Duff <duff@adacore.com>
3161 Tristan Gingold <gingold@adacore.com>
3163 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
3164 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
3165 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
3166 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
3167 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
3168 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
3169 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
3170 system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
3171 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
3172 system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
3173 system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
3174 (Always_Compatible_Rep): New flag to control trampolines globally.
3175 (Dynamic_Trampolines_Used): New flag for implementing the
3176 No_Implicit_Dynamic_Code restriction more correctly (not yet used,
3177 and not yet set correctly for some targets).
3179 * s-taprop-vxworks.adb: Use stack limit method of stack checking.
3180 Simply indirectly call s-stchop when a task is created.
3183 New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
3184 appears as an argument (entries A) in an ALI file.
3186 * fe.h (Stack_Check_Limits): Declare new target parameter.
3187 (Check_Implicit_Dynamic_Code_Allowed): New procedure.
3189 * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
3190 This variable is declared in C to be sure not subject to elaboration
3192 (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
3195 * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
3196 (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
3198 * s-stchop.ads: Add comments.
3200 * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
3201 limit method of stack checking.
3203 * s-stchop-limit.ads: New file.
3205 2007-12-13 Robert Dewar <dewar@adacore.com>
3207 * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
3208 a-cihama.adb, g-awk.adb,
3209 s-inmaop-posix.adb: Update handling of assigned value/unreferenced
3212 * exp_smem.adb: Update handling of assigned value/unreferenced warnings
3214 * sem.adb: Update handling of assigned value/unreferenced warnings
3216 * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
3218 * lib-xref.ads: Improve documentation for k xref type
3221 Update handling of assigned value/unreferenced warnings
3222 (Generate_Reference): Warning for reference to entity for which a
3223 pragma Unreferenced has been given should be unconditional.
3224 If the entity is a discriminal, mark the original
3225 discriminant as referenced.
3227 * sem_warn.ads, sem_warn.adb
3228 (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
3229 no entities referenced in package
3230 (Check_One_Unit): Don't give message about no entities referenced in
3231 a package if a pragma Unreferenced has appeared.
3232 Handle new warning flag -gnatw.a/-gnatw.A
3233 Update handling of assigned value/unreferenced warnings
3235 * atree.h: Add flags up to Flag247
3236 (Flag231): New macro.
3238 2007-12-13 Jose Ruiz <ruiz@adacore.com>
3240 * adaint.h: (__gnat_plist_init): Not defined for RTX.
3242 * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
3245 * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
3246 (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
3247 EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
3248 GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
3251 Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
3253 * sysdep.c (winflush_function for RTX): Procedure that does nothing
3254 since we only have problems with Windows 95/98, which are not
3256 (__gnat_ttyname): Return the empty string on Nucleus, just as
3259 2007-12-13 Robert Dewar <dewar@adacore.com>
3261 * a-textio.adb, a-textio.ads:
3262 Extensive changes to private part for wide character encoding
3264 * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
3265 (Look_Ahead): Fix mishandling of encoded sequences
3266 Move declaration of Wch_Con to private part (should not be visible)
3268 * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
3269 UTF-8. Probably this is never used, but if it is, brackets is
3272 * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
3273 setting wide character encoding for no main program case and when
3274 encoding is specified using -W?
3275 Initialize stack limit of environment task if stack limit method of
3276 stack checking is enabled.
3277 (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
3278 (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
3279 (Get_Main_Unit_Name): New function.
3280 (Gen_Adainit_Ada): Add call to main program for .NET when needed.
3281 (Gen_Output_File): Set Bind_Main_Program to True for .NET
3283 * bindusg.adb: Add line for -Wx switch
3285 * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
3287 Add new useful constant WC_Longest_Sequences
3289 * switch-b.adb: Clean up handling of -Wx switch
3290 For -gnatWx, set Wide_Character_Encoding_Method_Specified
3292 * switch-c.adb: -gnatg activates warning on assertion errors
3293 For -gnatWx, set Wide_Character_Encoding_Method_Specified
3295 * s-wchcon.adb: (Is_Start_Of_Encoding): New function
3297 2007-12-13 Robert Dewar <dewar@adacore.com>
3298 Ed Schonberg <schonberg@adacore.com>
3300 * a-ngcoty.adb: New pragma Fast_Math
3302 * opt.adb: New pragma Fast_Math
3305 Add Implemented_By_Entry to the list of pragmas which do not require any
3307 (Favor_Top_Level): New pragma.
3308 New pragma Fast_Math
3310 * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
3311 (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
3312 Expand_Allocator_Expression): Take into account VM_Target
3313 (Expand_Attribute, case 'Identity): Handle properly the case where
3314 the prefix is a task interface.
3315 New pragma Fast_Math
3317 * par.adb (Next_Token_Is): New function
3318 (P_Pragma): Add Skipping parameter
3319 (U_Left_Paren): New procedure
3320 (U_Right_Paren): New procedure
3321 New pragma Fast_Math
3323 * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
3325 New pragma Fast_Math
3327 * sem_prag.adb: Add significance value to table Sig_Flag for pragma
3328 Implemented_By_Entry.
3329 (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
3330 (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
3331 items, since it can apply to more than one overloadable entity. Set
3332 new flag Has_Pragma_Inline_Always for Inline_Always case.
3333 (Analyze_Pragma, case Complex_Representation): Improve error message.
3334 (Analyze_Pragma, case Assert): When assertions are disabled build the
3335 rewritten code with Sloc of expression rather than pragma, so new
3336 warning about failing is not deleted.
3337 (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
3338 protected types and update error message to reflect that. Test whether
3339 the protected type is allowed for the pragma (an error is issued if the
3340 type has any entries, or components that do not have preelaborable
3342 New pragma Fast_Math
3343 (Analyze_Pragma, case No_Return): Handle generic instance
3345 * snames.h, snames.ads, snames.adb:
3346 Add new predefined name for interface primitive _Disp_Requeue.
3347 New pragma Fast_Math
3349 * a-tags.ads, a-tags.adb: New calling sequence for
3350 String_To_Wide_[Wide_]String
3351 (Secondary_Tag): New subprogram.
3353 * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
3355 New calling sequence for String_To_Wide_[Wide_]String
3356 (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
3357 the use of the secondary stack for image routines.
3359 * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
3360 calling sequence for String_To_Wide_[Wide_]String
3362 * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
3364 (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
3365 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3367 * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
3368 (P_Formal_Part): Use Skipping parameter in P_Pragma call
3369 to improve error recovery
3371 * par-util.adb (Next_Token_Is): New function
3372 (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
3374 * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
3375 semicolon if missing
3376 (P_Pragma): Implement new Skipping parameter
3377 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3378 Fix location of flag for unrecognized pragma message
3380 * par-tchk.adb (U_Left_Paren): New procedure
3381 (U_Right_Paren): New procedure
3383 2007-12-13 Geert Bosch <bosch@adacore.com>
3386 (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
3387 the second or later Scaled_Divide would omit leading zeroes,
3388 resulting in too few digits produced and a Layout_Error as result.
3389 (Put): Initialize Pos.
3391 2007-12-13 Robert Dewar <dewar@adacore.com>
3393 atree.ads, atree.adb (Flag231..Flag247): New functions
3394 (Set_Flag231..Set_Flag247): New procedures
3395 (Basic_Set_Convention): Rename Set_Convention to be
3396 Basic_Set_Convention
3397 (Nkind_In): New functions
3398 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3400 * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
3402 of obsolete function Is_Always_Inlined
3403 (Register_Predefined_DT_Entry): Initialize slots of the second
3404 secondary dispatch table.
3405 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3406 (Expand_N_Function_Call): Remove special provision for stack checking.
3408 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
3409 Include _Disp_Requeue in the list of predefined operations.
3410 (Find_Interface_ADT): Modified to fulfill the new specification.
3411 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3413 * par-ch4.adb, nlists.ads, nlists.adb:
3414 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3416 * sinfo.ads, sinfo.adb: (Nkind_In): New functions
3417 Fix location of flag for unrecognized pragma message
3419 * sem_ch7.adb: Use Nkind_In
3421 2007-12-13 Vincent Celier <celier@adacore.com>
3424 Indicate what flags are used by the Project Manager, gprbuild and
3426 (Opt.Follow_Links_For_Dirs): New flag
3427 (Warn_On_Assertion_Failure): New flag
3428 (Wide_Character_Encoding_Method_Specified): New flag
3429 (Suppress_All_Inlining): New switch set by -fno-inline
3430 (Real_VMS_Target): New flag
3431 New pragma Fast_Math
3433 2007-12-13 Robert Dewar <dewar@adacore.com>
3435 * back_end.adb: Recognize -fno-inline
3437 2007-12-13 Robert Dewar <dewar@adacore.com>
3439 * checks.adb: Fix optimization problem with short-circuited form
3441 2007-12-13 Bob Duff <duff@adacore.com>
3443 * clean.adb (Usage): Add line for -aP
3444 (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
3445 with a parameter "procedure Usage", instead of passing a pointer to a
3446 procedure. This is to eliminate trampolines (since the Usage procedure
3447 is often nested in a main procedure, and it would be inconvenient to
3450 * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
3451 to be generic, with a parameter "procedure Callback (...)", instead of
3452 passing a pointer to a procedure. This is to eliminate trampolines
3453 (since the Callback procedure is usually nested).
3455 * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
3456 gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
3457 (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
3459 * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
3460 Use the generic Heap_Sort_G instead of Heap_Sort_A.
3462 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
3464 * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
3465 (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
3466 (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
3467 (Renamed_In_Spec): New flag
3468 (Has_Pragma_Inline_Always): New flag
3469 Add missing doc for pragma Obsolescent_Warning
3470 Add missing doc for 17 additional unused flags (230-247)
3471 (Is_Derived_Type): Remove condition "not Is_Generic_Type".
3472 Alphabetize with clauses.
3473 Separate Is_Thunk and Has_Thunks flags
3474 (Write_Entity_Flags): Add forgotten entry for Has_Thunks
3475 (Related_Interface): Renamed to Related_Type.
3476 (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
3477 (Set_Is_Flag): Restrict the assertion.
3479 2007-12-13 Vincent Celier <celier@adacore.com>
3481 * errout.adb (Output_Source_Line): Do not keep a trailing space after
3482 the source line number if the source line is empty.
3484 2007-12-13 Geert Bosch <bosch@adacore.com>
3486 * eval_fat.adb (Decompose_Int): Handle argument of zero.
3487 (Compose): Remove special casing of zero.
3488 (Exponent): Likewise.
3489 (Fraction): Likewise.
3490 (Machine): Likewise.
3491 (Decompose): Update comment.
3493 2007-12-13 Ed Schonberg <schonberg@adacore.com>
3495 * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
3496 limited ancestor part, initialize controllers of enclosing record
3497 before expanding ancestor aggregate.
3498 (Gen_Assign): If a component of the aggregate is box-initialized, add
3499 code to call Initialize if the component is controlled, and explicit
3500 assignment of null if the component is an access type.
3502 Handle properly aggregates for limited types that appear in object
3503 declarations when the aggregate contains controlled values such as
3505 When expanding limited aggregates into individual components, do not
3506 call Adjust on controlled components that are limited.
3508 2007-12-13 Ed Schonberg <schonberg@adacore.com>
3510 * expander.adb: Take into account N_Subprogram_Renaming_Declaration
3512 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
3514 * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
3515 predefined primitive _Disp_Requeue.
3516 (Make_Predefined_Primitive_Specs): Create the spec for predefined
3517 primitive _Disp_Requeue.
3518 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
3519 type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
3520 (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
3521 an interface type. In case of limited interfaces we now declare all the
3522 predefined primitives associated with synchronized interfaces as
3524 (Predef_Spec_Or_Body): For interface types generate abstract subprogram
3526 (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
3527 tagged type is an interface type and there is no user-defined equality
3529 Add also bodies of predefined primitives associated with synchronized
3531 (Freeze_Record_Type): Do not build bodies of predefined primitives of
3532 interface types because they are now defined abstract.
3533 Add missing documentation.
3534 (Expand_Record_Controller): Update occurrence of Related_Interface
3536 (Build_Offset_To_Top_Functions): Do nothing in case of VM.
3537 (Expand_N_Object_Declaration): Take into account VM_Target when handling
3538 class wide interface object declaration.
3539 (Expand_Previous_Access_Type): Do not create a duplicate master entity
3540 if the access type already has one.
3541 (Expand_N_Object_Declaration): Defend against attempt to validity check
3542 generic types. Noticed for -gnatVcf specified with previous errors.
3544 2007-12-13 Arnaud Charlet <charlet@adacore.com>
3546 * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
3547 Expand_Allocator_Expression): Take into account VM_Target
3549 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
3550 secondary stack when VM_Target /= No_VM
3552 2007-12-13 Javier Miranda <miranda@adacore.com>
3553 Ed Schonberg <schonberg@adacore.com>
3555 * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
3556 Is_Complation_Unit by Is_Library_Level_Entity in the code
3557 that decides if the static dispatch tables need to be built.
3558 (Wrap_Transient_Declaration): Do not generate a finalization call if
3559 this is a renaming declaration and the renamed object is a component
3560 of a controlled type.
3562 2007-12-13 Gary Dismukes <dismukes@adacore.com>
3564 * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
3565 In the case where the renamed subprogram is a dereference, call
3566 Force_Evaluation on the prefix.
3568 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
3569 Ed Schonberg <schonberg@adacore.com>
3571 * exp_ch9.adb (Expand_N_Asynchronous_Select,
3572 Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
3573 comment reformatting.
3574 (Set_Privals): Inherit aliased flag from formal. From code reading.
3575 (Build_Simple_Entry_Call): Out parameters of an access type are passed
3576 by copy and initialized from the actual. This includes entry parameters.
3577 (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
3578 and Ada 2005 models of requeue.
3579 (Null_Statements): Still connsider do-end block null if it contains
3580 Unreferenced and Warnings pragmas.
3581 (Expand_N_Accept_Statement): Do not optimize away null do end if
3582 dispatching policy is other than defaulted.
3583 (Expand_N_Timed_Entry_Call): When the triggering statement is a
3584 dispatching call, manually analyze the delay statement.
3585 (Find_Parameter_Type): Move subprogram to Sem_Util.
3587 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
3588 Javier Miranda <miranda@adacore.com>
3590 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
3591 _Disp_Requeue occupies dispatch table slot number 15. Move
3592 _Disp_Timed_Select to slot 16.
3593 (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
3594 generate the spec and body of _Disp_Reqeueue.
3595 (Make_DT): Build and initialize the second dispatch table.
3596 Handle initialization of RC_Offset when the parent
3597 is a private type with variable size components.
3598 (Make_Secondary_DT): Complete documentation. Add support to
3599 initialize the second dispatch table.
3600 (Make_Tags): Generate the tag of the second dispatch table.
3601 (Register_Primitive): Add support to register primitives in the
3602 second dispatch table.
3604 2007-12-13 Pascal Obry <obry@adacore.com>
3606 * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
3607 Windows. This signal is used by gnatmake to kill child processes for
3610 2007-12-13 Javier Miranda <miranda@adacore.com>
3612 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
3613 support for generic dispatching constructor calls in which we need to
3614 locate the tag of a secondary dispatch table associated with an
3615 interface type to properly dispatch the call.
3616 (Expand_N_Attribute_Reference [case Address],
3617 Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
3618 handling of VM targets.
3620 2007-12-13 Robert Dewar <dewar@adacore.com>
3621 Ed Schonberg <schonberg@adacore.com>
3623 * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
3626 * ug_words: Add entries for -gnatw.a -gnatw.A
3628 * sem_res.adb (Set_String_Literal_Subtype): If the context of the
3629 literal is a subtype with non-static constraints, use the base type of
3630 the context as the base of the string subtype, to prevent type
3632 (Resolve_Actuals): If the actual is an entity name, generate a
3633 reference before the actual is resolved and expanded, to prevent
3634 spurious warnings on formals of enclosing protected operations.
3635 (Analyze_Overloaded_Selected_Component): If type of prefix if
3636 class-wide, use visible components of base type.
3637 (Resolve_Selected_Component): Ditto.
3638 (Resolve_Short_Circuit): Detect case of pragma Assert argument
3639 evaluating to False, and issue warning message.
3641 * usage.adb: Add lines for -gnatw.a and -gnatw.A
3643 2007-12-13 Emmanuel Briot <briot@adacore.com>
3645 * g-calend.ads (No_Time): New constant, to represent an uninitialized
3648 * g-catiio.ads, g-catiio.adb (Value): Added support for more date
3650 (Month_Name_To_Number): New subprogram
3652 * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
3653 letter to upper-case.
3655 2007-12-13 Robert Dewar <dewar@adacore.com>
3656 Ed Schonberg <schonberg@adacore.com>
3658 * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
3660 * layout.adb (Resolve_Attribute, case 'Access): If designated type of
3661 context is a limited view, use non-limited view when available. If the
3662 non-limited view is an unconstrained array, this enforces consistency
3663 requirements in 3.10.2 (27).
3664 (Layout_Type): For an access type whose designated type is a limited
3665 view, examine its declaration to determine if it is an unconstrained
3666 array, and size the access type accordingly.
3667 (Layout_Type): Do not force 32-bits for convention c subprogram
3668 pointers in -gnatdm mode, only if real vms target.
3670 * sem_attr.adb (Analyze_Access_Attribute): Use new flag
3671 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
3672 (Analyze_Access_Attribute,Attribute_Address): Remove checks for
3673 violations of the No_Implicit_Dynamic_Code restriction.
3674 (Resolve_Attribute, case 'Access): If designated type of context is a
3675 limited view, use non-limited view when available. If the non-limited
3676 view is an unconstrained array, this enforces consistency requirements
3678 (Layout_Type): For an access type whose designated type is a limited
3679 view, examine its declaration to determine if it is an unconstrained
3680 array, and size the access type accordingly.
3682 2007-12-13 Vincent Celier <celier@adacore.com>
3684 * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
3685 object directory of main project does not exist.
3686 On VMS, correctly set then environment variable for the source
3689 2007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
3691 * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
3692 set to True this procedure will create the value of type REG_EXPAND_SZ.
3693 It was only possible to create REG_SZ values before.
3695 2007-12-13 Robert Dewar <dewar@adacore.com>
3697 * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
3698 g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
3699 namet-sp.adb, namet-sp.ads: New files.
3701 * g-speche.adb: Use generic routine in g-spchge
3703 * s-wchcnv.ads, s-wchcnv.adb:
3704 Minor code cleanup (make formal type consistent with spec)
3706 * namet.adb: Update comments.
3708 * par-endh.adb (Evaluate_End_Entry): Use new
3709 Namet.Sp.Is_Bad_Spelling_Of function
3711 * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
3713 * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
3714 ancestor is an access type initialized with a box, set its type
3715 explicitly, for use in subsequent expansion.
3716 (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
3719 2007-12-13 Robert Dewar <dewar@adacore.com>
3721 * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
3724 2007-12-13 Robert Dewar <dewar@adacore.com>
3726 * inline.adb (Back_End_Cannot_Inline): Use new flag
3727 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
3729 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
3730 Has_Pragma_Inline_Always instead.
3731 of obsolete function Is_Always_Inlined
3732 (Build_Body_To_Inline): Same change
3733 (Cannot_Inline): Same change
3734 Do not give warning on exception raise in No_Return function
3736 * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
3737 component has two inconsistent component clauses in the same record
3738 representation clause, favor the message that complains about
3739 duplication rather than inconsistency.
3741 (Record_Representation_Clause): Do not warn on missing component
3742 clauses for inherited components of a type extension.
3743 (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
3744 an overloadable item if it is a pragma that can apply to multiple
3745 overloadable entities (e.g. Inline) because a pragma cannot be on
3746 more than one chain at a time.
3747 (Validate_Unchecked_Conversion): Add code to warn on unchecked
3748 conversion where one of the operands is Ada.Calendar.Time.
3749 (Analyze_Attribute_Definition_Clause): Fix typo in error message.
3750 For now, ignore Component_Size clause on VM targets, as done for
3753 2007-12-13 Emmanuel Briot <briot@adacore.com>
3754 Vincent Celier <celier@adacore.com>
3756 * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
3758 (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
3760 (Hash): Move instantiation of System.HTable.Hash from spec to body
3761 (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
3762 systems, since we do not need to recompute the Name_Id for the canonical
3764 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
3765 as a parameter. This parameter is in fact always "ada" in all calls, and
3766 we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
3767 while loading a project with 40000 files
3769 * prj-attr.adb: Fix name of attribute Dependency_Driver
3770 Change the kind of indexing for attribute Root
3772 * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
3773 variables already declared, in case constructions.
3775 * prj-env.adb (Initialize): Reset Current_Source_Path_File and
3776 Current_Object_Path_File to No_Path.
3778 * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
3779 ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
3781 * prj-makr.adb: new parameter Current_Dir
3783 * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
3784 Ada sources when language is not Ada.
3785 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
3786 (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
3787 (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
3788 (Locate_Directory): Always resolve links when computing Canonical_Path
3789 (Look_For_Sources): Make sure that Name_Buffer contains the file name
3790 in Source_Files before checking for the presence of a directory
3792 Optimize calls to Name_Find when on case sensitive systems.
3793 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
3795 (Prj.Nmsc.Check): new parameter Current_Dir
3796 (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
3797 cannot be empty and the spec suffix cannot be the same as the body or
3799 (Get_Unit): When a file name can be of several unit kinds (spec, body or
3800 subunit), always consider the longest suffix.
3801 (Check_Configuration): Do not issue an error if there is no compiler
3802 for a language. Just issue a warning and ignore the sources for the
3804 (Check_Library_Attributes): Only check Library_Dir if Library_Name is
3806 (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
3807 (Unit_Exceptions): New hash table
3808 (Check_Naming_Schemes): Check if a file that could be a unit because of
3809 the naming scheme is not in fact a source because there is an exception
3811 (Look_For_Sources): Put the unit exceptions in hash table
3813 (Get_Unit_Exceptions): Give initial value No_Source to local variable
3814 Other_Part to avoid exception when code is compiled with validity
3816 (Get_Sources_From_File): Check that there is no directory information
3818 (Look_For_Sources): Check that there is no directory information in the
3819 list of file names in Source_Files.
3820 (Look_For_Sources): In multi-language mode, do not allow exception file
3821 names that are excluded.
3822 (Excluded_Sources_Htable): New hash table
3823 (Search_Directories.Check_File): New procedure to simplify
3825 (Search_Directories): Do not consider excluded sources
3826 (Look_For_Sources): Populate Excluded_Sources_Htable before calling
3828 (Get_Exceptions): Set component Lang_Kind of Source_Data
3829 (Get_Unit_Exceptions): Ditto
3830 (Search_Directories): Ditto
3832 * prj-pars.adb: new parameter Current_Dir
3834 * prj-part.ads, prj-part.adb:
3835 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
3836 (Opt.Follow_Links_For_Dirs): New flag
3837 (Project_Path_Name_Of): Cache information returned by this routine as
3838 Locate_Regular_File is a costly routine. The code to output a log
3839 information and the effective call to Locate_Regular_File is now
3840 factorized into a routine (code clean-up).
3841 (Parse, Parse_Single_Project): new parameter Current_Dir
3842 When main project file cannot be found, indicate in the error
3843 message the project path that was used to do the search.
3845 * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
3846 (Prj.Proc.Process*): new parameter Current_Dir
3848 * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
3850 2007-12-13 Bob Duff <duff@adacore.com>
3852 * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
3853 procedure to be called from the back end to check the
3854 No_Implicit_Dynamic_Code restriction.
3856 2007-12-13 Arnaud Charlet <charlet@adacore.com>
3858 * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
3859 Fixes another case where RTE_Available_Call was ignored instead of being
3863 * rtsfind.ads: Add new entries.
3865 2007-12-13 Robert Dewar <dewar@adacore.com>
3867 * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
3868 g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
3870 * scn.adb: Implement BOM recognition
3872 2007-12-13 Thomas Quinot <quinot@adacore.com>
3873 Ed Schonberg <schonberg@adacore.com>
3875 * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
3876 subprogram body that acts as its own spec may not have a non-private
3877 WITH clause on a private sibling.
3878 (Build_Unit_Name): If the parent unit in the name in a with_clause on a
3879 child unit is a renaming, create an implicit with_clause on that
3880 parent, and not on the unit it renames, to prevent visibility errors
3881 in the current unit.
3883 2007-12-13 Ed Schonberg <schonberg@adacore.com>
3885 * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
3886 renaming declaration, use the Slocs of the formal parameters from the
3887 declaration of the formal subprogram when creating the formal parameter
3888 entities in the renaming declaration.
3889 (Analyze_Formal_Type_Declaration): Change the placement of the error
3890 message concerning illegal known discriminants. It is now posted on the
3891 type rather than on the first discriminant. This change ensures early
3893 (Freeze_Subprogram_Body): If the generic subprogram is nested within
3894 the package body that contains the instance, do not generate an
3895 out-of-place freeze node for the enclosing package.
3896 (Collect_Previous_Instantiations): Ignore internal instantiations
3897 generated for formal packages.
3898 (Validate_Derived_Type_Instance): Add a check that when a formal
3899 derived type is Known_To_Have_Preelab_Init then the actual type must
3900 have preelaborable initialization, and issue an error when this
3901 condition is violated.
3903 2007-12-13 Robert Dewar <dewar@adacore.com>
3905 * s-imenne.adb, s-imenne.ads: New files.
3907 * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
3908 s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
3909 s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
3910 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
3911 s-imgwch.ads: New calling sequence for Image routines to avoid sec
3914 2007-12-13 Javier Miranda <miranda@adacore.com>
3915 Ed Schonberg <schonberg@adacore.com>
3917 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
3918 generation of spurious error if parent is an interface type; caused
3919 because predefined primitive bodies will be generated later by
3921 (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
3923 (Derive_Subprograms): Handle derivations of predefined primitives
3924 after all the user-defined primitives to ensure that they are
3925 found in proper order in instantiations.
3926 (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
3927 of Related_Interface to Related_Type.
3928 (Record_Type_Declaration): Minor reordering of calls to decorate the
3929 Tag component because the entity must have set its Ekind attribute
3930 before setting its Is_Tag attribute.
3931 (Analyze_Subtype_Declaration): In the case of subtypes with
3932 Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
3934 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
3935 Ed Schonberg <schonberg@adacore.com>
3937 * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
3938 statement to the list of contexts where a selected component with a
3939 concurrent tagged type prefix should yield a primitive operation.
3940 (Find_Primitive_Operation): Handle case of class-wide types.
3941 (Analyze_Overloaded_Selected_Component): If type of prefix is
3942 class-wide, use visible components of base type.
3943 (Resolve_Selected_Component): Ditto.
3944 (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
3945 formal of a generic subprogram. find candidate interpretations by
3946 scanning the list of generic formal declarations.:
3947 (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
3948 type from a limited_with_clause, and the full view is available, use it
3949 for subsequent semantic checks.
3950 (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
3951 (Find_Primitive_Operation): New function.
3952 (Analyze_Overloaded_Selected_Component): insert explicit dereference
3953 only once if several interpretations of the prefix yield an access type.
3954 (Try_Object_Operation): Code and comment cleanup.
3955 (Analyze_Selected_Component): Reorder local variables. Minot comment and
3956 code reformatting. When the type of the prefix is tagged concurrent, a
3957 correct interpretation might be available in the primitive and
3958 class-wide operations of the type.
3960 2007-12-13 Robert Dewar <dewar@adacore.com>
3961 Ed Schonberg <schonberg@adacore.com>
3963 * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
3964 renaming entry as subprogram using rename-as-body if subprogram spec
3966 (Use_One_Type): The clause is legal on an access type whose designated
3967 type has a limited view.
3968 (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
3969 (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
3970 (Analyze_Renamed_Primitive_Operation): new procedure to determine the
3971 operation denoted by a selected component.
3972 (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
3973 it can be an expression, possibly overloaded, that returns a task or
3976 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
3977 Gary Dismukes <dismukes@adacore.com>
3979 * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
3980 requeue statement is dispatching. Do not emit an error when the name is
3981 not an entry and the context is a dispatching select. Add code to
3982 perform subtype conformance between the formals of the current entry
3983 and those of the target interface primitive.
3984 (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
3985 Timed_Entry_Call): Analyze the triggering statement as the first step of
3986 the processing. If this is a dispatching select, postpone the analysis
3987 of all select statements until the Expander transforms the select. This
3988 approach avoids generating duplicate identifiers after the Expander has
3989 replicated some of the select statements. In case the Expander is
3990 disabled, perform regular analysis.
3991 (Check_Triggering_Statement): New routine.
3992 (Analyze_Requeue): Exclude any interpretations that are not entries when
3993 checking overloaded names in a requeue. Also test type conformance for
3994 matching interpretations rather than requiring subtype conformance at
3995 that point to conform with the RM's resolution rule for requeues.
3997 2007-12-13 Ed Schonberg <schonberg@adacore.com>
3999 * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
4000 inherited operation is a defaulted tag-indeterminate call, and there is
4001 a statically tagged actual, use the static tag as a controlling actual
4002 for the defaulted actual.
4004 2007-12-13 Geert Bosch <bosch@adacore.com>
4006 * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
4007 context, so do not call Check_Non_Static_Context.
4009 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
4011 * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
4012 whether formal E is an entity which may have parameters.
4014 2007-12-13 Bob Duff <duff@adacore.com>
4015 Javier Miranda <miranda@adacore.com>
4016 Robert Dewar <dewar@adacore.com>
4018 * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
4019 (Set_Convention): New procedure to set the Convention flag, and in
4020 addition make sure the Favor_Top_Level flag is kept in sync (all
4021 foreign-language conventions require Favor_Top_Level = True).
4022 (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
4024 (Collect_Interfaces_Info): Minor update to handle the two secondary
4025 dispatch tables. Update occurrence of Related_Interface to Related_Type.
4026 (Generate_Parent_Ref): Add parameter to specify entity to check
4027 (Is_Preelaborable_Expression): Allow the name of a discriminant to
4028 initialize a component of a type with preelaborable initialization.
4029 This includes the case of a discriminal used in such a context.
4030 (Is_Dependent_Component_Of_Mutable_Object): Take into account the
4031 latest Ada 2005 rules about renaming and 'Access of
4032 discriminant-dependent components.
4033 (Check_Nested_Access): Add handling when there are no enclosing
4034 subprograms (e.g. case of a package body).
4035 (Find_Parameter_Type): Factor routine from several other compiler files.
4036 Remove routine from Find_Overridden_Synchronized_Primitive.
4038 2007-12-13 Thomas Quinot <quinot@adacore.com>
4040 * sinput.adb (Get_Source_File_Index): Add assertion to guard against
4041 an invalid access to an uninitialized slot in the
4042 Source_File_Index_Table.
4044 2007-12-13 Thomas Quinot <quinot@adacore.com>
4046 * sinput-l.adb (Load_File): Disable style checks when preprocessing.
4048 2007-12-13 Bob Duff <duff@adacore.com>
4050 * s-soflin.ads: Apply new pragma Favor_Top_Level to all
4051 access-to-subprogram types in this package.
4053 2007-12-13 Olivier Hainque <hainque@adacore.com>
4055 * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
4056 with Stack_Grows_Down in System.Parameters. Rename Array_Address into
4057 Stack_Overlay_Address and document that we are using an internal
4059 (Byte_Size, Unsigned_32_Size): Remove, now useless.
4060 (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
4061 consistently throughout the various implementation pieces.
4063 * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
4064 overlay we are using to fill the stack area with patterns.
4065 (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
4066 (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
4067 (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
4069 2007-12-13 Robert Dewar <dewar@adacore.com>
4071 * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
4073 2007-12-13 Arnaud Charlet <charlet@adacore.com>
4076 (Create_Task): Take into account tasks created by foreign threads.
4077 Code clean up: use constants instead of hard coded values.
4079 2007-12-13 Robert Dewar <dewar@adacore.com>
4081 * styleg.adb (Check_Comment): More liberal rules for comment placement
4083 2007-12-13 Olivier Hainque <hainque@adacore.com>
4085 * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
4086 of Procedure Value instead of Frame Pointer as the invocation
4087 identifier associated with the instruction pointer in each traceback
4090 * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
4091 TB_Entry_For): Revert back to use of Procedure Value instead of Frame
4092 Pointer as the invocation identifier passed to tbk$symbolize.
4094 * s-traent-vms.ads, s-traent-vms.adb
4095 (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
4096 Procedure Value instead of Frame Pointer as the invocation identifier
4097 passed to tbk$symbolize.
4099 2007-12-13 Robert Dewar <dewar@adacore.com>
4101 * tbuild.ads, tbuild.adb:
4102 Fix location of flag for unrecognized pragma message
4104 2007-12-13 Robert Dewar <dewar@adacore.com>
4106 * treepr.ads, treepr.adb: (pl): implement use of positive value
4109 2007-12-13 Robert Dewar <dewar@adacore.com>
4111 * xeinfo.adb: Remove warnings
4112 * xnmake.adb: Remove warnings
4113 * xsinfo.adb: Remove warnings
4114 * xtreeprs.adb: Remove warnings
4115 * xsnames.adb: Remove warnings
4117 * a-ngcoar.adb: Fix typo.
4118 * s-interr.adb: Minor reformatting
4119 * env.c: Minor reformatting.
4120 * g-bytswa.adb: Minor reformatting.
4121 * g-rannum.ads: Minor documentation improvements
4122 * s-tasinf-mingw.adb: Minor header fix
4123 * a-clrefi.adb: Minor reformatting
4124 * g-sttsne.ads: Minor documentation improvement
4125 * g-sttsne-locking.ads: Minor documentation improvement
4126 * g-soliop-solaris.ads: Minor documentation improvement
4127 * g-soliop-mingw.ads: Minor documentation improvement
4128 * g-soliop.ads: Minor documentation improvement
4129 * exp_aggr.ads: Minor reformatting
4130 * debug.adb: Add documentation for the gprbuild debug flags
4131 * exp_ch2.adb: Use Nkind_In to simplify code throughout
4132 * exp_pakd.adb: Minor reformatting
4134 * g-altive.ads, g-alleve.adb: Remove assertions.
4135 Add comment about minor differences between targets regarding
4136 floating-point operations.
4138 * g-thread.adb: Remove pragma unreferenced.
4139 * lib.ads: Minor reformatting
4140 * par-ch9.adb: Minor reformatting of error messages
4141 * sem_case.adb: Minor reformatting
4142 * s-fileio.adb: Minor reformattinng
4143 * s-vmexta.ads: Minor typo
4145 Take into account 'Success' value as per new GNAT warning.
4147 2007-12-13 Vincent Celier <celier@adacore.com>
4149 * a-direct.adb (Create_Path): Always take '/' as a directory separator,
4152 2007-12-13 Robert Dewar <dewar@adacore.com>
4153 Bob Duff <duff@adacore.com>
4155 * gnat_ugn.texi: Dcoument new rules for style check comment alignment
4156 Document that suffixes may be terminations of each others
4157 Add doc for -gnatw.a and -gnatw.A
4158 Document gnatbind -Wx switch
4159 Document BOM recognition
4160 Document pragma Implemented_By_Entry.
4163 * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
4164 Add doc for pragma Unreferenced suppressing no entities referenced msg
4165 Add documentation of GNAT.Directory_Operations.Iteration
4166 Add documentation of GNAT.Random_Numbers
4167 Add documentation for pragma Shared.
4168 Correct documentation for Bit_Order
4169 Add documentation for the Pool_Address attribute.
4170 Fix and improve documentation of pragma machine_attribute.
4171 New pragma Fast_Math
4172 Document BOM recognition
4174 * vms_data.ads: Add entries for -gnatw.a -gnatw.A
4175 Add /Wide_Character_Encoding for binder
4176 Add qualifier for the new gnatpp option --no-separate-loop-then
4178 2007-12-13 Matthew Heaney <heaney@adacore.com>
4180 * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
4181 which generic formal operations are called for each operation.
4183 2007-12-13 Olivier Hainque <hainque@adacore.com>
4185 * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
4186 (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
4188 2007-12-13 Emmanuel Briot <briot@adacore.com>
4190 * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
4191 Reference_Dir unless we actually need it.
4193 2007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
4194 Tristan Gingold <gingold@adacore.com>
4196 * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
4199 a-calend-vms.adb: Remove pragma warning off and add pragma
4202 2007-12-13 Robert Dewar <dewar@adacore.com>
4204 * impunit.adb: Add entries for missing units
4206 * Makefile.rtl: Add new run-time units.
4208 * Make-lang.in: Update dependencies.
4210 2007-12-13 Bob Duff <duff@adacore.com>
4212 * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
4213 types, set Can_Use_Internal_Rep appropriately, based on
4214 Always_Compatible_Rep_On_Target.
4216 2007-12-13 Gary Dismukes <dismukes@adacore.com>
4217 Arnaud Charlet <charlet@adacore.com>
4219 * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
4220 it to the front end and setting the aamp_target environment variable
4221 to the switch's argument to ensure that gnaampbind and gnaamplink will
4222 take the specified library into account.
4223 (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
4224 target, since the CIL compiler supports an "object" file (.il files).
4226 2007-12-13 Vincent Celier <celier@adacore.com>
4228 * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
4229 (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
4231 2007-12-13 Geert Bosch <bosch@adacore.com>
4233 * s-parame-vxworks.adb:
4234 Update comments to reflect usage of this package by Nucleus.
4236 2007-12-13 Arnaud Charlet <charlet@adacore.com>
4238 * i-vxwork.ads: Kill new warning on Convention C, since changing the
4239 spec would break code.
4241 * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
4243 * system-vxworks-alpha.ads: Removed.
4245 2007-12-10 Eric Botcazou <ebotcazou@adacore.com>
4247 * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
4249 2007-12-09 Samuel Tardieu <sam@rfc1149.net>
4252 * sem_ch3.adb (Designates_T): New function.
4253 (Mentions_T): Factor reusable part of the logic into Designates_T.
4254 Consider non-access parameters and access and non-access result.
4255 (Check_Anonymous_Access_Components): Set ekind of anonymous access to
4256 E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
4258 * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
4260 2007-12-07 Ludovic Brenta <ludovic@ludovic-brenta.org>
4263 * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
4264 the new implementation of target-specific calls.
4266 2007-12-07 Olivier Hainque <hainque@adacore.com>
4268 * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
4269 the designated full view, only follow a second level Full_View link
4270 for Non_Limited_Views of from_limited_with references.
4272 2007-12-07 Samuel Tardieu <sam@rfc1149.net>
4275 * sem_ch6.adb (Process_Formals): Prevent an access type formal
4276 to be initialized with an access to constant object.
4278 * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
4279 when an access to constant is used to initialize an access
4283 * a-direct.adb (Compose): Containing_Directory can be an empty string.
4285 2007-12-07 Olivier Hainque <hainque@adacore.com>
4288 * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
4289 the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
4290 this is from an alignment clause on the GNAT entity.
4291 * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
4292 to distinguish the case where we set it from the type's alignment.
4293 When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
4294 whether this alignment was set from an explicit alignment clause.
4296 2007-12-06 Eric Botcazou <ebotcazou@adacore.com>
4298 * decl.c (make_packable_type): Revert last change.
4299 (gnat_to_gnu_field): Avoid setting size and position multiple times.
4300 * utils.c (finish_record_type): Retrieve the real name of the type.
4302 2007-12-05 Eric Botcazou <ebotcazou@adacore.com>
4304 * trans.c (lvalue_required_p): Take base node directly instead
4305 of its parent. Rename second parameter to 'gnu_type'.
4306 <N_Indexed_Component>: Return 0 if the node isn't the prefix.
4307 <N_Slice>: Likewise.
4308 (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
4309 Adjust calls to lvalue_required_p.
4311 2007-12-05 Samuel Tardieu <sam@rfc1149.net>
4314 * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
4315 parameters of an entry call.
4317 2007-12-03 Robert Dewar <dewar@adacore.com>
4318 Samuel Tardieu <sam@rfc1149.net>
4321 * sem_util.adb (Safe_To_Capture_Value): Do not capture values
4322 of variables declared in a library-level package.
4324 2007-12-02 Samuel Tardieu <sam@rfc1149.net>
4326 * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
4327 of Empty_String'Unchecked_Access.
4329 * Makefile.in: Add support for sh4-linux.
4331 * system-linux-sh4.ads: New file.
4333 2007-12-01 Kostik Belousov <kostikbel@ukr.net>
4336 * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
4337 and its argument must not be free()ed.
4339 2007-11-29 Eric Botcazou <ebotcazou@adacore.com>
4341 * decl.c (make_packable_type): Retrieve the real name of the type.
4342 (maybe_pad_type): Simplify similar code.
4344 2007-11-28 Samuel Tardieu <sam@rfc1149.net>
4347 * par-ch3.adb (P_Variant_Part): Signal an error when anything other
4348 than an identifier is used after "case" in a variant_part.
4351 * par-ch4.adb (Is_Parameterless_Attribute): New map.
4352 (P_Name, Scan_Apostrophe block): Parse left parenthesis following
4353 attribute name or not depending on the new map.
4355 * sem-attr.adb (Analyze_Attribute): Parameterless attributes
4356 returning a string or a type will not be called with improper
4359 * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
4361 * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
4364 * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
4365 Signal an error when attribute argument is a fixed-point value of
4369 * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
4370 a derived ordinary fixed point type.
4372 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
4373 RM_Size when a Small clause is found.
4375 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
4378 * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
4379 Pass 'false' for the new allocate_struct_function parameter.
4380 * utils.c (build_function_stub): Likewise.
4382 2007-11-25 Richard Guenther <rguenther@suse.de>
4384 * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
4385 (gnat_poplevel): Likewise.
4387 2007-11-25 Eric Botcazou <ebotcazou@adacore.com>
4389 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
4390 strict alignment, no alignment clause and a known static size, cap
4391 the type alignment to the greatest power of 2 factor of the size.
4392 (gnat_to_gnu_field): If the field has a component clause, is aliased
4393 or of a type with strict alignment, require that its size be equal to
4395 (validate_size): Use the type size as the minimum size for a type with
4398 2007-11-23 Samuel Tardieu <sam@rfc1149.net>
4400 * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
4401 s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
4402 s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
4403 Use 'Access instead of 'Unchecked_Access in second and third
4404 arguments of pthread_sigmask.
4406 2007-11-23 Eric Botcazou <ebotcazou@adacore.com>
4408 * decl.c (ceil_alignment): New function.
4409 (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
4410 (make_packable_type): Likewise.
4412 2007-11-22 Olivier Hainque <hainque@adacore.com>
4414 * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
4415 to fit in 80 columns.
4417 2007-11-21 Aurelien Jarno <aurelien@aurel32.net>
4419 * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
4420 * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
4422 2007-11-19 Eric Botcazou <ebotcazou@adacore.com>
4425 * misc.c (gnat_adjust_rli): Delete.
4426 (gnat_init): Do not initialize the translation code here.
4427 Do not call set_lang_adjust_rli.
4428 * trans.c (init_code_table): Make static.
4429 (gnat_init_stmt_group): Delete.
4430 (gigi): Initialize the translation code entirely here.
4431 Emit debug info for the common types here instead of...
4432 * utils.c (gnat_init_decl_processing): ...here.
4433 * gigi.h (init_code_table): Delete.
4434 (gnat_init_stmt_group): Likewise.
4436 2007-11-16 Olivier Hainque <hainque@adacore.com>
4438 * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
4439 retrieving an allocator return value from a super-aligned address from
4441 * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
4442 expect a super-aligned address for a fat or thin pointer.
4444 2007-11-14 Eric Botcazou <ebotcazou@adacore.com>
4446 * trans.c (call_to_gnu): Always set the source location on the call
4447 expression. If the function returns-by-target, also set it on the
4450 2007-11-14 Samuel Tardieu <sam@rfc1149.net>
4452 * adaint.c, init.c, initialize.c, link.c: Remove system-specific
4453 sections of non-supported Interix target.
4455 * s-osinte-interix.ads: Removed.
4457 * i-cstrin.ads (chars_ptr): Make it a C convention type.
4459 2007-11-13 Samuel Tardieu <sam@rfc1149.net>
4461 * a-tasatt.adb: Add a comment at the beginning of the package
4462 explaining why in general 'Unchecked_Access must be used instead
4465 * sem_prag.adb (Process_Convention): Move the test for the
4466 entity on which the Convention pragma applies down to also
4467 forbid pragma Convention on enumeration literals reached
4470 2007-11-10 Samuel Tardieu <sam@rfc1149.net>
4472 * a-tasatt.adb: Revert previous change for this file as it will
4473 generate an error when this package is instantiated from a
4476 2007-11-07 Samuel Tardieu <sam@rfc1149.net>
4478 * a-tasatt.adb: Type Wrapper should be declared in comment instead
4479 of already declared type Node_Access.
4480 Use 'Access instead of 'Unchecked_Access when applicable. Local
4481 lifetime is the one of the package.
4482 (Set_Value): W is allocated on the heap.
4484 * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
4486 (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
4488 (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
4491 * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
4493 (elaboration code): Timer_Queue lifetime is the one of the
4496 * tracebak.c (i386 alternative): Remove useless comparaison
4497 which is always false; LOWEST_ADDRESS is 0 and is never greater
4498 than an unsigned integer.
4500 * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
4501 embedded check for "Ada_Version >= Ada_05".
4503 2007-11-07 Olivier Hainque <hainque@adacore.com>
4505 * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
4506 craft and expand comment.
4508 2007-11-01 Eric Botcazou <ebotcazou@adacore.com>
4510 * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
4512 2007-10-23 Eric Botcazou <ebotcazou@adacore.com>
4514 * misc.c (gnat_handle_option): Replace call to abort with
4515 call to gcc_unreachable.
4516 (gnat_init): Likewise.
4517 (gnat_expand_expr): Likewise.
4518 (fp_prec_to_size): Likewise.
4519 (fp_size_to_prec): Likewise.
4521 2007-10-23 Richard Guenther <rguenther@suse.de>
4524 * tracebak.c: #undef abort after including system.h.
4526 2007-10-20 Danny Smith <dannysmith@users.sourceforge.net>
4528 * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
4529 s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
4531 (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
4533 2007-10-15 Eric Botcazou <ebotcazou@adacore.com>
4535 * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
4536 Set the protection status of the guard page based on the value of On.
4538 * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
4540 * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
4541 (Exit_Task): Pass False to Hide_Yellow_Zone.
4543 2007-10-15 Robert Dewar <dewar@adacore.com>
4545 * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
4546 s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
4547 a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
4548 checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
4549 freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
4550 gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
4551 mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
4552 prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
4553 sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
4554 s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
4555 uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
4556 a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
4557 a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
4558 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
4559 a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
4560 a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
4562 Add Unreferenced and Warnings (Off) pragmas for cases of
4563 variables modified calls where they are IN OUT or OUT parameters and
4564 the resulting values are not subsequently referenced. In a few cases,
4565 we also remove redundant code found by the new warnings.
4567 * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
4568 sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
4569 sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
4570 sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
4571 warning controlled by -gnatw.o that warns on cases of out parameter
4572 values being ignored.
4574 2007-10-15 Geert Bosch <bosch@adacore.com>
4576 * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
4578 * expect.c: Initial port to arm-mentor-nucleus.
4579 Use kill for __gnat_kill() on VMS.
4581 2007-10-15 Emmanuel Briot <briot@adacore.com>
4583 * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
4585 (Xref_Record): Change type for Line, since in the case of a reference to
4586 a predefined entity (as happens for array index types), the line is set
4588 Add support for parsing multiple array index types info, or
4589 multiple inherited interfaces info. This information cannot be stored
4590 in Xref_Entity_Record, which only supports a single instance of Tref_*,
4591 and is therefore stored in the list of references instead. It has a
4592 special treatement later on in tools that use this information.
4594 2007-10-15 Tristan Gingold <gingold@adacore.com>
4596 * debug.adb: Document use of -gnatd.a and -gnatd.I
4598 * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
4600 2007-10-15 Javier Miranda <miranda@adacore.com>
4602 * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
4603 Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
4604 care of access to class-wide interface types plus removal of bizarre
4605 conversion of tagged object to access type (reported by Gary
4606 Dismukes). After this patch there is no need to perform any
4607 additional management on these nodes in Expand_Interface_Actuals.
4609 * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
4610 that handles use of 'Access and 'Unchecked_Access applied to
4611 actuals covering interface types. Such code is now
4612 centralized in Expand_N_Attribute_Reference.
4614 2007-10-15 Ed Schonberg <schonberg@adacore.com>
4616 * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
4617 of tagged types whose ultimate ancestor is a CPP type.
4618 (Freeze_Array_Type): For a packed array type, generate an initialization
4619 procedure if the type is public, to handle properly a client that
4620 specifies Normalize_Scalars.
4622 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
4624 * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
4625 inside a generic body, retrieve the full view of the entry family
4626 discrete subtype if available.
4628 2007-10-15 Thomas Quinot <quinot@adacore.com>
4630 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
4631 attempt to generate stubs for hidden primitive operations.
4633 2007-10-15 Vincent Celier <celier@adacore.com>
4635 * mlib-tgt-specific.adb (Support_For_Libraries): New function,
4636 returning None, used when there is no platform specific body for
4639 2007-10-15 Bob Duff <duff@adacore.com>
4641 * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
4642 (passing'Unrestricted_Access of nested subprograms to Sort) with use of
4643 the generic Heap_Sort_G, in order to avoid trampolines.
4645 2007-10-15 Vasiliy Fofanov <fofanov@adacore.com>
4646 Jose Ruiz <ruiz@adacore.com>
4648 * vx_stack_info.c: New file.
4650 * i-forbla-unimplemented.ads: New file.
4652 * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
4653 for unsupported configurations; use it on VMS targets instead of the
4655 (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
4656 vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
4657 used by VxWorks targets to have access to task-specific data and be
4658 able to extract the stack boundaries for stack checking.
4659 Use system-vms-ia64.ads on ivms.
4661 * Make-lang.in: Update dependencies.
4663 * sysdep.c (__gnat_get_stack_info): Move to a standalone file
4666 2007-10-15 Vincent Celier <celier@adacore.com>
4668 * snames.adb, snames.ads: Add new standard name runtime_library_dir
4670 * prj.ads (Language_Config): Add new component Runtime_Library_Dir
4672 * prj-attr.adb: Add project level attribute Runtime_Library_Dir
4674 * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
4675 the source is unknown.
4677 * prj-ext.adb: Spelling error fix
4679 * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
4680 95 reserved word in its name.
4681 (Process_Project_Level_Array_Attributes): Process new attribute
4682 Runtime_Library_Dir.
4684 * prj-part.adb (Parse_Single_Project): Do not check the name of the
4685 config project against the user project names.
4687 * prj-proc.adb (Expression): In multi-language mode, indexes that do
4688 not include a dot are always case insensitive.
4689 (Process_Declarative_Items): Ditto
4690 (Process_Project_Tree_Phase_1): Set Success to False in case an error is
4693 * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
4694 True, compare both indexes in lower case.
4696 2007-10-15 Robert Dewar <dewar@adacore.com>
4698 * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
4700 2007-10-15 Gary Dismukes <dismukes@adacore.com>
4702 * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
4703 association for an access component, add an association with null as
4704 the expression. Remove testing for array subtypes and the setting in
4705 that case of Ctyp to the array component type, which prevented proper
4706 inclusion of an association for null-initialized arrays. Collapse
4707 condition that tests for array subtypes into just a test of
4708 Is_Partially_Initialized_Type (which already covers arrays anyway).
4710 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
4712 * sem_ch12.adb: Minor code reformatting.
4713 (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
4714 find the parent package which may have been hidden by local
4717 2007-10-15 Gary Dismukes <dismukes@adacore.com>
4719 * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
4720 flag of derived concurrent types, taking into account the flag setting
4721 on the parent subtype and any new set of discriminants.
4723 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
4725 * sem_ch4.adb: Minor code and comment reformatting.
4726 (Analyze_Allocator): When the designated type of an unconstrained
4727 allocator is a record with unknown discriminants or an array with
4728 unknown range bounds, emit a detailed error message depending on the
4729 compilation mode and whether the designated type is limited.
4731 2007-10-15 Tristan Gingold <gingold@adacore.com>
4733 * system-vms-ia64.ads: New file.
4735 * system-vms_64.ads: Minor comment fix.
4737 2007-10-15 Ed Schonberg <schonberg@adacore.com>
4739 * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
4740 body generated for a function with a controlling result that is a null
4741 extension, discard the generated body in favor of the current explicit
4744 2007-10-15 Ed Schonberg <schonberg@adacore.com>
4746 * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
4747 examining its original form, to handle properly operator calls that
4748 have been rewritten.
4750 2007-10-15 Olivier Hainque <hainque@adacore.com>
4752 * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
4753 instead of a procedure value in each traceback entry.
4755 * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
4756 instead of procedure value to TBK$SYMBOLIZE.
4758 * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
4760 (TB_Entry_For): Account for the PV/FP renaming.
4762 * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
4764 (Null_TB_Entry): Account for change of component name.
4765 (PV_For): Rename as FP_For.
4767 2007-10-15 Tristan Gingold <gingold@adacore.com>
4769 * trans.c (gnat_to_gnu): Remove the padding structure more often.
4770 This optimize assignment to over-aligned record.
4772 2007-10-15 Emmanuel Briot <briot@adacore.com>
4774 * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
4777 * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
4778 type, for dispatching calls.
4780 2007-10-15 Vincent Celier <celier@adacore.com>
4781 Robert Dewar <dewar@adacore.com>
4783 * gnat_ugn.texi: Add documentation for switches --version and --help
4784 for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
4785 gnatxref, gnatfind, gnatls, and gnatclean.
4787 Mention attribute Excluded_Source_Dirs
4788 Replace obsolescent attribute Locally_Removed_Files with attribute
4789 Excluded_Source_Files.
4790 Improve documentation of -u (gnatbind)
4791 Document how to do reliable stack checking for the environmental task
4794 * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
4795 Document attribute Excluded_Source_Files and indicate that attribute
4796 Locally_Removed_Files is obsolescent.
4798 2007-10-15 Thomas Quinot <quinot@adacore.com>
4800 * g-soccon-vms.ads: Fix value of MSG_WAITALL.
4803 Update documentation to note that OpenVMS 8.3 or later must be used
4804 to generate g-soccon-vms.ads.
4806 * atree.adb: Add ??? comment
4808 * exp_util.adb: Minor reformatting.
4809 Add ??? comment in Kill_Dead_Code.
4811 2007-10-15 Robert Dewar <dewar@adacore.com>
4813 * errout.ads: Comment clarification
4815 * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
4816 (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
4818 * lib.ads: Comment update
4820 * init.c: Minor reformatting.
4822 * sem_attr.adb: Minor formatting
4824 * osint-b.ads: Minor reformatting
4826 * sem_ch9.adb: Implement -gnatd.I switch
4828 * g-comlin.adb: (Start): Fix handling of empty command line.
4830 * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
4831 even when -rules follows the -cargs section.
4833 2007-10-08 Ollie Wild <aaw@google.com>
4835 * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
4837 (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
4839 (gnat_eh_runtime_type): Removed.
4840 (gnat_return_tree): New function.
4842 2007-10-08 Ben Elliston <bje@au.ibm.com>
4846 2007-08-31 Ben Elliston <bje@au.ibm.com>
4848 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
4849 when compiling for powerpc64-*-linux.
4850 * system-linux-ppc64.ads: New file.
4852 2007-09-27 Eric Botcazou <ebotcazou@adacore.com>
4854 Mapped location support
4855 * back_end.adb (Call_Back_End): Pass information about source
4856 files instead of units to gigi.
4857 * gigi.h (struct File_Info_Type): New.
4858 (gigi): Rename and change type of number_units parameter, change
4859 type of file_info_ptr parameter.
4860 * trans.c (number_files): New global variable.
4861 (gigi): Rename and change type of number_units parameter, change
4862 type of file_info_ptr parameter.
4863 If mapped location support is enabled, create the isomorphic mapping
4864 between source files and line maps.
4865 (Sloc_to_locus): If mapped location support is enabled, translate
4866 source location into mapped location.
4867 (annotate_with_node): Rename into set_expr_location_from_node.
4868 Call set_expr_location instead of annotate_with_locus.
4869 (Pragma_to_gnu): Adjust for above change.
4870 (Loop_Statement_to_gnu): Likewise.
4871 (call_to_gnu): Likewise.
4872 (Handled_Sequence_Of_Statements_to_gnu): Likewise.
4873 (gnat_to_gnu): Likewise.
4874 (add_stmt_with_node): Likewise.
4875 (add_cleanup): Likewise.
4876 * utils.c (gnat_init_decl_processing): Do not set input_line.
4878 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
4880 * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
4881 (Applicable_Use): Emit a warning when a package tries to use itself.
4882 (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
4883 is already in use or the package where it is declared is in use or is
4884 declared in the current package.
4885 (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
4887 * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
4888 s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
4889 s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
4891 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
4893 * a-calend-vms.adb, a-calend.adb:
4894 Add a section on leap seconds control along with two entities used to
4895 enable and disable leap seconds support. The array Leap_Second_Times is
4896 now constant and contains hard time values pre-generated. Remove
4897 all elaboration code used to populate the table of leap seconds.
4900 Add entity Leap_Seconds_Support to the list of global run-time variables
4901 along with a comment on its usage and values.
4902 (Gen_Adainit_Ada): Add code to generate the declaration and import of
4903 Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
4904 or one (enabled) depending on the presence of binder switch "-y".
4905 (Gen_Adainit_C): Add code to generate the declaration of external int
4906 __gl_leap_seconds_support. Set is value to zero (disabled) or one
4907 (enabled) depending on the presence of binder switch "-y".
4909 * init.c: Add __gl_leap_seconds_support to the list of global values
4910 computed by the binder.
4912 2007-09-26 Jerome Guitton <guitton@adacore.com>
4914 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
4915 s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
4916 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
4917 s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
4919 * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
4921 * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
4922 function which can be called by the debugger to interrupt the tasks of
4923 an Ada application asynchronously, as needed on VxWorks.
4924 (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
4926 * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
4927 renamed from Stop_All_Tasks. Update comments.
4928 (Stop_All_tasks): New function declaration.
4930 2007-09-26 Olivier Hainque <hainque@adacore.com>
4932 * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
4933 #include <utime.h> and #define GCC_RESOURCE_H before
4934 #include <sys/wait.h>.
4935 Add more protections in __gnat_translate_vms.
4937 * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
4938 #include <sys/wait.h>.
4940 2007-09-26 Thomas Quinot <quinot@adacore.com>
4941 Sergey Rybin <rybin@adacore.com>
4943 * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
4945 * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
4948 * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
4950 * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
4953 * sem_dist.ads: Minor comment fix
4955 * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
4957 2007-09-26 Javier Miranda <miranda@adacore.com>
4958 Eric Botcazou <ebotcazou@adacore.com>
4961 (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
4962 indirection added to the HT_Link component of the TSD. This is required
4963 to statically allocate the TSD.
4966 Minor reordering of the declarations in the private part. Required to
4967 add a level of indirection to the contents of the TSD component HT_Link.
4968 This is required to statically allocate the TSD.
4970 * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
4971 Is_Statically_Allocated set from constant objects.
4972 Do not make exported constants created by the compiler volatile.
4973 (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
4976 * trans.c (Identifier_to_gnu): For constants, unshare initializers
4977 before returning them.
4979 * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
4980 public part of the package.
4981 (Make_DT): Move HT_Link component out of the TSD record. For this
4982 purpose Make_DT now declares a separate object that stores the
4983 HT_Link value, and initializes the TSD component with the address
4984 of this new object. The addition of this level of indirection is
4985 required to statically allocate the TSD because the TSD cannot
4986 have variable components.
4987 (Expand_Interface_Conversion): Improve the expanded code.
4988 (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
4990 * sem_disp.adb (Check_Dispatching_Operation): In case of a body
4991 declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
4992 if we are building static dispatch tables then we must not generate
4993 extra code to register the primitive because the dispatch table will
4994 be built at the end of the library package; otherwise we notify that
4995 we cannot build the static dispatch table.
4997 2007-09-26 Robert Dewar <dewar@adacore.com>
4999 * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
5002 * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
5003 (Analyze_Record_Representation_Clause): Suppress junk warning for
5004 missing component clause.
5005 (Analyze_Attribute_Definition_Clause, case Address): Apply the special
5006 tests for controlled type overlay to composites with controlled
5008 (Analyze_Record_Representation_Clause): Add reference for component name
5010 2007-09-26 Javier Miranda <miranda@adacore.com>
5011 Gary Dismukes <dismukes@adacore.com>
5013 * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
5014 for thunks associated with interface types.
5016 * einfo.ads: Improve documentatation of Is_Internal
5017 (Is_Thunk): New attribute applicable to subprograms. True for thunks
5018 associated with interface types.
5019 Extensive comment fixes regarding flags that appear in all entities. The
5020 documentation is now consistent for all such flags (there were a number
5021 of errors in the documentation in this regard).
5023 * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
5025 * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
5026 of these procedures are passed a function call that already has
5027 build-in-place actuals (testing new flag
5028 Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
5029 the case where processing continues.
5030 (Expand_Call): If the call is generated from a thunk body then we
5031 propagate the extra actuals associated with the accessibility
5032 level of the access type actuals.
5034 * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
5035 of each extra formal of a protected operation to reference the
5036 corresponding extra formal of the subprogram denoted by the
5037 operation's Protected_Body_Subprogram.
5039 * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
5040 N_Function_Call nodes.
5042 2007-09-26 Robert Dewar <dewar@adacore.com>
5044 * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
5046 * debug.adb: Add d.s flag.
5048 2007-09-26 Gary Dismukes <dismukes@adacore.com>
5050 * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
5051 debug variable so that it won't be initialized when pragma
5052 Initialize_Scalars is in effect.
5054 2007-09-26 Gary Dismukes <dismukes@adacore.com>
5056 * freeze.adb (Freeze_Entity): Remove check for preelaborable
5057 initialization of a full view. This is moved to
5058 Analyze_Package_Specification.
5060 * sem_ch7.adb (Analyze_Package_Specification): Add check for
5061 preelaborable initialization of a full view in entity loop.
5062 (Uninstall_Declarations): If entity is a use-visible compilation unit,
5063 its child units are use-visible only if they are visible child units.
5065 * sem_util.adb (Is_Preelaborable_Expression): New function to determine
5066 whether an expression can be used within a type declaration that
5067 requires preelaborable init.
5068 (Check_Components): Replace inline code that does partial checking for
5069 preelaborable default expressions with call to
5070 Is_Preelaborable_Expression.
5071 (Has_Preelaborable_Initialization): In the case of a generic actual
5072 subtype, (that is, Is_Generic_Actual is True), return the result of
5073 applying Has_Preelaborable_Initialization to the generic actual's base
5076 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
5078 * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
5079 call to Jan_1_Day _Of_Week to optimize its performance.
5080 (Is_Leap): Move the routine to the scope of Week_In_Year.
5081 (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
5082 weekday on which January 1 falls of Year - 1 and Year + 1. This function
5083 avoids calling Time_Of and Split, thus making it more efficent.
5084 (Week_In_Year): Reimplemented in oder to follow ISO 8601.
5086 * g-calend.ads (Week_In_Year): Change comment to reflect new
5089 2007-09-26 Emmanuel Briot <briot@adacore.com>
5091 * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
5092 Command_Line): New types
5093 (Define_Alias, Define_Prefix, Free): New subprograms. These provide
5094 support for defining how switches can be grouped on a command line (as
5095 is the case for -gnatw... for GNAT), and how simple switches can be
5096 used as aliases for more complex switches (-gnatwa is same as
5098 (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
5099 (Start, Current_*): New subprograms
5100 Added support for parsing an array of strings in addition to the real
5102 (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
5103 be moved from the body to the private part of the spec.
5104 (*): All subprograms now have an extra parameter with default value to
5105 specify which parser should be used. For backward compatibility, it
5106 defaults to parsing the command line of the application. They were also
5107 modified to properly handle cases where each of the argument does not
5108 start at index 1 (which is always true for Ada.Command_Line, but not
5109 when processing any Argument_List).
5110 (Free): New subprogram
5111 (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
5112 Argument): New subprograms
5113 (Switch_Parameter_Type): New enum, which clarifies the code. The extra
5114 special characters like ':', '=',... are now handled in a single place,
5115 which makes the code more extensible eventually.
5116 (Getopt, Full_Switch): When the switch was returned as part of the
5117 special character '*', make sure it is prepended by the switch character
5118 ('-' in general), so that the application knows whether "foo" or "-foo"
5119 was specified on the command line.
5121 2007-09-26 Florian Villoing <villoing@adacore.com>
5123 * g-dirope.adb (Remove_Dir): In case we are removing directories
5124 recursively, make sure that if an exception is raised during the
5125 processing, the current working directory is reset to its initial
5126 value before propagating the exception.
5128 2007-09-26 Vincent Celier <celier@adacore.com>
5130 * gnatbind.adb: If there are several ALI files specified and there is
5131 a main program to bind, the first ALI is expected to contain the main
5132 subprogram and the names of the binder generated files will be derived
5133 from the first ALI file name.
5134 (Gnatbind): Fix insertion character in invocation of Error_Msg
5136 2007-09-26 Vincent Celier <celier@adacore.com>
5138 * gnatcmd.adb (Check_Files): Do not include sources that have been
5139 removed by attributes Exclude_Source_Files or Locally_Removed_Files.
5141 2007-09-26 Ed Schonberg <schonberg@adacore.com>
5143 * lib-xref.ads, lib-xref.adb: The entry for array types now carries
5144 information about each of its index types, following the type
5145 reference for its component type.
5147 2007-09-26 Vincent Celier <celier@adacore.com>
5149 * make.adb: (Kill): New procedure (__gnat_kill imported)
5150 (Running_Compile, Outstanding_Compiles): Global variables that
5151 were previously local to procedure Compile_Sources.
5152 (Sigint_Intercepted): Send signal SIGINT to all outstanding
5153 compilation processes.
5155 (Gnatmake): If project files are used, create the mapping of all the
5156 sources, so that the correct paths will be found.
5158 * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
5160 2007-09-26 Vincent Celier <celier@adacore.com>
5162 * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
5164 * prj.ads, prj.adb (Default_Language): Remove function, no longer used
5165 Replace components Compiler_Min_Options and Binder_Min_Options with
5166 Compiler_Required_Switches and Binder_Required_Switches in record
5168 Remove components Default_Language and Config in Project_Tree_Data,
5171 * prj-attr.adb: New attributes Required_Switches (<language>) in
5172 packages Compiler and Binder.
5174 * prj-nmsc.adb: Major rewrite of the processing of configuration
5175 attributes for gprbuild. No impact on GNAT tools.
5177 * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
5178 process configuration attributes: this is done in Prj.Nmsc.Check.
5179 (Recursive_Process): Make a full copy of packages inherited from project
5180 being extended, instead of a shallow copy.
5181 (Process_Project_Tree_Phase_1): New procedure
5182 (Process_Project_Tree_Phase_1): New procedure
5183 (Process): Implementation now uses the two new procedures
5185 * prj-util.adb (Executable_Of): Get the suffix and the default suffix
5186 from the project config, not the tree config that no longer exists.
5188 2007-09-26 Vincent Celier <celier@adacore.com>
5190 * Make-lang.in: Update dependencies..
5192 2007-09-26 Vincent Celier <celier@adacore.com>
5194 * osint.adb, osint.ads: Minor reformatting
5196 * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
5198 2007-09-26 Gary Dismukes <dismukes@adacore.com>
5200 * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
5201 message to cite use of <> in aggregate component associations rather
5202 than wrongly indicating use of limited aggregates.
5204 2007-09-26 Robert Dewar <dewar@adacore.com>
5206 * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
5209 2007-09-26 Ed Schonberg <schonberg@adacore.com>
5211 * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
5212 ancestor of the derived type, the operations are inherited from the
5213 primary dispatch table of the parent.
5214 (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
5215 when the context is an explicit type conversion.
5217 2007-09-26 Ed Schonberg <schonberg@adacore.com>
5219 * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
5220 rule for qualified expressions properly, to detect improper conversions
5221 and resolve some cases of overloading.
5223 2007-09-26 Ed Schonberg <schonberg@adacore.com>
5225 * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
5226 proper kind of reference to the primitive operation, for better source
5228 (Valid_Conversion): A tagged conversion is legal if both operands are
5231 2007-09-26 Robert Dewar <dewar@adacore.com>
5233 * sem_warn.adb (Check_References): Catch more cases of unreferenced
5236 2007-09-26 Vincent Celier <celier@adacore.com>
5238 * snames.adb, snames.ads: Change Include_Option to Include_Switches
5240 2007-09-26 Robert Dewar <dewar@adacore.com>
5242 * s-wchstw.adb: provide messages for run time unit exceptions
5244 * a-witeio.adb: Minor reformatting
5246 * exp_ch13.adb: Minor reformatting
5248 2007-09-26 Sergey Rybin <rybin@adacore.com>
5250 * vms_data.ads: Revise gnatmetric qualifiers.
5251 Add qualified for the new gnatbind option '-y'
5253 * gnat_ugn.texi: Revise the gnatmetric section.
5254 Add entry for new gnatbind option '-y'.
5256 * gnat_rm.texi: Minor spelling correction.
5257 Document restriction on overlaying controlled types
5259 2007-09-26 Vincent Celier <celier@adacore.com>
5261 * makegpr.adb (Link_Executables): Do not fail when the root project has
5262 no sources, but is an extending project.
5264 2007-09-25 Eric Botcazou <ebotcazou@adacore.com>
5266 * trans.c: Fix misplaced #define.
5268 2007-09-22 Eric Botcazou <ebotcazou@adacore.com>
5270 * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
5271 the TYPE_REF_CAN_ALIAS_ALL flag to the result.
5273 2007-09-21 Olivier Hainque <hainque@adacore.com>
5275 * utils.c (type_for_nonaliased_component_p): Return false for
5276 all AGGREGATE_TYPEs.
5278 2007-09-17 Eric Botcazou <ebotcazou@adacore.com>
5280 * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
5281 object covered by 13.3(19) volatile.
5283 2007-09-12 Eric Botcazou <ebotcazou@adacore.com>
5287 * utils.c (unchecked_convert): Use a subtype as the intermediate type
5288 in the special VIEW_CONVERT_EXPR case.
5290 2007-09-12 Robert Dewar <dewar@adacore.com>
5292 * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
5294 * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
5295 lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
5296 s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
5297 s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
5298 s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
5299 s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
5300 s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
5301 s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
5302 a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
5303 g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
5304 s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
5305 s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
5306 snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
5307 s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
5308 s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
5309 s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
5310 s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
5311 pragma Compiler_Unit and adds it to relevant library units.
5313 2007-09-12 Ed Schonberg <schonberg@adacore.com>
5315 * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
5316 a box need not correspond to any component.
5318 2007-09-12 Robert Dewar <dewar@adacore.com>
5320 * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
5321 the tasking version of the Ada run time when foreign threads are
5322 present and there are no explicit Ada tasks or tasking constructs.
5324 * gnat_rm.texi: Clarify documentation of GNAT.Threads.
5326 2007-09-12 Hristian Kirtchev <kirtchev@adacore.com>
5328 * bindusg.adb (Display): Correct comment for switch -X. Add a line for
5329 the usage of switch -y.
5331 * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
5332 when switch -y is present.
5334 * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
5335 leap seconds in Ada.Calendar and its children.
5337 2007-09-12 Jose Ruiz <ruiz@adacore.com>
5339 * a-extiti.ads (Timer): The discriminant is a "not null access
5340 constant" in the Reference Manual.
5341 (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
5343 2007-09-12 Robert Dewar <dewar@adacore.com>
5345 * a-swuwha.adb: Remove junk RM header
5347 2007-09-12 Vincent Celier <celier@adacore.com>
5349 * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
5352 * g-bytswa.ads: Minor reformatting
5354 2007-09-12 Thomas Quinot <quinot@adacore.com>
5356 * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
5357 Add new constant Thread_Blocking_IO, always True by default, set False
5358 on a per-runtime basis.
5359 (Need_Netdb_Buffer): New constant.
5361 2007-09-12 Arnaud Charlet <charlet@adacore.com>
5363 * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
5364 Added renames for corresponding functions in System.Partition_Interface.
5366 2007-09-12 Doug Rupp <rupp@adacore.com>
5368 * Makefile.in: Remove VMS specific System.CRTL packages which are no
5371 * s-crtl-vms64.ads: Removed.
5373 2007-09-12 Olivier Hainque <hainque@adacore.com>
5375 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
5376 with discriminant constraints, generalize the code for BIT_FIELDs
5377 to PACKED fields of constant size and propagate DECL_PACKED.
5379 2007-09-11 Eric Botcazou <ebotcazou@adacore.com>
5381 * decl.c (array_type_has_nonaliased_component): New predicate.
5382 (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
5383 set the TYPE_NONALIASED_COMPONENT flag on the type.
5384 <E_Array_Subtype>: Likewise.
5385 * gigi.h (type_for_nonaliased_component_p): Declare.
5386 * utils.c (type_for_nonaliased_component_p): New predicate.
5387 (create_field_decl): Invoke the above predicate to set the
5388 DECL_NONADDRESSABLE_P flag on the field.
5390 2007-09-11 Javier Miranda <miranda@adacore.com>
5392 * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
5393 in library level record type entities if we are generating statically
5394 allocated dispatch tables.
5396 * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
5397 importing/exporting the _tag declaration by new code
5398 importing/exporting the dispatch table wrapper. This change allows us
5399 to statically allocate of the TSD.
5400 (Make_DT.Export_DT): New procedure.
5401 (Build_Static_DT): New function.
5402 (Has_DT): New function.
5404 * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
5405 True_Constant and Current_Value. Required to statically
5406 allocate the dispatch tables.
5407 (Check_Allocator): Make function iterative instead of recursive.
5408 Also return inner allocator node, when present, so that we do not have
5409 to look for that node again in the caller.
5411 2007-09-11 Jan Hubicka <jh@suse.cz>
5413 * misc.c (gnat_expand_body): Kill.
5414 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
5416 2007-09-10 Robert Dewar <dewar@adacore.com>
5418 * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
5419 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
5420 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
5421 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
5422 ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
5423 bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
5424 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
5425 butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
5426 comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
5427 elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
5428 err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
5429 exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
5430 exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
5431 exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
5432 exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
5433 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
5434 exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
5435 exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
5436 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
5437 exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
5438 exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
5439 exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
5440 fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
5441 get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
5442 gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
5443 gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
5444 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
5445 gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
5446 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
5447 gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
5448 inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
5449 lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
5450 lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
5451 make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
5452 mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
5453 mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
5454 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
5455 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
5456 osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
5457 osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
5458 par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
5459 par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
5460 par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
5461 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
5462 par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
5463 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
5464 prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
5465 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
5466 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
5467 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
5468 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
5469 prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
5470 rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
5471 scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
5472 sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
5473 sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
5474 sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
5475 sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
5476 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
5477 sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
5478 sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
5479 sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
5480 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
5481 sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
5482 sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
5483 sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
5484 sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
5485 sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
5486 stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
5487 styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
5488 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
5489 switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
5490 tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
5491 treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
5492 types.h, uintp.h, urealp.h, usage.adb, usage.ads,
5493 validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
5494 xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
5495 xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
5496 gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
5497 mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
5498 symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
5499 mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
5500 mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
5502 2007-09-10 Emmanuel Briot <briot@adacore.com>
5504 * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
5507 2007-09-10 Vasiliy Fofanov <fofanov@adacore.com>
5509 * adaint.c (__gnat_translate_vms): new function.
5511 2007-09-10 Gary Dismukes <dismukes@adacore.com>
5512 Thomas Quinot <quinot@adacore.com>
5514 * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
5515 create an abstract subprogram in the case of 'Input. For 'Output we now
5516 create a real spec/body when the type is abstract, since it can
5517 potentially be called.
5518 (Predefined_Primitive_Bodies): Now allow the creation of a predefined
5519 body for 'Output when the type is abstract (only the creation of the
5520 body for 'Input is excluded when the type is abstract).
5521 (Stream_Operation_OK): Add an additional condition in the return
5522 statement, so that False will be returned for TTS_Stream_Input if the
5523 associated tagged type is an abstract extension. Add comments for
5525 (Expand_N_Object_Declaration): For the case of a shared passive
5526 variable, insert init proc call only after the shared variable
5527 procedures have been processed, because the IP call needs to undergo
5528 shared passive variable reference expansion, which requires these
5529 procedures to be available (and elaborated).
5531 2007-09-10 Vincent Celier <celier@adacore.com>
5533 * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
5534 parameter Runtime_Project.
5536 2007-09-10 Ed Schonberg <schonberg@adacore.com>
5538 * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
5539 given a box association, the type of the component is discriminated,
5540 and the value of the discriminant is the discriminant of the enclosing
5541 type, retrieve its value from the aggregate itself, where it must have
5544 * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
5545 to remove other spurious ambiguities on arithmetic operations involving
5546 literals and addresses, on systems where Address is a visible integer
5547 type, when the operator is called in functional notation.
5548 (Try_Primitive_Operation): Within an instance, a call in prefixed form
5549 is legal when the types match, even if the operation is currently
5552 2007-09-10 Ed Schonberg <schonberg@adacore.com>
5554 * sem_ch12.adb (Build_Local_Package): A formal package with no
5555 associations is legal if all formals have defaults. It is not
5556 equivalent to a formal declared with a box.
5558 2007-09-10 Sergey Rybin <rybin@adacore.com>
5560 * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
5562 2007-09-10 Sergey Rybin <rybin@adacore.com>
5564 * gnat_ugn.texi: Add description of the new '-lratio' option
5565 Update 7.3.1 section about availability of the feature.
5567 2007-09-10 Thomas Quinot <quinot@adacore.com>
5569 * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
5572 2007-09-10 Olivier Hainque <hainque@adacore.com>
5574 * Makefile.in: (mips-irix section): Activate build of libgmem.
5576 2007-09-10 Eric Botcazou <ebotcazou@adacore.com>
5578 * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
5581 2007-09-10 Eric Botcazou <ebotcazou@adacore.com>
5583 * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
5584 a debug renaming declaration specially.
5586 2007-09-08 Eric Botcazou <ebotcazou@adacore.com>
5588 * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
5589 which a constant renaming is treated as a normal object declaration.
5590 * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
5591 the N_Indexed_Component case.
5592 <N_Indexed_Component>: Fall through to above case.
5593 <N_Object_Renaming_Declaration>: Return true for all composite types.
5595 2007-09-08 Eric Botcazou <ebotcazou@adacore.com>
5597 * decl.c (make_packable_type): If the new type has been given BLKmode,
5598 try again to get an integral mode for it.
5600 2007-09-07 Eric Botcazou <ebotcazou@adacore.com>
5602 Re-apply accidentally reverted change:
5604 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
5606 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
5607 get_action_description_for): Replace _Unwind_Word with _uleb128_t
5608 and _Unwind_SWord with _sleb128_t.
5610 2007-09-06 Eric Botcazou <ebotcazou@adacore.com>
5612 * trans.c (convert_with_check): Update call to real_2expN.
5614 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
5616 * trans.c (Compilation_unit_to_gnu): Use set_cfun.
5617 * utils.c (end_subprog_body): Likewise.
5619 2007-09-03 Nick Clifton <nickc@redhat.com>
5621 * Make-lang.in: Change copyright header to refer to version 3 of
5622 the GNU General Public License and to point readers at the
5623 COPYING3 file and the FSF's license web page.
5624 * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
5625 Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
5626 namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
5627 treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
5630 2007-08-31 Vincent Celier <celier@adacore.com>
5634 * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
5635 gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
5636 (Check_Version_And_Help): New procedure in package Switch to process
5637 switches --version and --help.
5638 Use Check_Version_And_Help in GNAT tools
5641 (Compile_Sources): Make sure that sources that are "excluded" are not
5643 (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
5644 project file is used.
5645 (Version_Switch): Remove, moved to Switch
5646 (Help_Switch): Remove, moved to Switch
5647 (Display_Version): Remove, moved to Switch
5649 * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
5650 package Switch to process switches --version and --help.
5651 (Display_Version): New procedure
5653 * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
5655 2007-08-31 Javier Miranda <miranda@adacore.com>
5657 * a-tags.adb (Internal_Tag): Protect the run-time against wrong
5660 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
5662 * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
5663 (Mark_Non_Null): If the node for which we just generated an access check
5664 is a reference to an *in* parameter and the reference appears in the
5665 declarative part of a subprogram body, mark the node as known non null.
5667 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
5669 * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
5670 structure of E_Exception to reflect the new flag.
5671 (Is_Raised, Set_Is_Raised): New inlined routines.
5672 Update the usage of available flag to reflect the addition of Is_Raised.
5673 (Is_Raised, Set_Is_Raised): Bodies of new routines.
5674 (Write_Entity_Flags): Write the status of flag Is_Raised.
5675 (Is_Descendent_Of_Address): New entity flag, to simplify handling of
5676 spurious ambiguities when integer literals appear in the context of an
5677 address type that is a visible integer type.
5679 * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
5680 exceptions never being raised.
5681 (Analyze_Raise_Statement): When analyzing an exception, mark it as being
5684 2007-08-31 Javier Miranda <miranda@adacore.com>
5686 * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
5687 statement when compiling under restriction No_Exceptions_Proparation.
5689 2007-08-31 Ed Schonberg <schonberg@adacore.com>
5691 * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
5692 initialization aggregate for the type, generate itype references for
5693 thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
5695 2007-08-31 Gary Dismukes <dismukes@adacore.com>
5697 * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
5698 library-level package renaming, pass the declaration associated with
5699 the renaming's special debug variable to Qualify_Entity_Names to ensure
5700 that its encoded name is properly qualified.
5702 * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
5703 occurring in the list of entities to qualify, and do not attempt to
5704 traverse an entity list in that case. Variables associated with
5705 ` library-level package renamings can now occur in the table.
5707 * exp_dbug.ads: Revise documentation of the encoding for renaming
5710 2007-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5712 * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
5713 access type points to an unconstrained array.
5715 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
5717 * restrict.adb, namet.adb, par-util.adb: Remove redundant type
5720 * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
5721 simple redundant qualifications. The check is performed whenever the
5722 expression is a non-overloaded identifier.
5723 (Resolve_Type_Conversion): Enchance the redundant type conversion check
5724 to include loop parameters.
5725 (Valid_Conversion): Avoid generation of spurious error message.
5727 2007-08-31 Bob Duff <duff@adacore.com>
5729 * par-ch4.adb (P_Simple_Expression): Fold long sequences of
5730 concatenations of string literals into a single literal, in order to
5731 avoid very deep recursion in the front end, which was causing stack
5734 * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
5735 string, and the right operand is a string literal (the case of "" &
5736 "..."), optimize by avoiding copying the right operand -- just use the
5737 value of the right operand directly.
5739 * stringt.adb (Store_String_Chars): Optimize by growing the
5740 String_Chars table all at once, rather than appending characters one by
5742 (Write_String_Table_Entry): If the string to be printed is very long,
5743 just print the first few characters, followed by the length. Otherwise,
5744 doing "pn(n)" in the debugger can take an extremely long time.
5746 * sem_prag.adb (Process_Interface_Name): Replace loop doing
5747 Store_String_Char with Store_String_Chars.
5749 2007-08-31 Vincent Celier <celier@adacore.com>
5751 * prj-attr.adb: Add new attribute Excluded_Source_Files
5753 * prj-nmsc.adb: Use attribute Excluded_Source_Files before
5754 Locally_Removed_Files.
5756 * snames.ads, snames.adb: New standard name Excluded_Source_Files
5758 2007-08-31 Ed Schonberg <schonberg@adacore.com>
5760 * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
5761 clauses of subunits, ignore limited_with_clauses that are illegal and
5762 have not been fully analyzed.
5764 2007-08-31 Ed Schonberg <schonberg@adacore.com>
5766 * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
5767 flag, for effiency. It is called when analyzing arithmetic operators
5768 and also for actuals in calls that are universal_integers. The flag is
5769 set for the predefined type address, and for any type or subtype
5772 * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
5773 Universal_Integer, when the formal is a descendent of address and the
5774 call appears in user code.
5775 (Analyze_Selected_Component): if the prefix is a private extension, the
5776 tag component is visible.
5778 * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
5781 2007-08-31 Robert Dewar <dewar@adacore.com>
5783 * s-fileio.adb (Open): Normalize file name to lower case in non-case
5784 sensitive file name systems to avoid unexpected mismatch in Vista.
5786 2007-08-31 Vincent Celier <celier@adacore.com>
5788 * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
5790 2007-08-31 Vincent Celier <celier@adacore.com>
5792 * symbols-vms.adb (Initialize): Read symbol files with continuation
5794 (Finalize): If symbol is long, split the line
5796 2007-08-31 Vincent Celier <celier@adacore.com>
5798 * fmap.ads: Minor comment updates
5800 2007-08-31 GNAT Script <nobody@adacore.com>
5802 * Make-lang.in: Makefile automatically updated
5804 2007-08-31 Bob Duff <duff@adacore.com>
5806 * sinfo.ads: Minor comment fix.
5808 2007-08-31 Thomas Quinot <quinot@adacore.com>
5810 * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
5811 with implementation.
5812 Documentation cleanup only.
5814 2007-08-31 Sergey Rybin <rybin@adacore.com>
5816 * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
5817 gnatpp '--separate-stmt-name' option.
5818 Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
5821 * gnat_ugn.texi: Add description for the new gnatpp
5822 '--separate-stmt-name' and '--use-on-new-line' options.
5824 2007-08-31 Ben Elliston <bje@au.ibm.com>
5826 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
5827 when compiling for powerpc64-*-linux.
5828 * system-linux-ppc64.ads: New file.
5830 2007-08-22 Krister Walfridsson <cato@df.lth.se>
5832 * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
5835 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5837 * misc.c (gnat_type_max_size): Constify.
5839 2007-08-16 Gary Dismukes <dismukes@adacore.com>
5841 * cstand.adb (Create_Standard): Create an entity for a zero-sized type
5842 associated with Standard_Debug_Renaming_Type, to be used as the type of
5843 the special variables whose names provide debugger encodings for
5844 renaming declarations.
5846 * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
5847 (Set_Debug_Renaming_Link): Change to set Node25.
5848 (Write_Field13_Name): Remove case for E_Enumeration_Literal.
5849 (Write_Field25_Name): Add case for E_Variable to output
5850 "Debug_Renaming_Link".
5851 (Write_Field23_Name): Correct the output string for "Limited_View".
5853 * exp_dbug.adb: Add with and use of Tbuild.
5854 (Debug_Renaming_Declaration): Replace creation of an enumeration type
5855 and literal with creation of a variable of type
5856 Standard_Debug_Renaming_Type whose name encodes both the renamed object
5857 and the entity of the renaming declaration.
5858 (Qualify_Entity_Name): Add the delayed qualification of the entity name
5859 part of the name of a variable that has a Debug_Renaming_Link.
5861 * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
5862 special type to be associated with variables that provide debugger
5863 encodings for renaming declarations.
5865 2007-08-16 Gary Dismukes <dismukes@adacore.com>
5866 Ed Schonberg <schonberg@adacore.com>
5867 Javier Miranda <miranda@adacore.com>
5869 * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
5870 ancestor part given by an aggregate to test for an unchecked conversion,
5871 since this can occur in some cases when the ancestor part is a function
5872 call, and we don't want to fall into the recursive call to this
5873 procedure in that case.
5875 * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
5876 stream attributes on limited types to account for user-specified
5877 attributes as well as whether Input (resp. Output) becomes available
5878 due to Read (resp. Write) being available for the type. Change Boolean
5879 variable to the more accurate name
5880 Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
5881 double-"not" predicate at beginning of return statement to more
5882 understandable form.
5884 * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
5885 return has an associated N_Handled_Sequence_Of_Statements, then wrap it
5886 in a block statement and use that as the first statement of the
5887 expanded return rather than incorrectly using the handled sequence as
5888 the first statement.
5890 * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
5891 operation, generate an explicit freeze node for it rather than
5892 generating extra formals, to ensure that gigi has the proper order of
5893 elaboration for anonymous subtypes in the signature of the subprograms.
5894 (Build_In_Place_Formal): Move assertion to beginning of loop.
5895 (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
5896 applied to a function call (occurs for some cases of 'Input).
5897 (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
5898 applied to a function call (occurs for some cases of 'Input).
5900 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
5901 2005, generate an extended return statement enclosing the result object
5904 * freeze.adb (Freeze_Record_Type): Extend the current management of
5905 components that are access type with an allocator as default value: add
5906 missing support to the use of qualified expressions of the
5907 allocator (which also cause freezing of the designated type!)
5908 (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
5909 dispatching operation, since extra formals may be needed by calls to
5910 build-in-place functions (such as stream 'Input).
5912 * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
5913 formals for 'Constrained and accessibility level in the case of a
5914 predefined dispatching operation.
5916 * exp_util.adb (Insert_Actions): A protected body is a valid insertion
5917 point, no need to find the parent node.
5919 2007-08-16 Javier Miranda <miranda@adacore.com>
5921 * exp_attr.adb (Attribute_Priority): Add missing support for entries
5924 2007-08-16 Javier Miranda <miranda@adacore.com>
5926 * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
5927 is not really required and can introduce regression with the debugger.
5928 The original problem is fixed with the patch written for checks.adb.
5930 2007-08-16 Thomas Quinot <quinot@adacore.com>
5932 * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
5933 Range_Check on Allocated_Table.
5935 2007-08-16 Vincent Celier <celier@adacore.com>
5937 * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
5938 Including_Non_Switch set to False.
5939 (Gnatmake): For the compiler, call Test_If_Relative_Path with
5940 Including_Non_Switch set to False.
5942 * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
5943 parameter Including_Non_Switch, defaulted to True. When
5944 Including_Non_Switch is False, options that are not switches and
5945 appear as relative path are not converted to absolute paths.
5947 2007-08-16 Nicolas Roche <roche@adacore.com>
5949 * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
5952 * Make-lang.in: Update dependencies
5954 2007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
5956 * sem_ch10.adb (Has_With_Clause): If the name of the with clause
5957 currently inspected is a selected component, retrieve the entity of
5959 (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
5960 from the immediate ancestor of Main_Unit_Entity.
5961 (Install_Limited_Withed_Unit): Do not install the limited view of
5962 package P if P is reachable through an ancestor chain from package C
5963 and C also has a with clause for P in its body.
5964 (Has_Limited_With_Clause): New routine.
5965 (Has_With_Clause): New routine.
5967 2007-08-16 Ed Schonberg <schonberg@adacore.com>
5969 * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
5970 generic for an enclosing instance is a global reference, even though
5971 its scope is the enclosing instance.
5973 2007-08-16 Gary Dismukes <dismukes@adacore.com>
5974 Javier Miranda <miranda@adacore.com>
5976 * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
5977 initialize a limited object.
5978 (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
5980 Make sure Has_Complex_Representation is inherited by derived type.
5982 2007-08-16 Robert Dewar <dewar@adacore.com>
5984 * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
5987 2007-08-16 Ed Schonberg <schonberg@adacore.com>
5989 * sem_disp.adb (Check_Dispatching_Operation): If the operation
5990 implements an operation inherited from a progenitor interface, verify
5991 that they are subtype-conformant.
5993 2007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
5994 Bob Duff <duff@adacore.com>
5995 Nicolas Setton <setton@adacore.com>
5997 * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
5998 (Resolve): Alphabetize local variables. Add new variable From_Lib. When
5999 the statement which is being resolved comes from a predefined library
6000 unit, all non-predefined library interpretations are skipped.
6001 (Resolve_Op_Concat): If string concatenation was folded in the parser,
6002 but the "&" is user defined, give an error, because the folding would
6005 * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
6006 the parser has folded a long sequence of concatenations of string
6009 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
6010 and "JMP_BUF" variables as artificial.
6011 (N_String_Literal): Do not use alloca for very long string literals. Use
6012 xmalloc/free instead. Otherwise the stack might overflow.
6014 * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
6017 2007-08-16 Vincent Celier <celier@adacore.com>
6019 * vms_conv.adb (Process_Argument): Ensure that project related options
6020 are not put in the -cargs section when using GNAT COMPILE.
6022 2007-08-16 Robert Dewar <dewar@adacore.com>
6024 * gnat_ugn.texi: Add note on preprocessing (output file not written)
6026 2007-08-16 Thomas Quinot <quinot@adacore.com>
6028 * a-tags.adb: Minor reformatting.
6030 2007-08-16 Bob Duff <duff@adacore.com>
6032 * sem_type.ads, sem_ch4.adb: Minor reformatting.
6034 2007-08-14 Thomas Quinot <quinot@adacore.com>
6036 * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
6037 s-osinte-interix.ads, system-interix.ads: Removed.
6039 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
6041 * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
6042 calls to Check_Within_Time_Bounds.
6043 ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
6044 (Difference): Account for possible rounding of the resulting difference
6046 2007-08-14 Robert Dewar <dewar@adacore.com>
6048 * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
6049 par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
6050 s-osinte-solaris.adb, s-osinte-solaris.ads,
6051 s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
6053 * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
6054 switch -gnatyS. Enable -gnatyS in GNAT style check mode
6056 2007-08-14 Robert Dewar <dewar@adacore.com>
6057 Ed Schonberg <schonberg@adacore.com>
6059 * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
6060 Suppress unmodified in-out parameter warning in some cases
6061 This patch is a also fairly significant change to the way suppressible
6064 * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
6065 needed for access to concurrent record types generated by the expander.
6066 (Generate_Range_Check): When generating a temporary to capture the
6067 value of a conversion that requires a range check, set the type of the
6068 temporary before rewriting the node, so that the type is always
6069 properly placed for back-end use.
6070 (Apply_Float_Conversion_Check): Handle case where the conversion is
6072 (Get_Discriminal): Code reformatting. Climb the scope stack looking
6073 for a protected type in order to examine its discriminants.
6075 2007-08-14 Robert Dewar <dewar@adacore.com>
6076 Gary Dismukes <dismukes@adacore.com>
6077 Ed Schonberg <schonberg@adacore.com>
6078 Thomas Quinot <quinot@adacore.com>
6080 * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
6081 a-stwisu.adb, a-strsup.adb: Fix warnings for range
6082 tests optimized out.
6084 * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
6085 (Get_Allocator_Final_List): For the case of an anonymous access type
6086 that has a specified Associated_Final_Chain, do not go up to the
6088 (Expand_N_Type_Conversion): Test for the case of renamings of access
6089 parameters when deciding whether to apply a run-time accessibility
6091 (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
6092 aggregate code before allocator, and ahead of declaration for
6093 temporary, to prevent access before elaboration when the allocator is
6094 an actual for an access parameter.
6095 (Expand_N_Type_Conversion): On an access type conversion involving an
6096 access parameter, do not apply an accessibility check when the
6097 operand's original node was an attribute other than 'Access. We now
6098 create access conversions for the expansion of 'Unchecked_Access and
6099 'Unrestricted_Access in certain cases and clearly accessibility should
6100 not be checked for those.
6102 * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
6103 includes a type conversion of a packed component that has been expanded,
6104 recover the original expression for the object, and use this expression
6105 in the post-call assignment statement, so that the assignment is made
6106 to the object and not to a back-end temporary.
6107 (Freeze_Subprogram): In case of primitives of tagged types not defined
6108 at the library level force generation of code to register the primitive
6109 in the dispatch table. In addition some code reorganization has been
6110 done to leave the implementation clear.
6111 (Expand_Call): When expanding an inherited implicit conversion,
6112 preserve the type of the inherited function after the intrinsic
6113 operation has been expanded.
6115 * exp_ch2.ads, exp_ch2.adb
6116 (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
6117 of an entry formal appearing in an assignment statement does not assign
6119 (Expand_Current_Value): Instead of calling a routine to determine
6120 whether the prefix of an attribute reference should be optimized or
6121 not, prevent the optimization of such prefixes all together.
6123 * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
6124 component whose prefix is known to be of an access type is an implicit
6125 dereference and does not assign to the prefix.
6127 2007-08-14 Ed Schonberg <schonberg@adacore.com>
6128 Robert Dewar <dewar@adacore.com>
6130 * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
6131 itype is visited, make an entry into table to link associated node and
6133 Add comments and correct harmless error in Build_NCT_Hash_Tables
6134 (Array_Aggr_Subtype): Associate each itype created for an index type to
6135 the corresponding range construct, and not to the aggregate itself. to
6136 maintain a one-to-one correspondence between itype and its associated
6137 node, to prevent errors when complex expression is copied.
6138 Fix mishandling of multiple levels of parens
6140 * sem_aggr.adb: Create a limited view of an incomplete type, to make
6141 treatment of limited views uniform for all visible declarations in a
6142 limited_withed package.
6143 (New_Copy_Tree): If hash table is being used and itype is visited,
6144 make an entry into table to link associated node and new itype.
6145 (Resolve_Record_Aggregate): Do not add an others box association for a
6146 discriminated record component that has only discriminants, when there
6147 is a box association for the component itself.
6149 * par-ch4.adb: Fix mishandling of multiple levels of parens
6151 2007-08-14 Robert Dewar <dewar@adacore.com>
6153 * comperr.adb: Fix problem with suppressing warning messages from gigi
6155 * erroutc.ads, erroutc.adb, errout.ads,
6156 errout.adb (Write_Eol): Remove trailing spaces before writing the line
6157 (Write_Eol_Keep_Blanks): New procedure to write a line, including
6158 possible trailing spaces.
6159 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
6160 Fix problem with suppressing warning messages from back end
6161 Improve handling of deleted warnings
6164 Fix problem with suppressing warning messages from back end
6165 Handle setting of Static_Dispatch_Tables flag.
6168 Fix problem with suppressing warning messages from back end
6170 * exp_intr.adb: Improve handling of deleted warnings
6172 2007-08-14 Robert Dewar <dewar@adacore.com>
6174 * debug.adb: Improve -gnatdI to cover all cases of serialization
6175 Add documentation of dZ, d.t
6177 * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
6179 (Sprint_Node_Actual): Generate new output associated with implicit
6180 importation and implicit exportation of object declarations.
6182 2007-08-14 Ed Schonberg <schonberg@adacore.com>
6183 Robert Dewar <dewar@adacore.com>
6184 Javier Miranda <miranda@adacore.com>
6185 Gary Dismukes <dismukes@adacore.com>
6187 * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
6188 to make treatment of limited views uniform for all visible declarations
6189 in a limited_withed package.
6190 Improve warnings for in out parameters
6191 (Set_Related_Interaface/Related_Interface): Allow the use of this
6192 attribute with constants.
6193 (Write_Field26_Name): Handle attribute Related_Interface in constants.
6194 Warn on duplicate pragma Preelaborable_Initialialization
6196 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
6197 generation of a freezing node to ensure proper management of null
6198 excluding access types in the backend.
6199 (Create_Extra_Formals): Test base type of the formal when checking for
6200 the need to add an extra accessibility-level formal. Pass the entity E
6201 on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
6202 originally being done in a couple of cases), to ensure that the
6203 Extra_Formals list gets set on the entity E when the first entity is
6205 (Conforming_Types): Add missing calls to Base_Type to the code that
6206 handles anonymous access types. This is required to handle the
6207 general case because Process_Formals builds internal subtype entities
6208 to handle null-excluding access types.
6209 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
6210 functions that need it, even when not marked Requires_Overriding.
6211 Improve warnings for in out parameters
6212 (Analyze_Function_Return): Warn for disallowed null return
6213 Warn on return from procedure with unset out parameter
6214 Ensure consistent use of # in error messages
6215 (Check_Overriding_Indicator): Add in parameter Is_Primitive.
6216 (Analyze_Function_Return): Move call to Apply_Constraint_Check before
6217 the implicit conversion of the expression done for anonymous access
6218 types. This is required to generate the code of the null excluding
6219 check (if required).
6221 * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
6222 A formal parameter is never publicly referenceable outside of its body.
6223 (Check_References): For an unreferenced formal parameter in an accept
6224 statement, use the same warning circuitry as for subprogram formal
6226 (Warn_On_Unreferenced_Entity): New subprogram, taken from
6227 Output_Unreferenced_Messages, containing the part of that routine that
6228 is now reused for entry formals as described above.
6229 (Goto_Spec_Entity): New function
6230 (Check_References): Do not give IN OUT warning for dispatching operation
6231 Improve warnings for in out parameters
6232 (Test_Ref): Check that the entity is not undefinite before calling
6233 Scope_Within, in order to avoid infinite loops.
6234 Warn on return from procedure with unset out parameter
6235 Improved warnings for unused variables
6237 2007-08-14 Robert Dewar <dewar@adacore.com>
6238 Javier Miranda <miranda@adacore.com>
6239 Gary Dismukes <dismukes@adacore.com>
6241 * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
6242 (Expand_N_Attribute_Reference): Further unify the handling of the
6243 three forms of access attributes, using common code now for all three
6244 cases. Add a test for the case of applying an access attribute to
6245 an explicit dereference when the context is an access-to-interface
6246 type. In that case we need to apply the conversion to the prefix
6247 of the explicit dereference rather than the prefix of the attribute.
6248 (Attribute_Version, UET_Address): Set entity as internal to ensure
6249 proper dg output of implicit importation.
6250 (Expand_Access_To_Type): Removed.
6251 (Expand_N_Attribute_Reference): Merge the code from the three cases
6252 of access attributes, since the processing is largely identical for
6253 these cases. The substantive fix here is to process the case of a
6254 type name prefix (current instance case) before handling the case
6255 of interface prefixes.
6257 2007-08-14 Thomas Quinot <quinot@adacore.com>
6258 Ed Schonberg <schonberg@adacore.com>
6259 Javier Miranda <miranda@adacore.com>
6260 Robert Dewar <dewar@adacore.com>
6262 * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
6263 (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
6264 type that is an anonymous access to controlled object, establish
6265 an associated finalization chain to avoid corrupting the global
6266 finalization list when a dynamically allocated object designated
6267 by such a component is deallocated.
6268 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
6269 functions that need it, even when not marked Requires_Overriding.
6270 (Initialize_Tag): Replace call to has_discriminants by call to
6271 Is_Variable_Size_Record in the circuitry that handles the
6272 initialization of secondary tags.
6273 (Is_Variable_Size_Record): New implementation.
6274 (Expand_N_Object_Declaration): Suppress call to init proc if there is a
6275 Suppress_Initialization pragma for a derived type.
6276 (Is_Variable_Size_Record): New subprogram.
6277 (Build_Offset_To_Top_Functions): New implementation that simplifies the
6278 initial version of this routine and also fixes problems causing
6279 incomplete initialization of the table of interfaces.
6280 (Build_Init_Procedure): Improve the generation of code to initialize the
6281 the tag components of secondary dispatch tables.
6282 (Init_Secondary_Tags): New implementation that simplifies the previous
6283 version of this routine.
6284 (Make_DT): Add parameter to indicate when type has been frozen by an
6285 object declaration, for diagnostic purposes.
6286 (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
6287 diagnose attemps to freeze a subprogram when some untagged type of its
6288 profile is a private type whose full view has not been analyzed yet.
6289 (Freeze_Array_Type): Generate init proc for packed array if either
6290 Initialize or Normalize_Scalars is set.
6291 (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
6292 constructing the new profile, copy the null_exclusion indicator for each
6293 parameter, to ensure full conformance of the new body with the spec.
6295 * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
6296 Create wrappers for constructor functions that need it, even when not
6297 marked Requires_Overriding.
6298 (Covers): Handle properly designated types of anonymous access types,
6299 whose non-limited views are themselves incomplete types.
6300 (Add_Entry): Use an entity to store the abstract operation which hides
6302 (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
6303 (Collect_Interps): Use Empty as an actual for Abstract_Op in the
6304 initialization aggregate.
6305 (Function_Interp_May_Be_Hidden): Rename to
6306 Function_Interp_Has_Abstract_Op.
6307 (Has_Compatible_Type): Remove machinery that skips interpretations if
6308 they are labeled as potentially hidden by an abstract operator.
6309 (Has_Hidden_Interp): Rename to Has_Abstract_Op.
6310 (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
6311 (Write_Overloads): Output the abstract operator if present.
6312 (Add_Entry): Before inserting a new entry into the interpretation table
6313 for a node, determine whether the entry will be disabled by an abstract
6315 (Binary_Op_Interp_May_Be_Hidden): New routine.
6316 (Collect_Interps): Add value for flag May_Be_Hidden in initialization
6318 (Function_Interp_May_Be_Hidden): New routine.
6319 (Has_Compatible_Type): Do not consider interpretations hidden by
6320 abstract operators when trying to determine whether two types are
6322 (Has_Hidden_Interp): New routine.
6323 (Set_May_Be_Hidden_Interp): New routine.
6324 (Write_Overloads): Write the status of flag May_Be_Hidden.
6326 2007-08-14 Ed Schonberg <schonberg@adacore.com>
6327 Javier Miranda <miranda@adacore.com>
6329 * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
6330 types declared in the declarative part of a nested package body or in
6331 the proper body of a stub.
6332 (Set_All_DT_Position): Add missing check to avoid wrong assignation
6333 of the same dispatch table slot to renamed primitives.
6334 (Make_Select_Specific_Data_Table): Handle private types.
6335 (Tagged_Kind): Handle private types.
6336 (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
6337 output of implicit importation and exportation.
6338 (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
6339 first formal of the thunk is always associated with the controlling
6340 type. In addition perform the following code cleanup: remove formal
6341 Thunk_Alias which is no longer required, cleanup evaluation of the
6342 the controlling type, and update the documentation.
6343 Replace occurrence of Default_Prim_Op_Count by
6344 Max_Predef_Prims. Addition of compile-time check to verify
6345 that the value of Max_Predef_Prims is correct.
6346 (Check_Premature_Freezing): Apply check in Ada95 mode as well.
6347 (Make_DT): Add parameter to indicate when type has been frozen by an
6348 object declaration, for diagnostic purposes.
6349 (Build_Static_Dispatch_Tables): New subprogram that takes care of the
6350 construction of statically allocated dispatch tables.
6351 (Make_DT): In case of library-level tagged types export the declaration
6352 of the primary tag. Remove generation of tags (now done by Make_Tags).
6353 Additional modifications to handle non-static generation of dispatch
6354 tables. Take care of building tables for asynchronous interface types
6355 (Make_Tags): New subprogram that generates the entities associated with
6356 the primary and secondary tags of Typ and fills the contents of Access_
6357 Disp_Table. In case of library-level tagged types imports the forward
6358 declaration of the primary tag that will be declared later by Make_DT.
6359 (Expand_Interface_Conversion): In case of access types to interfaces
6360 replace an itype declaration by an explicit type declaration to avoid
6361 problems associated with the scope of such itype in transient blocks.
6363 2007-08-14 Robert Dewar <dewar@adacore.com>
6364 Ed Schonberg <schonberg@adacore.com>
6365 Javier Miranda <miranda@adacore.com>
6367 * exp_util.ads, exp_util.adb:
6368 This patch replaces a number of occurrences of explicit tests for N_Null
6369 with calls to Known_Null. This improves tracking of null values, since
6370 Known_Null also catches null constants, and variables currently known to
6371 be null, so we get better tracking.
6372 (Ensure_Defined): create an itype reference only in the scope of the
6374 (Side_Effect_Free): A selected component of an access type that
6375 denotes a component with a rep clause must be treated as not
6376 side-effect free, because if it is part of a linked structure its
6377 value may be affected by a renaming.
6378 (Expand_Subtype_From_Expr): For limited objects initialized with build
6379 in place function calls, do nothing; otherwise we prematurely introduce
6380 an N_Reference node in the expression initializing the object, which
6381 breaks the circuitry that detects and adds the additional arguments to
6382 the called function. Bug found working in the new patch for statically
6383 allocated dispatch tables.
6384 (Is_Library_Level_Tagged_Type): New subprogram.
6385 (Remove_Side_Effects): If the expression of an elementary type is an
6386 operator treat as a function call.
6387 (Make_Literal_Range): If the index type of the array is not integer, use
6388 attributes properly to compute the constraint on the resulting aggregate
6391 * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
6392 class-wide type whose base type is an incomplete private type, leave
6393 class-wide type unfrozen so that freeze nodes can be generated
6394 properly at a later point.
6395 (Freeze_Entity, array case): Handle case of pragma Pack and component
6396 size attributre clause for same array.
6398 2007-08-14 Vincent Celier <celier@adacore.com>
6400 * prj.ads, prj.adb: Update Project Manager to new attribute names for
6402 Allow all valid declarations in configuration project files
6403 (Reset): Initialize all tables and hash tables in the project tree data
6404 Major update of the Project Manager and of the project aware tools,
6405 including gprmake, so that the same sources in the GNAT repository
6406 can be used by gprbuild.
6407 (Slash_Id): Change type to be Path_Name_Type
6408 (Slash): Return a Path_Name_Type instead of a File_Name_Type
6410 * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
6412 Update Project Manager to new attribute names for ghprbuild
6413 Allow all valid declarations in configuration project files
6414 Major update of the Project Manager and of the project aware tools,
6415 including gprmake, so that the same sources in the GNAT repository
6416 can be used by gprbuild.
6419 Major update of the Project Manager and of the project aware tools,
6420 including gprmake, so that the same sources in the GNAT repository
6421 can be used by gprbuild.
6423 * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
6424 insensitive flag for attributes with optional index.
6425 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
6426 array attribute, put the index in lower case.
6427 Update Project Manager to new attribute names for ghprbuild
6428 Allow all valid declarations in configuration project files
6429 Major update of the Project Manager and of the project aware tools,
6430 including gprmake, so that the same sources in the GNAT repository
6431 can be used by gprbuild.
6433 * prj-env.ads, prj-env.adb:
6434 Major update of the Project Manager and of the project aware tools,
6435 including gprmake, so that the same sources in the GNAT repository
6436 can be used by gprbuild.
6437 (Get_Reference): Change type of parameter Path to Path_Name_Type
6439 * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
6440 removing '-' from the path to start with the first character of the
6442 Major update of the Project Manager and of the project aware tools,
6443 including gprmake, so that the same sources in the GNAT repository
6444 can be used by gprbuild.
6445 Major update of the Project Manager and of the project aware tools,
6446 including gprmake, so that the same sources in the GNAT repository
6447 can be used by gprbuild.
6449 * prj-nmsc.ads, prj-nmsc.adb:
6450 Update Project Manager to new attribute names for ghprbuild
6451 Allow all valid declarations in configuration project files
6452 (Search_Directories): Detect subunits that are specified with an
6453 attribute Body in package Naming. Do not replace a source/unit in the
6454 same project when the order of the source dirs are known. Detect
6455 duplicate sources/units in the same project when the order of the
6456 source dirs are not known.
6457 (Check_Ada_Name): Allow all identifiers that are not reserved words
6459 Major update of the Project Manager and of the project aware tools,
6460 including gprmake, so that the same sources in the GNAT repository
6461 can be used by gprbuild.
6462 (Look_For_Sources): If the list of sources is empty, set the object
6463 directory of non extending project to nil.
6464 Change type of path name variables to be Path_Name_Type
6465 (Locate_Directory): Make sure that on Windows '/' is converted to '\',
6466 otherwise creating missing directories will fail.
6468 * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
6469 prj-part.ads, prj-part.adb:
6470 Major update of the Project Manager and of the project aware tools,
6471 including gprmake, so that the same sources in the GNAT repository
6472 can be used by gprbuild.
6474 * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
6475 insensitive flag for attributes with optional index.
6476 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
6477 array attribute, put the index in lower case.
6478 (Parse_Variable_Reference): Allow the current project name to be used in
6479 the prefix of an attribute reference.
6481 * prj-util.ads, prj-util.adb
6482 (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
6483 defaulted to False. When True, always check against indexes in lower
6486 * snames.ads, snames.h, snames.adb:
6487 Update Project Manager to new attribute names for gprbuild
6488 Allow all valid declarations in configuration project files
6490 2007-08-14 Robert Dewar <dewar@adacore.com>
6491 Ed Schonberg <schonberg@adacore.com>
6493 * opt.ads: Warning for non-local exception propagation now off by
6495 New switch -gnatI to disable representation clauses
6496 Implement new pragma Implicit_Packing
6499 Warning for non-local exception propagation now off by default
6500 Add warning for unchecked conversion of pointers wi different
6502 New switch -gnatI to disable representation clauses
6504 * usage.adb: new switch -gnatyS
6506 * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
6507 note that aggregates of anonymous array types are not flagged.
6508 -gnatwc now includes membership tests optimized away
6509 -gnatw.x warnings are now off by default
6510 Added conditional compilation Appendix
6511 Add documentation of -gnatI
6512 Add documentation for new -gnatyS style check
6513 Update documentation about SAL and auto-init on Windows.
6516 Add documentation for pragma Check_Name and 'Enabled attribute
6517 Document that Eliminate on dispatching operation is ignored
6518 Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
6519 Document pragma Main
6520 Document pragma Implicit_Packing
6522 * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
6523 different conventions
6524 New switch -gnatI to disable representation clauses
6526 * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
6527 recognized, report the invalid characters including "-gnat" instead of
6528 just the first character in the switch.
6529 New switch -gnatI to disable representation clauses
6530 Set Warn_On_Object_Renames_Function true for -gnatg
6532 * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
6533 Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
6534 Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
6535 to switch -aP (add directory to project search dir).
6537 * par-prag.adb: Implement new pragma Implicit_Packing
6539 * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
6540 type as having a non-standard representation, to force expansion on
6541 conversion to related types.
6542 (Analyze_Pragma): Warn on misspelled pragma
6543 (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
6544 Ensure consistent use of # in error messages
6545 Implement pragma Implicit_Packing
6547 2007-08-14 Olivier Hainque <hainque@adacore.com>
6548 Eric Botcazou <ebotcazou@adacore.com>
6550 * targtyps.c (get_target_maximum_default_alignment): New function.
6552 that the compiler might choose by default for a type or object.
6553 (get_target_default_allocator_alignment): New function. Alignment known
6554 to be honored by the target default allocator.
6555 (get_target_maximum_allowed_alignment): New function. Maximum alignment
6556 we might accept for any type or object on the target.
6557 (get_target_maximum_alignment): Now synonym of maximum_default_alignment
6559 * gigi.h (get_target_maximum_default_alignment): Declare new function.
6560 (get_target_default_allocator_alignment): Likewise.
6561 (get_target_maximum_allowed_alignment): Likewise.
6564 * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
6565 result of a function call, first try to use a stabilized reference for
6566 a constant renaming too.
6567 (validate_alignment): Use target_maximum_allowed_alignment instead of
6568 MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
6569 (gnat_to_gnu_entity): Use common nodes directly.
6570 (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
6571 alignment and size for the object.
6572 (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
6573 and N_Procedure_Call_Statement.
6574 (takes_address): Rename to lvalue_required_p, add third parameter
6575 'aliased' and adjust recursive calls.
6576 <N_Indexed_Component>: Update 'aliased' from the array type.
6577 <N_Selected_Component>: New case.
6578 <N_Object_Renaming_Declaration>: New Likewise.
6579 (Identifier_to_gnu): Adjust for above changes.
6580 (maybe_stabilize_reference) <CONST_DECL>: New case.
6582 * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
6583 between type variants.
6584 (build_simple_component_ref): Likewise.
6585 (build_call_alloc_dealloc): Use target_default_allocator_alignment
6586 instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
6587 aligning type circuitry for allocations from the default storage pool.
6588 (build_allocator): Likewise.
6589 (build_simple_component_ref): Manually fold the reference for a
6590 constructor if the record type contains a template.
6592 * utils.c (value_zerop): Delete.
6593 (gnat_init_decl_processing): Emit debug info for common types.
6594 (rest_of_record_type_compilation): If a union contains a field
6595 with a non-constant qualifier, treat it as variable-sized.
6596 (finish_record_type): Give the stub TYPE_DECL a name.
6597 (rest_of_record_type_compilation): Likewise.
6598 (convert) <CONSTRUCTOR>: New case. Build a new constructor if
6599 types are equivalent array types.
6600 (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
6601 even if the type is not passed by reference.
6602 (static_ctors, static_dtors): Delete.
6603 (end_subprog_body): Do not record constructors and destructors.
6604 (build_global_cdtor): Delete.
6605 (gnat_write_global_declarations): Do not call build_global_cdtor.
6607 * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
6608 -fRTS=rtp is specified.
6609 If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
6612 * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
6613 of the personality function with SJLJ exceptions.
6615 * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
6616 the name of the personality function with SJLJ exceptions.
6618 2007-08-14 Robert Dewar <dewar@adacore.com>
6619 Ed Schonberg <schonberg@adacore.com>
6621 * par.ads, par.adb: Improve handling of extra right parens.
6622 (Par): Remove flag From_Limited_With_Clause.
6624 * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
6625 Improve handling of extra right parens.
6627 2007-08-14 Robert Dewar <dewar@adacore.com>
6629 * par-tchk.adb (TF_Semicolon): Improve error recovery
6631 2007-08-14 Robert Dewar <dewar@adacore.com>
6632 Ed Schonberg <schonberg@adacore.com>
6634 * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
6635 enumeration type, mark all literals as referenced.
6636 (Eval_Attribute, case 'Image): If the argument is an enumeration
6637 literal and names are available, constant-fold but mark nevertheless as
6639 Clean up function names.
6640 (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
6642 (Requires_Simple_Name_Prefix): Removed.
6644 2007-08-14 Robert Dewar <dewar@adacore.com>
6645 Ed Schonberg <schonberg@adacore.com>
6647 * sem_ch11.adb: Improved warnings for unused variables
6649 * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
6650 is a synchronized interface, the derived type is limited.
6651 (Analyze_Object_Declaration): Mark the potential coextensions in the
6652 definition and expression of an object declaration node.
6653 (Build_Derived_Type): For the completion of a private type declaration
6654 with a derived type declaration, chain the parent type's representation
6655 items to the last representation item of the derived type (not the
6656 first one) if they are not present already.
6657 (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
6658 object declaration of forward references to tags.
6659 (Access_Subprogram_Declaration): In Ada2005, anonymous access to
6660 subprogram types can appear as access discriminants of synchronized
6662 (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
6663 given in prefixed form as a selected component.
6664 (Process_Discriminants): If not all discriminants have defaults, place
6665 error message on a default that is present.
6666 (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
6667 extend a synchronized tagged type.
6668 Improved warnings for unused variables
6669 (Is_Visible_Component): Fix a visibility hole on a component inherited
6670 by a private extension when parent is itself declared as a private
6671 extension, and the derivation is in a child unit.
6672 (Find_Hidden_Interface): Move spec from the package body.
6674 2007-08-14 Robert Dewar <dewar@adacore.com>
6675 Ed Schonberg <schonberg@adacore.com>
6677 * sem_ch5.adb: Improve warnings on redundant assignments
6679 * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
6681 (Is_Synchronized_Tagged_Type): New subprogram that returns true
6682 in case of synchronized tagged types (AARM 3.9.4 (6/2)).
6683 (Safe_To_Capture_Value): Can now return True for constants, even if Cond
6684 is set to False. Improves handling of Known_[Not_]Null.
6685 (Wrong_Type): Special case address arithmetic attempt
6686 (Collect_Abstract_Interfaces): Add new formal to allow collecting
6687 abstract interfaces just using the partial view of private types.
6688 (Has_Abstract_Interfaces): Add new formal to allow checking types
6689 covering interfaces using the partial view of private types.
6690 (Is_Fully_Initialized_Type): Special VM case for uTag component. This
6691 component still needs to be defined in this case, but is never
6692 initialized as VMs are using other dispatching mechanisms.
6693 (Abstract_Interface_List): For a protected type, use base type to get
6695 Improve warnings on redundant assignments
6696 (Is_Variable): Handle properly an implicit dereference of a prefixed
6698 (Build_Actual_Subtype): If this is an actual subtype for an
6699 unconstrained formal parameter, use the sloc of the body for the new
6700 declaration, to prevent anomalises in the debugger.
6702 2007-08-14 Robert Dewar <dewar@adacore.com>
6704 * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
6705 dispatching operation
6707 2007-08-14 Ed Schonberg <schonberg@adacore.com>
6708 Gary Dismukes <dismukes@adacore.com>
6711 exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
6712 expanded aggregate code before allocator, and ahead of declaration for
6713 temporary, to prevent access before elaboration when the allocator is
6714 an actual for an access parameter.
6715 (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
6716 the TSD and the table of interfaces.
6717 (Convert_To_Assignments): Augment the test for delaying aggregate
6718 expansion for limited return statements to include the case of extended
6719 returns, to prevent creation of an unwanted transient scope.
6720 (Is_Static_Dispatch_Table_Aggregate): New subprogram.
6721 (Expand_Array_Aggregate): Handle aggregates associated with
6722 statically allocated dispatch tables.
6723 (Expand_Record_Aggregate): Handle aggregates associated with
6724 statically allocated dispatch tables.
6725 (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
6726 of anonymous access type.
6728 2007-08-14 Ed Schonberg <schonberg@adacore.com>
6730 * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
6731 is a variable that renames a slice, use the variable itself in the
6732 expannsion when the renamed expression itself may be modified between
6733 the declaration of the renaming and the array assignment.
6735 2007-08-14 Jerome Guitton <guitton@adacore.com>
6737 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
6738 s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
6739 s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
6740 New functions; dummy implementations.
6742 * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
6743 functions, used to implement the multi-tasks mode routines on VxWorks.
6745 * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
6747 binding to the VxWorks routines which have changed between VxWorks 5
6749 (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
6750 which are not callable from a RTP.
6752 * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
6753 implemented for the multi-tasks mode on VxWorks 5 and 6.
6755 * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
6757 * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
6760 2007-08-14 Vincent Celier <celier@adacore.com>
6762 * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
6763 gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
6764 mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
6765 mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
6766 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
6767 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
6768 mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
6770 (Major_Id_Name): New function.
6771 mlib-tgt.ads/mlib.tgt.adb:
6772 (Library_Major_Minor_Id_Supported): New function, default returns True
6773 Most mlib-tgt-*.adb that support shared libraries and symbolic links:
6774 (Build_Dynamic_Library): Add support for major/minor ids for shared libs
6775 Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
6776 Implementation of Library_Major_Minor_Id_Supported returns False
6778 (Clean_Library_Directory): If major/minor ids are supported, clean all
6780 Major update of the Project Manager and of the project aware tools,
6781 including gprmake, so that the same sources in the GNAT repository
6782 can be used by gprbuild.
6784 2007-08-14 Olivier Hainque <hainque@adacore.com>
6786 * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
6787 (GCC_ZCX_Support): Switch to True.
6789 * s-intman-solaris.adb (Notify_Exception): Call
6790 Adjust_Context_For_Raise before raising, as expected for signal
6791 handlers in general.
6793 * s-intman-posix.adb (Notify_Exception): Remove declaration of
6794 Adjust_Context_For_Raise, moved to the spec of this unit to be visible
6795 to other implementation bodies.
6797 * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
6798 be visible by multiple implementation bodies.
6800 * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
6801 only for conditions coming from hardware.
6802 [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
6803 adjustments to signal context prior to exception raise from signal
6805 (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
6807 Solaris section: (__gnat_adjust_context_for_raise): New function.
6808 Implementation of the machine context adjustments to perform prior to
6809 raise from a signal handler. Version for both sparc and x86.
6810 (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
6811 (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
6812 prior to raising as expected for any handler, before possible nested
6813 faults to make sure all the contexts in a chain have been adjusted by
6814 the time we propagate.
6816 2007-08-14 Pascal Obry <obry@adacore.com>
6818 * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
6819 (SYSTEM_INFO): New record.
6820 (SetThreadIdealProcessor): New imported routine needed for supporting
6821 task_info pragma on Windows.
6823 * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
6824 info can be applied to the current host.
6825 (Create_Task): Set the ideal processor if information is present.
6827 * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
6828 a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
6830 2007-08-14 Olivier Hainque <hainque@adacore.com>
6832 * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
6833 stack size and initial stack pointer value for a given task.
6834 (Enter_Task): Get the stack attributes of the task we are entering and
6835 let the stack checking engine know about them.
6837 * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
6838 Let the stack-checking engine know about the initial sp value and stack
6839 size associated with the current task.
6840 (Set_Stack_Info): If a stack base has been notified for the current
6841 task, honor it. Fallback to the previous less accurate method otherwise.
6843 * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
6845 2007-08-14 Ed Schonberg <schonberg@adacore.com>
6847 * sem_ch10.adb: Create a limited view of an incomplete type, to make
6848 treatment of limited views uniform for all visible declarations in a
6849 limited_withed package.
6850 Set flag indicating that a subprogram body for a child unit has a
6852 (Analyze_Compilation_Unit): If unit is a subprogram body that has no
6853 separate declaration, remove the unit name from visibility after
6854 compilation, so that environment is clean for subsequent compilations.
6855 (Install_Limited_Context_Clauses): Do not install a
6856 limited_private_with_clause unless the current unit is a body or a
6858 (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
6859 in the same fashion.
6860 (Install_Limited_Withed_Unit): Do not install a limited with clause if
6861 it applies to the declaration of the current package body.
6862 (Remove_Private_With_Clauses): If there is a regular with_clause for
6863 the unit, delete Private_With_Clause from context, to prevent improper
6864 hiding when processing subsequent nested packages and instantiations.
6866 2007-08-14 Jose Ruiz <ruiz@adacore.com>
6868 * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
6869 dir/file, device:/dir/file, and device:drive_letter:/dir/file as
6870 representing absolute path names.
6871 __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
6873 * cstreams.c (__gnat_full_name for VxWorks): Use
6874 __gnat_is_absolute_path to detect whether we need to add the current
6875 directory to normalize the path.
6877 2007-08-14 Javier Miranda <miranda@adacore.com>
6880 a-tags.adb (Displace): Associate a message with the raised CE
6882 (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
6883 To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
6884 To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
6886 (Default_Prim_Op_Count): Removed.
6887 (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
6888 Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
6889 Remove pragma Inline_Always.
6891 * rtsfind.ads (Default_Prim_Op_Count): Removed
6892 (Max_Predef_Prims): New entity
6893 (RE_Expanded_Name): Removed
6894 (RE_HT_Link): Removed
6895 (RE_Iface_Tag): Remmoved
6896 (RE_Ifaces_Table): Removed
6897 (RE_Interfaces_Array): Removed
6898 (RE_Interface_Data_Element): Removed
6899 (RE_Nb_Ifaces): Removed
6900 (RE_RC_Offset): Removed
6901 (RE_Static_Offset_To_Top): Removed
6903 * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
6905 (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
6906 Prim_Op_Count by Max_Predef_Prims.
6908 2007-08-14 Thomas Quinot <quinot@adacore.com>
6909 Vincent Celier <celier@adacore.com>
6911 * binde.adb (Elab_All_Links): Remove unnecessary call to
6912 Generic_Separately_Compiled (if a unit satisfies this predicate, there
6913 won't be an associated Afile).
6914 (Elab_All_Links): Fail if a referenced unit cannot be found
6917 Fix comments in bindgen regarding consistency checks done in Bcheck:
6918 the checks are made across units within a partition, not across several
6920 Fix generation of C binder file for VxWorks.
6922 * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
6923 Generic_May_Lack_ALI, more descriptive of the current use of the
6924 predicate, and update documentation.
6926 * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
6927 reorganization and documentation update for the case of predefined
6928 library generics (for which we do not reference an Afile).
6930 2007-08-14 Robert Dewar <dewar@adacore.com>
6932 * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
6933 s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
6934 s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
6935 s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
6936 s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
6937 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
6938 s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
6939 s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
6940 exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
6941 s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
6942 s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
6943 a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
6944 s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
6945 g-altcon.adb: Minor reformatting
6947 ada-tree.h: Delete empty line.
6949 ali.ads: Minor reformatting
6950 Clarification of comments.
6951 Minor spelling correction
6953 * exp_dbug.adb: Add Warnings Off to suppress new warning
6955 * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
6958 * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
6961 * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
6963 * a-textio.ads: Reorder the standard input/output/error declarations
6966 * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
6968 * par-ch2.adb: Recognize RM specially in errout
6969 Change 'R'M to RM in all error messages
6971 * scng.adb: Recognize RM specially in errout
6973 * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
6974 N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
6976 * s-direio.adb: Add missing routine header box.
6978 * sem_attr.ads: Add ??? comments
6980 * sem_eval.adb: Recognize RM specially in errout
6981 Change 'R'M to RM in all error messages
6983 * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
6985 * s-tasinf.ads: Fix minor comment typo.
6987 * a-cihama.adb: Minor comment addition
6989 * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
6992 * s-tasinf-tru64.ads: Fix minor comment typo.
6994 * itypes.ads: Comment update.
6996 * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
6999 * argv.c: Added protection against null gnat_argv and gnat_envp.
7001 * bcheck.adb (Check_Consistency): Use correct markup character ({) in
7002 warning message when Tolerate_Consistency_Errors is True.
7004 * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
7005 Any_Id, as this subprogram is only applicable to *type* entities (it
7006 sets RM_Size). Instead initialize just Esize and Alignment.
7008 2007-08-14 Bob Duff <duff@adacore.com>
7010 * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
7011 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
7012 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
7013 a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
7014 a-coorse.ads (Next): Applied pragma Inline.
7015 Make all Containers packages Remote_Types (unless they are already
7017 (Previous): applied pragma Inline
7018 (Elements_Type): is now a record instead of an array
7020 2007-08-14 Thomas Quinot <quinot@adacore.com>
7022 * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
7024 (Set_Item): When the new item is an element of the currently allocated
7025 table passed by reference, save a copy on the stack if we're going
7026 to reallocate. Also, in Table.Set_Item, make sure we test the proper
7027 variable to determine whether to call Set_Last.
7029 * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
7030 symbols-vms.adb, symbols-processing-vms-alpha.adb,
7031 symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
7032 some occurrences of the pattern
7034 T.Table (T.Last) := Value;
7035 with a cleaner call to
7038 2007-08-14 Ed Schonberg <schonberg@adacore.com>
7039 Gary Dismukes <dismukes@adacore.com>
7040 Thomas Quinot <quinot@adacore.com>
7042 * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
7043 derived type with interface progenitors use the analyzed formal as the
7044 parent of the actual, to create renamings for all the inherited
7045 operations in Derive_Subprograms.
7046 (Collect_Previous_Instances): new procedure within of
7047 Load_Parent_Of_Generic, to instantiate all bodies in the compilation
7048 unit being loaded, to ensure that the generation of global symbols is
7049 consistent in different compilation modes.
7050 (Is_Tagged_Ancestor): New function testing the ancestor relation that
7051 takes progenitor types into account.
7052 (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
7053 traversing over the primitives of the formal and actual types to locate
7054 any abstract subprograms of the actual type that correspond to a
7055 nonabstract subprogram of the formal type's ancestor type(s), and issue
7056 an error if such is found.
7057 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
7058 Instantiate_Package_Body, Instantiate_Subprogram_Body):
7059 Remove bogus guard around calls to Inherit_Context.
7060 (Reset_Entity): If the entity is the selector of a selected component
7061 that denotes a named number, propagate constant-folding to the generic
7062 template only if the named number is global to the generic unit.
7063 (Set_Instance_Env): Only reset the compilation switches when compiling
7064 a predefined or internal unit.
7066 2007-08-14 Ed Schonberg <schonberg@adacore.com>
7068 * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
7069 parameter to determine whether operation applies to the prefix.
7070 (Complete_Object_Operation): If actual has an access type and
7071 controlling formal is not an in_parameter, reject the actual if it is
7072 an access_to_constant type.
7073 (Try_Primitive_Operation): If the type of the prefix is a formal tagged
7074 type, the candidate operations are found in the scope of declaration of
7075 the type, because the type has no primitive subprograms.
7076 (Analyze_Selected_Component): If prefix is class-wide, and root type is
7077 a private extension, only examine visible components before trying to
7078 analyze as a prefixed call.
7079 Change Entity_List to Type_To_Use, for better readability.
7080 (Has_Fixed_Op): Use base type when checking whether the type of an
7081 operator has a user-defined multiplication/division
7082 (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
7083 user-defined operators are available for fixed-point types.
7085 2007-08-14 Thomas Quinot <quinot@adacore.com>
7086 Ed Schonberg <schonberg@adacore.com>
7088 * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
7089 formal At_Any_Place indicating, when True, that we want to test for
7090 availability of the stream attribute at any place (as opposed to the
7091 current visibility context only).
7092 (Missing_Read_Write_Attributes): A stream attribute is missing for the
7093 purpose of enforcing E.2.2(8) only if it is not available at any place.
7094 Take into account the Ada2005 pragma Has_Preelaborable_Initialization
7095 when checking the legality of an extension aggregate in a preelaborable
7096 package. Treat the literal null as a valid default expression in a
7097 component declaration for a type with preelaborable initialization.
7098 A limited interface is a legal progenitor for the designated type of a
7099 remote access to class-wide type.
7101 2007-08-14 Thomas Quinot <quinot@adacore.com>
7102 Ed Schonberg <schonberg@adacore.com>
7104 * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
7105 reference): Use correct entity as denoted entity for the selector of
7107 (Find_Direct_Name): Add comment about Generate_Reference incorrectly
7108 setting the Referenced_As_LHS flag for entities that are implicitly
7110 (Find_Type): If the type is an internally generated incomplete type,
7111 mark the full view as referenced, to prevent spurious warnings.
7112 (Find_Selected_Component, Has_Components): Handle properly non-limited
7113 views that are themselves incomplete types.
7114 Handle interfaces visible through limited-with clauses.
7115 (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
7116 subprogram generic actual for which we have generated a renaming.
7117 Warn when the renaming introduces a homonym of
7118 the renamed entity, and the renamed entity is directly visible.
7120 2007-08-14 Ed Schonberg <schonberg@adacore.com>
7121 Hristian Kirtchev <kirtchev@adacore.com>
7123 * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
7124 appear in the subtree to the current allocator if it is not a static
7126 (Resolve_Allocator): Perform cleanup if resolution has determined that
7127 the allocator is not a coextension.
7128 (Resolve): Skip an interpretation hidden by an abstract operator only
7129 when the type of the interpretation matches that of the context.
7130 (Resolve): When looping through all possible interpretations of a node,
7131 do not consider those that are hidden by abstract operators.
7132 (Resolve_Actuals): When verifying that an access to class-wide object
7133 is an actual for a controlling formal, ignore anonymous access to
7134 subprograms whose return type is an access to class_wide type.
7135 (Resolve_Slice): If the prefix of the slice is a selected component
7136 whose type depends on discriminants, build its actual subtype before
7137 applying range checks on the bounds of the slice.
7138 (Valid_Conversion): In an instance or inlined body, compare root types,
7139 to prevent anomalies between private and public views.
7140 (Resolve): Improve error message for ambiguous fixed multiplication
7141 expressions that involve universal_fixed multiplying operations.
7143 2007-08-14 Javier Miranda <miranda@adacore.com>
7144 Hristian Kirtchev <kirtchev@adacore.com>
7146 * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
7147 location to allow the correct generation of errors in case of
7148 restrictions applied to the expanded code.
7149 (Expand_Entry_Barrier): Remove all generated renamings for a barrier
7150 function if the condition does not reference them.
7151 (Expand_Entry_Body_Declarations): Mark the index constant as having a
7154 2007-08-14 Thomas Quinot <quinot@adacore.com>
7155 Pablo Oliveira <oliveira@adacore.com>
7157 * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
7158 typecode parameters for a union (in a variant record), remove
7159 extraneous layer of Any wrapping for member label.
7160 (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
7161 elabration statements, register the package with the name server
7162 at the beginning, not at the end, of the elaboration statements so
7163 that they can create remote access to subprogram values that designate
7164 remote subprograms from the package.
7166 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
7168 * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
7169 values to compute the number of seconds since the Unix Epoc in order to
7170 account for Daylight Savings Time. Perform special processing for dates
7171 that are earlier than the Unix Epoc to obtain a negative number.
7173 2007-08-14 Emmanuel Briot <briot@adacore.com>
7175 * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
7178 2007-08-14 Eric Botcazou <ebotcazou@adacore.com>
7180 * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
7181 binder-generated file is not in Ada.
7182 Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
7183 recorded in the ALI file.
7184 Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
7186 2007-08-14 Vincent Celier <celier@adacore.com>
7188 * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
7189 (Output_Source): Do nothing if parameter is No_Sdep_Id
7191 * make.adb (Gnatmake): Do not rebuild an archive simply because a
7192 shared library it imports has a later time stamp.
7193 (Check): Resolve the symbolic links in the path name of the object
7195 Check that the ALI file is in the correct object directory
7196 Check if a file name does not correspond to the mapping of units
7198 (Display_Version): New procedure
7199 (Initialize): Process switches --version and --help
7200 Use type Path_Name_Type for path name
7202 2007-08-14 Paul Hilfinger <hilfinger@adacore.com>
7204 * impunit.adb: Re-organize System.Random_Numbers and
7205 GNAT.Random_Numbers and add to builds.
7207 * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
7209 * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
7211 * a-assert.ads, a-assert.adb: New files.
7213 2007-08-14 Gary Dismukes <dismukes@adacore.com>
7215 * layout.adb (Layout_Type): In the case of access-to-subprogram types,
7216 if AAMP_On_Target is True, then the size of the type encompasses two
7217 addresses (a static link and a subprogram address), except in the case
7218 of library-level access types.
7220 2007-08-14 Vincent Celier <celier@adacore.com>
7222 * output.ads, output.adb (Write_Eol): Remove trailing spaces before
7224 (Write_Eol_Keep_Blanks): New procedure to write a line, including
7225 possible trailing spaces.
7226 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
7228 2007-08-14 Javier Miranda <miranda@adacore.com>
7230 * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
7231 null-excluding access types.
7233 2007-08-14 Javier Miranda <miranda@adacore.com>
7235 * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
7236 that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
7237 of private types add missing check on matching interfaces in the
7238 partial and full declarations.
7239 (Analyze_Protected_Type): Code cleanup.
7240 (Analyze_Task_Type): Code cleanup.
7242 2007-08-14 Javier Miranda <miranda@adacore.com>
7244 * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
7245 generated interface thunk.
7247 2007-08-14 Ed Schonberg <schonberg@adacore.com>
7249 * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
7250 obsolescent warning on application of 'Class to an incomplete type.
7252 * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
7253 prevent obsolescent warning on application of 'Class to an incomplete
7256 2007-08-14 Pascal Obry <obry@adacore.com>
7258 * s-fileio.adb (Is_Open): Add check for usability of the underlying
7261 2007-08-14 Cyrille Comar <comar@adacore.com>
7263 * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
7264 since it is potentially used in cases implying double finalization of
7267 2007-08-14 Jose Ruiz <ruiz@adacore.com>
7269 * s-tasini.adb (Get_Stack_Info): Move this function to
7270 System.Soft_Links.Tasking because it is common to the full and the
7271 restricted run times.
7272 (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
7273 in SSL.Tasking.Init_Tasking_Soft_Links.
7275 * s-solita.adb (Get_Stack_Info): Function moved from
7276 System.Tasking.Initialization because it is common to the full and the
7277 restricted run times.
7278 (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
7280 2007-08-14 Arnaud Charlet <charlet@adacore.com>
7282 * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
7283 s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
7284 (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
7287 * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
7290 2007-08-14 Gary Dismukes <dismukes@adacore.com>
7292 * s-veboop.adb (SU): New named number initialized to
7293 System.Storage_Unit.
7294 (True_Val): The initialization expression is revised to use SU (=
7295 Storage_Unit) rather than assuming 8 for the component size of an
7296 unpacked Boolean array.
7298 2007-08-14 Tristan Gingold <gingold@adacore.com>
7300 * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
7302 * tb-ivms.c: New file.
7304 * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
7306 2007-08-14 Geert Bosch <bosch@adacore.com>
7308 * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
7309 s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
7310 Add required linker pragmas for automatically linking with the gnalasup
7311 linear algebra support library, and the systems math library.
7312 Rename cdot to cdotu and zdot to zdotu.
7313 Update header comment to describe purpose of package.
7315 2007-08-14 Thomas Quinot <quinot@adacore.com>
7317 * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
7318 an explicitly specified Associated_Final_Chain, use that list.
7319 (Expand_N_Package_Body): Build dispatch tables of library level tagged
7321 (Expand_N_Package_Declaration): Build dispatch tables of library level
7322 tagged types. Minor code cleanup.
7324 2007-08-14 Vincent Celier <celier@adacore.com>
7326 * gnatchop.adb (Terminate_Program): Remove exception and use
7327 Types.Terminate_Program instead.
7329 * osint.ads, osint.adb (Current_Exit_Status): New global variable
7330 (Find_Program_Name): Added protection against empty name.
7331 (OS_Exit_Through_Exception): New procedure
7333 * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
7334 (OS_Exit_Default): New procedure that contains the previous
7335 implementation of procedure OS_Exit.
7336 (Final_Value): Remove obsolete Interix stuff.
7338 2007-08-14 Thomas Quinot <quinot@adacore.com>
7340 * g-socket.ads: Reorganize example code so that it also works on
7343 2007-08-14 Tristan Gingold <gingold@adacore.com>
7345 * g-trasym.ads: AIX now supports symbolic backtraces.
7347 2007-08-14 Ed Schonberg <schonberg@adacore.com>
7349 * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
7350 units being loaded to detect circularities. A circularity may be
7351 present even if the current chain of pending units to load starts from
7352 a limited_with_clause.
7354 * lib-load.ads: Change profile of Load_Unit to use a with_clause
7355 rather than a boolean flag, in order to detect circularities in
7358 * par-load.adb: Use current with_clause in calls to Load_Unit, rather
7359 than propagating the From_Limited_With flag, in order to handle
7360 properly circularities involving with_clauses.
7362 2007-08-14 Nicolas Setton <setton@adacore.com>
7364 * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
7367 2007-08-14 Arnaud Charlet <charlet@adacore.com>
7369 * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
7370 to build for libgnala.
7371 libgnat: Add rules to build libgnala.a
7372 (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
7373 target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
7374 Add s-osinte-vxworks-kernel.adb to the target pairs of the
7375 kernel run-time lib for VxWorks 6, which would provide a different
7376 implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
7377 x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
7378 running ZCX by default.
7379 Add g-sttsne-locking to LynxOS version.
7380 Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
7381 On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
7383 * system-darwin-x86.ads: New file.
7385 * Make-lang.in: Delete files before copying onto them, so if they are
7386 read-only, the copy won't fail.
7389 2007-08-14 Pascal Obry <obry@adacore.com>
7391 * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
7394 2007-08-14 Vincent Celier <celier@adacore.com>
7396 * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
7397 (Gcc): Initialize Gcc_Name at the first call
7399 2007-08-14 Ed Schonberg <schonberg@adacore.com>
7401 * sem_ch7.adb (Analyze_Package_Specification): Do not install private
7402 with_clauses of the enclosing unit when analyzing the package
7403 specification of a nested instance.
7405 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
7407 * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
7408 (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
7409 Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
7410 layout of N_Allocator.
7412 2007-08-14 Thomas Quinot <quinot@adacore.com>
7414 * rtsfind.adb (Check_RPC): Add PCS version check.
7416 * gnatvsn.ads, gnatvsn.adb: Add PCS version.
7417 (Gnat_Free_Software): New function.
7419 * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
7420 the PCS_Version value from s-parint, used to check that it is consistent
7421 with what exp_dist expects.
7423 * s-parint.ads (PCS_Version): New entity for checking consistency
7424 between exp_dist and PCS.
7426 * gen-soccon.c: (SO_REUSEPORT): New constant.
7428 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
7430 * a-calfor.adb (Image (Duration; Boolean)): Change type of local
7431 variable Sub_Second to Duration in order to accomodate a larger range
7432 of arithmetic operations.
7434 2007-08-14 Bob Duff <duff@adacore.com>
7436 * g-sttsne-locking.ads: Move comments from spec to body.
7437 * g-sttsne-locking.adb: Move comments from spec to body.
7438 * g-sttsne-vxworks.ads: Removed.
7439 * g-sttsne-vxworks.adb: Removed.
7441 2007-08-11 Ian Lance Taylor <iant@google.com>
7443 * misc.c (gnat_get_alias_set): Change return type to
7446 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7448 * decl.c, utils2.c: Fix whitespace in last change.
7450 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7452 * decl.c (compare_field_bitpos): Constify.
7453 * utils2.c (compare_elmt_bitpos): Likewise.
7455 2007-07-27 Aurelien Jarno <aurelien@aurel32.net>
7457 * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
7458 anonymous access type.
7459 (pthread_sigmask): Now take an access sigset_t.
7461 2007-07-05 Joel Sherrill <joel.sherrill@oarcorp.com>
7463 * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
7465 2007-06-21 Eric Botcazou <ebotcazou@adacore.com>
7467 PR tree-optimization/25737
7468 * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
7470 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
7472 * trans.c (Attribute_to_gnu): When subtracting an
7473 offset from a pointer, use POINTER_PLUS_EXPR with
7474 NEGATE_EXPR instead of MINUS_EXPR.
7475 (gnat_to_gnu): Likewise.
7476 * utils.c (convert): When converting between
7477 thin pointers, use POINTER_PLUS_EXPR and sizetype
7479 * utils2.c (known_alignment): POINTER_PLUS_EXPR
7480 have the same semantics as PLUS_EXPR for alignment.
7481 (build_binary_op): Add support for the semantics of
7482 POINTER_PLUS_EXPR's operands.
7483 When adding an offset to a pointer, use POINTER_PLUS_EXPR.
7485 2007-06-11 Rafael Avila de Espindola <espindola@google.com>
7487 * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
7488 of get_signed_or_unsigned_type.
7489 * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
7491 2007-06-11 Bob Duff <duff@adacore.com>
7492 Thomas Quinot <quinot@adacore.com>
7494 * g-stsifd-sockets.adb (Create): Work around strange behavior of
7495 'bind' on windows that causes 'connect' to fail intermittently, by
7496 retrying the 'bind'.
7497 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
7499 2007-06-10 Duncan Sands <baldrick@free.fr>
7501 * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
7502 than to void, for the fields when making a new fat pointer type.
7503 (gnat_substitute_in_type): Now substitute_in_type.
7504 * gigi.h (gnat_substitute_in_type): Likewise. Adjust recursive calls.
7505 * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
7506 * utils.c (update_pointer_to): Update fat pointers by updating the
7507 dummy node pointers used for the fields.
7509 2007-06-06 Thomas Quinot <quinot@adacore.com>
7510 Bob Duff <duff@adacore.com>
7512 * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
7513 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
7514 g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads: Add new
7515 constant Thread_Blocking_IO, always True by default, set False
7516 on a per-runtime basis.
7517 (Need_Netdb_Buffer): New constant.
7519 * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
7520 g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
7523 * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
7524 g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
7525 Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
7526 child package Task_Safe_NetDB
7527 (Host_Error_Messages): Add stub body.
7528 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
7530 * g-soccon-mingw.ads: Add Windows-specific constants.
7531 (Need_Netdb_Buffer): New constant.
7532 (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
7533 wrapper and import inet_addr(3) from the standard sockets library
7535 (In_Addr): Add alignment clause.
7536 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
7538 2007-06-06 Robert Dewar <dewar@adacore.com>
7540 * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
7541 s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
7542 s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
7543 s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
7544 s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
7545 s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
7546 a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
7547 a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
7548 a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
7549 g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
7550 g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
7551 i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
7552 s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
7553 s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
7554 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
7555 s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
7556 s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
7557 s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
7558 s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
7559 s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
7560 s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
7561 s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
7562 s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
7563 s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
7564 s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
7565 s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
7566 s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
7567 s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
7568 s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
7569 s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
7570 s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
7571 a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
7572 Unchecked_* by Ada.Unchecked_*
7574 2007-06-06 Robert Dewar <dewar@adacore.com>
7576 * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
7577 s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
7578 g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
7579 output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
7580 g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
7581 a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
7583 * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
7584 s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
7585 s-tasloc.adb, s-tasloc.ads: New files.
7587 2007-06-06 Bob Duff <duff@adacore.com>
7590 (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
7591 * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
7592 (Send_Signal, Close): Raise Invalid_Process if the process id is
7594 (Pattern_Matcher_Access): Is now a general access type to be able to
7597 2007-06-06 Thomas Quinot <quinot@adacore.com>
7598 Arnaud Charlet <charlet@adacore.com>
7600 * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
7601 (SIGEMT is now used instead of SIGTERM on AIX).
7603 * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
7604 (Time_Slice_Supported): Set to True.
7605 Use SIGEMT instead of SIGTERM as SIGADAABORT.
7607 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
7609 * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
7610 (Time, Time)): Use To_Relative_Time rather than manual calculation to
7611 express the bounds of Duration as Time. Raise Time_Error when the
7612 result is greater or equal to the higher bound of Duration (on the
7614 ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
7616 ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
7618 ("-" (Time, Time)): Reorder code.
7619 (All_Leap_Seconds): Removed.
7620 (Arithmetic_Operations.Add): Remove sign related kludge.
7621 (Arithmetic_Operations.Difference): Control the leaps seconds processing
7622 with flag Leap_Support.
7623 (Arithmetic_Operations.Subtract): Remove sign related kludge.
7624 (Check_Within_Time_Bounds): New procedure.
7625 (Clock): Control the leap seconds processing with flag Leap_Support.
7626 (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
7627 (Formatting_Operations.Split): Control the leap seconds processing with
7629 (Formatting_Operations.Time_Of): Control the leaps seconds processing
7630 with flag Leap_Support. Adjust the year, month and day (if applicable)
7631 when the value of day seconds designates a new day.
7632 (Split): Use parameter associations for better readability. Integrate
7634 (Time_Of): Use parameter associations for better readability. Integrate
7637 * a-calfor.adb (Split): Use parameter associations for better
7638 readability. Integrate flag Is_Ada_05.
7639 (Time_Of): Remove flag Leap_Checks. Use parameter associations for
7640 better readability. Integrate flag Is_Ada_05.
7642 2007-06-06 Arnaud Charlet <charlet@adacore.com>
7644 * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
7645 s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
7646 s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
7647 s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
7648 s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
7649 s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
7650 s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
7651 s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
7652 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
7653 s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
7654 s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
7655 time when entering this routine to detect a backward clock setting
7656 (manual setting or DST adjustment), to avoid waiting for a longer delay
7658 (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
7659 Remove handling of deferred priority change, and replace by setting the
7660 task priority directly, as required by AI-188.
7662 (Max_Task_Image_Length): New constant.
7663 Replace Warnings (Off) by Unreferenced pragma, cleaner.
7664 (Dynamic_Priority_Support): Removed, no longer needed.
7665 (Poll_Base_Priority_Change): Ditto.
7666 (Set_Ceiling): Add this procedure to change the ceiling priority
7667 associated to a lock. This is a dummy implementation because dynamic
7668 priority ceilings are not supported by the underlying system.
7670 * a-dynpri.adb (Set_Priority): Take into account case where Target is
7671 accepting a RV with its priority boosted.
7672 Remove handling of deferred priority change, and replace by setting the
7673 task priority directly, as required by AI-188.
7675 * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
7677 Remove handling of deferred priority change, and replace by setting the
7678 task priority directly, as required by AI-188.
7679 (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
7682 * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
7683 (Poll_Base_Priority_Change): Removed.
7684 Code clean up: use SSL.Current_Target_Exception.
7686 * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
7687 to run as this is a potentially dispatching point.
7688 (Call_Synchronous): Use Local_Defer_Abort.
7689 (Callable): Relax assertion.
7690 (Selective_Wait): Relax assertion in case abort is not allowed.
7691 Remove handling of deferred priority change, and replace by setting the
7692 task priority directly, as required by AI-188.
7694 * s-tasuti.adb (Make_Passive): Adjust assertions.
7695 Remove handling of deferred priority change, and replace by setting the
7696 task priority directly, as required by AI-188.
7698 2007-06-06 Arnaud Charlet <charlet@adacore.com>
7700 * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
7701 system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
7702 system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
7703 system-vxworks-mips.ads, system-vxworks-alpha.ads,
7704 system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
7705 system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
7706 system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
7707 system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
7708 system-solaris-sparcv9.ads, system-vms.ads, system.ads,
7709 system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
7710 system-linux-ia64.ads: Document mapping between Ada and OS priorities.
7711 This patch changes the largest non-binary modulus from 2**31-1 to
7713 (Compiler_System_Version): Removed, no longer used.
7714 Clean up system files by removing flags only used on a single target.
7715 Also remove obsolete flags, only used during bootstrap from system.ads
7716 (Address): Add a pragma Preelaborable_Initialization.
7718 * system-aix.ads: Ditto.
7719 (GCC_ZCX_Support): Set to true.
7720 Update priority range on AIX and map Ada priorities to target
7721 priorities appropriately for different scheduling policies.
7723 * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
7725 2007-06-06 Vincent Celier <celier@adacore.com>
7727 * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
7728 mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
7730 * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
7731 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
7732 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
7733 mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
7734 mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
7735 MLib.Tgt, containing the default versions of the exported subprograms.
7736 For each platform, create a specific version of the body of new child
7737 package MLib.Tgt.Specific that contains only the body of subprograms
7738 that are different from the default.
7739 (Archive_Builder_Append_Options): New function.
7741 2007-06-06 Matthew Gingell <gingell@adacore.com>
7743 * s-osinte-aix.adb: Map Ada priorities to target priorities
7744 appropriately for different scheduling policies.
7746 2007-06-06 Arnaud Charlet <charlet@adacore.com>
7748 * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
7750 Remove references to Unchecked_Conversion, and use Ada.xxx instead.
7751 Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
7753 2007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
7755 * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
7756 Noop on VMS, added for interface commonality.
7758 2007-06-06 Eric Botcazou <ebotcazou@adacore.com>
7759 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7760 Olivier Hainque <hainque@adacore.com>
7762 * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
7763 renamed expression of a full renaming at toplevel.
7764 (gnat_to_gnu_entity, case object): If not defining, do not look inside
7765 the values the constant is initialized to if it is an N_Allocator.
7766 (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
7767 TYPE_SIZE_UNIT of inner types after the stride is elaborated.
7768 (make_aligning_type): Accept an extra ROOM argument for storage to be
7769 made available before the aligned field, and an extra BASE_ALIGN
7770 argument for callers to pass the alignment guaranteed to be honored for
7771 the whole aligning object. Avoid call to finish_record_type, which only
7772 interferes with the sizes we want to set.
7773 (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
7774 make_aligning_type for super-aligned objects on stack.
7775 (components_to_record): Pass the adjusted size of the type when creating
7776 fields in the qualified union for the variant part.
7777 (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
7778 (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
7780 (maybe_pad_type): Set TYPE_USER_ALIGN.
7781 (make_aligning_type): Likewise.
7782 ALIGN argument is unsigned int.
7783 (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
7784 (gnat_to_gnu_param): Likewise, for parameters.
7785 (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
7786 if it is constant and stems from a function call.
7787 (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
7788 of the record is specified. Adjust accordingly.
7789 (adjust_packed): New static function.
7790 (gnat_to_gnu_field): Use it to adjust the packedness setting.
7791 (components_to_record): Likewise.
7792 (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
7793 side-effects if the object is deemed constant.
7794 (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
7795 type instead of merely finalizing it. Tidy.
7796 <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
7797 <E_Access_Type>: Likewise.
7798 (defer_debug_incomplete_list): Rename to defer_finalize_list.
7799 (defer_debug_level): Delete.
7800 (gnat_to_gnu_entity) <debug_deferred>: Likewise
7801 <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
7803 <E_Record_Type>: Do not explicitly defer finalizing the type.
7804 Adjust for write_record_type_debug_info renaming.
7805 <E_Subprogram_Type>: Likewise.
7806 Finalize deferred types right after deferred incomplete types are
7808 (rest_of_type_decl_compilation): New global function.
7809 (components_to_record): Rename defer_debug parameter to do_not_finalize.
7810 (components_to_record): Propagate the packedness to the fields of the
7811 qualified union type if there is a variant part.
7812 (gnat_to_gnu_entity) <E_Array_Type>: Use new function
7813 instead of inline code to adjust the XUT field offsets.
7814 (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
7815 <E_Record_Subtype>: Do not let finish_record_type compute the sizes
7816 and write the debug info if the type derives from a discriminated one.
7817 (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
7818 <E_Array_Subtype>: Likewise.
7819 <E_String_Literal_Subtype>: Likewise.
7820 (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
7821 an alignment clause.
7822 (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
7823 before giving warning.
7824 (prepend_one_attribute_to): New function, helper to prepend an attribute
7825 to an attribute list.
7826 (gnat_to_gnu_entity) <E_Procedure>: Use it.
7827 (prepend_attributes): Likewise.
7828 (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
7829 <E_Array_Type>: Declare the padding type for the element type, if any.
7830 <E_Array_Subtype>: Likewise.
7831 (defer_limited_with): New variable.
7832 (Gigi_Equivalent_Type): New function.
7833 (gnat_to_gnu_entity): Use it at start and use result throughout.
7834 (gnat_to_gnu_entity, case E_Access_Type): Rework to use
7835 Gigi_Equivalent_Type, support Limited_With, allow two levels of
7836 indirection, precompute if unconstrained array to simplify logic, and
7837 use defer_limited_with to defer elaboration of some types from limited
7839 (finalize_from_with_types): New function.
7841 2007-06-06 Gary Dismukes <dismukes@adacore.com>
7842 Eric Botcazou <ebotcazou@adacore.com>
7843 Tristan Gingold <gingold@adacore.com>
7844 Olivier Hainque <hainque@adacore.com>
7846 * trans.c (Identifier_to_gnu): Change test for deferred constant by
7847 adding guard that the entity is an E_Constant before testing presence
7848 of Full_view (and remove unnecessary test that entity is not a type).
7849 For a CONST_DECL used by reference, manually retrieve
7850 the DECL_INITIAL. Do not invoke fold in the other DECL_P cases either.
7851 (struct language_function): Move from utils.c to here.
7852 (struct parm_attr): New structure.
7853 (parm_attr, parm_attr vector, parm_attr GC vector): New types.
7854 (f_parm_attr_cache): New macro.
7855 (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
7856 expressions for the 'First, 'Last and 'Length attributes of the
7857 unconstrained array IN parameters.
7858 (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
7859 Allocate the information structure for the function earlier, as well
7860 as the language-specific part.
7861 If the parameter attributes cache has been populated, evaluate the
7862 cached expressions on entry.
7863 (takes_address): Add OPERAND_TYPE parameter. Handle N_Function_Call,
7864 N_Procedure_Call_Statement and N_Indexed_Component.
7865 (Pragma_to_gnu): Translate inspection_point to an asm statement
7866 containaing a comment and a reference to the object (either its address
7867 for BLKmode or its value).
7868 (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
7869 to go to DECL_INITIAL. Together with the size constraint relaxation
7870 in create_var_decl, enlarges the set of situations in which an
7871 identifier may be used as an initializer without implying elaboration
7873 (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
7874 DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
7876 (maybe_stabilize_reference): Remove lvalues_only parameter.
7877 (gnat_stabilize_reference): Adjust for above change.
7878 (gnat_to_gnu): Do not set location information on the result
7879 if it is a reference.
7880 (add_cleanup): Add gnat_node parameter and set the location of the
7882 (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
7883 (Exception_Handler_to_gnu_zcx): Likewise.
7884 (gigi): Remove the cgraph node if the elaboration procedure is empty.
7885 (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
7886 the former right after the latter.
7887 (start_stmt_group): Make global.
7888 (end_stmt_group): Likewise.
7889 (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
7891 (gnu_program_error_label_stack): Likewise.
7892 (gigi): Initialize them.
7893 (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
7894 (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
7896 (push_exception_label_stack): New function.
7897 (takes_address): New function.
7899 * utils.c (struct language_function): Move to trans.c from here.
7900 (unchecked_convert): Do not wrap up integer constants in
7902 (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
7903 the latter for aggregate types, unexpected by later passes, and relax an
7904 arbitrary size constraint on the former.
7905 (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
7906 to compare the sizes.
7907 (convert_vms_descriptor): When converting to a fat pointer type, be
7908 prepared for a S descriptor at runtime in spite of a SB specification.
7909 (shift_unc_components_for_thin_pointers): New function.
7910 (write_record_type_debug_info): For variable-sized fields, cap the
7911 alignment of the pointer to the computed alignment.
7912 (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
7913 If REP_LEVEL is 2, do not compute the sizes.
7914 (build_vms_descriptor): Adjust for new prototype of finish_record_type.
7915 (build_unc_object_type): Likewise.
7916 (declare_debug_type): New function.
7918 * ada-tree.def: USE_STMT: removed (not emitted anymore).
7920 * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
7921 no statement is expandable anymore.
7922 (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
7923 (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
7924 when the user requested it explicitely.
7925 (gnat_post_options): By default, set flag_eliminate_unused_debug_types
7927 (get_alias_set): Return alias set 0 for a type if
7928 TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
7930 * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
7931 (DECL_FUNCTION_STUB): New accessor macro.
7932 (SET_DECL_FUNCTION_STUB): New setter macro.
7934 * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
7936 * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
7939 2007-06-06 Jose Ruiz <ruiz@adacore.com>
7941 * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
7942 Rename to Abort_Task_Interrupt to be able to keep the same interface
7943 as the rest of the targets.
7945 * s-osinte-vxworks.ads s-osinte-vxworks.adb
7946 (To_VxWorks_Priority): Remove explicit "in" mode indicator
7948 * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
7951 2007-06-06 Robert Dewar <dewar@adacore.com>
7953 * a-chahan.ads: Remove obsolescent pragmas
7955 * a-chlat1.ads: Minor reformatting
7957 2007-06-06 Robert Dewar <dewar@adacore.com>
7959 * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
7962 * errout.adb: New Finalize/Compilation_Errors/Output_Messages
7965 * errout.ads (Finalize): Changed interface
7966 (Output_Messages): New procedure
7967 (Compilation_Errors): New Interface
7969 * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
7970 Finalize/Output_Messages interface for Errout
7971 (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
7974 2007-06-06 Thomas Quinot <quinot@adacore.com>
7975 Olivier Hainque <hainque@adacore.com>
7976 Robert Dewar <dewar@adacore.com>
7978 * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
7980 (Raise_Current_Excep): Call Debug_Raise_Exception just before
7981 propagation starts, to let debuggers know about the event in a reliable
7983 (Local_Raise): Moved to System.Exceptions
7984 More convenient to have this as a separate unit
7986 * s-except.adb, s-except.ads: New files.
7988 * a-exextr.adb (Unhandled_Exception): Delete - replaced by
7989 Debug_Unhandled_Exception in System.Exceptions where it belongs
7990 together with a couple of other debug helpers.
7991 (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
7992 the former Unhandled_Exception.
7994 * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
7995 (Warn_No_Exception_Propagation): New procedure
7996 (Warn_If_No_Propagation): Rewritten for new warning generation
7997 (Expand_Exception_Handlers): New warning generation
7998 (Expand_N_Raise_xxx_Error): Rewritten for new warnings
7999 (Add_Exception_Label): Use Special_Exception_Package_Used for test
8000 instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
8001 (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
8002 even if restriction is set (makes life easier in Check_Returns)
8003 (Expand_Local_Exception_Handlers): Follow renamed entity chain when
8004 checking exception identities.
8005 (Expand_Local_Exception_Handlers): Do not optimize when all others case
8006 (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
8007 block for handler (used by Check_Returns)
8008 (Expand_Local_Exception_Handlers): Local_Raise now takes an address
8009 (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
8010 remove all exception handlers when optimizing local raise statements.
8011 (Find_Local_Handler): Use Get_Renamed_Entity
8012 (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
8013 marked analyzed after expanding exception handlers, do not generate
8014 redundant cleanup actions, because they have been constructed already.
8016 2007-06-06 Thomas Quinot <quinot@adacore.com>
8018 * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
8019 presence of this categorization pragma is mandated by the language.
8020 (Limited_Controlled): Add missing pragma Preelaborable_Initialization
8023 2007-06-06 Vincent Celier <celier@adacore.com>
8024 Robert Dewar <dewar@adacore.com>
8026 * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
8027 butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
8028 err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
8029 fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
8030 lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
8031 makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
8032 par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
8033 prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
8034 prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
8035 sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
8036 uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
8038 Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
8039 package Namet. Make File_Name_Type and Unit_Name_Type types derived from
8040 Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
8041 Use variables of types File_Name_Type and Unit_Name_Type in error
8043 (Get_Name): Add parameter Ignore_Special, and set it reading file name
8044 (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
8046 Define flags Flag217-Flag230 with associated subprograms
8047 (Flag_Word5): New record type.
8048 (Flag_Word5_Ptr): New access type.
8049 (To_Flag_Word5): New unchecked conversion.
8050 (To_Flag_Word5_Ptr): Likewise.
8051 (Flag216): New function.
8052 (Set_Flag216): New procedure.
8054 2007-06-06 Arnaud Charlet <charlet@adacore.com>
8056 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
8059 * a-stwifi.ads, a-stzfix.ads: Minor reformatting
8061 2007-06-06 Javier Miranda <miranda@adacore.com>
8063 * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
8065 (Object_Specific_Data_Array): This is now internal to the package.
8066 (Object_Specific_Data): This is now internal to the package.
8067 (Select_Specific_Data_Element): This is now internal to the package.
8068 (Select_Specific_Data_Array): This is now internal to the package.
8069 (Select_Specific_Data): This is now internal to the package.
8070 (Offset_To_Top_Function_Ptr): This is now public.
8071 (To_Offset_To_Top_Function_Ptr): Removed.
8072 (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
8073 local to subprogram Offset_To_Top.
8074 (Predefined_DT): Removed.
8075 (Typeinfo_Ptr): Removed.
8076 (OSD): This function is now internal to this package.
8077 (SSD): This function is now internal to this package.
8078 (DT): New function that displaces the pointer to the table of primitives
8079 to get access to the enclosing wrapper record.
8080 (IW_Membership): Code cleanup.
8081 (Offset_To_Top): Code cleanup.
8082 (Predefined_DT): Removed.
8083 (Register_Interface_Tag): Removed.
8084 (Set_Interface_Table): Removed.
8085 (Set_Offset_Index): Removed.
8086 (Set_Offset_To_Top): Code cleanup.
8088 (Set_Signature): Removed.
8090 (Set_Tagged_Kind): Removed.
8091 (Typeinfo_Ptr): Removed.
8093 (Displace): Add missing check on null actual.
8095 * exp_disp.ads, exp_disp.adb
8096 (Select_Expansion_Utilities): Removed.
8097 (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
8098 (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
8099 the interface requires a new parameter.
8100 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
8101 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
8102 calls to subprograms Build_T, Build_S, etc. by the corresponding code.
8103 Done to remove package Select_Expansion_Utilities.
8104 (Make_DT): New implementation for statically allocated dispatch tables.
8105 (Make_Secondary_DT): Moved to the scope of Make_DT.
8106 (Register_Primitive): Code cleanup plus incoporate the use of the new
8107 function DT_Address_Attribute.
8108 (Expand_Interface_Thunk): The profile of this subprogram has been
8109 changed to return the Thunk_Id and the corresponding code.
8110 (Fill_DT_Entry): Removed. Its functionality is now provided by
8111 subprogram Register_Primitive.
8112 (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
8113 subprogram Register_Primitive.
8114 (Register_Primitive): New subprogram that incorporates the previous
8115 functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
8116 (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
8117 was only required to call Make_DT_Access_Action, which is now removed.
8118 (Ada_Actions): Removed
8119 (Action_Is_Proc): Removed
8120 (Action_Nb_Arg): Removed
8121 Replace all the calls to Make_DT_Access_Action by direct calls to
8122 Make_Procedure_Call_Statement or Make_Function_Call.
8123 (Set_DTC_Entity_Value): New subprogram.
8124 (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
8125 (Expand_Interface_Thunk): Add missing support for primitives that are
8126 functions with a controlling result (case in which there is no need
8127 to generate the thunk).
8129 * exp_atag.ads, exp_atag.adb
8130 (Build_DT): New subprogram that displaces the pointer to reference the
8131 base of the wrapper record.
8132 (Build_Typeinfo_Offset): Removed.
8133 (RTE_Tag_Node): Removed.
8134 (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
8135 (Build_Get_RC_Offset): Removed.
8136 (Build_Inherit_Predefined_Prims): Removed.
8137 (Build_Inherit_TSD: Removed.
8138 (Build_New_TSD): Removed.
8139 (Build_Set_External_Tag): Removed.
8140 (Build_Set_Predefined_Prim_Op_Address): Add documentation.
8141 (Build_Set_Prim_Op_Address): Add documentation.
8142 (Build_Set_TSD): Removed.
8144 * rtsfind.ads, rtsfind.adb
8145 (Load_Fail): If load fails and we are not in configurable run-time
8146 mode, then raise Unrecoverable_Error.
8147 (Text_IO_Kludge): Generate an error message if a run-time library is
8148 not available in a given run-time (ie. zfp run-time).
8149 (RTE_Record_Component): Add code to check that the component we search
8150 for is not found in two records in the given run-time package.
8151 (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
8152 (RE_DT_Predef_Prims_Offset): New entity
8153 (RE_Static_Offset_To_Top): New entity
8154 (RE_HT_Link): New entity.
8155 (System_Address_Image): Addition of this run-time package.
8156 (RE_Address_Image): New entity.
8157 (RE_Abstract_Interface): Removed.
8158 (RE_Default_Prim_Op_Count): Removed.
8159 (RE_DT_Entry_Size): Removed.
8160 (RE_DT_Min_Prologue_Size): Removed.
8161 (RE_DT_Prologue_Size): Removed.
8162 (RE_Ifaces_Table_Ptr): Removed.
8163 (RE_Interface_Data_Ptr): Removed.
8164 (RE_Type_Specific_Data): Removed.
8165 (RE_Primary_DT): Removed.
8166 (RE_Register_Interface_Tag): Removed.
8167 (RE_Set_Offset_Index): Removed.
8168 (RE_Set_OSD): Removed.
8169 (RE_Set_SSD): Removed.
8170 (RE_Set_Signature): Removed.
8171 (RE_Set_Tagged_Kind): Removed.
8172 (RE_Address_Array): New entity.
8173 (RE_DT): New entity.
8174 (RE_Iface_Tag): New entity.
8175 (RE_Interfaces_Table): New entity.
8176 (RE_No_Dispatch_Table): New entity.
8177 (RE_NDT_Prims_Ptr): New entity.
8178 (RE_NDT_TSD): New entity.
8179 (RE_Num_Prims): New entity.
8180 (RE_Offset_To_Top_Function_Ptr): New entity.
8181 (RE_OSD_Table): New entity.
8182 (RE_OSD_Num_Prims): New entity.
8183 (RE_Predef_Prims): New entity
8184 (RE_Predef_Prims_Table_Ptr): New entity.
8185 (RE_Primary_DT): New entity.
8186 (RE_Signature): New entity.
8187 (RE_SSD): New entity.
8188 (RE_TSD): New entity.
8189 (RE_Type_Specific_Data): New entity.
8190 (RE_Tag_Kind): New entity.
8192 2007-06-06 Thomas Quinot <quinot@adacore.com>
8194 * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
8195 C imported variable.
8196 (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
8199 2007-06-06 Robert Dewar <dewar@adacore.com>
8201 * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
8204 2007-06-06 Vincent Celier <celier@adacore.com>
8206 * a-tifiio.adb (Put, internal): For negative numbers, check that there
8207 is room for at least one digit and the minus sign.
8208 (Put.Put_Character): Never put a character outside of the range of
8211 2007-06-06 Olivier Hainque <hainque@adacore.com>
8212 Eric Botcazou <ebotcazou@adacore.com>
8214 * utils2.c (build_allocator): Provide the extra arguments to
8215 make_aligning_type for super-aligned objects allocated from the default
8216 pool. Leave enough room for a pointer before the aligning field, and
8217 store the system's allocator return value there.
8218 (build_call_alloc_dealloc): When releasing a super-aligned object,
8219 retrieve the system's allocator return value from where build_allocator
8220 has stored it, just ahead of the adjusted address we are passed.
8221 (build_call_raise): Handle properly the generation of line numbers when
8222 the node is marked No_Location.
8223 (compare_elmt_bitpos): Use tree_int_cst_compare. Stabilize the sort
8224 by using DECL_UID on ties.
8225 (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
8227 (build_call_raise): Handle converting exception into goto; support new
8229 (build_component_ref): Add new arg to build_call_raise.
8231 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
8233 * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
8234 "." in the case of nnn.xxx when nnn terminates with an underscore.
8235 Parse the remaining "#" or ":" in the case of nnn#.xxx#
8237 2007-06-06 Robert Dewar <dewar@adacore.com>
8239 * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
8241 2007-06-06 Arnaud Charlet <charlet@adacore.com>
8242 Vincent Celier <celier@adacore.com>
8243 Robert Dewar <dewar@adacore.com>
8245 * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
8247 (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
8248 ((destructor)) for adafinal, even when switch -a is used.
8249 Do not issue pragma Linker_Destructor for adafinal when switch -a is
8251 (Gen_Object_Files_Options): Add formatting of Linker Options, when
8252 Output_Linker_Option_List is set. Suppress this formatting when
8253 Zero_Formatting is set.
8254 Add case for CLI_Target.
8255 (System_Restrictions_Used): New flag, used to avoid generating with of
8256 System_Restrictions and initialization of the data unless there is
8257 some use of System.Restrictions in the partition.
8258 (Check_System_Restrictions_Used): New procedure
8260 * s-stalib.adb: Remove with of System.Restrictions. No longer needed
8261 since we only with this unit in the binder file if it is used elsewhere
8264 2007-06-06 Vincent Celier <celier@adacore.com>
8266 * bindusg.adb: Add line for @<response file>
8267 Add lines for new switches -R and -Z
8269 * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
8270 hierarchy in the list of files of the closure when -R is used
8271 (Gnatbind): Accept arguments starting with '@' to indicate response
8272 files and take the arguments from the response files.
8273 If List_Closure is set, display the referenced files
8275 2007-06-06 Javier Miranda <miranda@adacore.com>
8276 Robert Dewar <dewar@adacore.com>
8277 Ed Schonberg <schonberg@adacore.com>
8279 * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
8280 which the address-clause is applied to in-mode actuals (allowed by
8282 (Apply_Discriminant_Check): Do not generate a check if the type is
8283 constrained by a current instance.
8284 (Activate_Division_Check): New procedure
8285 (Activate_Overflow_Check): New procedure
8286 (Activate_Range_Check): New procedure
8287 Call these new Activate procedures instead of setting flags directly
8288 (Apply_Array_Size_Check): Removed, no longer needed.
8289 Code clean up: remove obsolete code related to GCC 2.
8290 (Get_E_Length): Protect against bomb in case scope is standard
8291 (Selected_Range_Checks): If the node to be checked is a conversion to
8292 an unconstrained array type, and the expression is a slice, use the
8293 bounds of the slice to construct the required constraint checks.
8294 Improve NOT NULL error messages
8295 (Apply_Constraint_Check): If the context is a null-excluding access
8296 type, diagnose properly the literal null.
8298 2007-06-06 Pascal Obry <obry@adacore.com>
8300 * clean.adb (Clean_Archive): Use untouched casing for the archive name
8301 and the corresponding .deps file.
8302 (Clean_Interface_Copy_Directory): Use untouched casing for the library
8303 src directory. Minor code-clean-up. Use untouched casing for files
8304 read into the library src dir.
8305 (Clean_Library_Directory): Idem.
8306 (Parse_Cmd_Line): Accept new switch -aP
8308 2007-06-06 Javier Miranda <miranda@adacore.com>
8309 Ed Schonberg <schonberg@adacore.com>
8310 Robert Dewar <dewar@adacore.com>
8311 Eric Botcazou <ebotcazou@adacore.com>
8312 Arnaud Charlet <charlet@adacore.com>
8314 * einfo.ads, einfo.adb (Available_View): New synthesized attribute
8315 applicable to types that have the With_Type flag set. Returns the
8316 non-limited view of the type, if available, otherwise the type itself.
8317 For class-wide types, there is no direct link in the tree, so we have
8318 to retrieve the class-wide type of the non-limited view of the Etype.
8319 New attributes Static_Initialization and Static_Elaboration_Desired.
8320 Remove the pragma Thread_Body, and the associated flag
8321 Is_Thread_Body in entities, and all related code.
8322 (Suppress_Value_Tracking_On_Call): New flag
8323 E_Exception has Esize and Alignment fields
8324 (Universal_Aliasing): New function.
8325 (Set_Universal_Aliasing): New procedure.
8326 (Write_Entity_Flags): Deal with Universal_Aliasing flag.
8327 (Check_Nested_Access): New procedure.
8328 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
8329 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
8330 (Related_Interface): New attribute. Present in dispatch table pointer
8331 components of records. Set to point to the entity of the corresponding
8333 (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
8334 (Original_Access_Type): Remove, not needed.
8335 (Root_Type): Handle properly subtypes of class-wide-types.
8338 * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
8339 class-wide types visible through limited-with clauses.
8340 (Try_Primitive_Operation): When examining all primitive operations of a
8341 tagged type, do not consider subprograms labeled as hidden unless they
8342 belong to a private generic type with a tagged parent.
8343 (Try_Object_Operation): Extensive rewriting, to handle properly various
8344 overloading cases, when several ancestors may have class-wide operations
8345 that are possible candidates, and when the overloaded functions return
8346 array types and have defaulted parameters so that the call may be
8347 interpreted as an indexing.
8348 (Analyze_Allocator): Remove Mark_Allocator and its invocation.
8349 (Process_Function_Call): use Next, rather than Next_Actual, to analyze
8350 successive actuals before analyzing the call itself.
8351 (Try_Primitive_Operation): A primitive operation is compatible with the
8352 prefix if the prefix has a synchronized type and the type of the formal
8353 is its corresponding record, as can be the case when the primitive
8354 operation is declared outside of the body of the type.
8355 (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
8356 perform homonym traversal, looking for class-wide operation matches
8357 (formerly done in statements of Try_Class_Wide_Operation). Matches on
8358 access parameters are now restricted to anonymous access types.
8359 (Mark_Allocator): An allocator with a discriminant association parent is
8361 (Try_One_Prefix_Interpretation): If the type of the object is
8362 incomplete, as can be happen when it is a limited view obtained through
8363 a limited_with_clause, the selected component is not part of a prefixed
8365 (Complete_Object_Operation): Diagnose properly an object that is not
8366 aliased when the corresponding controlling formal is an access
8368 (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
8369 ambiguous calls in prefixed notation, where two primitives differ only
8370 in that the controlling argument of one is an access parameter.
8372 * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
8373 whether a function that returns an unconstrained type can be inlined.
8374 (Process_Formals): Diagnose properly the illegal use of an incomplete
8375 type in the profile of an access_to_subprogram declaration.
8376 (Check_Synchronized_Overriding): Nothing check for concurrent types, the
8377 operations are attached to the corresponding record.
8378 (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
8379 When processing a primitive of a concurrent type which implements an
8380 interface change the type of all controlling formals to that of the
8381 corresponding record type.
8382 (Check_Synchronized_Overriding): Relax the conditional logic when trying
8383 to determine the tagged type to which a primitive belongs.
8384 (Check_Conventions): Capture condition to ignore a primitive operation
8385 (which is shared between the loop in Check_Conventions and the one in
8386 Check_Convention) in a new local function Skip_Check.
8387 (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
8388 confusion with Check_Conventions' own Prim_Op local variable.
8389 (Create_Extra_Formals): Test for a tagged result type rather than a
8390 controlling result when determining whether to add a BIP_Alloc_Form
8391 formal and a BIP_Final_List formal to the function.
8392 (Check_Conformance); For parameters that are anonymous access types,
8393 subtype conformance requires that the not null and the constant
8394 indicators must match
8395 (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
8396 to retrieve the appropriate type when processing a concurrent type
8397 declared within a generic. Minor comment reformatting. Change invocation
8398 of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
8400 (Analyze_Subprogram_Body): If the return type of a function is an
8401 anonymous access to the limited view of a class-wide type, and the
8402 non-limited view of the type is available, update the type of the
8403 function so that code can be generated.
8404 (Process_Formals): In case of access-subtype itype whose designated
8405 type is also an itype (situation that happens now with access to
8406 subprograms) we mark the access-type itype with the Has_Delayed_Freeze
8407 attribute to avoid backend problems.
8408 (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
8409 init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
8410 anonymous types' designated types are same before testing
8411 Subtypes_Statically_Match.
8412 (Create_Extra_Formals): Test for a named access parameter that is a
8413 controlling formal as an additional condition for adding an
8414 accessibility level formal. This can occur in the subp type created for
8415 dispatching calls in Expand_Dispatching_Call, and allows calling
8416 Create_Extra_Formals from that procedure rather than special-casing the
8417 extra formals there.
8418 (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
8419 when the function has a controlling result.
8420 (Check_Returns): Add much more knowledge of the optimization of local
8421 raise statements to gotos, to retain proper warnings in this case.
8422 (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
8423 nodes when looking for last statement.
8425 * sem_type.ads, sem_type.adb (Specific_Type): Add support for
8426 class-wide types visible through limited with clauses.
8427 (Add_One_Interp): If the operands are anonymous access types, the
8428 predefined operator on universal_access is immediately visibles
8429 (Find_Unique_Type): Handle anonymous access to subprogram types just as
8430 other anonymous access types.
8431 (Disambiguate): Take into account CIL convention.
8432 (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
8434 2007-06-06 Robert Dewar <dewar@adacore.com>
8436 * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
8437 sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
8438 elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
8439 Fix lower bound of tables.
8442 * nlists.adb: Ditto.
8443 (Prev_Node, Next_Node): Change index type to Int so that it properly
8444 covers the range First_Node_Id - 1 up.
8446 2007-06-06 Javier Miranda <miranda@adacore.com>
8447 Ed Schonberg <schonberg@adacore.com>
8448 Bob Duff <duff@adacore.com>
8449 Hristian Kirtchev <kirtchev@adacore.com>
8451 * exp_aggr.ads, exp_aggr.adb:
8452 (Build_Record_Aggr_Code): Add missing initialization of secondary tags
8453 in extension aggregates.
8454 (Flatten): Other conditions being met, an aggregate is static if the
8455 low bound given by component associations is different from the low
8456 bound of the base index type.
8457 (Packed_Array_Aggregate_Handled): If the component type is itself a
8458 packed array or record, the front-end must expand into assignments.
8459 (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
8460 Init_Pr, instead of Ancestor_Is_Expression.
8461 (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
8462 coextension chain root, either generate a list controller or use the
8463 already existing one.
8464 (Static_Array_Aggregate): New procedure to construct a positional
8465 aggregate that can be handled by the backend, when all bounds and
8466 components are compile-time known constants.
8467 (Expand_Record_Aggregate): Force conversion of aggregates of tagged
8468 types covering interface types into assignments.
8469 (Replace_Type): move to Build_Record_Aggr_Code.
8470 (Expand_Record_Aggr_Code): if the target of the aggregate is an
8471 interface type, convert to the definite type of the aggregate itself,
8472 so that needed components are visible.
8473 (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
8474 components and the context is an extended return statement do not
8475 create a transient block for it, to prevent premature finalization
8476 before the return is executed.
8477 (Gen_Assign): Do not generate a call to deep adjust routine if the
8478 component type is itself an array of controlled (sub)-components
8479 initialized with an inner aggregate.
8480 (Component_Check): New name for Static_Check. This name is now more
8481 appropriate, and documentation is added which was missing.
8482 (Component_Check): Add test for bit aligned component value
8483 (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
8484 Tagged_Comps, name is more appropriate given added function below.
8485 (Component_Not_OK_For_Backend): Check for bit aligned component ref.
8487 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
8488 Javier Miranda <miranda@adacore.com>
8489 Robert Dewar <dewar@adacore.com>
8491 * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
8492 Terminated: Add unchecked type conversion from System.Address to
8493 System.Tasking.Task_Id when calling the predefined primitive
8495 Disable new Ada 05 accessibility check for JVM.NET targets, which
8496 cannot be implemented in a practical way.
8497 (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
8498 the sources always references the tag of the actual object. Therefore,
8499 if 'Tag is applied in the sources to class-wide interface objects we
8500 generate code that displaces "this" to reference the base of the object.
8501 (Expand_N_Attribute_Reference, case Size): Return specified size if
8503 (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
8504 has code that displaces the pointer of the object to manage interface
8505 types. However this code must not be executed when the prefix is a
8506 subprogram. This bug caused the wrong expansion of the internally
8507 generated assignment that fills the dispatch table when the primitive
8508 is a function returning a class-wide interface type.
8509 (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
8510 Set_Attribute_Name for Name_Unaligned_Valid.
8512 2007-06-06 Ed Schonberg <schonberg@adacore.com>
8513 Gary Dismukes <dismukes@adacore.com>
8515 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
8516 If the initialization is the equivalent aggregate of the initialization
8517 procedure of the type, do not remove it.
8518 (Expand_N_Attribute_Definition_Clause): Exclude access variables
8519 initialized to null from having their expression reset to empty and
8520 note this exception in the comment.
8522 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
8523 Robert Dewar <dewar@adacore.com>
8524 Ed Schonberg <schonberg@adacore.com>
8525 Gary Dismukes <dismukes@adacore.com>
8527 * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
8528 Add "with" and "use" clauses for Sem_Attr.
8529 (Expand_Current_Value): Do not replace occurences of attribute
8530 references where the prefix must be a simple name.
8532 * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
8533 Namet. Add new arrays Attribute_Name_Modifies_Prefix and
8534 Attribute_Requires_Simple_Name_Prefix.
8535 (Name_Modifies_Prefix): Body of new function.
8536 (Requires_Simple_Name_Prefix): Body of new function.
8537 (Resolve_Attribute, case Access): Improve error message for case of
8538 mismatched conventions.
8539 (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
8541 (Analyze_Attribute, case 'Access): If the type of the prefix is a
8542 constrained subtype for a nominal unconstrained type, use its base type
8543 to check for conformance with the context.
8544 (Resolve_Attribute): Remove test of the access type being associated
8545 with a return statement from condition for performing accessibility
8546 checks on access attributes, since this case is now captured by
8547 Is_Local_Anonymous_Access.
8548 (Analyze_Access_Attribute): Set Address_Taken on entity
8549 (Analyze_Attribute, case Address): Set Address_Taken on entity
8550 (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
8551 validating an access attribute whose prefix is a current instance.
8552 (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
8553 applied to dispatching operations, if freezing is required then we set
8554 the attribute Has_Delayed_Freeze in the prefix's entity.
8555 (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
8556 current scope if access of local subprogram taken
8557 (Analyze_Access_Attribute): Check legality of self-reference even if the
8558 expression comes from source, as when a single component association in
8559 an aggregate has a box association.
8560 (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
8561 the prefix if it is a protected operation and the attribute is
8562 Unrestricted_Access.
8563 (Resolve_Attribute, case 'Access): Set the Etype of the attribute
8564 reference to the base type of the context, to force a constraint check
8565 when the context is an access subtype with an explicit constraint.
8566 (Analyze_Attribute, case 'Class): If the prefix is an interface and the
8567 node is rewritten as an interface conversion. leave unanalyzed after
8568 resolution, to ensure that type checking against the context will take
8571 2007-06-06 Ed Schonberg <schonberg@adacore.com>
8572 Javier Miranda <miranda@adacore.com>
8573 Robert Dewar <dewar@adacore.com>
8575 * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
8576 wrapper when the full view of the controlling type of an inherited
8577 function that dispatches on result implements interfaces.
8578 (Expand_N_Object_Declaration): In cases where the type of the
8579 declaration is anonymous access, create finalization list for it.
8580 (Expand_N_Object_Declaration): Generate a persistent_bss directive only
8581 if the object has no explicit initialization, to match description of
8582 functionality of pragam Persistent_BSS.
8583 (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
8584 new function to build static aggregates, to replace initialization call
8585 when static initialization is desired.
8586 (Freeze_Type): Generate a list controller for an access type whenever
8587 its designated type has controlled anonymous access discriminants.
8588 (Build_Equivalent_Aggregate): New procedure to compute a static
8589 aggregate to be used as default initialization for composite types,
8590 instead of a generating a call to the initialization procedure for the
8592 (Build_Initialization_Call): When available, replace a call to the
8593 initialization procedure with a copy of the equivalent static aggregate
8595 (Expand_N_Object_Declaration): Use New_Occurrence_Of in generated
8596 declarations for objects of a class-wide interface type, rather than
8597 just identifiers, to prevent visibility problems.
8598 (Expand_N_Object_Declaration): When expanding the declaration for an
8599 object of a class-wide interface type, preserve the homonym chain of
8600 the original entity before exchanging it with that of the generated
8601 renaming declaration.
8602 (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
8603 active, because there is no way to handle the exception.
8604 (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
8605 to do a minimum decoration of the Access_Disp_Table list.
8606 (Expand_Record_Controller): Avoid the addition of the controller between
8607 the component containing the tag of a secondary dispatch table and its
8608 adjacent component that stores the offset to the base of the object.
8609 This latter component is only generated when the parent type has
8610 discriminants ---documented in Add_Interface_Tag_Components).
8611 (Apply_Array_Size_Check): Removed, no longer needed.
8612 (Expand_N_Full_Type_Declaration): If the type has anonymous access
8613 components, create a Master_Entity for it only if it contains tasks.
8614 (Build_Init_Procedure): Suppress the tag assignment compiling under
8616 (Freeze_Record_Type): Remove code associated with creation of dispatch
8618 (Init_Secondary_Tags): Update type of actuals when generating calls to
8619 Ada.Tags.Set_Offset_To_Top
8620 (Stream_Operation_OK): Disable use of streams compiling under no
8622 (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
8623 if Has_Init_Expression set.
8624 (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
8625 Register_Primitive, which provides the same functionality.
8626 (Requires_Init_Proc): Return false in case of interface types.
8627 (Add_Secondary_Tables): Use the new attribute Related_Interface to
8629 (Predefined_Primitive_Freeze): Do not assume that an internal entity
8630 is always associated with a predefined primitive because the internal
8631 entities associated with interface types are not predefined primitives.
8632 Therefore, the call to Is_Internal is replaced by a call to the
8633 function Is_Predefined_Dispatching_Operation.
8634 (Make_Eq_If): When generating the list of comparisons for the
8635 components of a given variant, omit the controller component that is
8636 present if the variant has controlled components.
8638 2007-06-06 Javier Miranda <miranda@adacore.com>
8639 Hristian Kirtchev <kirtchev@adacore.com>
8640 Bob Duff <duff@adacore.com>
8642 * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
8643 handle the creation of finalization lists and calls for nested
8644 coextensions when the root of the chains is part of a return statement.
8645 (Inside_A_Return_Statement): New function inside Complete_Coextension_
8647 (Expand_Record_Equality): Skip components that are interface types.
8648 (Displace_Allocator_Pointer): Add missing support for interface subtypes
8649 (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
8650 with Rewrite_Coextension. Change the condition for detecting coextension
8652 (Is_Local_Access_Discriminant): Removed.
8653 (Rewrite_Coextension): New routine which rewrites a static coextension
8654 as a temporary and uses its unrestricted access in the construction of
8656 (Complete_Coextension_Finalization): New routine. Generate finalization
8657 attachment calls to all delayed coextensions.
8658 (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
8659 the allocator is not a coextension itself and has delayed coextensions.
8660 If the current allocator is controlled, but also a coextension, delay
8661 the generation of the finalization attachment call.
8662 Rename local variable "Node" to "Nod" in order to avoid confusion with
8664 (Expand_Allocator_Expression): Call Adjust for initialized allocators of
8665 limited types that are not inherently limited. Such an allocator is
8666 illegal, but is generated by the expander for a return statement, to
8667 copy the result onto the secondary stack. This is the only case where a
8668 limited object can be copied. Generate code to displace the pointer
8669 to the object if the qualified expression is a class-wide interface
8670 object. Such displacement was missing and hence the copy of the object
8672 (Apply_Accessibility_Check): Handle allocated objects initialized in
8674 (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
8675 and Expand_Allocator_Expression. Allocating class-wide interface objects
8676 this routine displaces the pointer to the allocated object to reference
8677 the component referencing the corresponding secondary dispatch table.
8678 Expand_Allocator_Expression): Add missing support to allocate class-wide
8679 interface objects initialized with a qualified expression.
8680 (Get_Allocator_Final_List): Test for an anonymous access type that is a
8681 function result type, and use the finalization list associated with the
8682 function scope in that case (such an anonymous type should not be
8683 treated like an access parameter's type).
8685 2007-06-06 Ed Schonberg <schonberg@adacore.com>
8686 Gary Dismukes <dismukes@adacore.com>
8687 Javier Miranda <miranda@adacore.com>
8689 * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
8690 controlled type, use Make_Handler_For_Ctrl_Operation to construct the
8691 required exception handler.
8692 (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
8693 properly the case of a function whose return type is a limited
8694 class-wide interface type. Modify the code of the accessibility
8695 check to handle class-wide interface objects. In this case we need to
8696 displace "this" to reference the primary dispatch table to get access
8697 to the TSD of the object (to evaluate its accessibility level).
8698 (Expand_N_Extended_Return_Statement): Test for a tagged result type
8699 rather than a controlling result as one of the conditions for
8700 generating tests of the implicit BIP_Alloc_Form formal. The
8701 initialization assignment is also handled according to whether the
8702 result is tagged instead of controlling.
8703 In the case where the init assignment is inserted in the "then" part of
8704 the allocation conditional, rewrite the target to be a dereference of
8705 the implicit BIP_Object_Access formal.
8706 If the returned value is unconstrained and created on the secondary
8707 stack, mark the enclosing block and function so that the secondary
8708 stack is not reclaimed on return.
8709 Treat returns from functions with controlling results similarly to
8710 returns from functions with unconstrained result subtypes.
8711 If the object returned is unconstrained, and an allocator must be
8712 created for it, analyze the allocator once the block for the extended
8713 return is installed, to ensure that finalizable components
8714 of the expression use the proper finalization list. Guard the call to
8715 Move_Final_List with a check that there is something to finalize.
8716 (Make_Tag_Ctrl_Assignment): Use "old" handling
8717 of controlled type assignment for virtual machines, since new code uses
8718 unsupported features (such as direct access to bytes in memory).
8720 2007-06-06 Gary Dismukes <dismukes@adacore.com>
8721 Ed Schonberg <schonberg@adacore.com>
8723 * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
8724 accessibility actual, check for the case of an aliased object that has
8725 been rewritten as an Access attribute, and assign Prev to Prev_Orig so
8726 we fall into processing for the attribute rather than the name of the
8728 (Expand_Inline_Call): If an actual is a literal, and the corresponding
8729 formal has its address taken in the body, create a temporary to capture
8730 value. If the return type is a limited interface, do not treat the
8731 return value as Controlled.
8732 (Is_In_Place_Function): If the return type is a limited interface,
8733 treat as returning in place. The actual returned object may not always
8734 be limited, but the caller has to assume that it is returned in place.
8735 (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
8736 context of an allocator, use the correct finalization chain (that is,
8737 the chain belonging to the access type, rather than the chain belonging
8738 to the current scope).
8739 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
8740 result type rather than a controlling result as a precondition for
8741 adding an allocation form actual to a build-in-place call.
8742 (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
8743 (Freeze_Subprogram): Code cleanup. Remove all the code that register the
8744 primitive in the dispatch tables. This work is now done by Make_DT when
8746 (Register_Predefined_DT_Entry): Removed.
8747 (Add_Return): If end label is not present, use sloc of last statement
8748 for generated return statement in procedure, for better gdb behavior
8750 (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
8751 object address nodes to ensure proper processing by routines like
8753 (Expand_Call): Fix generation of validity check for parameter
8754 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
8755 the allocation form parameter if the result subtype is constrained,
8756 except when the function has a controlling result.
8757 (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
8758 rather than Is_Controlled and Has_Controlled_Component, since we want to
8759 include class-wide result types in this treatment. Also test for a
8760 controlling result, since that also requires passing a finalization
8762 (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
8763 even when the result subtype is constrained, to handle calls involving
8764 controlling results.
8765 (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
8766 is now called even when the result subtype is constrained, to handle
8767 calls involving controlling results.
8768 (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
8769 on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
8770 now performs the test).
8771 (Make_Build_In_Place_Call_In_Object_Declaration):
8772 Add_Alloc_Form_Actual_* is now called even when the result subtype is
8773 constrained, to handle calls involving controlling results.
8774 (Add_Return): Accomodate rewritten pattern from local raise to goto
8775 transformation, so that we still recognize an transfer statement
8776 and do the right thing here in that case.
8777 (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
8778 and end of subprogram code.
8779 (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
8780 support for primitives that are functions (without formals) with a
8782 (Inherited_From_Formal): If the actual subtype has not generic parent
8783 type, it is not an actual for a formal derived type, and there is no
8784 operation to inherit from the formal.
8786 2007-06-06 Ed Schonberg <schonberg@adacore.com>
8787 Thomas Quinot <quinot@adacore.com>
8789 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
8790 inserted cleanup code appropriately for GDB use.
8791 (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
8792 exception handler for Deep_Adjust or Deep_Finalize.
8793 (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
8794 Raise_From_Controlled_Operation is available, use a call to that
8795 subprogram instead of a plain "raise Program_Error" node to raise
8796 Program_Error if an exception is propagated from an Adjust or Finalize
8798 (Insert_Actions_In_Scope_Around): If the statement to be wrapped
8799 appears in the optional statement list of a triggering alternative, the
8800 scope actions can be inserted directly there, and not in the list that
8801 includes the asynchronous select itself.
8803 2007-06-06 Ed Schonberg <schonberg@adacore.com>
8804 Robert Dewar <dewar@adacore.com>
8805 Hristian Kirtchev <kirtchev@adacore.com>
8807 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
8808 generated exception handler appropriately when debugging generated code.
8809 Deal properly with No_Exception_Propagation restriction mode.
8810 (Expand_N_Abort_Statement): Add an unchecked type conversion from
8811 System.Address to System.Tasking.Task_Id when processing the result of
8812 the predefined primitive _disp_get_task_id.
8813 (Expand_N_Asynchronous_Select): Clarify comment.
8814 (Expand_N_Protected_Type_Declaration): Minor code cleanup.
8815 (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
8816 (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
8817 (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
8818 privals and for generated call to Complete_Entry_Body, for better gdb
8820 (Copy_Result_Type): Utility to construct a parameter and result profile
8821 for protected functions whose return type is an anonymous access to
8823 (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
8825 (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
8826 point when the local-raise-to-goto transformation has taken place.
8828 2007-06-06 Javier Miranda <miranda@adacore.com>
8829 Nicolas Setton <setton@adacore.com>
8831 * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
8832 functionality when the backend is generating code.
8833 Otherwise any serious error
8834 reported by the backend calling the frontend routine Error_Msg
8835 changes the Compilation_Mode to Check_Semantics, disables the
8836 functionality of this routine and causes the generation of
8837 spureous additional errors.
8839 * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
8840 debugging information now generated by the compiler for fat-pointer
8842 Document the contents of DW_AT_producer in the GNAT Vendor extensions to
8844 Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
8846 2007-06-06 Thomas Quinot <quinot@adacore.com>
8848 * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
8849 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
8850 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
8851 For a remote call to a function with a classwide return type, apply an
8852 E.4(18) check to the returned value.
8853 (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
8854 stream attributes of the designated type of an RACW, as they are not
8855 dispatching primitive operations.
8857 2007-06-06 Geert Bosch <bosch@adacore.com>
8859 * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
8861 (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
8863 (Do_Divide_Fixed_Universal): Handle case of negative Frac.
8864 (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
8866 (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
8868 2007-06-06 Javier Miranda <miranda@adacore.com>
8870 * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
8871 attribute compiling package Ada.Tags under No_Run_Time_Mode.
8873 2007-06-06 Javier Miranda <miranda@adacore.com>
8875 * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
8876 deallocation of class-wide interface objects.
8877 (Expand_Dispatching_Constructor_Call): Take into account that if the
8878 result of the dispatching constructor is an interface type, the
8879 function returns a class-wide interface type; otherwise the returned
8880 object would be actual. The frontend previously accepted returning
8881 interface types because Expand_Interface_Actuals silently performed
8882 the management of the returned type "as if" it were a class-wide
8884 (Expand_Dispatching_Constructor_Call): Replace call to
8885 Make_DT_Access_Action by direct call to Make_Function_Call.
8887 2007-06-06 Robert Dewar <dewar@adacore.com>
8888 Ed Schonberg <schonberg@adacore.com>
8890 * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
8891 compute masking constant, since we now set Esize properly to the
8893 (Create_Packed_Array_Type): Set proper Esize value adjusted as required
8894 to match the alignment.
8895 (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
8896 packed arrays of 8 bits or less.
8898 * freeze.adb (Freeze_Entity): When freezing the formals of a
8899 subprogram, freeze the designated type of a parameter of an access type
8900 only if it is an access parameter.
8901 Increase size of C convention enumeration object
8902 (Freeze_Entity, array type case): Make sure Esize value is properly
8903 adjusted for the alignment if it is known.
8904 (Freeze_Entity, array type case): When checking bit packed arrays for
8905 the size being incorrect, check RM_Size, not Esize.
8906 (Freeze_Record_Type): Check for bad discriminated record convention
8907 (In_Exp_Body): Return true if the body is generated for a subprogram
8908 renaming, either an attribute renaming or a renaming as body.
8909 (Check_Itype): If the designated type of an anonymous access component
8910 is a non-protected subprogram type, indicate that it is frozen, to
8911 prevent out-of-scope freeze node at some subsequent call.
8912 (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
8913 only if the subprogram is neither imported nor exported, as well as the
8914 NCA descriptor class if the subprogram is exported.
8916 2007-06-06 Ed Schonberg <schonberg@adacore.com>
8917 Arnaud Charlet <charlet@adacore.com>
8918 Robert Dewar <dewar@adacore.com>
8919 Gary Dismukes <dismukes@adacore.com>
8921 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
8922 default initialization on an imported object, when there is no
8923 initialization call generated for it.
8924 (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
8927 * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
8928 Static_Elaboration_Desired.
8929 Remove pragma Thread_Body.
8930 Implement a new pragma No_Body
8931 Removes the Explicit_Overriding pragma
8932 Remove Optional_Overriding pragma
8933 (Prag): Deal with Universal_Aliasing.
8934 (Name_CIL, Name_CIL_Constructor, Convention_CIL,
8935 Pragma_CIL_Constructor): New names.
8937 * sem_cat.adb (Validate_Object_Declaration): An initialization that
8938 uses the equivalent aggregate of a type must be treated as an implicit
8940 (Get_Categorization): Check a unit for pragma Preelaborate only if it
8941 has none of the other categories.
8942 (Process_Import_Or_Interface_Pragma): Report an error for an attempt
8943 to apply Import to an object renaming declaration.
8945 * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
8946 from a C++ class should be declared as limited and that it will be
8947 considererd limited.
8948 (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
8949 should be declared as limited and that it will be considererd limited.
8950 (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
8951 (Analyze_Pragma, case Export): Diagnose export of enumeration literal
8952 (Analyze_Pragma): Deal with Universal_Aliasing.
8953 (Sig_Flags): Likewise.
8954 (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
8955 (Overflow_Checks_Unsuppressed): New flag.
8956 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
8957 (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
8958 case of JVM or .NET targets, and compiling user code.
8959 Add debugging convenience routine rv
8961 2007-06-06 Robert Dewar <dewar@adacore.com>
8963 * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
8965 (Build_Elementary_Input_Call): For floating-point use right type in the
8966 absence of strange size or stream size clauses.
8967 (Build_Elementary_Write_Call): Same fix
8968 (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
8969 set to value that does not match base type size.
8971 2007-06-06 Ed Schonberg <schonberg@adacore.com>
8973 * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
8974 object of a limited type can be initialized with a call to a function
8975 that returns in place. If the limited type has unknown discriminants,
8976 and the underlying type is a constrained composite type, build an actual
8977 subtype from the function call, as is done for private types.
8978 (Side_Effect_Free): An expression that is the renaming of an object or
8979 whose prefix is the renaming of a object, is not side-effect free
8980 because it may be assigned through the renaming and its value must be
8981 captured in a temporary.
8982 (Has_Controlled_Coextensions): New routine.
8983 (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
8984 as is done for other limited types.
8985 (Non_Limited_Designated_Type): new predicate.
8986 (Make_CW_Equivalent_Type): Modified to handle class-wide interface
8988 Remove all handling of with_type clauses.
8990 * par-ch10.adb: Remove all handling of with_type clauses.
8992 * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
8993 checksum if the main source could not be parsed.
8994 (Loat_Unit): When processing a child unit, determine properly whether
8995 the parent unit is a renaming when the parent is itself a child unit.
8996 Remove handling of with_type clauses.
8998 * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
8999 (Set_Is_Static_Coextension): New procedure.
9000 (Has_Local_Raise): New function
9001 (Set_Has_Local_Raise): New procedure
9002 (Renaming_Exception): New field
9003 (Has_Init_Expression): New flag
9004 (Delay_Finalize_Attach): Remove because flag is obsolete.
9005 (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
9006 Remove all handling of with_type clauses.
9007 (Exception_Junk): Can now be set in N_Block_Statement
9009 2007-06-06 Vincent Celier <celier@adacore.com>
9010 Robert Dewar <dewar@adacore.com>
9012 * frontend.adb (Frontend): Return immediately if the main source could
9013 not be parsed, because of preprocessing errors.
9015 * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
9016 (Gnat1drv): Exit with errors if the main source could not be parsed,
9017 because of preprocessing errors.
9018 (Check_Rep_Info): New procedure
9020 2007-06-06 Robert Dewar <dewar@adacore.com>
9022 * g-hesorg.ads, g-heasor.ads,
9023 g-busorg.ads, g-bubsor.ads: Update documentation
9024 GNAT.Heap/Bubble_Sort_G is now pure
9026 2007-06-06 Robert Dewar <dewar@adacore.com>
9028 * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
9030 2007-06-06 Robert Dewar <dewar@adacore.com>
9031 Ed Schonberg <schonberg@adacore.com>
9033 * g-comlin.ads, g-comlin.adb:
9034 Add new warning for renaming of function return objects
9036 * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
9037 (Tree_Read): Use size of object instead of type'object_size, since the
9038 latter is incorrect for packed array types.
9039 (Tree_Write): Same fix
9041 * opt.ads: Add new warning for renaming of function return objects
9042 (Generating_Code): New boolean variable used to indicate that the
9043 frontend as finished its work and has called the backend to process
9044 the tree and generate the object file.
9045 (GCC_Version): Is now private
9046 (Static_Dispatch_Tables): New constant declaration.
9047 (Overflow_Checks_Unsuppressed): New flag.
9048 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
9049 (List_Closure): New flag for gnatbind (-R)
9050 Zero_Formatting: New flag for gnatbind (-Z)
9051 (Special_Exception_Package_Used): New flag.
9052 (Warn_On_Unrepped_Components): New flag.
9054 * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
9055 unit is a compilation unit, rather than relying on its scope, so that
9056 Standard can be renamed.
9057 (Analyze_Object_Renaming): Add new warning for renaming of function
9059 Also reject attempt to rename function return object in Ada 83 mode.
9060 (Attribute_Renaming): In case of tagged types, add the body of the
9061 generated function to the freezing actions of the type.
9062 (Find_Type): A protected type is visible right after the reserved word
9063 "is" is encountered in its type declaration. Set the entity and type
9064 rather than emitting an error message.
9065 (New_Scope): Properly propagate Discard_Names to inner scopes
9066 (Check_Nested_Access): New procedure.
9067 (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
9068 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
9070 * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
9071 Add new warning for renaming of function return objects
9072 (Check_References): Suppress warnings for objects whose type or
9073 base type has Warnings suppressed.
9074 (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
9075 (Set_Warning_Switch): Include new -gnatwc in -gnatwa
9077 2007-06-06 Vincent Celier <celier@adacore.com>
9078 Emmanuel Briot <briot@adacore.com>
9079 Olivier Hainque <hainque@adacore.com>
9081 * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
9082 absolute value of Header.Block_Size when displaying the freed physical
9084 (Allocate): Compute Storage_Address using Integer_Address, not
9085 Storage_Offset, because the range of Storage_Offset may not be large
9087 (Configure): New parameter Low_Level_Traces
9088 (Allocate, Deallocation, Free_Physically): Added low-level traces
9089 (Configure): new parameter Errors_To_Stdout.
9090 (Output_File): new subprogram
9091 (Deallocate, Dereference): Send error messages to the proper stream
9092 (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
9093 documented. Previous code would send it to the current output file
9094 defined in GNAT.IO, which might not be stdout
9095 (Is_Valid): Adjust comment to mention that a positive reply means that
9096 Header_Of may be used to retrieve the allocation header associated with
9097 the subprogram Storage address argument. Return False early if this
9098 address argument is misaligned.
9100 2007-06-06 Vincent Celier <celier@adacore.com>
9102 * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
9104 (ASIS_Main): New global variable
9105 (Get_Closure): New procedure
9106 (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
9107 check, metric or pretty. Call Get_Closure in this case.
9108 (Check_Files): For GNAT LIST, check all sources of all projects when
9109 All_Projects is True.
9110 (GNATCmd): Accept -U for GNAT LIST
9112 2007-06-06 Vincent Celier <celier@adacore.com>
9114 * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
9116 Correct error message when invocation of the linker fails
9117 Add explicit size clause for the C imported variables
9118 Object_List_File_Supported and Using_GNU_Linker to emphasize that
9119 we expect char size.
9120 Read target parameters earlier, since this is needed to set
9121 Target_VM properly. Also do not use -static/shared-libgcc for non GCC
9124 2007-06-06 Vincent Celier <celier@adacore.com>
9127 Add 3 spaces before the default project directory when displaying
9128 the project search path.
9129 Add new command line switch '-l' to display license information.
9131 2007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
9133 * gmem.c: Add support for timestamps on memory operations.
9135 * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
9136 operations (not used currently, just foundation for future
9137 enhancements). Add possibility to perform full dump of gmem.out file.
9138 (Print_Back_Traces): Declare accesses to root arrays constants since
9139 they aren't modified.
9140 (Print_Back_Traces): allocate root arrays on the heap rather than stack.
9142 2007-06-06 Vincent Celier <celier@adacore.com>
9144 * gnatsym.adb: Update Copyright notice
9145 (Parse_Cmd_Line): Accept new switch -D
9146 (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
9149 * prj.ads (Policy): New policy Direct
9150 (Yes_No_Unknown): New enumeration type
9151 (Project_Data): New component Libgnarl_Needed
9153 * prj-nmsc.adb (Check_For_Source): When recording a source file make
9154 use the untouched pathname casing.
9155 (Get_Directories): Ensure that the Display_Exec_Directory is using the
9156 proper casing on non case-sensitive platforms like Windows.
9157 (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
9158 on all platforms, as it is not possible to know which one is allowed
9159 before processing the project files.
9160 (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
9161 specified when symbol policy is Direct. Check that when there is a
9162 symbol file defined (either by default or with attribute
9163 Library_Symbol_File) it is not the same as the reference symbol file.
9164 (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
9165 (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
9167 (Record_Ada_Source): Record a source that has been locally removed in an
9170 * symbols.ads (Policy): New policy Direct
9172 * symbols-vms.adb (Initialize): Take new policy Direct in case
9175 2007-06-06 Vincent Celier <celier@adacore.com>
9177 * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
9178 Correct obvious bug (return Dir; instead of return Directory;).
9179 (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
9181 2007-06-06 Thomas Quinot <quinot@adacore.com>
9183 * g-pehage.adb (Produce): Open output files in Binary mode, so that
9184 they have UNIX line endings (LF only) even on Windows, and thus pass
9185 all GNAT style checks.
9187 2007-06-06 Emmanuel Briot <briot@adacore.com>
9189 * g-regpat.adb (Quote): Fix improper quoting of '.'
9191 2007-06-06 Thomas Quinot <quinot@adacore.com>
9193 * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
9194 default, set False on a per-runtime basis.
9195 (Need_Netdb_Buffer): New constant.
9197 * g-socket.ads, g-socket.adb: Import new package
9198 GNAT.Sockets.Thin.Task_Safe_NetDB.
9199 (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
9200 binding to obtain proper message.
9201 (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
9202 Replace various occurrences of Arry (Arry'First)'Address with the
9203 equivalent Arry'Address (GNAT always follows implementation advice from
9205 (Get_Host_By_Address, Get_Host_By_Name,
9206 Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
9207 instead, rely on platform-specific task safe netdb operations provided
9210 * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
9211 parameter Process_Blocking_IO.
9212 (Host_Error_Messages): Add stub body.
9213 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
9214 (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
9215 Safe_Getservbyport): Move functions into new child package
9217 (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
9218 Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
9219 (In_Addr): Add alignment clause.
9221 2007-06-06 Robert Dewar <dewar@adacore.com>
9223 * g-trasym.ads, g-traceb.ads: Update list of supported targets
9224 Add note about symbolic traceback
9226 2007-06-06 Pascal Obry <obry@adacore.com>
9228 * hostparm.ads (Normalized_CWD): Use the host directory separator
9229 instead of the hardcoded forward slash which is not the proper
9230 character on Windows for example.
9233 2007-06-06 Vincent Celier <celier@adacore.com>
9234 Arnaud Charlet <charlet@adacore.com>
9236 * a-clrefi.adb, a-clrefi.ads: New files
9238 * impunit.adb: Add s-os_lib in the list of user visible units.
9239 (Non_Imp_File_Names_95): Add a-clrefi to this list
9240 Remove obsolete run-time entries.
9241 (Non_Imp_File_Names_05): Add Ada 2005 entries for:
9242 "a-exetim" -- Ada.Execution_Time
9243 "a-extiti" -- Ada.Execution_Time.Timers
9245 * mlib-prj.ads, mlib-prj.adb
9246 (Build_Library): Use untouched object dir and library dir. At the
9247 same time makes sure that the checks are done using the canonical
9248 form. Removes hard-coded directory separator and use the proper host
9250 (Process_Project): Do not look in object directory to check if libgnarl
9251 is needed for a library, if there is no object directory.
9252 (Build_Library): Scan the ALI files to decide if libgnarl is needed for
9254 (Build_Library): When invoking gnatbind, use a response file if the
9255 total size of the arguments is too large.
9257 * Makefile.rtl: (g-sttsne): New object file.
9258 Add entry for a-clrefi, s-utf_32, System.Exceptions
9260 * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
9261 (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
9262 (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
9263 Change g-string to s-string, g-os_lib to s-os_lib
9264 Change all g-utf_32 references to s-utf_32
9266 2007-06-06 Tristan Gingold <gingold@adacore.com>
9267 Olivier Hainque <hainque@adacore.com>
9269 * init.c: Do not adjust IP of an imported VMS exception of ia64.
9270 LIB$STOP is called to raise an exception and the IP of the exception
9271 is the instruction right after the call.
9272 (__gnat_adjust_context_for_raise, AIX): Implement.
9273 (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
9274 adjust_context_for_raise before Raise_From_Signal_Hanler.
9275 (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
9276 siginfo is passed to the handler, necessary to let the zcx propagation
9277 engine unwind past it.
9279 2007-06-06 Olivier Hainque <hainque@adacore.com>
9281 * initialize.c (__gnat_initialize for vxworks): Update documentation
9282 on the ZCX support, using different sets of crtstuff objects than with
9285 2007-06-06 Robert Dewar <dewar@adacore.com>
9287 * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
9289 (Layout_Type): Fix recomputation of size from alignment.
9291 2007-06-06 Ed Schonberg <schonberg@adacore.com>
9292 Javier Miranda <miranda@adacore.com>
9294 * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
9295 association in an instance.
9296 (Copy_Generic_Node): If the node is a string literal, no need to copy
9298 (Is_Generic_Formal): For a formal subprogram, the declaration is the
9299 grandparent of the entity.
9300 (Analyze_Formal_Interface_Type): Transform into a full type declaration,
9301 to simplify handling of formal interfaces that derive from other formal
9303 (Instantiate_Subprogram_Body): The defining unit name of the body of
9304 the instance should be a defining identifier.
9305 (Install_Formal_Packages): make global to the package, for use in
9306 instantiations of child units.
9307 (Analyze_Package_Instantiation): Do not attempt to set information on an
9308 enclosing master of an entry when expansion is disabled.
9309 (Instantiate_Type): If the actual is a tagged synchronized type and the
9310 generic ancestor is an interface, create a generic actual for the
9311 corresponding record.
9312 (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
9313 declaration, to ensure that the interface list is processed correctly.
9314 (Inline_Instance_Body): If enclosing scope is an instance body, remove
9315 its entities from visibiility as well.
9316 (Pre_Analyze_Actuals): if the actual is an allocator with constraints
9317 given with a named association, analyze the expression only, not the
9318 discriminant association itself.
9319 (Reset_Entity): If the analysis of a selected component is transformed
9320 into an expanded name in the prefix of a call with parameters, do not
9321 transform the original node into an expanded name, to prevent visibility
9322 errors in the case of nested generics.
9323 (Check_Private_View): For an array type, check whether the index types
9324 may need exchanging.
9326 2007-06-06 Arnaud Charlet <charlet@adacore.com>
9327 Vincent Celier <celier@adacore.com>
9329 * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
9330 since both are separated.
9331 Add support for imported CIL packages.
9332 Add further special handling of "value_type" for CIL.
9333 Add special handling of pragma Import for CIL.
9335 * make.ads, make.adb: When switch -eS is used, direct all outputs to
9336 standard output instead of standard error, except errors.
9337 (Absolute_Path): Use untouched casing for the parent directory.
9338 (Add_Library_Search_Dir): Use the untouched directory name.
9339 (Add_Source_Search_Dir): Idem.
9340 (Change_To_Object_Directory): Update output to use proper casing.
9341 (Create_Binder_Mapping_File): Use the untouched filename to set
9343 (Gnatmake): Use untouched library and executable directory names.
9344 (Insert_Project_Sources): Use untouched filename for spec and body.
9345 (Is_In_Object_Directory): Use untouched object directory.
9346 (Mark_Directory): Idem.
9347 (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
9348 contains the non-canonical filename in all cases.
9349 (Change_To_Object_Directory): In verbose mode, display the name of the
9350 object directory we're changing to.
9351 (Compile_Sources): Make sure, when a project file is used, to compile
9352 the body of the unit, when there is one, even when only the spec is
9353 recorded in an ALI file.
9354 (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
9356 (Report_Compilation_Failed): New procedure
9357 (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
9358 procedures moved from the spec to the body.
9359 (Extract_Failure): Removed, not used
9360 Replace explicit raises of exception Bind_Failed and Link_Failed with
9361 calls to Make_Failed with the proper message.
9362 Replace explicit raises of exception Compilation_Failed with calls to
9363 procedure Report_Compilation_Failed.
9364 (Initialize): Create mapping files unconditionally when using project
9367 * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
9368 Pragma_CIL_Constructor): New names.
9370 * targparm.ads, targparm.adb
9371 (Compiler_System_Version): Removed, no longer used.
9372 (Get_Target_Parameters): Relax checks on system.ads validity. Add
9373 handling of two new system flags: JVM and CLI.
9375 2007-06-06 Jose Ruiz <ruiz@adacore.com>
9376 Arnaud Charlet <charlet@adacore.com>
9378 * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
9379 time, use the default s-interr body that provides interrupt support
9381 (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
9382 a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
9383 g-soccon.ads, and s-taprop.adb for the marte run time.
9384 (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
9385 timers are supported on marte.
9386 (EH_MECHANISM for marte): Do not use ZCX.
9387 (THREADSLIB for marte): Use -lmarte.
9388 Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
9389 Add mlib-tgt-specific.o to gnatmake objects
9390 mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
9392 (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
9393 6, either kernel or rtp, use a specialized version of s-osinte.ads.
9395 2007-06-06 Pascal Obry <obry@adacore.com>
9397 * mkdir.c (__gnat_mkdir): Add support for UTF-8.
9399 2007-06-06 Vincent Celier <celier@adacore.com>
9401 * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
9402 separator, use instead the proper host directory separator.
9403 (Copy_ALI_Files): Make sure that an already existing ALI file in the
9404 ALI copy dir is writable, before doing the copy.
9406 * mlib-utl.ads, mlib-utl.adb:
9407 (Gcc): If length of command line is too long, put the list of object
9408 files in a response file, if this is supported by the platform.
9409 (Ar): If invocation of the archive builder is allowed to be done in
9410 chunks and building it in one shot would go above an OS dependent
9411 limit on the number of characters on the command line, build the archive
9414 2007-06-06 Vincent Celier <celier@adacore.com>
9416 * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
9417 of specified object file is not equal to base name of source.
9419 2007-06-06 Javier Miranda <miranda@adacore.com>
9420 Hristian Kirtchev <kirtchev@adacore.com>
9421 Ed Schonberg <schonberg@adacore.com>
9423 * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
9424 the full type declaration.
9425 (Analyze_Component_Declaration): Add local variable E to capture the
9426 initialization expression of the declaration. Replace the occurences of
9427 Expression (N) with E.
9428 (OK_For_Limited_Init_In_05): Allow initialization of class-wide
9429 limited interface object with a function call.
9430 (Array_Type_Declaration): If the declaration lacks subtype marks for
9431 indices, create a simple index list to prevent cascaded errors.
9432 (Is_Null_Extension): Ignore internal components created for secondary
9433 tags when checking whether a record extension is a null extension.
9434 (Check_Abstract_Interfaces): Add missing support for interface subtypes
9435 and generic formals.
9436 (Derived_Type_Declaration): Add missing support for interface subtypes
9437 and generic formals.
9438 (Analyze_Object_Declaration): If an initialization expression is
9439 present, traverse its subtree and mark all allocators as static
9441 (Add_Interface_Tag_Component): When looking for components that may be
9442 secondary tags, ignore pragmas that can appear within a record
9444 (Check_Abstract_Overriding): an inherited function that dispatches on
9445 result does not need to be overriden if the controlling type is a null
9447 (Mentions_T): Handle properly a 'class attribute in an anonymous access
9448 component declaration, when the prefix is an expanded name.
9449 (Inherit_Component): If the derivation is for a private extension,
9450 inherited components remain visible and their ekind should not be set
9452 (Find_Type_Of_Object): In the case of an access definition, always set
9453 Is_Local_Anonymous_Access. We were previously not marking the anonymous
9454 access type of a return object as a local anonymous type.
9455 (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
9456 range with character literal bounds.
9457 (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
9458 (Access_Subprogram_Declaration): Indicate that the type declaration
9459 depends on an incomplete type only if the incomplete type is declared
9461 (Analyze_Subtype_Declaration): Handle properly subtypes of
9462 synchronized types that are tagged, and that may appear as generic
9464 (Access_Subprogram_Declaration): An anonymous access to subprogram can
9465 appear as an access discriminant in a private type declaration.
9466 (Add_Interface_Tag_Components): Complete decoration of the component
9467 containing the tag of a secondary dispatch table and the component
9468 containing the offset to the base of the object (this latter component
9469 is only generated when the parent type has discriminants --as documented
9471 (Inherit_Components): Use the new decoration of the tag components to
9472 improve the condition that avoids inheriting the components associated
9473 with secondary tags of the parent.
9474 (Build_Discriminanted_Subtype): Indicate to the backend that the
9475 size of record types associated with dispatch tables is known at
9477 (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
9478 (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
9479 to include task, protected, and synchronized interfaces as limited
9481 (Process_Discriminants): Remove the setting of
9482 Is_Local_Anonymous_Access on the type of (anonymous) access
9483 discriminants of nonlimited types.
9484 (Analyze_Interface_Type_Declaration): Complete the decoration of the
9485 class-wide entity it is is already present. This situation occurs if
9486 the limited-view has been previously built.
9487 (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
9489 (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
9492 2007-06-06 Ed Schonberg <schonberg@adacore.com>
9494 * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
9495 of the type that specify the position of interface tags when the type
9496 inherits discriminated array components from the parent type.
9497 If a component is initialized with a box, check for the presence of a
9498 default expression in its declaration before using its default
9499 initialization procedure.
9500 (Resolve_Record_Aggregate): If a component is box-initialized, and the
9501 component type has a discriminants, create a partial aggregate for it
9502 by copying the discriminants of the component subtype.
9503 Reject attempt to initialize a discriminant with a box.
9504 (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
9505 associated with dispatch tables is known at compile time.
9506 (Get_Value): If an association in a record aggregate has a box
9507 association, and the corresponding record component has a default
9508 expression, always copy the default expression, even when the
9509 association has a single choice, in order to create a proper
9510 association for the expanded aggregate.
9512 2007-06-06 Ed Schonberg <schonberg@adacore.com>
9513 Robert Dewar <dewar@adacore.com>
9515 * par-ch12.adb (P_Generic_Associations): The source position of an
9516 Others association is that of the others keyword, not that of the token
9517 that follows the box.
9518 (P_Formal_Type_Definition): Handle formal access types that carry a
9521 * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
9522 multiple identifier are present, save Scan_State before scanning the
9523 colon, to ensure that separate trees are constructed for each
9525 (P_Identifier_Declarations): For object declaration, set new flag
9526 Has_Init_Expression if initialization expression present.
9527 (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
9528 Improve NOT NULL error messages
9530 2007-06-06 Robert Dewar <dewar@adacore.com>
9532 * par-ch4.adb: (P_Name): Recover from literal used as name
9534 2007-06-06 Vincent Celier <celier@adacore.com>
9536 * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
9538 In the "not" case, recursive call with Complemented set to True.
9539 Do not allow "or" or "and" operators when Complemented is True.
9541 2007-06-06 Vincent Celier <celier@adacore.com>
9543 * prj.adb (Project_Empty): Gives default value for new component
9546 * prj-attr.ads: Minor reformatting
9548 * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
9549 directory using the untouched casing.
9550 (For_All_Source_Dirs): Idem.
9552 * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
9553 directories specified with switches -aP.
9554 (Add_Search_Project_Directory): New procedure
9555 (Initialize_Project_Path): Put the directories in table
9556 Search_Directories in the project search path.
9557 (Initialize_Project_Path): For VMS, transform into canonical form the
9560 2007-06-06 Arnaud Charlet <charlet@adacore.com>
9562 * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
9563 true if configurable run-time or No_Run_Time is set.
9564 (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
9565 processing an unit which is not the one being compiled.
9567 2007-06-06 Arnaud Charlet <charlet@adacore.com>
9569 * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
9570 Replace UC by Ada.UC
9572 * s-bitops.adb: Get rid of System.Pure_Exceptions.
9573 Replace UC by Ada.UC
9575 2007-06-06 Robert Dewar <dewar@adacore.com>
9577 * scng.adb: (Check_End_Of_Line): Deal with very long lines
9579 2007-06-06 Robert Dewar <dewar@adacore.com>
9581 * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
9582 Remove no longer used nodes.
9584 2007-06-06 Javier Miranda <miranda@adacore.com>
9585 Ed Schonberg <schonberg@adacore.com>
9586 Robert Dewar <dewar@adacore.com>
9588 * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
9589 on obsolescent withed unit in case of limited-withed units.
9590 (Analyze_Compilation_Unit): Add guard to code that removed an
9591 instantiation from visibility, to prevent compiler aborts when
9592 instantiation is abandoned early on.
9593 (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
9594 current unit being analyzed, and Distinguish local incomplete types
9595 from limited views of types declared elsewhere.
9596 (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
9597 to state that the class-wide entity is shared by the limited-view
9599 (Analyze_With_Clause): Improve placement of flag for case of
9601 (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
9602 manner similar to GNAT.Current_Exception. This is a violation of
9603 restriction (No_Exception_Propagation), and also inhibits the
9604 optimization of local raise to goto.
9605 (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
9606 and if so set Most_Recent_Exception_Used flag in Opt, and also check
9607 for violation of restriction No_Exception_Propagation.
9609 2007-06-06 Javier Miranda <miranda@adacore.com>
9610 Hristian Kirtchev <kirtchev@adacore.com>
9611 Gary Dismukes <dismukes@adacore.com>
9613 * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
9614 use of entity Exception_Occurrence if it is not available in the
9617 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
9618 concurrent types are declared within an Ada 2005 generic, build their
9619 corresponding record types since they are needed for overriding-related
9621 (Analyze_Protected_Type): Rearrange and simplify code for testing that a
9622 protected type does not implement a task interface or a nonlimited
9624 (Analyze_Task_Type): Rearrange and simplify code for testing that a task
9625 type does not implement a protected interface or a nonlimited interface.
9626 (Single_Task_Declaration, Single_Protected_Declaration): use original
9627 entity for variable declaration, to ensure that debugging information
9628 is correcty generated.
9629 (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
9630 routines if the expander is not active.
9631 (Analyze_Task_Body): Mark all handlers to stop optimization of local
9632 raise, since special things happen for task exception handlers.
9634 * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
9635 concurrent types declared within a generic.
9636 (Check_Dispatching_Operation): Do not emit warning about late interface
9637 operations in the context of an instance.
9638 (Check_Dispatching_Call): Remove restriction against calling a
9639 dispatching operation with a limited controlling result.
9640 (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
9641 Register_Interface_DT_Entry by calls to Register_Primitive.
9642 (Check_Dispatching_Formals): Handle properly a function with a
9643 controlling access result.
9645 2007-06-06 Robert Dewar <dewar@adacore.com>
9646 Arnaud Charlet <charlet@adacore.com>
9648 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
9649 Check for restriction No_Implementation_Attributes if in Ada 95 mode.
9650 (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
9651 (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
9652 message when using a VM, since this attribute is not supported.
9653 (Analyze_Record_Representation_Clause): Give unrepped component warnings
9655 * usage.adb: Add new warning for renaming of function return objects
9656 Indicate that -gnatwp and -gnatwP concern front-end inlining
9657 Add line for -gnatyg
9658 Add usage information for -gnatw.c/C
9660 2007-06-06 Robert Dewar <dewar@adacore.com>
9661 Ed Schonberg <schonberg@adacore.com>
9664 (Find_Var): Do not consider function call in test for infinite loop
9665 warning if warnings set off for function entity.
9666 (One_Bound): Do not create a temporary for a loop bound if it is a
9668 (Analyze_Assignment): Traverse the right hand side of an assignment and
9669 mark all allocators as static coextensions.
9670 (Analyze_Assignment): Exempt assignments involving a dispatching call
9671 to a function with a controlling access result from the check requiring
9672 the target to be class-wide.
9674 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
9675 Ed Schonberg <schonberg@adacore.com>
9676 Robert Dewar <dewar@adacore.com>
9677 Javier Miranda <miranda@adacore.com>
9679 * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
9680 chain of coextensions when an allocator serves as the root of such a
9682 (Propagate_Coextensions): Remove the test for the root being an
9684 (Resolve_Allocator): Add condition to ensure that all future decoration
9685 occurs on an allocator node. Add processing and cleanup for static
9687 (Valid_Conversion): If the operand type is the limited view of a
9688 class-wide type, use the non-limited view is available to determine
9689 legality of operation.
9690 (Ambiguous_Character): move to spec, for use elsewhere.
9691 (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
9692 (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
9694 (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
9695 Do_Division_Check flag explicitly.
9696 (Resolve_Actuals): If the actual is of a synchronized type, and the
9697 formal is of the corresponding record type, this is a call to a
9698 primitive operation of the type, that is declared outside of the type;
9699 the actual must be unchecked-converted to the type of the actual
9700 (Resolve_Call): Kill all current values for any subprogram call if
9701 flag Suppress_Value_Tracking_On_Call is set.
9702 (Resolve_Type_Conversion): Generate error message the the operand
9703 or target of interface conversions come from a limited view.
9704 (Check_Infinite_Recursion): Ignore generated calls
9705 (Check_Allocator_Discrim_Accessibility): New procedure for checking
9706 that an expression that constrains an access discriminant in an
9707 allocator does not denote an object with a deeper level than the
9708 allocator's access type.
9709 (Resolve_Allocator): In the case of an allocator initialized by an
9710 aggregate of a discriminated type, check that associations for any
9711 access discriminants satisfy accessibility requirements by calling
9712 Check_Allocator_Discrim_Accessibility.
9713 (Resolve_Equality_Op): Handle comparisons of anonymous access to
9714 subprogram types in the same fashion as other anonymous access types.
9715 (Resolve_Concatenation_Arg): Remove initial character '\' in an error
9716 message that is not a continuation message.
9717 (Resolve_Type_Conversion): Add missing support for conversion to
9719 (Resolve_Actuals): Introduce a transient scope around the call if an
9720 actual is a call to a function returning a limited type, because the
9721 resulting value must be finalized after the call.
9722 (Resolve_Actuals): If the call was given in prefix notations, check
9723 whether an implicit 'Access reference or implicit dereference must be
9724 added to make the actual conform to the controlling formal.
9726 2007-06-06 Robert Dewar <dewar@adacore.com>
9727 Javier Miranda <miranda@adacore.com>
9729 * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
9730 (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
9731 overriding of an inherited private subprogram now there is no need to
9732 inherit its dispatching slot and reduce the size of the dispatch table.
9733 Set_All_DT_Position now ensures that the same slot is now assigned to
9734 both entities. This is required to statically build the dispatch table.
9735 (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
9736 of calling Set_All_DT_Position to re-evaluate the position of the
9737 entries in the dispatch table. Such reevaluation is not desired if
9738 the tagged type is already frozen.
9740 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
9741 Gary Dismukes <dismukes@adacore.com>
9742 Robert Dewar <dewar@adacore.com>
9743 Javier Miranda <miranda@adacore.com>
9745 * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
9746 reference acts as an lvalue when the attribute name modifies the prefix
9747 (Is_Coextension_Root): New routine.
9748 (Mark_Static_Coextensions): New routine.
9749 (Type_Access_Level): Revise code for checking the level of the
9750 anonymous access type of a return object.
9751 (Safe_To_Capture_Value): Not safe to capture if Address_Taken
9752 (Matches_Prefixed_View_Profile): Remove the no longer necessary
9753 retrieval of the corresponding controlling record type.
9754 (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
9755 concurrent types declared within a generic as well as class wide types.
9756 Emit a mode incompatibility error whenever a protected entry or routine
9757 override an interface routine whose first parameter is not of mode
9758 "out", "in out" or access to variable.
9759 (Overrides_Synchronized_Primitive): Rename to
9760 Find_Overridden_Synchronized_Primitive.
9761 (Collect_Interface_Components): New subprogram that collects all the
9762 components of a tagged record containing tags of secondary dispatch
9764 (Add_Global_Declaration): New procedure
9765 (Abstract_Interface_List): Handle properly the case of a subtype of a
9767 (Type_Access_Level): In the case of a type whose parent scope is a
9768 return statement, call Type_Access_Level recursively on the enclosing
9769 function's result type to determine the level of the return object's
9771 (Build_Elaboration_Entity): Build name of elaboration entity from the
9772 scope chain of the entity, rather than the unit name of the file name.
9773 (Check_Nested_Access): New procedure.
9774 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
9775 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
9776 (Get_Renamed_Entity): Utility routine for performing common operation
9777 of chasing the Renamed_Entity field of an entity.
9779 2007-06-06 Robert Dewar <dewar@adacore.com>
9781 * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
9783 (Check_A_Call): Add check for entry call which was causing blowup
9785 2007-06-06 Olivier Hainque <hainque@adacore.com>
9787 * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
9788 special code on ia64-vms to handle major incompatibilities between the
9789 GCC unwinding ABI and the VMS Condition Handling Facility, both calling
9790 this routine with a very different set of arguments and expectations on
9793 2007-06-06 Thomas Quinot <quinot@adacore.com>
9795 * socket.c (__gnat_close_signalling_fd): New function.
9796 (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
9797 __gnat_safe_getservbyname, __gnat_safe_getservbyport):
9798 New supporting functions for task safe Netdb operations.
9800 2007-06-06 Thomas Quinot <quinot@adacore.com>
9801 Olivier Hainque <hainque@adacore.com>
9803 * a-except-2005.ads, a-except-2005.adb
9804 (Raise_From_Controlled_Operation): New procedure in
9805 (private part of) Ada.Exceptions (standard runtime version). Used to
9806 provide informational exception message when Program_Error is raised as
9807 a result of an Adjust or Finalize operation propagating an exception.
9808 (Rmsg_28): Fix description for E.4(18) check.
9809 (Raise_Current_Excep): Call Debug_Raise_Exception just before
9810 propagation starts, to let debuggers know about the event in a reliable
9812 Take the address of E and dereference to make sure it is homed on stack
9813 and prevent the stores from being deleted, necessary for proper
9814 debugger behavior on "break exception" hits.
9815 (Local_Raise): Moved to System.Exceptions
9817 * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
9818 exception message from the current occurrence and raise Program_Error
9819 has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
9821 2007-06-06 Jose Ruiz <ruiz@adacore.com>
9822 Arnaud Charlet <charlet@adacore.com>
9824 * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
9827 * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
9828 priority associated to a lock.
9830 * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
9831 assertion to take into account case of no abort restriction.
9832 (Initialize_Protection_Entries): Add initialization for the field
9833 New_Ceiling associated to the protected object.
9834 (Unlock_Entries): Change the ceiling priority of the underlying lock, if
9837 * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
9838 since this function needs to be set consistently with Update_Exception.
9840 * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
9841 since this function needs to be set consistently with Update_Exception.
9843 * s-taskin.ads: Update comments on
9844 Interrupt_Server_Blocked_On_Event_Flag.
9845 (Unbind_Handler): Fix handling of server_task wakeup
9846 (Server_Task): Set self's state so that Unbind_Handler can take
9847 appropriate actions.
9848 (Common_ATCB): Now use a constant from System.Parameters to determine
9849 the max size of the Task_Image field.
9851 * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
9852 Initialize_Analyzer function.
9853 ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
9854 take into account case of no abort restriction.
9855 ([Vulnerable_]Complete_Master): Modify assertion.
9857 * s-tataat.adb (Finalize): Use the nestable versions of
9858 Defer/Undefer_Abort.
9860 * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
9862 * s-tpobop.ads: Update comments.
9864 * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
9865 of locking the object manually, to avoid inconsistencies between
9866 Lock/Unlock_Entry assertions.
9868 * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
9870 application and System.Parameters.No_Abort is True.
9871 Update comments on Interrupt_Server_Blocked_On_Event_Flag.
9872 (Unbind_Handler): Fix handling of server_task wakeup
9873 (Server_Task): Set self's state so that Unbind_Handler can take
9874 appropriate actions.
9876 2007-06-06 Thomas Quinot <quinot@adacore.com>
9878 * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
9879 declarations instead of an explicit null body, for conciseness.
9881 2007-06-06 Robert Dewar <dewar@adacore.com>
9883 * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
9884 illegal aggregate and the type is still Any_Composite.
9885 (Subtypes_Statically_Match): Fix problem of empty discriminant list
9887 2007-06-06 Ed Schonberg <schonberg@adacore.com>
9889 * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
9890 to prevent subsequent expansion.
9892 2007-06-06 Robert Dewar <dewar@adacore.com>
9894 * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
9896 2007-06-06 Ed Schonberg <schonberg@adacore.com>
9897 Robert Dewar <dewar@adacore.com>
9899 * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
9901 (Write_Itype): Handle case of string literal subtype, which
9902 comes up in this context.
9903 (Update_Itype): when debugging expanded code, update sloc of itypes
9904 associated with defining_identifiers and ranges, for gdb use.
9905 (Sprint_Node_Actual): Add static keyword to object or exception
9906 declaration output if Is_Statically_Allocated is True.
9907 (Sprint_End_Label): Set entity of end marker for a subprogram, package,
9908 or task body, so that the tree carries the proper Sloc information for
9910 (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
9912 2007-06-06 Arnaud Charlet <charlet@adacore.com>
9914 * s-secsta.adb (Chunk): Ensure this object has a static size known at
9915 compile time, to avoid dynamic memory allocation
9916 (Elaboration code): Only use dynamic memory allocation when needed.
9918 2007-06-06 Quentin Ochem <ochem@adacore.com>
9920 * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
9922 (Stack_Analyzer): Added field "Overflow_Guard"
9923 (Task_Result): Added field "Overflow_Guard".
9924 (Index_Str): New constant.
9925 (Task_Name_Str): New constant.
9926 (Actual_Size_Str): New constant.
9927 (Pattern_Array_Element_Size): New constant.
9928 (Get_Usage_Range): New subprogram.
9929 (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
9930 Now align the output.
9932 (Initialize): Added value for Overflow_Guard.
9933 (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
9934 Update the value of the overflow guard according to the actual
9935 beginning of the pattern array.
9936 (Initialize_Analyzer): Added parameter Overflow_Guard.
9937 Take this parameter into accound when computing the max size.
9938 (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
9939 (Report_Result): Removed extra useless procedure.
9940 Updated call to Output_Result.
9941 Moved full computation of the Task_Result here.
9943 2007-06-06 Thomas Quinot <quinot@adacore.com>
9945 * g-soccon-darwin.ads, gen-soccon.c: Add new constant
9946 Thread_Blocking_IO, always True by default, set False on a per-runtime
9948 Add Windows-specific constants
9949 Add new constant Need_Netdb_Buffer.
9950 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
9951 not, whether to use getXXXbyYYY_r.
9953 * gsocket.h: Add new constant Need_Netdb_Buffer.
9954 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
9955 not, whether to use getXXXbyYYY_r.
9957 2007-06-06 Eric Botcazou <ebotcazou@adacore.com>
9959 * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
9960 than their first call.
9961 Add type Dummy_Communication_Block used in the generation of the pre-
9962 defined dispatching primitive _disp_asynchronous_select.
9963 (Storage_Element): Put Pragma Universal_Aliasing on it.
9965 2007-06-06 Vincent Celier <celier@adacore.com>
9967 * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
9970 * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
9971 letter if it is not followed by a '/' or a '\'.
9972 (Windows): New Boolean function
9974 * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
9976 (Containing_Directory): On Windows, keep at least one '/' or '\' after a
9978 (Containing_Directory): Raise Use_Error when the directory is a root
9980 (Extension): When returning the result, use a conversion to Result_Type,
9981 not a qualification.
9983 2007-06-06 Robert Dewar <dewar@adacore.com>
9985 * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
9986 (Set_Style_Check_Options): Recognize new -gnatyg style switch
9988 * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
9989 Warn_On_Non_Local_Exception to False, to turn off warnings for
9990 No_Exception_Propagation in ZFP runtime.
9991 (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
9993 (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
9995 2007-06-06 Vincent Celier <celier@adacore.com>
9997 * switch-b.adb (Scan_Binder_Switches): Add processing for new
10000 * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
10001 (Scan_Make_Switches): Recognize new switch -aP
10003 2007-06-06 Matthew Gingell <gingell@adacore.com>
10004 Jose Ruiz <ruiz@adacore.com>
10006 * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
10007 VxWorks task descriptor in the Ada run time, call a C subprogram
10008 (__gnat_get_stack_info) that extracts the required information.
10010 * sysdep.c: Back out temporary lynxos workaround.
10011 (__gnat_get_stack_info): Add this procedure that passes to the Ada run
10012 time the stack information associated to the currently executing task.
10013 Only VxWorks systems require this function.
10015 2007-06-06 Eric Botcazou <ebotcazou@adacore.com>
10017 * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
10018 add the stack bias if the offset is computed from a frame address.
10019 (__gnat_backtrace): Adjust for above change.
10021 2007-06-06 Thomas Quinot <quinot@adacore.com>
10023 * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
10024 PE_Non_Transportable_Actual.
10025 (By_Descriptor_Last): New constant.
10026 (By_Copy_Return): Likewise.
10028 2007-06-06 Vincent Celier <celier@adacore.com>
10030 * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
10033 * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
10034 /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
10035 /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
10036 Add missing comment for /OPTIMIZE=SPACE
10037 Add entry for OPTIMIZE=SPACE
10038 Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
10039 Add documentation for new qualifiers corresponding to -gnatw.c/.C
10041 2007-06-06 Vincent Celier <celier@adacore.com>
10042 Robert Dewar <dewar@adacore.com>
10044 * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
10047 * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
10048 Document gnatbind switch -a
10049 (case Constructions): Document that variables declarations are allowed
10050 for previously declared variables.
10051 Fix external lib project example
10052 -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
10053 Indicate that "#if not X or Y then" is not allowed in input files to
10055 Document gnatw.x and gnatw.X warning flags
10056 Mention -Winline switch to activate warnings when back-end inlining is
10058 Add gnatcheck rule descriptions
10059 Describe how to use the GNAT driver to call a tool on a closure.
10060 Describe how to run project-wide checks or metrics.
10061 Document gnatbind's -R option
10062 Updated to account for Ada 2005 support
10064 * gnat_rm.texi (Case Construction): Allow variable declarations for
10065 previously declared variables.
10066 (Representation Clauses and Pragmas): Lift restriction on alignment
10067 clauses for record types.
10068 (Ada.Characters.*): Fix typo in reference to A.3.3(27).
10069 Document No_Exception_Propagation restriction
10070 Document No_Body pragma
10071 Updated to account for Ada 2005 support; corrected some typos
10072 (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
10074 * gnat-style.texi: Make it clear that we never use mode IN for
10075 procedures or functions
10077 * ug_words: Add entries for -gnatw.x and -gnatw.X
10078 Add entries for -gnatw.c/.C
10080 2007-06-06 Pascal Obry <obry@adacore.com>
10081 Vincent Celier <celier@adacore.com>
10083 * makegpr.adb (Add_Archive_Path): Use untouched object and library
10084 dirs and library name.
10085 (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
10087 (Build_Library): Idem.
10088 (Compile_Individual_Sources): Idem.
10089 (Compile_Link_With_Gnatmake): Idem.
10090 (Compile_Sources): Idem.
10091 (Get_Imported_Directories): Idem.
10092 (Link_Executables): Idem. Same change for the executable dir.
10093 (Check_Compilation_Needed): C_Source_Path new variable containing
10094 the canonical form of Source_Path to check against the source names
10095 in the dependency file.
10096 (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
10097 verbose mode, display the name of the object directory we're changing
10099 (Saved_Switches): New name of table X_Switches
10100 (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
10101 (Usage): New line for switch -aP
10102 (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
10103 testing if a directory should be added to the search path.
10105 2007-06-06 Javier Miranda <miranda@adacore.com>
10107 * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
10108 a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
10109 declaration after freezing point of all its associated tagged types;
10110 otherwise such types are frozen too early.
10112 2007-06-06 Robert Dewar <dewar@adacore.com>
10114 * a-reatim.adb: Documentation addition
10116 * g-cgideb.adb: Minor code reorganization
10118 * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
10119 mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
10120 s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
10122 * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
10123 function. Change name New_Scope to Push_Scope
10124 (Get_Debug_Flag_K): Remove unused obsolete function.
10126 * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
10129 * makeusg.adb: Update Copyright notice
10130 Add line for switch -aP
10132 * makeusg.adb: Fix wording of some usage messages
10134 * s-assert.adb (Raise_Assert_Failure): Add call to
10135 Debug_Raise_Assert_Failure.
10137 * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
10138 (2, Standard'Alignment) for compatibility with AAMP (where alignment
10139 is restricted to 1).
10141 * s-wchjis.adb: Remove use of System.Pure_Exceptions
10143 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
10144 node location to No_Location when we're not debugging the expanded
10147 2007-05-22 Alexandre Oliva <aoliva@redhat.com>
10149 * misc.c (enumerate_modes): Consider log2_b to always be one.
10151 2007-05-14 Rafael Avila de Espindola <espindola@google.com>
10153 * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
10155 2007-05-02 Pascal Obry <obry@adacore.com>
10157 * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
10158 to use Stream_IO.File_Type. This is needed to make use of the UTF-8
10159 encoding support of Stream_IO.
10160 (Write_Unit): Idem.
10162 * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
10163 filename and corresponding encoding to match the OS requirement.
10164 (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
10165 routine will fail on specific devices like CON: AUX: ...
10167 PR ada/29856: Add missing braces
10169 2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
10172 * ada-tree.h (lang_tree_node): Fix typo in chain_next.
10174 2007-04-21 Jan Hubicka <jh@suse.cz>
10176 * misc.c (gnat_expand_body): Don't call target for destructors,
10177 avoid redundant check on syntax errors.
10179 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
10181 * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
10182 instead of checking GIMPLE_STMT_P in chain_next.
10184 2007-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
10187 * system-linux-alpha.ads: Disable constant condition warning for the
10188 Default_Bit_Order variable.
10189 * system-linux-s390.ads: Likewise.
10190 * system-linux-s390x.ads: Likewise.
10191 * system-linux-sparc.ads: Likewise.
10193 2007-04-06 Javier Miranda <miranda@adacore.com>
10194 Matt Heaney <heaney@adacore.com>
10195 Robert Dewar <dewar@adacore.com>
10197 a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
10198 a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
10199 a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
10200 a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
10201 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
10202 a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
10203 a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
10204 a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
10205 a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
10206 a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
10207 a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
10208 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
10209 a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
10210 a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
10211 a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
10212 a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
10213 a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
10214 i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
10215 unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
10216 a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
10217 a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
10218 a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
10219 expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
10220 s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
10221 s-taprop-tru64.adb, s-taprop-irix.adb,
10222 s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
10223 s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
10224 s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
10225 s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
10226 s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
10227 a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
10228 a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
10229 g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
10230 s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
10231 s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
10232 s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
10233 s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
10234 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
10235 s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
10236 a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
10237 a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
10238 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
10239 a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
10240 a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
10241 a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
10243 Update documentation.
10246 2007-04-06 Robert Dewar <dewar@adacore.com>
10248 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
10249 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
10250 system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
10251 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
10252 system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
10253 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
10254 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
10255 system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
10256 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
10257 system-hpux-ia64.ads, targparm.adb,
10258 targparm.ads (Functions_Return_By_DSP_On_Target): Removed
10260 * system.ads: Move Functions_Return_By_DSP to obsolete section,
10261 kept for bootstrap purposes only.
10263 2007-04-06 Arnaud Charlet <charlet@adacore.com>
10265 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
10266 s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
10267 s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
10268 (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
10270 2007-04-06 Robert Dewar <dewar@adacore.com>
10272 * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
10273 (Local_Raise): New dummy procedure called when a raise is converted
10274 to a local goto. Used for debugger to detect that the exception
10277 * debug.adb: Document new d.g flag (expand local raise statements to
10278 gotos even if pragma Restriction (No_Exception_Propagation) is not set)
10280 * exp_sel.adb: Use Make_Implicit_Exception_Handler
10282 * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
10283 suppress warnings for unused handlers.
10284 (Warn_If_No_Propagation): Use new flag -gnatw.x to suppress
10285 warnings for raise statements not handled locally.
10286 (Get_RT_Exception_Entity): New function
10287 (Get_Local_Call_Entity): New function
10288 (Find_Local_Handler): New function
10289 (Warn_If_No_Propagation): New procedure
10290 (Expand_At_End_Handler): Call Make_Implicit_Handler
10291 (Expand_Exception_Handlers): Major additions to deal with local handlers
10292 (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
10293 Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
10296 * exp_ch11.ads (Get_RT_Exception_Entity): New function
10297 (Get_Local_Call_Entity): New function
10299 * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
10300 of restrictions that the binder will never suggest adding.
10302 * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
10305 * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
10306 be with'ed in the presence of pragma Restriction
10307 (No_Exception_Propagation).
10309 * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
10311 * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
10312 parameter, then the handler is not a suitable target for a local raise,
10313 and this is a violation of restriction No_Exception_Propagation.
10314 (Analyze_Handled_Statements): Analyze choice parameters in exception
10315 handlers before analyzing statement sequence (needed for proper
10316 detection of local raise statements).
10317 (Analyze_Raise_Statement): Reraise statement is a violation of the
10318 No_Exception_Propagation restriction.
10320 * s-rident.ads: Add new restriction No_Exception_Propagation
10322 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
10323 function, like Make_Exception_Handler but sets Local_Raise_Statements
10325 (Add_Unique_Serial_Number): Deal with case where this is called during
10326 processing of configuration pragmas.
10328 2007-04-06 Thomas Quinot <quinot@adacore.com>
10329 Pat Rogers <rogers@adacore.com>
10330 Pascal Obry <obry@adacore.com>
10332 * g-stsifd-sockets.adb: New file.
10334 * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
10335 g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
10336 g-socthi-vms.adb: Move signalling
10337 fd management to a nested package, so that they can conveniently be
10338 moved to a subunit that is shared across Windows, VMS, and VxWorks
10339 (Ada implementation) or completed with imported bodies from socket.c
10341 (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
10343 (Check_Selector): Use Read_Signalling_Fd to read and discard data from
10344 the signalling file descriptor.
10345 (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
10346 signalling file descriptor.
10347 (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
10348 instead of creating a pair of sockets for signalling here.
10350 * g-socthi.adb: Ditto.
10351 Set the runtime process to ignore SIGPIPEs on platforms that support
10352 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
10354 * g-socthi-mingw.adb: Ditto.
10355 (WS_Version): Use Windows 2.2.
10356 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
10358 * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
10359 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
10361 * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
10362 added GNAT byte swapping facility
10363 Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
10365 * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
10367 * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
10369 (__gnat_create_signalling_fds): New subprogram.
10370 Set the runtime process to ignore SIGPIPEs on platforms that support
10371 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
10373 2007-04-06 Hristian Kirtchev <kirtchev@adacore.com>
10374 Vincent Celier <celier@adacore.com>
10376 * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
10377 New version of Ada.Calendar which supports the new upper bound of Ada
10378 time (2399-12-31 86_399.999999999).
10379 The following modifications have been made to the package:
10380 - New representation of time as count of nanoseconds since the start of
10381 Ada time (1901-1-1 0.0).
10382 - Target independent Split and Time_Of routines which service both
10383 Ada 95 and Ada 2005 code.
10384 - Target independent interface to the Ada 2005 children of Calendar.
10385 - Integrated leap seconds into Ada 95 and Ada 2005 mode.
10386 - Handling of non-leap centenial years.
10387 - Updated clock function.
10388 - Updated arithmetic and comparison operators.
10390 * a-caldel.adb (To_Duration): Add call to target independent routine in
10391 Ada.Calendar to handle the conversion of time to duration.
10393 * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
10395 If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
10397 (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
10398 targets do not have a natural time zone, GMT is used as a default.
10399 (__gnat_get_task_options): New.
10401 * a-direct.adb (Modification_Time): Add with and use clauses for
10402 Ada.Calendar and Ada.
10403 Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
10404 since it is no longer needed.
10405 (Duration_To_Time): Removed.
10406 (OS_Time_To_Long_Integer): Removed.
10407 (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
10408 Formatting Time_Of routines which automatically handle time zones,
10409 buffer periods and leap seconds.
10411 * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
10412 target independent routines in Ada.Calendar.
10414 * a-calfor.ads, a-calfor.adb:
10415 Code cleanup and addition of validity checks in various routines.
10416 (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
10419 * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
10420 independent routine in Ada.Calendar.
10422 2007-04-06 Olivier Hainque <hainque@adacore.com>
10425 (convert_addresses): Adjust prototype and dummy definition to expect an
10426 extra file_name argument.
10428 * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
10429 filling the now expected file_name argument with the appropriate
10431 (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
10432 (tracebk): Array of void * instead of char *, corresponding to what
10433 convert_addresses expects.
10434 (exename): New static global, to hold the executable file name to be
10435 used in all convert_addresses invocations.
10436 (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
10438 (__gnat_gmem_a2l_initialize): Resolve exename.
10439 (__gnat_convert_addresses): Use exename as the convert_addresses
10440 file_name argument.
10442 * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
10443 "convert_addresses", now expecting a filename argument. Import the
10444 necessary entities to compute the filename to use and pass it to
10447 2007-04-06 Matt Gingell <gingell@adacore.com>
10449 * system-aix.ads: Back out previous change.
10450 (Functions_Return_By_DSP): Removed
10452 2007-04-06 Pascal Obry <obry@adacore.com>
10454 * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
10455 or the monotonic used by Ada.Real_Time) to compute the sleep duration
10458 2007-04-06 Jose Ruiz <ruiz@adacore.com>
10460 * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
10461 function. Its value changes in different VxWorks versions, and it is
10462 now handled by the function __gnat_get_task_options.
10464 * s-taprop-vxworks.adb (Create_Task): Call the function
10465 __gnat_get_task_options to get the required options for creating a task.
10467 2007-04-06 Pascal Obry <obry@adacore.com>
10468 Thomas Quinot <quinot@adacore.com>
10470 * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
10471 dealing with filename.
10472 (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
10473 filename from a standard string to a wide-string depending on the
10475 (__gnat_freopen): Idem.
10476 (__gnat_current_time): New function (wrapper for time(3) standard C
10479 * g-os_lib.ads (Current_Time): New function. Returns the current
10480 system time as an OS_Time value.
10482 * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
10483 (Monotonic_Clock): Same.
10485 2007-04-06 Quentin Ochem <ochem@adacore.com>
10487 * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
10489 (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
10491 2007-04-06 Jose Ruiz <ruiz@adacore.com>
10493 * a-retide.adb: Add elaboration code to ensure that the tasking run
10494 time is initialized when using delay operations even when no task is
10497 2007-04-06 Javier Miranda <miranda@adacore.com>
10499 * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
10500 component Num_Prim_Ops.
10501 (Set_Num_Prim_Ops): Removed.
10502 Remove all the assertions because all the routines of this
10503 package are inline always.
10504 (Get_Offset_Index): Add support to primary dispatch tables.
10505 Move the documentation about the dispatch table to a-tags.ads
10506 (Set_External_Tag): Removed
10507 (Inherit_TSD): Removed.
10508 (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
10509 moved to a-tags.ads
10510 (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
10511 Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
10512 of the TSD field "Table" because this field has been renamed to
10514 (Inherit_CPP_DT): Removed.
10515 (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
10516 Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
10517 declarations have been moved to a-tags.ads
10518 (Check_Size): Removed.
10519 (Expanded_Name): Updated to get access to the new field of TSD
10520 containing the address of the expanded name.
10521 (Get_Access_Level/Set_Access_Level): Removed.
10522 (Get_Predefined_Prim_Op_Address): Removed.
10523 (Set_Predefined_Prim_Op_Address): Removed.
10524 (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
10525 (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
10526 (Set_Expanded_Name): Removed.
10527 (Inherit_DT): Removed.
10528 (Inherit_CPP_DT): Removed.
10529 (Set_RC_Offset): Removed.
10530 (Set_TSD): Removed.
10531 (Base_Address): New function that displaces "this" to point to the base
10532 of the object (that is, to point to the primary tag of the object).
10534 2007-04-06 Ed Schonberg <schonberg@adacore.com>
10535 Javier Miranda <miranda@adacore.com>
10537 * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
10538 anonymous access component, do not create a master_id if type already
10539 has one, as may happen if the type is a subcomponent of a packed array
10541 (Build_Init_Procedure, Component_Needs_Simple_Initialization,
10542 Initialize_Tag): Remove code associated with the old CPP pragmas.
10543 CPP_Virtual and CPP_Vtable are no longer supported.
10544 (Build_Offset_To_Top_Internal): Add support for concurrent record types
10545 (Build_Offset_To_Top_Functions): Add support for concurrent record types
10546 (Freeze_Record_Type): Remove call to
10547 Init_Predefined_Interface_Primitives.
10548 (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
10549 code required to initialize the tags of the secondary dispatch tables.
10550 This leaves the algoritm more clear.
10551 (Init_Secondary_Tags): Add support for concurrent record types
10552 (Make_Predefined_Primitive_Specs): Code cleanup.
10553 (Predefined_Primitive_Bodies): Code cleanup.
10554 (Build_Master_Renaming): New local subprogram.
10555 (Expand_N_Full_Type_Declaration): Build the master_id associated with
10556 anonymous access to task type components.
10557 (Expand_N_Subtype_Indication): The bounds of a range constraint in a
10558 subtype indication are resolved during analysis, and must not be done
10560 (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
10562 2007-04-06 Geert Bosch <bosch@adacore.com>
10563 Ed Schonberg <schonberg@adacore.com>
10564 Javier Miranda <miranda@adacore.com>
10565 Bob Duff <duff@adacore.com>
10567 * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
10568 for conversion of a Float_Type'Truncation to integer.
10570 * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
10571 check if a node is an attribute that can be handled directly by the
10573 (Expand_N_Attribute_Reference): Suppress expansion of floating-point
10574 attributes that can be handled directly by the back end.
10575 (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
10576 use new predicate Is_Access_Protected_Subprogram_Type.
10577 (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
10578 and Unchecked_Union if it is generated as part of the default Output
10579 procedure for a type with default discriminants.
10580 (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
10581 if we are compiling under restriction No_Dispatching_Calls.
10582 (Constrained): Use Underlying_Type, in case the type is private without
10583 discriminants, but the full type has discriminants.
10584 (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
10585 call to Build_Get_Access_Level.
10586 (Expand_N_Attribute_Reference): The use of 'Address with class-wide
10587 interface objects requires a call to the run-time subprogram that
10588 returns the base address of the object.
10589 (Valid_Conversion): Improve error message on illegal attempt to store
10590 an anonymous access to subprogram value into a record component.
10592 * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
10594 (Simplify_Type_Conversion): New procedure that performs simplification
10595 of Int_Type (Float_Type'Truncation (X)).
10596 (Resolve_Type_Conversion): Call above procedure after resolving operand
10597 and before performing checks. This replaces the existing ineffective
10599 (Set_String_Literal_Subtype): When creating the internal static lower
10600 bound subtype for a string literal, use a newly created copy of the
10601 subtree representing the lower bound.
10602 (Resolve_Call): Exclude build-in-place function calls from transient
10603 scope treatment. Update comments to describe this exception.
10604 (Resolve_Equality_Op): In case of dispatching call check violation of
10605 restriction No_Dispatching_Calls.
10606 (Resolve_Call): If the call returns an array, the context imposes the
10607 component type of the array, and the function has one non-defaulted
10608 parameter, rewrite the call as the indexing of a call with a single
10609 parameter, to handle an Ada 2005 syntactic ambiguity for calls written
10611 (Resolve_Actuals): If an actual is an allocator for an access parameter,
10612 the master of the created object is the innermost enclosing statement.
10613 (Remove_Conversions): For a binary operator, check if type of second
10614 formal is numeric, to check if an abstract interpretation is present
10615 in the case of exponentiation as well.
10617 2007-04-06 Ed Schonberg <schonberg@adacore.com>
10618 Bob Duff <duff@adacore.com>
10620 * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
10621 copying a parameter list in a call, set properly the First_Named_Formal
10622 and Next_Named_Formal fields in the new list and in the enclosing call.
10623 (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
10624 names, to ease typing in the debugger. Improve comments.
10625 (Watch_Node): New variable, intended to be set in the debugger.
10626 (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
10627 called when the watched node is created.
10628 (New_Node_Debugging_Output): Combined version of local procedures
10629 New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
10630 with a parameter so that conditional breakpoints like "if Node = 12345"
10632 (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
10633 Add Elist1 function
10635 2007-04-06 Thomas Quinot <quinot@adacore.com>
10636 Ed Schonberg <schonberg@adacore.com>
10637 Gary Dismukes <dismukes@adacore.com>
10639 * checks.ads, checks.adb (Selected_Range_Checks): No range check is
10640 required for a conversion between two access-to-unconstrained-array
10642 (Expr_Known_Valid): Validity checks do not apply to discriminants, but
10643 to discriminant constraints on discriminant objects. This rule must
10644 apply as well to discriminants of protected types in private components.
10645 (Null_Exclusion_Static_Checks): If No_Initialization is set on an
10646 object of a null-excluding access type then don't require the
10647 the object declaration to have an expression and don't emit a
10650 2007-04-06 Arnaud Charlet <charlet@adacore.com>
10651 Eric Botcazou <botcazou@adacore.com>
10653 * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
10656 * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
10657 Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
10660 * fe.h (Compiler_Abort): Add third parameter.
10662 * misc.c (internal_error_function): Build third argument from current
10663 input location and pass it to Compiler_Abort.
10665 2007-04-06 Gary Dismukes <dismukes@adacore.com>
10667 * cstand.adb (Create_Standard): When the target's storage unit size is
10668 greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
10671 2007-04-06 Nicolas Roche <roche@adacore.com>
10673 * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
10674 absolute path can have the following form: device:/a/b. In this case
10675 '/' should be inserted between the path and the filename.
10677 2007-04-06 Olivier Hainque <hainque@adacore.com>
10678 Eric Botcazou <botcazou@adacore.com>
10680 * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
10681 VAR_DECL to a CONST_DECL we make for a public constant when we know the
10682 corresponding definition has created the so made visible variable.
10683 Handle anonymous access to protected subprogram.
10684 (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
10685 object with an address clause volatile. Re-enable original fix.
10686 <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
10688 (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
10689 associated with either the Equivalent or Root type, instead of the
10691 (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
10692 subtree for every field of a global record type.
10693 (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
10694 discriminants, invoke again variable_size on its newly computed sizes.
10696 2007-04-06 Robert Dewar <dewar@adacore.com>
10697 Thomas Quinot <quinot@adacore.com>
10698 Ed Schonberg <schonberg@adacore.com>
10699 Bob Duff <duff@adacore.com>
10701 * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
10702 (Next_Component_Or_Discriminant): New function and procedure
10703 (First_Index, First_Literal, Master_Id,
10704 Set_First_Index, Set_First_Literal, Set_Master_Id):
10705 Add missing Ekind assertions.
10706 (Is_Access_Protected_Subprogram_Type): New predicate.
10707 (Has_RACW): New entity flag, set on package entities to indicate that
10708 the package contains the declaration of a remote accecss-to-classwide
10710 (E_Return_Statement): This node type has the Finalization_Chain_Entity
10711 attribute, in case the result type has controlled parts.
10712 (Requires_Overriding): Add this new flag, because "requires
10713 overriding" is subtly different from "is abstract" (see AI-228).
10714 (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
10715 Is_Abstract_Type. Make sure these are called only when appropriate.
10716 (Has_Pragma_Unreferenced_Objects): New flag
10718 * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
10719 class-wide, the tag of the right-hand side must be an exact match, not
10720 an ancestor of that of the object on left-hand side.
10721 (Move_Activation_Chain): New procedure to create the call to
10722 System.Tasking.Stages.Move_Activation_Chain.
10723 (Expand_N_Extended_Return_Statement): Generate code to call
10724 System.Finalization_Implementation.Move_Final_List at the end of a
10725 return statement if the function's result type has controlled parts.
10726 Move asserts to Build_In_Place_Formal.
10727 (Move_Final_List): New function to create the call statement.
10728 (Expand_N_Assignment_Statement): In case of assignment to a class-wide
10729 tagged type, replace generation of call to the run-time subprogram
10730 CW_Membership by call to Build_CW_Membership.
10731 (Expand_N_Return_Statement): Replace generation of call to the run-time
10732 subprogram Get_Access_Level by call to Build_Get_Access_Level.
10733 (Expand_N_Simple_Function_Return): Replace generation of call to the
10734 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
10736 * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
10737 Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
10738 access to protected operations.
10739 (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
10740 master and chain actual parameters to a build-in-place function call
10742 (BIP_Formal_Suffix): Add new enumeration literals to complete the case
10744 (Make_Build_In_Place_Call_In_Allocator,
10745 Make_Build_In_Place_Call_In_Anonymous_Context,
10746 Make_Build_In_Place_Call_In_Assignment,
10747 Make_Build_In_Place_Call_In_Object_Declaration): Call
10748 Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
10749 (Expand_Inlined_Call): If the subprogram is a null procedure, or a
10750 stubbed procedure with a null body, replace the call with a null
10751 statement without using the full inlining machinery, for efficiency
10752 and to avoid invalid values in source file table entries.
10754 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
10755 renamings of calls to build-in-place functions.
10757 * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
10758 provides the functionality of RTE_Available to record components.
10759 (RTU_Entity): The function Entity has been renamed to RTU_Entity
10760 to avoid undesired overloading.
10761 (Entity): New subprogram that returns the entity for the referened
10762 unit. If this unit has not been loaded, it returns Empty.
10763 (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
10764 Remove no longer used entities.
10765 (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
10766 (RE_Type_Specific_Data): New entity.
10767 (RE_Move_Any_Value): New entity.
10768 (RE_TA_A, RE_Get_Any_Type): New entities.
10769 (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
10770 RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
10771 RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
10772 (Entity): New subprogram that returns the entity for the referened
10773 unit. If this unit has not been loaded, it returns Empty.
10774 (RTE): Addition of a new formal that extends the search to the scopes
10775 of the record types found in the chain of the package.
10777 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
10778 "abstract subprograms must be visible" message, whether or not the type
10779 is an interface; that is, remove the special case for interface types.
10780 (Analyze_Function_Return): Remove error message "return of task objects
10781 is not yet implemented" because this is now implemented.
10782 (Create_Extra_Formals): Add the extra master and activation chain
10783 formals in case the result type has tasks.
10784 Remove error message "return of limited controlled objects is not yet
10786 (Create_Extra_Formals): Add the extra caller's finalization list formal
10787 in case the result type has controlled parts.
10788 (Process_Formals): In case of access formal types there is no need
10789 to continue with the analysis of the formals if we already notified
10791 (Check_Overriding_Indicator): Add code to check overriding of predefined
10793 (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
10794 flags for formals that do not require them,.
10795 (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
10796 hidden entity is use visible or directly visible.
10797 (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
10798 Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
10799 Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
10800 New_Overloaded_Entity): Split Is_Abstract flag into
10801 Is_Abstract_Subprogram and Is_Abstract_Type.
10803 * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
10804 a return statement's finalization list to the caller's list, used for
10805 build-in-place functions with result type with controlled parts.
10806 Remove no longer used entities.
10808 * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
10809 longer needed, because the full type is now limited, and therefore a
10810 pass-by-reference type.
10811 (Foreign_Task_Level): New constant.
10813 * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
10814 move tasks from the activation chain belonging to a return statement to
10815 the one passed in by the caller, and update the master to the one
10816 passed in by the caller.
10817 (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
10818 of unactivated tasks, so we don't kill the ones that are being returned
10819 by a build-in-place function.
10820 (Create_Task): Ignore AI-280 for foreign threads.
10822 2007-04-06 Ed Schonberg <schonberg@adacore.com>
10823 Robert Dewar <dewar@adacore.com>
10824 Bob Duff <duff@adacore.com>
10825 Gary Dismukes <dismukes@adacore.com>
10827 * errout.adb (Unwind_Internal_Type): Use predicate
10828 Is_Access__Protected_Subprogram_Type.
10830 * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
10831 (Freeze_Entity, packed array case): Do not override explicitly set
10832 alignment and size clauses.
10833 (Freeze_Entity): An entity declared in an outer scope can be frozen if
10834 the enclosing subprogram is a child unit body that acts as a spec.
10835 (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
10836 (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
10837 Remove all code for DSP option
10839 * layout.adb (Layout_Record_Type): Use First/
10840 Next_Component_Or_Discriminant
10841 (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
10842 to handle properly the anonymous access case.
10844 * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
10845 for all access attributes, because overload resolution should work the
10846 same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
10847 causes the error message for the ambiguous "X'Access = Y'Access" and
10848 "X'Unrestricted_Access = Y'Access" and so forth to match.
10849 (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
10850 now that anonymous access to protected operations have their own kind.
10851 (Resolve_Attribute): In case of dispatching call check the violation of
10852 restriction No_Dispatching_Calls.
10853 (Check_Array_Type): Check new -gnatyA array index style option
10855 * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
10856 attempt to derive from a synchronized tagged type.
10857 (Analyze_Type_Declaration): If there is a incomplete tagged view of the
10858 type, inherit the class-wide type already created, because it may
10859 already have been used in a self-referential anonymous access component.
10860 (Mentions_T): Recognize self-referential anonymous access components
10861 that use (a subtype of) the class-wide type of the enclosing type.
10862 (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
10863 Derived_Type for Prev formal on call to
10864 Check_Anonymous_Access_Components rather than Empty.
10865 (Make_Incomplete_Type_Declaration): Add test for case where the type has
10866 a record extension in deciding whether to create a class-wide type,
10867 rather than just checking Tagged_Present.
10868 (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
10869 to stand-alone object declarations as well as component declarations.
10870 (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
10871 prevent accidental overwriting when enclosing package appears in
10872 a limited_with_clause.
10873 (Array_Type_Declaration): If the component type is an anonymous access,
10874 the associated_node for the itype is the type declaration itself.
10875 (Add_Interface_Tag_Components): Modified to support concurrent
10876 types with abstract interfaces.
10877 (Check_Abstract_Interfaces): New subprogram that verifies the ARM
10878 rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
10879 (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
10880 to complete the decoration of synchronized interface types. Add also
10881 a call to Check_Abstract_Interfaces to verify the ARM rules.
10882 (Derive_Interface_Subprograms): Modified to support concurrent types
10883 with abstract interfaces.
10884 (Analyze_Subtype_Indication): Resolve the range with the given subtype
10885 mark, rather than delaying the full resolution depending on context.
10886 (Analyze_Component_Declaration,Analyze_Interface_Declaration,
10887 Analyze_Object_Declaration,Analyze_Subtype_Declaration,
10888 Array_Type_Declaration,Build_Derived_Record_Type,
10889 Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
10890 Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
10891 Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
10892 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
10893 called only when appropriate.
10894 (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
10896 (Analyze_Subtype_Declaration): For an access subtype declaration, create
10897 an itype reference for the anonymous designated subtype, to prevent
10898 scope anonmalies in gigi.
10899 (Build_Itype_Reference): New utility, to simplify construction of such
10902 2007-04-06 Vincent Celier <celier@adacore.com>
10904 * errutil.adb (Initialize): Initialize warnings table, if all warnings
10905 are suppressed, supply an initial dummy entry covering all possible
10908 * make.adb (Scan_Make_Arg): Reject options that should start with "--"
10909 and start with only one, such as "-RTS=none".
10910 (Collect_Arguments): Do not check for sources outside of projects.
10911 Do not collect arguments if project is externally built.
10912 (Compile_Sources): Do nothing, not even check if the source is up to
10913 date, if its project is externally built.
10914 (Compile): When compiling a predefined source, add -gnatpg
10915 as the second switch, after -c.
10916 (Compile_Sources): Allow compilation of Annex J renames without -a
10917 (Is_In_Object_Directory): Check if the ALI file is in the object
10918 even if there is no project extension.
10919 (Create_Binder_Mapping_File): Only put a unit in the mapping file for
10920 gnatbind if the ALI file effectively exists.
10921 (Initialize): Add the directory where gnatmake is invoked in front of
10922 the path if it is invoked from a bin directory, even without directory
10923 information, so that the correct GNAT tools will be used when spawned
10924 without directory information.
10926 * makeusg.adb: Change switch -S to -eS
10927 Add lines for new switches -we, -wn and -ws
10928 Add line for new switch -p
10930 * prj-proc.adb (Process): Set Success to False when Warning_Mode is
10931 Treat_As_Error and there are warnings.
10933 * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
10934 -gnatww Change gnatmake switch -S to -eS
10935 (Scan_Make_Switches): Code reorganisation. Process separately multi
10936 character switches and single character switches.
10937 (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
10938 False when switch is not recognized by gnatmake.
10939 (Scan_Make_Switches): Set Setup_Projects True when -p or
10940 --create-missing-dirs is specified.
10942 * fname.adb (Is_Predefined_File_Name): Return True for annex J
10943 renamings Calendar, Machine_Code, Unchecked_Conversion and
10944 Unchecked_Deallocation only when Renamings_Included is True.
10946 * par.adb: Allow library units Calendar, Machine_Code,
10947 Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
10948 when -gnatg is not specified.
10949 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
10950 there is no need to generate always a record_definition_node in case
10951 of synchronized interface types.
10952 (SIS_Entry_Active): Initialize global variable to False
10953 (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
10954 indicate cases where AI-447 says "not null" is legal.
10956 * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
10958 * makegpr.adb (Check_Compilation_Needed): Take into account dependency
10959 files with with several lines starting with the object fileb name.
10960 (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
10962 (Initialize): Add the directory where gprmake is invoked in front of the
10963 path, if it is invoked from a bin directory or with directory
10964 information, so that the correct GNAT tools will be used when invoked
10966 (Check_Compilation_Needed): Process correctly backslashes on Windows.
10968 * vms_data.ads: Update switches/qualifiers
10970 2007-04-06 Ed Schonberg <schonberg@adacore.com>
10971 Thomas Quinot <quinot@adacore.com>
10974 If the array component is a discriminated record, the array aggregate
10975 is non-static even if the component is given by an aggregate with
10977 (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
10978 (Convert_Aggr_In_Allocator): If the allocator is for an access
10979 discriminant and the type is controlled. do not place on a finalization
10980 list at this point. The proper list will be determined from the
10982 (Build_Record_Aggr_Code): If aggregate has box-initialized components,
10983 initialize record controller if needed, before the components, to ensure
10984 that they are properly finalized.
10985 (Build_Record_Aggr_Code): For the case of an array component that has a
10986 corresponding array aggregate in the record aggregate, perform sliding
10989 2007-04-06 Javier Miranda <miranda@adacore.com>
10990 Gary Dismukes <dismukes@adacore.com>
10991 Ed Schonberg <schonberg@adacore.com>
10993 * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
10994 run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
10996 * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
10997 accessibility on class-wide allocators if the allocator occurs at the
10998 same scope level as the allocator's type. The check is guaranteed to
10999 succeed in that case, even when the expression originates from a
11000 parameter of the containing subprogram.
11001 (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
11002 under No_Dispatching_Calls restriction. During the semantic analysis
11003 we already notified such violation.
11004 (Tagged_Membership): Constant folding. There is no need to check
11005 the tag at run-time if the type of the right operand is non
11006 class-wide abstract.
11007 Replace call to Is_Ancestor by call to Is_Parent
11008 to support concurrent types with interface types.
11009 (Expand_N_Allocator): Add an assertion associated with the generation
11011 (Expand_N_Slice): Do not enable range check to nodes associated
11012 with the frontend expansion of the dispatch table.
11013 (Is_Local_Access_Discriminant): Subsidiary function to
11014 Expand_N_Allocator.
11015 (Tagged_Membership): Replace generation of call to the run-time
11016 subprogram CW_Membership by call to Build_CW_Membership.
11017 (Expand_Allocator_Expression): Replace generation of call to the
11018 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
11020 * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
11021 initialize most the TSD components by means of an aggregate.
11022 Modify the declaration of the object containing the TSD
11023 because we now expand code that has a higher level of abstraction.
11024 The TSD has a discriminant containing the Inheritance Depth Level,
11025 value that is used in the membership test but also to fix the size
11026 of the table of ancestors.
11027 (Expand_Interface_Conversion): Insert function body at the closest place
11028 to the conversion expression, to prevent access-before-elaboration
11029 errors in the backend.
11030 Code improved to reduce the size of the dispatch table if
11031 compiling under restriction No_Dispatching_Calls plus code cleanup.
11032 Code reorganization plus removal of calls to Set_Num_Prim_Ops
11033 (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
11034 (Expand_Dispatching_Call): Minor code reorganization plus addition of
11035 code to return immediately if compiling under No_Dispatching_Calls
11037 (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
11038 CPP_Virtual and CPP_Vtable are no longer supported.
11039 (Expand_Interface_Conversion): Add missing support for interface type
11041 (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
11042 Is_Parent to support concurrent types with interfaces.
11043 (Init_Predefined_Interface_Primitives): Removed.
11044 (Make_Secondary_DT): Modified to support concurrent record types.
11045 (Set_All_DT_Position): Modified to support concurrent record types.
11046 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
11047 with Get_External_Tag, Inherit_TSD, Set_External_Tag.
11048 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
11049 with CW_Membership.
11050 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
11051 with Get_Access_Level, Get_Predefined_Prim_Op_Address,
11052 Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
11053 Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
11054 Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
11055 (Expand_Dispatching_Call): Replace generation of call to the run-time
11056 subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
11057 calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
11059 (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
11060 the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
11061 Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
11062 Build_Set_Prim_Op_Address.
11063 (Get_Remotely_Callable): Subprogram removed.
11064 (Init_Predefined_Interface_Primitives): Replace generation of call to
11065 the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
11068 * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
11069 First (Parameter_Associations ()) with the call to First_Actual that
11070 returns an actual parameter expression for both named and positional
11073 * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
11074 check violation of restriction No_Dispatching_Calls.
11075 (Check_Controlling_Type): A formal of a tagged incomplete type is a
11076 controlling argument.
11078 * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
11079 First/Next_Component_Or_Discriminant
11080 (Insert_Actions): Add entries for new N_Push and N_Pop nodes
11081 (Find_Implemented_Interface): Removed. All the calls to this subprogram
11082 specify Any_Limited_Interface, and this functionality is already
11083 provided by the function Has_Abstract_Interfaces.
11084 (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
11085 support concurrent types implementing interfaces.
11086 (Find_Implemented_Interface): Removed. All the calls to this subprogram
11087 specify kind Any_Limited_Interface, and this functionality is already
11088 provided by the function Has_Abstract_Interfaces.
11089 (Remove_Side_Effects): replace Controlled_Type by
11090 CW_Or_Controlled_Type whenever the issue is related to
11091 using or not the secondary stack.
11093 * par-ch12.adb (P_Formal_Type_Definition): Update calls to
11094 P_Interface_Type_Definition to fulfill the new interface (the formal
11095 Is_Synchronized is no longer required).
11097 * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
11098 Update dependencies.
11100 * exp_atag.ads, exp_atag.adb: New file
11102 2007-04-06 Ed Schonberg <schonberg@adacore.com>
11103 Bob Duff <duff@adacore.com>
11104 Cyrille Comar <comar@adacore.com>
11106 * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
11107 anonymous, use finalization list of enclosing dynamic scope.
11108 (Expand_N_Package_Declaration): For a library package declaration
11109 without a corresponding body, generate RACW subprogram bodies in the
11110 spec (just as we do for the task activation call).
11111 (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
11112 Is_Abstract_Type. Make sure these are called only when appropriate.
11113 Remove all code for DSP option
11114 (CW_Or_Controlled_Type): new subprogram.
11116 2007-04-06 Eric Botcazou <botcazou@adacore.com>
11117 Ed Schonberg <schonberg@adacore.com>
11118 Gary Dismukes <dismukes@adacore.com>
11120 * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
11121 parameter. If it is set to true, return a result capped according to
11122 the global upper bound for the index of an entry family.
11123 (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
11124 (Build_Find_Body_Index): Adjust for above change.
11125 (Entry_Index_Expression): Likewise.
11126 (Is_Potentially_Large_Family): New function extracted from...
11127 (Collect_Entry_Families): ...here. Call it to detect whether the family
11128 is potentially large.
11129 (Build_Entry_Count_Expression): If the family is potentially large, call
11130 Family_Size with 'Cap' set to true.
11131 (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
11132 a protected version of an operation declared in the private part of
11133 a protected object, because they may be invoked through a callback.
11134 (Set_Privals): If the type of a private component is an anonymous access
11135 type, do not create a new itype for each protected body.
11136 If the body of a protected operation creates
11137 controlled types (including allocators for class-widetypes), the
11138 body of the corresponding protected subprogram must include a
11140 (Build_Activation_Chain_Entity): Build the chain entity for extended
11142 (Type_Conformant_Parameters): Use common predicate Conforming_Types
11143 to determine whether operation overrides an inherited primitive.
11144 (Build_Wrapper_Spec): Add code to examine the parents while looking
11145 for a possible overriding candidate.
11146 (Build_Simple_Entry_Call): Set No_Initialization on the object used to
11147 hold an actual parameter value since its initialization is separated
11148 from the the declaration. Prevents errors on null-excluding access
11151 2007-04-06 Thomas Quinot <quinot@adacore.com>
11152 Pablo Oliveira <oliveira@adacore.com>
11154 * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
11155 Do an Unchecked_Conversion to handle the passage from the Underlying
11156 Type to the Base Type when calling Build_To_Any_Call and
11157 Build_From_Any_Call.
11158 (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
11159 E_Constant, depending upon Variable formal.
11160 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
11161 PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
11162 parameter that requires an extra constrained parameter, declare
11163 temporary for actual as a variable, not a constant.
11164 (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
11165 the unit being compiled is the one that contains the stub type.
11166 Change primitive operation name for the RACW associated with a RAS
11167 from Call to _Call so it cannot clash with any legal identifier.
11168 (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
11170 (Append_RACW_Bodies): New subprogram.
11171 (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
11172 Add_Receiving_Stubs_To_Declarations functions.
11173 When expanding a package body, this list correspond to the
11174 statements in the HSS at the end of the pacakge.
11175 When expanding a package spec, this list correspond to the
11177 (Add_Receiving_Stubs_To_Declarations): Append the function
11178 registering the receiving stubs at the end of the 'Stmts' list.
11179 (RCI_Package_Locator): Pass the new Version generic formal when
11180 instantiating a RCI_Locator package.
11181 (Build_From_Any_Function): To compute the High bound for an
11182 unconstrained array actual, we add the Low bound with the length.
11183 Thus we must convert the low bound and the length to an appropriate
11184 type before doing the sum.
11185 (Build_Subprogram_Receiving_Stubs, PolyORB):
11186 * Retrieve the extra formals parameters at the
11187 end of the parameter stream.
11188 * Use Move_Any_Value to write back out parameters
11189 after executing the request as it is more efficient
11190 than Copy_Any_Value.
11191 * Build the any containing Extra Formals with the
11192 appropriate typecode.
11193 (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
11194 empty Component_List.
11195 (Build_Actual_Object_Declaration): New subprogram. Build and insert into
11196 the tree the declaration for an object that serves as actual parameter
11197 in server-side stubs.
11198 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
11199 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
11200 Use Build_Actual_Object_Declaration to prepare the actuals.
11201 (Add_Parameter_To_NVList): Set the parameter mode to In for
11202 Extra Constrained Parameters.
11203 (Build_General_Calling_Stubs): Set the parameter type to boolean for
11204 Extra Constrained parameters.
11205 (Build_To_Any_Function, Build_From_Any_Function,
11206 Built_TypeCode_Function): When Typ is implicit, call the correct
11207 function with the first not implicit parent type.
11208 (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
11209 (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
11210 typecode from the Etype. Therefore we retrieve the correct typecode
11211 with a call to Get_Any_Type.
11212 (Copy_Specification): Do controlling formal type substitution based on
11213 Is_Controlling_Formal flag, instead of caller-provided object type.
11214 (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
11215 a RACW primitive operation, we might get a subprogram declaration for an
11216 ancestor of the RACW designated type (not for the designated type
11217 itself), in the case where this operation is inherited. In this case we
11218 have no easy means of determining the original tagged type for which
11219 the primitive was declared, so instead we now rely on
11220 Copy_Specification to use the Is_Controlling_Formal flag to determine
11221 which formals require type substitution.
11223 2007-04-06 Robert Dewar <dewar@adacore.com>
11224 Ed Schonberg <schonberg@adacore.com>
11226 * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
11227 GNAT.Current_Exception are not allowed if pragma Restrictions
11228 (No_Exception_Propagation) is set and in any case make the associated
11229 handler unsuitable as a target for a local raise statement.
11230 (Expand_Dispatching_Constructor_Call): Replace generation of call to the
11231 run-time subprogram CW_Membership by call to Build_CW_Membership.
11232 (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
11233 by a function call, a temporary must be created before expanding the
11234 Constructor_Call itself, to prevent out-of-order elaboration in the
11235 back-end when stack checking is enabled..
11237 2007-04-06 Ed Schonberg <schonberg@adacore.com>
11239 * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
11240 result are the bounds of the left operand, not the right.
11242 2007-04-06 Ed Schonberg <schonberg@adacore.com>
11245 (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
11246 discriminant defaults.
11247 (Build_Record_Or_Elementary_Output_Procedure): Ditto.
11248 (Make_Component_List_Attributes): Ditto.
11250 2007-04-06 Ed Schonberg <schonberg@adacore.com>
11251 Bob Duff <duff@adacore.com>
11253 * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
11254 an association with a box as providing a value even though the
11255 initialization procedure for the type is not available.
11256 (Resolve_Record_Aggregate): Check that a choice of an association with a
11257 box corresponds to a component of the type.
11258 (Resolve_Record_Aggregate): Split Is_Abstract flag into
11259 Is_Abstract_Subprogram and Is_Abstract_Type.
11261 * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
11264 * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
11265 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
11266 called only when appropriate.
11268 2007-04-06 Olivier Hainque <hainque@adacore.com>
11270 * g-alleve.ads (Low Level Vector type definitions): Map each to the
11271 associated vector view instead of all to the unsigned char view.
11273 * g-altcon.adb (Generic_Conversions): New internal generic package,
11274 offering facilities for all the Vector/View conversion routines
11275 implemented by this unit.
11276 (To_View/To_Vector - all versions): Reimplemented in a systematic
11277 manner, using the internal Generic_Conversions facilities.
11279 2007-04-06 Pascal Obry <obry@adacore.com>
11281 * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
11283 (Create): Free the source string before storing the new one.
11285 2007-04-06 Vincent Celier <celier@adacore.com>
11287 * g-debpoo.adb (Validity): New package with a complete new
11288 implementation of subprograms Is_Valid and Set_Valid.
11289 (Is_Valid): Move to local package Validity
11290 (Set_Valid): Move to local package Validity
11292 2007-04-06 Arnaud Charlet <charlet@adacore.com>
11293 Pablo Oliveira <oliveira@adacore.com>
11295 * g-expect.adb (Get_Command_Output): When expanding the output buffer
11296 we must ensure that there is enough place for the new data we are going
11299 2007-04-06 Thomas Quinot <quinot@adacore.com>
11301 * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
11304 2007-04-06 Jose Ruiz <ruiz@adacore.com>
11305 Vincent Celier <celier@adacore.com>
11307 * gnatcmd.adb (B_Start): Add prefix of binder generated file.
11308 (Stack_String): Add this String that contains the name of the Stack
11309 package in the project file.
11310 (Packages_To_Check_By_Stack): Add this list that contains the packages
11311 to be checked by gnatstack, which are the naming and the stack packages.
11312 (Check_Files): If no .ci files were specified for gnatstack we add all
11313 the .ci files belonging to the projects, including binder generated
11315 (Non_VMS_Usage): Document that gnatstack accept project file switches.
11316 (GNATCmd): Update the B_Start variable if we are in a VMS environment.
11317 Add gnatstack to the list of commands that use project file related
11318 switches, and get the single attribute Switches from the stack package
11319 in a project file when calling gnatstack. Parse the -U flag for
11320 processing files belonging to all projects in the project tree.
11321 Remove all processing for command Setup
11323 * prj-attr.adb: Add new package Stack with single attribute Switches
11325 * vms_conv.ads (Command_Type): Add command Stack.
11326 Move to body declarations that are only used in the body: types Item_Id,
11327 Translation_Type, Item_Ptr, Item and its subtypes.
11329 * vms_conv.adb: (Initialize): Add data for new command Stack.
11330 Add declarations moved from the spec: types Item_Id, Translation_Type,
11331 Item_Ptr, Item and its subtypes.
11332 (Cargs_Buffer): New table
11333 (Cargs): New Boolean global variable
11334 (Process_Buffer): New procedure to create arguments
11335 (Place): Put character in table Buffer or Cargs_Buffer depending on the
11337 (Process_Argument): Set Cargs when processing qualifiers for GNAT
11339 (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
11340 empty, for table Cargs_Buffer.
11341 (Initialize): Remove component Setup in Command_List
11343 2007-04-06 Vincent Celier <celier@adacore.com>
11345 * gprep.adb (Process_Files.Process_One_File): Use full file name when
11346 issuing pragma Source_Reference.
11348 2007-04-06 Emmanuel Briot <briot@adacore.com>
11350 * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
11351 [[:xdigit:]] character class.
11352 Also raise an exception when an invalid character class is used.
11354 2007-04-06 Pascal Obry <obry@adacore.com>
11356 * i-cstrea.ads: (fopen): Add encoding parameter.
11358 Change reference from a-sysdep.c to sysdep.c in comment.
11359 Update copyright notice.
11360 This set of patch add support for the encoding form parameter.
11362 * mingw32.h (S2WSU): New macro to convert from a string to a
11363 wide-string using the UTF-8 encoding. The S2WS macro supports now only
11364 standard 8bits encoding.
11365 (WS2SU): As above but converting from wide-sring to string.
11366 This is needed as it is necessary to have access to both versions in the
11367 runtime for the form parameter encoding support.
11368 This set of patch add support for the encoding form parameter.
11369 (S2WS): Improve implementation to handle cases where the filename is not
11370 UTF-8 encoded. In this case we default to using the current code page
11371 for the conversion.
11373 * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
11374 type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
11375 the constants defined in adaint.h.
11376 (fopen): Add encoding parameter.
11379 * s-ficobl.ads (AFCB): Add Encoding field to record the filename
11380 encoding. This is needed for the Reset routine (freopen low level-call).
11382 * s-fileio.adb (Open): Decode encoding form parameter and set the
11383 corresponding encoding value into AFCB structure.
11384 (Reset): Pass the encoding value to freopen.
11385 (Close): Move the call to Lock_Task to the beginning of the procedure.
11387 2007-04-06 Geert Bosch <bosch@adacore.com>
11388 Robert Dewar <dewar@adacore.com>
11390 * i-fortra.ads: Add Double_Complex type.
11392 * impunit.adb: (Is_Known_Unit): New function
11393 Add Gnat.Byte_Swapping
11395 Add new Ada 2005 units
11396 Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
11397 Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
11398 Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
11399 Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
11401 * impunit.ads (Is_Known_Unit): New function
11403 * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
11404 a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
11405 a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
11406 g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
11407 s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
11408 s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
11411 * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
11413 * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
11415 2007-04-06 Eric Botcazou <botcazou@adacore.com>
11416 Arnaud Charlet <charlet@adacore.com>
11418 * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
11419 __gnat_adjust_context_for_raise.
11420 (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
11421 implementation of floating point operations as native x86 targets.
11422 So the FPU should be initialized in the same way using finit. Fix
11423 floating point operations accuracy issues.
11424 (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
11425 member in struct sigaction, so as to avoid warning for incompatible
11428 2007-04-06 Serguei Rybin <rybin@adacore.com>
11430 * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
11431 switches from previously loaded tree
11433 2007-04-06 Thomas Quinot <quinot@adacore.com>
11435 * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
11436 cases where a given dependency has a body or not.
11437 (Write_With_File_Names): New subprogram, common code for the two cases
11440 2007-04-06 Ed Schonberg <schonberg@adacore.com>
11441 Javier Miranda <miranda@adacore.com>
11443 * lib-xref.ads, lib-xref.adb:
11444 Modify the loop that collects type references, to include interface
11445 types that the type implements. List each of these interfaces when
11446 building the entry for the type.
11447 (Generate_Definition): Initialize component Def and Typ of new entry
11448 in table Xrefs, to avoid to have these components unitialized.
11449 (Output_References): Split Is_Abstract flag into
11450 Is_Abstract_Subprogram and Is_Abstract_Type.
11451 (Generate_Reference): Add barrier to do not generate the warning
11452 associated with Ada 2005 entities with entities generated by the
11455 2007-04-06 Robert Dewar <dewar@adacore.com>
11456 Arnaud Charlet <charlet@adacore.com>
11457 Vincent Celier <celier@adacore.com>
11459 * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
11460 Update 'Exception Handling Control' chapter which was outdated.
11461 Minor fix to documentation of -gnatwq
11462 Remove section "Adapting the Run Time to a New C++ Compiler" because
11463 it is now obsolete.
11464 Add passage on need of -nostart-files in some non-ada-main cases.
11465 Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
11466 Update documentation about Interfacing with C++
11467 Add documentation for new gnatmake switch -p
11468 Add missing protocol part in URLs.
11470 Document pragma Compile_Time_Error
11471 Add documentation for Object_Size indicating that stand alone
11472 objects can have a larger size in some cases.
11473 Add node for GNAT.Byte_Swapping, GNAT.SHA1
11474 Update reference to the Ravenscar profile.
11475 Document pragma Unreferenced_Objects
11477 * gnat-style.texi: Fix typo
11479 2007-04-06 Vincent Celier <celier@adacore.com>
11481 * mlib.adb (Building_Library): Only output "building a library..." in
11484 * mlib-prj.adb (Build_Library): Only output lists of object and ALI
11485 files in verbose mode.
11487 * mlib-utl.adb (Ar): Only output the first object files when not in
11489 (Gcc): Do not display all the object files if not in verbose mode, only
11492 2007-04-06 Robert Dewar <dewar@adacore.com>
11494 * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
11495 it no longer destroys the contents of Name_Buffer or Name_Len and
11496 non-standard and invalid names are handled better.
11497 (Get_Decoded_Name_String): Improve performance by using
11498 Name_Has_No_Encodings flag in the name table.
11499 (Is_Valid_Name): New function to determine whether a Name_Id is valid.
11500 Used for debugging printouts.
11502 2007-04-06 Robert Dewar <dewar@adacore.com>
11503 Javier Miranda <miranda@adacore.com>
11504 Bob Duff <duff@adacore.com>
11506 * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
11507 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
11508 there is no need to generate always a record_definition_node in case
11509 of synchronized interface types.
11510 (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
11511 (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
11512 illegal in Ada 95, in cases where it is legal. Change the warnings to
11513 errors in other cases. Don't give the error unless the "not null"
11514 parses properly. Correct the source position at which the error occurs.
11515 (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
11516 P_Null_Exclusion, to suppress "not null" warnings.
11517 (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
11518 associated goto statements.
11520 * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
11523 * scans.ads (Type_Token_Location): New flag
11525 * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
11526 (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
11527 P_Null_Exclusion, to suppress "not null" warnings.
11529 2007-04-06 Robert Dewar <dewar@adacore.com>
11530 Javier Miranda <miranda@adacore.com>
11531 Bob Duff <duff@adacore.com>
11532 Vincent Celier <celier@adacore.com>
11534 * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
11535 (Extensions_Allowed): No longer sets Ada_Version
11536 Entry for pragma Unreferenced_Objects
11538 * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
11539 system.tasking if pragma priority used in a procedure
11540 (Analyze_Pragma, case Warning): Handle dot warning switches
11541 (Process_Compile_Time_Warning_Or_Error): New procedure
11542 (Analyze_Pragma): Add processing for Compile_Time_Error
11543 Add support for extra arguments External_Name and Link_Name.
11544 Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
11545 (Process_Import_Or_Interface): Add support for the use of pragma Import
11547 (Extensions_Allowed): No longer affects Ada_Version
11548 (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
11549 Is_Abstract_Type. Make sure these are called only when appropriate.
11550 Add processing for pragma Unreferenced_Objects
11552 * snames.h, snames.ads, snames.adb: Add entry for pragma
11554 Add new standard name Minimum_Binder_Options for new gprmake
11555 Add new standard names for gprmake: Archive_Suffix,
11556 Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
11557 Library_Support, Library_Version_Options,
11558 Shared_Library_Minimum_Options,
11559 Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
11560 Change Name_Call to Name_uCall so that it cannot clash with a legal
11562 Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
11563 Append C_Plus_Plus to convention identifiers as synonym for CPP
11564 Add new standard names Stack and Builder_Switches
11565 Add new standard names: Compiler_Minimum_Options, Global_Config_File,
11566 Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
11567 Run_Path_Option, Toolchain_Version.
11568 Entry for pragma Unreferenced_Objects
11570 * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
11571 switches, without repetition of "eD". Make sure that last character of
11572 -gnatep= switch is not taken as -gnat switch character.
11573 Complete rewrite of circuit for handling saving compilation options
11574 Occasioned by need to support dot switchs for -gnatw, but cleans up
11576 -gnatX does not affect Ada_Version
11577 Include -gnatyA in -gnatg style switches
11579 * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
11580 warnings on return objects.
11581 (Warn_On_Useless_Assignment): Exclude warnings on return objects
11582 (Set_Dot_Warning_Switch): New procedure
11583 (Check_References): Add missing case of test for
11584 Has_Pragma_Unreferenced_Objects
11585 (Output_Unreferenced_Messages): Implement effect of new pragma
11586 Unreferenced_Objects, remove special casing of limited controlled
11589 2007-04-06 Vincent Celier <celier@adacore.com>
11591 * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
11592 the default project path, initially done during elaboration of the
11594 If the prefix returned by Sdefault is null, get the prefix from a call
11595 to Executable_Prefix_Path.
11596 (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
11599 * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
11600 canonical directory name to open the directory from which files are
11602 (Record_Other_Sources): Idem.
11603 (Locate_Directory): Add the possibility to create automatically missing
11604 directories when Setup_Projects is True.
11605 Call Locate_Directory so that the directory will be created when
11606 Setup_Projects is True, for object dir, library dir, library ALI dir,
11607 library source copy dir and exec dir.
11609 * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
11612 2007-04-06 Robert Dewar <dewar@adacore.com>
11614 * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
11615 Use First/Next_Component_Or_Discriminant
11616 (Analyze_Record_Representation_Clause):
11617 Use First/Next_Component_Or_Discriminant
11618 (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
11619 (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
11620 definition if type is unconstrained.
11621 (Adjust_Record_For_Reverse_Bit_Order): New procedure
11622 (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
11623 Is_Abstract_Subprogram and Is_Abstract_Type.
11624 (Adjust_Record_For_Reverse_Bit_Order): New procedure
11626 * repinfo.adb (List_Record_Info): Use First/
11627 Next_Component_Or_Discriminant.
11629 * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
11632 * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
11633 Include -gnatyA in default switches
11635 * opt.ads: (Warn_On_Non_Local_Exception): New flag
11636 (Warn_On_Reverse_Bit_Order): New flag
11637 (Extensions_Allowed): Update the documentation.
11638 (Warn_On_Questionable_Missing_Parens): Now on by default
11640 * usage.adb: Add documentation of -gnatw.x/X switches
11641 Document new -gnatyA style switch
11642 -gnatq warnings are on by default
11644 2007-04-06 Ed Falis <falis@adacore.com>
11646 * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
11647 full word is no longer compared twice.
11649 2007-04-06 Ed Schonberg <schonberg@adacore.com>
11651 * sem_ch10.adb (Install_Limited_Context_Clauses.
11652 Expand_Limited_With_Clause): Use a new copy of selector name in the
11653 call to Make_With_Clause. This fixes the tree structure for ASIS
11654 purposes. Nothing is changed in the compiler behaviour.
11655 (Process_Body_Clauses): Handle properly use clauses whose prefix is
11656 a package renaming.
11657 (Install_Limited_With_Clauses): Do not install non-limited view when it
11658 is still incomplete.
11660 2007-04-06 Ed Schonberg <schonberg@adacore.com>
11661 Gary Dismukes <dismukes@adacore.com>
11663 * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
11664 when capturing size information, instead of base type, which for a
11665 formal array type will be the unconstrained type.
11666 (Analyze_Formal_Object_Declaration): Add check for illegal default
11667 expressions for a formal in object of a limited type.
11668 (Instantiate_Object): Ditto.
11669 (Check_Formal_Package_Instance): Skip entities that are formal objects,
11670 because they were defaulted in the formal package and no check applies
11672 (Check_Formal_Package_Instance): Extend conformance check to other
11673 discrete types beyond Integer.
11674 (Process_Default): Copy directly the unmatched formal. A generic copy
11675 has already been performed in Analyze_Formal_Package.
11676 (Analyze_Associations): If a formal subprogram has no match, check for
11677 partial parametrization before looking for a default, to prevent
11679 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
11680 not set the instantiation environment before analyzing the actuals.
11681 Fixes regression on 8515-003 with implementation of AI-133.
11682 Set_Instance_Env checks whether the generic unit is a predefined
11683 unit, in which case the instance must be analyzed with the latest Ada
11684 mode. This setting must take place after analysis of the actuals,
11685 because the actuals must be analyzed and frozen in the Ada mode extant
11686 outside of the current instantiation.
11687 (Save_Env, Restore_Env): Preserve and restore the configuration
11688 parameters so that predefined units can be compiled in the proper Ada
11690 (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
11691 Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
11692 and Is_Abstract_Type.
11693 (Analyze_Formal_Package): For better error recovery, Add exception
11694 handler to catch Instantion_Error, which can be raised in
11695 Analyze_Associations
11697 2007-04-06 Ed Schonberg <schonberg@adacore.com>
11698 Bob Duff <duff@adacore.com>
11699 Gary Dismukes <dismukes@adacore.com>
11701 * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
11702 prefix type is a discriminated subtype of the type of the formal.
11703 (Analyze_Allocator): Collect all coextensions regardless of the context.
11704 Whether they can be allocated statically is determined in exp_ch4.
11705 (Analyze_Selected_Component): If the prefix is a limited view and the
11706 non-limited view is available, use the non-limited one.
11707 (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
11708 therefore illegal), suggest a qualified expression rather than a type
11709 conversion, because a type conversion would be illegal in this context.
11710 (Anayze_Allocator): Trace recursively all nested allocators so that all
11711 coextensions are on the corresponding list for the root. Do no mark
11712 coextensions if the root allocator is within a declaration for a stack-
11713 allocated object, because the access discriminants will be allocated on
11715 (Analyze_Call): Remove restriction on calls to limited functions for the
11716 cases of generic actuals for formal objects, defaults for formal objects
11717 and defaults for record components.
11718 (Analyze_Allocator): Before analysis, chain coextensions on the proper
11719 element list. Their expansion is delayed until the enclosing allocator
11720 is processed and its finalization list constructed.
11721 (Try_Primitive_Operation): If the prefix is a concurrent type, looks
11722 for an operation with the given name among the primitive operations of
11723 the corresponding record type.
11724 (Analyze_Selected_Component): If the prefix is a task type that
11725 implements an interface, and there is no entry with the given name,
11726 check whether there is another primitive operation (e.g. a function)
11728 (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
11729 properly the indexing of a function call written in prefix form, where
11730 the function returns an array type, and all parameters of the function
11731 except the first have defaults.
11732 (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
11733 the original operands, rather than relocating them, for efficiency and
11734 to work properly when an operand is overloaded.
11735 (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
11736 Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
11737 (Analyze_Selected_Component): If the prefix is a private extension, only
11738 scan the visible components, not those of the full view.
11739 (Try_Primitive_Operation): If the operation is a procedure, collect all
11740 possible interpretations, as for a function, because in the presence of
11741 classwide parameters several primitive operations of the type can match
11742 the given arguments.
11744 2007-04-06 Ed Schonberg <schonberg@adacore.com>
11745 Robert Dewar <dewar@adacore.com>
11747 * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
11748 tag-indeterminate call to an abstract function, when the left-hand side
11750 (Analyze_Loop_Statement): Improve detection of infinite loops
11752 2007-04-06 Ed Schonberg <schonberg@adacore.com>
11753 Thomas Quinot <quinot@adacore.com>
11755 * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
11756 out of Analyze_Package_Declaration, because processing must be applied
11757 to package bodies as well, for deferred constants completed by pragmas.
11758 (Analyze_Package_Declaration): When the package declaration being
11759 analyzed does not require an explicit body, call Check_Completion.
11760 (May_Need_Implicit_Body): An implicit body is required when a package
11761 spec contains the declaration of a remote access-to-classwide type.
11762 (Analyze_Package_Body): If the package contains RACWs, append the
11763 pending subprogram bodies generated by exp_dist at the end of the body.
11764 (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
11765 Is_Abstract_Subprogram and Is_Abstract_Type.
11766 (Preserve_Full_Attributes): The full entity list is not an attribute
11767 that must be preserved from full to partial view.
11769 * sem_dist.adb (Add_RAS_Dereference_TSS):
11770 Change primitive name to _Call so it cannot clash with any legal
11771 identifier, and be special-cased in Check_Completion.
11772 Mark the full view of the designated type for the RACW associated with
11773 a RAS as Comes_From_Source to get proper view switching when installing
11774 private declarations.
11775 Provite a placeholder nested package body along with the nested spec
11776 to have a place for Append_RACW_Bodies to generate the calling stubs
11777 and stream attributes.
11779 2007-04-06 Ed Schonberg <schonberg@adacore.com>
11780 Robert Dewar <dewar@adacore.com>
11782 * sem_ch8.adb (Has_Components): If the argument is an incomplete type
11783 that is a limited view, check the non-limited view if available.
11784 (Undefined): Refine error message for missing with of Text_IO
11785 (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
11786 to distinguish real missing with cases.
11787 Fix format of all missing with messages
11788 (Analyze_Subprogram_Renaming): Emit proper error message on illegal
11789 renaming as body when renamed entity is abstract.
11791 2007-04-06 Ed Schonberg <schonberg@adacore.com>
11792 Javier Miranda <miranda@adacore.com>
11794 * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
11795 predicate recursive, to handle complex expressions on literals whose
11796 spurious ambiguity comes from the abstract interpretation of some
11798 (Interface_Present_In_Ancestor): Add support to concurrent record
11800 (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
11801 Is_Abstract_Subprogram and Is_Abstract_Type.
11803 2007-04-06 Ed Schonberg <schonberg@adacore.com>
11804 Javier Miranda <miranda@adacore.com>
11806 * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
11807 dereference of a local object R created as a reference to another
11808 object O, use the access level of O.
11809 (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
11810 rather than local Same_Formal_Type, to check whether protected operation
11811 overrides an inherited one.
11812 (Same_Formal_Type): New predicate, used when matching signatures of
11813 overriding synchronized operations, to handle the case when a formal
11814 has a type that is a generic actual.
11815 (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
11816 predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
11817 (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
11818 syntactic ambiguities involving indexing of function calls that return
11820 (Abstract_Interface_List): New subprogram that returns the list of
11821 abstract interfaces associated with a concurrent type or a
11822 concurrent record type.
11823 (Interface_Present_In_Parent): New subprogram used to check if a
11824 given type or some of its parents implement a given interface.
11825 (Collect_Abstract_Interfaces): Add support for concurrent types
11826 with interface types.
11827 (Has_Abstract_Interfaces): Add support for concurrent types with
11829 (Is_Parent): New subprogram that determines whether E1 is a parent
11830 of E2. For a concurrent type its parent is the first element of its
11831 list of interface types; for other types this function provides the
11832 same result than Is_Ancestor.
11833 (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
11834 (Collect_Synchronized_Interfaces): Removed because the subprogram
11835 Collect_Abstract_Interfaces provides this functionality.
11836 (Collect_Abstract_Interfaces): Minor update to give support to
11837 concurrent types and thus avoid undesired code duplication.
11838 (Get_Subprogram_Entity): Handle entry calls.
11839 (May_Be_Lvalue): Include actuals that appear as in-out parameters in
11841 (Enter_Name): Do not give -gnatwh hiding warning for record component
11842 entities, they never result in hiding.
11844 2007-04-06 Ed Schonberg <schonberg@adacore.com>
11845 Robert Dewar <dewar@adacore.com>
11847 * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
11848 to chain nested components that are allocators for access discriminants
11849 of the enclosing object.
11850 Add N_Push and N_Pop nodes
11851 New field Exception_Label added
11852 (Local_Raise_Statements): New field in N_Exception_Handler_Node
11853 (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
11854 (Is_Coextension): New flag for allocators, to mark allocators that
11855 correspond to access discriminants of dynamically allocated objects.
11856 (N_Block_Statement): Document the fact that the corresponding entity
11857 can be an E_Return_Statement.
11858 (Is_Coextension): New flag for allocators.
11859 Remove all code for DSP option
11861 * sprint.ads, sprint.adb: Display basic information for class_wide
11862 subtypes. Add handling of N_Push and N_Pop nodes
11864 2007-04-06 Arnaud Charlet <charlet@adacore.com>
11866 * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
11867 before propagating exception.
11869 2007-04-06 Olivier Hainque <hainque@adacore.com>
11871 * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
11872 an address always within the call instruction from a return address.
11874 2007-04-06 Olivier Hainque <hainque@adacore.com>
11875 Eric Botcazou <botcazou@adacore.com>
11877 * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
11878 expression with a COMPOUND_EXPR including the call instead of emitting
11879 the call directly here.
11880 (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
11881 high bound is constant and the slice is empty. Tidy.
11882 (tree_transform, case N_Op_Not): Handle properly the case where the
11883 operation applies to a private type whose full view is a modular type.
11884 (Case_Statement_To_gnu): If an alternative is an E_Constant with an
11885 Address_Clause, use the associated Expression as the GNAT tree
11886 representing the choice value to ensure the corresponding GCC tree is
11887 of the proper kind.
11888 (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
11889 instead of just the operands, as the base GCC stabilize_reference does.
11890 <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
11891 requested; otherwise fail.
11892 (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
11894 2007-04-06 Thomas Quinot <quinot@adacore.com>
11896 * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
11897 implementation of UI_Div.
11898 (UI_Div): Reimplement as a call to UI_Div_Rem.
11899 (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
11900 remainder, avoiding the cost of a multiplication and a subtraction.
11901 (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
11902 provides both quotient and remainder in a single computation.
11903 (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
11904 functions for uint.
11905 (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
11906 is undefined if the given n is not inversible.
11908 2007-04-06 Olivier Hainque <hainque@adacore.com>
11910 * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
11911 BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
11914 2007-04-06 Eric Botcazou <botcazou@adacore.com>
11915 Olivier Hainque <hainque@adacore.com>
11917 * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
11918 when updating the contents of the old pointer to an unconstrained array.
11919 (end_subprog_body): Set error_gnat_node to Empty.
11920 (write_record_type_debug_info): Do not be unduly sparing with our bytes.
11921 (unchecked_convert): For subtype to base type conversions, require that
11922 the source be a subtype if it is an integer type.
11923 (builtin_decls): New global, vector of available builtin functions.
11924 (gnat_pushdecl): Add global builtin function declaration nodes to the
11925 builtin_decls list.
11926 (gnat_install_builtins): Adjust comments.
11927 (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
11928 calling gnat_pushdecl, so that it knows when it handed a builtin
11929 function declaration node.
11930 (builtin_decl_for): Search the builtin_decls list.
11932 2007-04-06 Eric Botcazou <botcazou@adacore.com>
11934 * s-stchop-vxworks.adb:
11935 (Stack_Check): Raise Storage_Error if the argument has wrapped around.
11937 2007-04-06 Robert Dewar <dewar@adacore.com>
11938 Arnaud Charlet <charlet@adacore.com>
11940 * a-diroro.ads: Inserted the pragma Unimplemented_Unit
11942 * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
11944 Add mention of -Sev (set initialize_scalars option from environment
11945 variable at run time) in gnatbind usage message.
11947 * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
11949 * fname-uf.ads: Minor comment fix
11951 * osint.ads: Change pragma Elaborate to Elaborate_All
11953 * par-load.adb: Add documentation.
11955 * sem_cat.ads, sem_cat.adb: Minor code reorganization
11957 * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
11959 * s-secsta.ads: Extra comments
11961 * s-soflin.ads: Minor comment fixes
11963 * s-stratt.ads (Block_Stream_Ops_OK): Removed.
11965 * s-wchcon.ads: Minor comment addition
11967 * treepr.adb: Minor change in message
11968 (Print_Name,Print_Node): Make these debug printouts more robust: print
11969 "no such..." instead of crashing on bad input.
11971 2007-03-30 Rafael Avila de Espindola <espindola@google.com>
11973 * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
11974 instead of gnat_signed_or_unsigned_type.
11975 * utils.c (gnat_signed_or_unsigned_type): Remove.
11976 * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
11977 * gigi.h (gnat_signed_or_unsigned_type): Remove
11979 2007-03-09 Roger Sayle <roger@eyesopen.com>
11981 * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
11982 fold with the result of buildN.
11983 * decl.c (gnat_to_gnu_entity): Likewise.
11984 * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
11985 * utils.c (finish_record_type, merge_sizes, max_size, convert):
11987 * utils2.c (gnat_truthvalue_conversion, compare_arrays,
11988 nonbinary_modular_operation, build_binary_op, build_unary_op,
11989 build_cond_expr): Likewise.
11991 * utils.c (convert): Use fold_build1 when casting values to void.
11992 * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
11993 fold_convert instead of convert when appropriate.
11995 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
11997 * Make-lang.in: Add install-pdf target as copied from
11998 automake v1.10 rules.
12000 2007-02-28 Andreas Schwab <schwab@suse.de>
12002 * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
12003 $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
12004 (doc/gnat-style.info): Likewise.
12006 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
12008 * gnat-style.texi: Standardize title page.
12009 * gnat_rm.texi: Likewise.
12010 * gnat_ugn.texi: Likewise.
12012 2007-02-25 Mark Mitchell <mark@codesourcery.com>
12014 * decl.c (annotate_value): Adjust for refactoring of tree_map
12017 2007-02-24 Mark Mitchell <mark@codesourcery.com>
12019 * decl.c (annotate_value): Adjust for refactoring of tree_map
12022 2007-02-21 Ed Schonberg <schonberg@adacore.com>
12025 * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
12026 untagged derived type, add hidden components to keep discriminant
12027 layout consistent, when a given discriminant of the derived type
12028 constraints several discriminants of the parent type.
12030 2007-02-16 Eric Botcazou <ebotcazou@adacore.com>
12031 Sandra Loosemore <sandra@codesourcery.com>
12033 * trans.c (call_to_gnu): Use build_call_list instead of build3 to
12034 build the call expression.
12035 (gnat_stabilize_reference_1): Handle tcc_vl_exp.
12036 * utils.c (max_size) <tcc_exceptional>: Delete.
12037 <tcc_vl_exp>: New case.
12038 <tcc_expression>: Delete CALL_EXPR subcase.
12039 (build_global_cdtor): Use build_call_nary instead of build3.
12040 * utils2.c (build_call_1_expr): Likewise.
12041 (build_call_2_expr): Likewise.
12042 (build_call_0_expr): Likewise.
12043 (build_call_alloc_dealloc): Likewise.
12045 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
12047 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
12048 get_action_description_for): Replace _Unwind_Word with _uleb128_t
12049 and _Unwind_SWord with _sleb128_t.
12051 2007-02-06 Paolo Bonzini <bonzini@gnu.org>
12053 * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
12054 * decl.c: Include gt-ada-decl.h.
12055 (annotate_value_cache): New.
12056 (annotate_value): Use it instead of TREE_COMPLEXITY.
12058 2007-02-03 Kazu Hirata <kazu@codesourcery.com>
12060 * misc.c, utils2.c: Fix comment typos.
12062 2007-01-24 Roger Sayle <roger@eyesopen.com>
12064 * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
12065 TREE_CONSTANT_OVERFLOW.
12066 (allocatable_size_p, annotate_value): Likewise.
12067 * trans.c (gnat_to_gnu): Likewise.
12068 * utils.c (unchecked_convert): Likewise.
12069 * utils2.c (build_simple_component_ref): Likewise.
12071 2007-01-23 Richard Guenther <rguenther@suse.de>
12074 * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
12075 (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
12076 (gnatboot3): Likewise.
12077 (GNATBIND): Do not define.
12078 * Makefile.in (GNATBIND): Do not define.
12080 2007-01-08 Richard Guenther <rguenther@suse.de>
12082 * cuintp.c (build_cst_from_int): Use built_int_cst_type.
12083 * trans.c (gnat_to_gnu): Likewise.
12085 2006-12-07 Geoffrey Keating <geoffk@apple.com>
12087 * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
12088 * adaint.c: Likewise.
12090 2006-12-05 Aldy Hernandez <aldyh@redhat.com>
12092 Merge from gimple-tuples-branch:
12093 2006-11-02 Aldy Hernandez <aldyh@redhat.com>
12095 * ada-tree.h (lang_tree_node): Handle gimple tuples.
12096 * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
12097 GIMPLE_MODIFY_STMT.
12099 2006-12-02 Kazu Hirata <kazu@codesourcery.com>
12101 * Makefile.in, mingw32.h, trans.c: Fix comment typos.
12102 * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
12105 2006-11-17 Eric Botcazou <ebotcazou@adacore.com>
12108 * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
12109 if the initializer takes into account the padding.
12111 2006-11-11 Richard Guenther <rguenther@suse.de>
12113 * trans.c (maybe_stabilize_reference): Remove handling of
12114 FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
12116 2006-11-05 Arnaud Charlet <charlet@adacore.com>
12119 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
12120 (To_Target_Priority): New function.
12122 2006-10-31 Robert Dewar <dewar@adacore.com>
12124 * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
12125 a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
12126 s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
12127 a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
12128 a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
12129 a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
12130 a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
12131 a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
12132 a-szbzha.adb: Minor reformatting. Fix header.
12134 * a-numaux-x86.adb: Add parentheses for use of unary minus
12135 * a-ngcefu.adb: Supply missing parentheses for unary minus
12136 * a-ngcoty.adb: Add parens for use of unary minus
12137 * a-ngelfu.adb: Add missing parens for unary minus
12138 * a-tifiio.adb: Add parentheses for uses of unary minus
12140 2006-10-31 Robert Dewar <dewar@adacore.com>
12141 Bob Duff <duff@adacore.com>
12142 Ed Schonberg <schonberg@adacore.com>
12144 * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
12145 with multiplying operator.
12146 (Expected_Type_Is_Any_Real): New function to determine from the Parent
12147 pointer whether the context expects "any real type".
12148 (Resolve_Arithmetic_Op): Do not give an error on calls to the
12149 universal_fixed "*" and "/" operators when they are used in a context
12150 that expects any real type. Also set the type of the node to
12151 Universal_Real in this case, because downstream processing requires it
12152 (mainly static expression evaluation).
12153 Reword some continuation messages
12154 Add some \\ sequences to continuation messages
12155 (Resolve_Call): Refine infinite recursion case. The test has been
12156 sharpened to eliminate some false positives.
12157 Check for Current_Task usage now includes entry barrier, and is now a
12158 warning, not an error.
12159 (Resolve): If the call is ambiguous, indicate whether an interpretation
12160 is an inherited operation.
12161 (Check_Aggr): When resolving aggregates, skip associations with a box,
12162 which are priori correct, and will be replaced by an actual default
12163 expression in the course of expansion.
12164 (Resolve_Type_Conversion): Add missing support for conversion from
12165 a class-wide interface to a tagged type. Minor code cleanup.
12166 (Valid_Tagged_Converion): Add support for abstact interface type
12168 (Resolve_Selected_Component): Call Generate_Reference here rather than
12169 during analysis, and use May_Be_Lvalue to distinguish read/write.
12170 (Valid_Array_Conversion): New procedure, abstracted from
12171 Valid_Conversion, to incorporate accessibility checks for arrays of
12172 anonymous access types.
12173 (Valid_Conversion): For a conversion to a numeric type occurring in an
12174 instance or inlined body, no need to check that the operand type is
12175 numeric, since this has been checked during analysis of the template.
12176 Remove legacy test for scope name Unchecked_Conversion.
12178 * sem_res.ads: Minor reformatting
12180 * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
12181 (PE_Current_Task_In_Entry_Body): New exception code
12182 (SE_Restriction_Violation): Removed, not used
12184 * a-except.ads: Update comments.
12186 * types.h, types.ads: Add definition for Validity_Check
12187 (PE_Current_Task_In_Entry_Body): New exception code
12188 (SE_Restriction_Violation): Removed, not used
12190 2006-10-31 Thomas Quinot <quinot@adacore.com>
12192 * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
12195 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
12196 Jose Ruiz <ruiz@adacore.com>
12198 * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
12199 part of Ada.Calendar: all subprogram raise Unimplemented.
12200 (Split_W_Offset): Temp function body, raising Unimplemented
12202 * a-calend.ads, a-calend-vms.ads:
12203 Add imported variable Invalid_TZ_Offset used to designate targets unable
12204 to support time zones.
12205 (Unimplemented): Temporary function raised by the body of new
12207 (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
12208 unit provides handling of leap seconds and is used by the new Ada 2005
12209 packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
12210 (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
12211 version returns an extra value which is the offset to UTC.
12213 * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
12214 (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
12215 (Split_W_Offset): New function body.
12216 (Time_Of): When a date is close to UNIX epoch, compute the time for
12217 that date plus one day (that amount is later substracted after
12218 executing mktime) so there are no problems with time zone adjustments.
12220 * a-calend-mingw.adb: Remove Windows specific version no longer needed.
12222 * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
12223 a-catizo.ads, a-catizo.adb: New files.
12225 * impunit.adb: Add new Ada 2005 entries
12227 * sysdep.c: Add external variable __gnat_invalid_tz_offset.
12228 Rename all occurences of "__gnat_localtime_r" to
12229 "__gnat_localtime_tzoff".
12230 (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
12231 zone data and calculate the GMT offset.
12232 (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
12233 Use the field "tm_gmtoff" to extract the GMT offset.
12234 (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
12235 the external variable "timezone" to calculate the GMT offset.
12237 2006-10-31 Arnaud Charlet <charlet@adacore.com>
12238 Jose Ruiz <ruiz@adacore.com>
12240 * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
12241 s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
12242 s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
12243 s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
12244 System.Any_Priority to a POSIX priority on the target.
12246 * system-linux-ia64.ads:
12247 Extend range of Priority types on Linux to use the whole range made
12248 available by the system.
12250 * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
12251 function maps from System.Any_Priority to a POSIX priority on the
12253 (PTHREAD_PRIO_PROTECT): Set real value.
12254 (PTHREAD_PRIO_INHERIT): Now a function.
12255 (SIGCPUFAIL): New signal.
12256 (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
12257 are documented as reserved by the OS.
12259 * system-aix.ads: Use the full range of priorities provided by the
12262 * s-taprop-posix.adb: Call new function To_Target_Priority.
12263 (Set_Priority): Take into account Task_Dispatching_Policy and
12264 Priority_Specific_Dispatching pragmas when determining if Round Robin
12265 must be used for scheduling the task.
12267 * system-linux-x86_64.ads, system-linux-x86.ads,
12268 system-linux-ppc.ads: Extend range of Priority types on Linux to use
12269 the whole range made available by the system.
12271 * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
12272 s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
12273 s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
12274 when deallocating the TCB in order to avoid potential references to
12276 (Set_Priority): Take into account Task_Dispatching_Policy and
12277 Priority_Specific_Dispatching pragmas when determining if Round Robin
12278 or FIFO within priorities must be used for scheduling the task.
12280 * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
12281 the Thread field (to be used internally by the run-time system) and the
12282 kernel-level task id in the LWP field (to be used by the debugger).
12283 (Create_Task): Reorganize to unify the calls to taskSpawn into a single
12284 instance, and propagate the current task options to the spawned task.
12285 (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
12286 (Initialize): Set Round Robin dispatching when the corresponding pragma
12289 2006-10-31 Robert Dewar <dewar@adacore.com>
12291 * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
12292 system-linux-hppa.ads, system-hpux-ia64.ads,
12293 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
12294 system-vxworks-sparcv9.ads, system-solaris-x86.ads,
12295 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
12296 system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
12297 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
12298 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
12299 system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
12300 Default_Bit_Order) to kill constant condition warnings for references
12303 2006-10-31 Vincent Celier <celier@adacore.com>
12304 Eric Botcazou <ebotcazou@adacore.com>
12306 * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
12307 mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
12308 mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
12309 Ext_To, when building the library file name
12311 * mlib-tgt-vxworks.adb: ditto.
12312 (Get_Target_Suffix): Add support for x86 targets.
12314 * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
12316 * mlib-tgt-darwin.adb:
12317 Use Append_To, instead of Ext_To, when building the library file name
12318 (Flat_Namespace): New global variable.
12319 (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
12320 (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
12321 (Link_Shared_Libgcc): Delete.
12322 (Build_Dynamic_Library): Adjust for above changes.
12324 (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
12326 2006-10-31 Eric Botcazou <ebotcazou@adacore.com>
12328 * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
12329 (Initialize): Add type conversions required by above change.
12331 2006-10-31 Jose Ruiz <ruiz@adacore.com>
12333 * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
12334 (getpid): New body for this function that uses the underlying taskIdSelf
12335 function for VxWorks 5 and VxWorks 6 in kernel mode.
12336 (unsigned_int): New type, modular to allow logical bit operations.
12337 (taskOptionsGet): New imported function.
12339 * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
12340 field to be compliant with the type used by the corresponding operating
12343 2006-10-31 Pascal Obry <obry@adacore.com>
12344 Eric Botcazou <ebotcazou@adacore.com>
12345 Vincent Celier <celier@adacore.com>
12347 * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
12348 ASCII version of the registry API. This is needed as the GNAT runtime
12349 is now UNICODE by default.
12351 (get_gcc_version): Do not hardcode the return value.
12352 (__gnat_file_time_name): On Windows properly set the default returned
12353 value to -1 which corresponds to Invalid_Time.
12354 (__gnat_fopen): New routine. A simple wrapper on all plateforms
12355 except on Windows where it does conversion for unicode support.
12356 (__gnat_freopen): Idem.
12357 (__gnat_locate_exec_on_path): If environment variable PATH does not
12358 exist, return a NULL pointer
12360 * adaint.h: (__gnat_fopen): Declare.
12361 (__gnat_freopen): Likewise.
12363 * mingw32.h (_tfreopen): Define this macro here for older MingW
12365 Activate the unicode support on platforms using a MingW runtime
12366 version 3.9 or newer.
12368 * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
12369 This is needed for proper unicode support on Windows.
12372 2006-10-31 Eric Botcazou <ebotcazou@adacore.com>
12373 Nicolas Setton <setton@adacore.com>
12374 Olivier Hainque <hainque@adacore.com>
12375 Gary Dismukes <dismukes@adacore.com>
12377 * gigi.h: (tree_code_for_record_type): Declare.
12378 (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
12379 (get_global_renaming_pointers): Rename to
12380 invalidate_global_renaming_pointers.
12381 (static_ctors): Delete.
12382 (static_dtors): Likewise.
12383 (gnat_write_global_declarations): Declare.
12384 (create_var_decl): Adjust descriptive comment to indicate that the
12385 subprogram may return a CONST_DECL node.
12386 (create_true_var_decl): Declare new function, similar to
12387 create_var_decl but forcing the creation of a VAR_DECL node.
12388 (get_global_renaming_pointers): Declare.
12389 (add_global_renaming_pointer): Likewise.
12391 * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
12393 * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
12394 tree before setting TREE_ADDRESSABLE for by-reference return mechanism
12396 (gnat_to_gnu_entity): Remove From_With_Type from computation for
12398 <E_Access_Type>: Use the Non_Limited_View as the full view of the
12399 designated type if the pointer comes from a limited_with clause. Make
12400 incomplete designated type if it is in the main unit and has a freeze
12402 <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
12403 Underlying_Full_View similarly. Return earlier if the full view already
12404 has an associated tree.
12405 (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
12406 (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
12407 (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
12408 reference type built for objects with an address clause.
12409 Use create_true_var_decl with const_flag set for
12410 DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
12412 (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
12413 for Character and Wide_Character types. This info is read by the
12414 dwarf-2 writer, and is needed to be able to use the command "ptype
12415 character" in the debugger.
12416 (gnat_to_gnu_entity): When generating a type representing
12417 a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
12418 so that debug writers can distinguish it from ordinary integers.
12419 (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
12420 addition to TREE_READONLY to assert the constantness of variables for
12421 elaboration purposes.
12422 (gnat_to_gnu_entity, subprogram cases): Change loops on formal
12423 parameters to call new Einfo function First_Formal_With_Extras.
12424 (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
12425 protected type with its corresponding discriminant, to obtain a usable
12427 (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
12428 for a multiple elaboration of the "equivalent" type.
12429 (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
12430 into record_global_renaming_pointer.
12431 (gnat_to_gnu_entity) <E_Array_Type>: Do not force
12432 TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
12433 <E_Array_Subtype>: Likewise.
12434 (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
12435 incomplete subtypes and incomplete subtypes of incomplete types visible
12436 through a limited with clause.
12437 (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
12438 the base index type for the maximum size of the array only if they are
12440 (gnat_to_gnu_entity, renaming object case): Do not wrap up the
12441 expression into a SAVE_EXPR if stabilization failed.
12443 * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
12444 a result decl into DECL_BY_REFERENCE on this decl, now what is expected
12445 by lower level compilation passes.
12446 (gnat_genericize): New function, lowering a function body to GENERIC.
12447 Turn the type of RESULT_DECL into a real reference type if the decl
12448 has been marked DECL_BY_REFERENCE, and adjust references to the latter
12450 (gnat_genericize_r): New function. Tree walking callback for
12452 (convert_from_reference, is_byref_result): New functions. Helpers for
12454 (create_type_decl): Call gnat_pushdecl before calling
12455 rest_of_decl_compilation, to make sure that field TYPE_NAME of
12456 type_decl is properly set before calling the debug information writers.
12457 (write_record_type_debug_info): The heuristics which compute the
12458 alignment of a field in a variant record might not be accurate. Add a
12459 safety test to make sure no alignment is set to a smaller value than
12460 the alignment of the field type.
12461 (make_dummy_type): Use the Non_Limited_View as the underlying type if
12462 the type comes from a limited_with clause. Do not loop on the full view.
12463 (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
12464 (dummy_node_table): New global variable, moved from decl.c.
12465 (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
12466 (save_gnu_tree): Use above macros.
12467 (get_gnu_tree): Likewise.
12468 (present_gnu_tree): Likewise.
12469 (init_dummy_type): New function, moved from decl.c. Use above macros.
12470 (make_dummy_type): Likewise.
12471 (tree_code_for_record_type): New function extracted from make_dummy_type
12472 (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
12473 (static_ctors): Change it to a vector, make static.
12474 (static_dtors): Likewise.
12475 (end_subprog_body): Adjust for above change.
12476 (build_global_cdtor): Moved from trans.c.
12477 (gnat_write_global_declarations): Emit global constructor and
12478 destructor, and call cgraph_optimize before emitting debug info for
12479 global declarations.
12480 (global_decls): New global variable.
12481 (gnat_pushdecl): Store the global declarations in global_decls, for
12483 (gnat_write_global_declarations): Emit debug information for global
12485 (create_var_decl_1): Former create_var_decl, with an extra argument to
12486 state whether the creation of a CONST_DECL is allowed.
12487 (create_var_decl): Behavior unchanged. Now a wrapper around
12488 create_var_decl_1 allowing CONST_DECL creation.
12489 (create_true_var_decl): New function, similar to create_var_decl but
12490 forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
12491 (create_field_decl): Do not always mark the field as addressable
12492 if its type is an aggregate.
12493 (global_renaming_pointers): New static variable.
12494 (add_global_renaming_pointer): New function.
12495 (get_global_renaming_pointers): Likewise.
12497 * misc.c (gnat_dwarf_name): New function.
12498 (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
12499 (gnat_post_options): Add comment about structural alias analysis.
12500 (gnat_parse_file): Do not call cgraph_optimize here.
12501 (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
12503 * trans.c (process_freeze_entity): Don't abort if we already have a
12504 non dummy GCC tree for a Concurrent_Record_Type, as it might
12505 legitimately have been elaborated while processing the associated
12506 Concurrent_Type prior to this explicit freeze node.
12507 (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
12508 exception handler volatile if it is of variable size.
12509 (process_type): Remove bypass for types coming from a limited_with
12511 (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
12512 actual, convert the corresponding gnu_actual to the real destination
12513 type when necessary.
12514 (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
12515 originally TREE_READONLY but whose elaboration cannot be performed
12517 Part of fix for F504-021.
12518 (tree_transform, subprogram cases): Change loops on formal parameters to
12519 call new Einfo function First_Formal_With_Extras.
12520 (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
12521 stemming from type conversion for the lhs.
12522 (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
12523 number of bits per unit for components of records.
12524 (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
12525 (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
12526 with At_End_Proc after the SJLJ EH cleanup.
12527 (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
12529 (elaborate_all_entities): Do not retest type_annotate_only.
12530 (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
12531 result type of an abstract subprogram, which may be an itype associated
12532 with an anonymous access result (related to AI-318-02).
12533 (build_global_cdtor): Move to utils.c.
12534 (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
12535 this choice is not a null tree nor an integer constant.
12536 (gigi): Run unshare_save_expr via walk_tree_without_duplicates
12537 on the body of elaboration routines instead of mark_unvisited.
12538 (add_stmt): Do not mark the tree.
12539 (add_decl_expr): Tweak comment.
12540 (mark_unvisited): Delete.
12541 (unshare_save_expr): New static function.
12542 (call_to_gnu): Issue an error when making a temporary around a
12543 procedure call because of non-addressable actual parameter if the
12544 type of the formal is by_reference.
12545 (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
12546 after building the elaboration routine.
12548 2006-10-31 Bob Duff <duff@adacore.com>
12550 * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
12551 as finalization-started, so we can raise Program_Error on 'new'.
12553 * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
12554 collection has already started.
12556 * s-finimp.ads (Collection_Finalization_Started): Added new special
12557 flag value for indicating that a collection's finalization has started.
12559 * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
12560 create a task whose master has already waited for dependent tasks.
12562 2006-10-31 Robert Dewar <dewar@adacore.com>
12564 * lib.adb, lib.ads: (In_Predefined_Unit): New functions
12566 * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
12567 a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
12568 a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
12569 a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
12570 a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
12571 a-except-2005.ads: Add pragma Preelaborable_Warning
12573 2006-10-31 Robert Dewar <dewar@adacore.com>
12574 Jose Ruiz <ruiz@adacore.com>
12576 * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
12578 * ali.adb (Get_Name): Properly handle scanning of wide character names
12579 encoded with brackets notation.
12580 (Known_ALI_Lines): Add S lines to this list.
12581 (Scan_ALI): Acquire S (priority specific dispatching) lines.
12582 New flag Elaborate_All_Desirable in unit table
12584 * ali.ads (Priority_Specific_Dispatching): Add this range of
12585 identifiers to be used for Priority_Specific_Dispatching table entries.
12586 (ALIs_Record): Add First_Specific_Dispatching and
12587 Last_Specific_Dispatching that point to the first and last entries
12588 respectively in the priority specific dispatching table for this unit.
12589 (Specific_Dispatching): Add this table for storing each S (priority
12590 specific dispatching) line encountered in the input ALI file.
12591 New flag Elaborate_All_Desirable in unit table
12593 * bcheck.adb: (Check_Configuration_Consistency): Add call to
12594 Check_Consistent_Dispatching_Policy.
12595 (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
12596 verifying that the use of Priority_Specific_Dispatching,
12597 Task_Dispatching_Policy, and Locking_Policy is consistent across the
12600 * bindgen.adb: (Public_Version_Warning): function removed.
12601 (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
12602 required information from ALI files in order to initialize the table
12603 containing the specific dispatching policy.
12604 (Gen_Adainit_Ada): Generate the variables required for priority specific
12605 dispatching entries (__gl_priority_specific_dispatching and
12606 __gl_num_specific_dispatching).
12607 (Gen_Adainit_C): Generate the variables required for priority specific
12608 dispatching entries (__gl_priority_specific_dispatching and
12609 __gl_num_specific_dispatching).
12610 (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
12612 (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
12613 (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
12615 (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
12616 a call to gnat_set_globals.
12617 Generate a string containing settings from
12618 Priority_Specific_Dispatching pragma entries.
12619 (Gen_Object_Files_Options): Do not include the runtime libraries when
12620 pragma No_Run_Time is specified.
12622 * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
12623 consistency with s-intman-posix.adb.
12624 (__gnat_error_handler, case FreeBSD): Account for the fact that the
12625 handler is installed with SA_SIGINFO.
12626 (__gnat_adjust_context_for_raise, FreeBSD case): New function for
12627 FreeBSD ZCX support, copied from Linux version.
12628 Add MaRTE-specific definitions for the linux target. Redefine sigaction,
12629 sigfillset, and sigemptyset so the routines defined by MaRTE.
12630 (__gl_priority_specific_dispatching): Add this variable that stores the
12631 string containing priority specific dispatching policies in the
12633 (__gl_num_specific_dispatching): Add this variable that indicates the
12634 highest priority for which a priority specific dispatching pragma
12636 (__gnat_get_specific_dispatching): Add this routine that returns the
12637 priority specific dispatching policy, as set by a
12638 Priority_Specific_Dispatching pragma appearing anywhere in the current
12639 partition. The input argument is the priority number, and the result
12640 is the upper case first character of the policy name.
12641 (__gnat_set_globals): Now a dummy function.
12642 (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
12643 mechargs instead of sigargs, as the latter can be retrieved from the
12644 former and sigargs is not what we want on ia64.
12645 (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
12647 (__gnat_adjust_context_for_raise, ia64-vms): New function.
12648 (tasking_error): Remove unused symbol.
12649 (_abort_signal): Move this symbol to the IRIX specific part since this
12650 is the only target that uses this definition.
12651 (Check_Abort_Status): Move this symbol to the IRIX specific part since
12652 this is the only target that uses this definition.
12653 (Lock_Task): Remove unused symbol.
12654 (Unlock_Task): Remove unused symbol.
12656 * lib-writ.adb (Write_ALI): Output new S lines for
12657 Priority_Specific_Dispatching pragmas.
12658 Implement new flag BD for elaborate body desirable
12660 * lib-writ.ads: Document S lines for Priority Specific Dispatching.
12661 (Specific_Dispatching): Add this table for storing the entries
12662 corresponding to Priority_Specific_Dispatching pragmas.
12663 Document new BD flag for elaborate body desirable
12665 * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
12668 2006-10-31 Javier Miranda <miranda@adacore.com>
12670 * a-tags.ads, a-tags.adb:
12671 (Predefined_DT): New function that improves readability of the code.
12672 (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
12673 Inherit_DT): Use the new function Predefined_DT to improve code
12675 (Register_Interface_Tag): Update assertion.
12676 (Set_Interface_Table): Update assertion.
12677 (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
12678 determining progenitor interfaces in Tags.
12679 (Inherit_CPP_DT): New subprogram.
12681 * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
12682 analysis of the thunk code.
12683 (Expand_Interface_Conversion): Handle run-time conversion of
12684 access to class wide types.
12685 (Expand_Dispatching_Call): When generating the profile for the
12686 subprogram itype for a dispatching operation, properly terminate the
12687 formal parameters chaind list (set the Next_Entity of the last formal
12689 (Collect_All_Interfaces): Removed. This routine has been moved to
12690 sem_util and renamed as Collect_All_Abstract_Interfaces.
12691 (Set_All_DT_Position): Hidden entities associated with abstract
12692 interface primitives are not taken into account in the check for
12693 3.9.3(10); this check is done with the aliased entity.
12694 (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
12695 interfacing with CPP by default.
12696 (Expand_Interface_Conversion): Add missing support for static conversion
12697 from an interface to a tagged type.
12698 (Collect_All_Interfaces): Add new out formal containing the list of
12699 abstract interface types to cleanup the subprogram Make_DT.
12700 (Make_DT): Update the code to generate the table of interfaces in case
12701 of abstract interface types.
12702 (Is_Predefined_Dispatching_Alias): New function that returns true if
12703 a primitive is not a predefined dispatching primitive but it is an
12704 alias of a predefined dispatching primitive.
12705 (Make_DT): If the ancestor of the type is a CPP_Class and we are
12706 compiling under full ABI compatibility mode we avoid the generation of
12707 calls to run-time services that fill the dispatch tables because under
12708 this mode we currently inherit the dispatch tables in the IP subprogram.
12709 (Write_DT): Emit an "is null" indication for a null procedure primitive.
12710 (Expand_Interface_Conversion): Use an address as the type of the formal
12711 of the internally built function that handles the case in which the
12712 target type is an access type.
12714 2006-10-31 Robert Dewar <dewar@adacore.com>
12716 * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
12718 2006-10-31 Robert Dewar <dewar@adacore.com>
12720 * bindusg.ads, bindusg.adb:
12721 Change to package and rename procedure as Display, which
12722 now ensures that it only outputs usage information once.
12724 2006-10-31 Jose Ruiz <ruiz@adacore.com>
12726 * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
12729 * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
12732 2006-10-31 Robert Dewar <dewar@adacore.com>
12733 Ed Schonberg <schonberg@adacore.com>
12735 * treepr.adb: Use new subtype N_Membership_Test
12737 * checks.ads, checks.adb: Add definition for Validity_Check
12738 (Range_Or_Validity_Checks_Suppressed): New function
12739 (Ensure_Valid): Test Validity_Check suppressed
12740 (Insert_Valid_Check): Test Validity_Check suppressed
12741 (Insert_Valid_Check): Preserve Do_Range_Check flag
12742 (Validity_Check_Range): New procedure
12743 (Expr_Known_Valid): Result of membership test is always valid
12744 (Selected_Range_Checks): Range checks cannot be applied to discriminants
12745 by themselves. Disabling those checks must also be done for task types,
12746 where discriminants may be used for the bounds of entry families.
12747 (Apply_Address_Clause_Check): Remove side-effects if address expression
12748 is non-static and is not the name of a declared constant.
12749 (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
12750 Code cleanup and new error messages.
12751 (Enable_Range_Check): Test for some cases of suppressed checks
12752 (Generate_Index_Checks): Suppress index checks if index checks are
12753 suppressed for array object or array type.
12754 (Apply_Selected_Length_Checks): Give warning for compile-time detected
12755 length check failure, even if checks are off.
12756 (Ensure_Valid): Do not generate a check on an indexed component whose
12757 prefix is a packed boolean array.
12758 * checks.adb: (Alignment_Checks_Suppressed): New function
12759 (Apply_Address_Clause_Check): New procedure, this is a completely
12760 rewritten replacement for Apply_Alignment_Check
12761 (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
12762 we request a discriminal value only in case of discriminants.
12763 (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
12764 assignments where the target subtype is unconstrained and the target
12765 object is a parameter or dereference (other aliased cases are known
12766 to be unconstrained).
12768 2006-10-31 Robert Dewar <dewar@adacore.com>
12770 * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
12771 prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
12772 vms_conv.adb: Fix bad table increment values (much too small)
12774 * table.adb (Realloc): Make sure we get at least some new elements
12775 Defends against silly small values for table increment
12777 2006-10-31 Robert Dewar <dewar@adacore.com>
12778 Ed Schonberg <schonberg@adacore.com>
12779 Bob Duff <duff@adacore.com>
12781 * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
12782 entities. Move other fields around to make this possible
12783 (Is_Derived_Type): Add missing call to Is_Type.
12784 (Extra_Formals): New function for subprograms, entries, subprogram
12786 (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
12787 (First_Formal_With_Extras): New function for subprogs, entries, subp
12789 (Write_Field28_Name): New procedure for node display of "Extra_Formals".
12790 Add node information for E_Return_Statement.
12791 (Elaborate_Body_Desirable): New flag
12792 (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
12793 to be Is_Inherently_Limited_Type, because return-by-reference has
12794 no meaning in Ada 2005.
12795 (E_Return_Statement): New entity kind.
12796 (Return_Applies_To): Field of E_Return_Statement.
12797 (Is_Return_Object): New flag in object entities.
12798 (Is_Dynamic_Scope): Make it True for E_Return_Statement.
12799 (Must_Have_Preelab_Init): New flag
12800 (Known_To_Have_Preelab_Init): New flag
12801 (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
12802 (Is_Visible_Formal): New flag on entities in formal packages.
12803 (Low_Bound_Known): New flag
12804 (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
12806 (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
12807 output when Id is an incomplete subtype.
12809 2006-10-31 Robert Dewar <dewar@adacore.com>
12811 * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
12812 Avoid abbreviation Creat
12813 (Finalize): List all sources in extended mail source if -gnatl
12815 Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
12816 (Finalize): Implement new -gnatl=xxx switch to output listing to file
12817 (Set_Specific_Warning_On): New procedure
12818 (Set_Specific_Warning_Off): New procedure
12819 Add implementation of new insertion \\
12820 (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
12821 (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
12823 (Error_Msg_Internal): Make sure that we set Last_Killed to
12824 True when a message from another package is suppressed.
12825 Implement insertion character ~ (insert string)
12826 (First_Node): Minor adjustments to get better placement.
12829 Implement new -gnatl=xxx switch to output listing to file
12832 Implement new -gnatl=xxx switch to output listing to file
12834 * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
12835 (Commands_To_Stdout): New flag
12836 Implement new -gnatl=xxx switch to output listing to file
12837 New switch Dump_Source_Text
12838 (Warn_On_Deleted_Code): New warning flag for -gnatwt
12839 Define Error_Msg_Line_Length
12840 (Warn_On_Assumed_Low_Bound): New switch
12842 * osint.ads, osint.adb
12843 (Normalize_Directory_Name): Fix bug.
12844 Implement new -gnatl=xxx switch to output listing to file
12845 (Concat): Removed, replaced by real concatenation
12846 Make use of concatenation now allowed in compiler
12847 (Executable_Prefix.Get_Install_Dir): First get the full path, so that
12848 we find the 'lib' or 'bin' directory even when the tool has been
12849 invoked with a relative path.
12850 (Executable_Name): New function taking string parameters.
12852 * osint-c.ads, osint-c.adb:
12853 Implement new -gnatl=xxx switch to output listing to file
12855 * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
12858 Implement new -gnatl=xxx switch to output listing to file
12859 Recognize new -gnatL switch
12860 (no longer keep in old warning about old style usage)
12861 Use concatenation to simplify code
12862 Recognize -gnatjnn switch
12863 (Scan_Front_End_Switches): Clean up handling of -gnatW
12864 (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
12866 2006-10-31 Robert Dewar <dewar@adacore.com>
12868 * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
12869 (Set_Specific_Warning_Off): New procedure
12870 (Warning_Specifically_Suppressed): New function
12871 (Validate_Specific_Warnings): New procedure
12872 (Output_Msg_Text): Complete rewrite to support -gnatjnn
12874 * err_vars.ads: Implement insertion character ~ (insert string)
12876 2006-10-31 Bob Duff <duff@adacore.com>
12877 Ed Schonberg <schonberg@adacore.com>
12879 * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
12880 the parent part is a build-in-place function call, generate assignments.
12881 (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
12882 are build-in-place function calls.
12883 (Replace_Self_Reference): New subsidiary of
12884 Make_OK_Assignment_Statement, to replace an access attribute that is a
12885 self-reference into an access to the appropriate component of the
12886 target object. Generalizes previous mechanism to handle self-references
12887 nested at any level.
12888 (Is_Self_Referential_Init): Remove, not needed.
12889 (Is_Self_Referential_Init): New predicate to simplify handling of self
12890 referential components in record aggregates.
12891 (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
12892 check for presence of entity before checking for self-reference.
12893 (Has_Default_Init_Comps): Return True if a component association is a
12894 self-reference to the enclosing type, which can only come from a
12895 default initialization.
12896 (Make_OK_Assignment_Statement): If the expression is of the form
12897 Typ'Acc, where Acc is an access attribute, the expression comes from a
12898 default initialized self-referential component.
12899 (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
12900 that has been derived from several abstract interfaces we must also
12901 initialize the tags of the secondary dispatch tables.
12903 2006-10-31 Ed Schonberg <schonberg@adacore.com>
12904 Thomas Quinot <quinot@adacore.com>
12905 Javier Miranda <miranda@adacore.com>
12906 Robert Dewar <dewar@adacore.com>
12909 (Expand_Access_To_Protected_Op): If the context indicates that an access
12910 to a local operation may be transfered outside of the object, create an
12911 access to the wrapper operation that must be used in an external call.
12912 (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
12913 target, pass the Valid attribute applied to a floating-point prefix on
12914 to the back end without expansion.
12915 (Storage_Size): Use the new run-time function Storage_Size to retrieve
12916 the allocated storage when it is specified by a per-object expression.
12917 (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
12918 Nothing to do here, the attribute has been rewritten during semantic
12920 (Expand_Attribute_Reference): Handle expansion of the new Priority
12922 (Find_Fat_Info): Handle case of universal real
12923 (Expand_Access_To_Protected_Op): Fix use of access to protected
12924 subprogram from inside the body of a protected entry.
12925 (Expand_Access_To_Protected_Op): Common procedure for the expansion of
12926 'Access and 'Unrestricted_Access, to transform the attribute reference
12927 into a fat pointer.
12928 (Is_Constrained_Aliased_View): New predicate to help determine whether a
12929 subcomponent's enclosing variable is aliased with a constrained subtype.
12930 (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
12931 test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
12932 an aliased prefix must be known to be constrained in order to use True
12933 for the attribute value, and now it's possible for some aliased views
12934 to be unconstrained.
12936 2006-10-31 Robert Dewar <dewar@adacore.com>
12938 * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
12939 (Expand_Entity_Reference): Correct error of not handling subprogram
12940 formals in current_value processing.
12942 2006-10-31 Javier Miranda <miranda@adacore.com>
12943 Robert Dewar <dewar@adacore.com>
12944 Ed Schonberg <schonberg@adacore.com>
12945 Gary Dismukes <dismukes@adacore.com>
12947 * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
12948 register in the final list objects containing class-wide interfaces;
12949 otherwise we incorrectly register the tag of the interface in the final
12951 (Make_Controlling_Function_Wrappers): Add missing barrier to do not
12952 generate the wrapper if the parent primitive is abstract. This is
12953 required to report the correct error message.
12954 (Expand_N_Subtype_Indication): Do validity checks on range
12955 (Clean_Task_Names): If an initialization procedure includes a call to
12956 initialize a task (sub)component, indicate that the procedure will use
12957 the secondary stack.
12958 (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
12959 compatibility for interfacing with CPP by default.
12960 (Expand_N_Object_Declaration): Only build an Adjust call when the
12961 object's type is a nonlimited controlled type.
12962 * exp_ch3.adb: Add with and use of Exp_Ch6.
12963 (Expand_N_Object_Declaration): Check for object initialization that is a
12964 call to build-in-place function and apply Make_Build_In_Place_Call_In_
12965 Object_Declaration to the call.
12966 (Freeze_Type): When the designated type of an RACW was not frozen at the
12967 point where the RACW was declared, validate the primitive operations
12968 with respect to E.2.2(14) when it finally is frozen.
12969 (Build_Initialization_Call,Expand_Record_Controller): Rename
12970 Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
12971 return-by-reference has no meaning in Ada 2005.
12972 (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
12973 to register tag of the immediate ancestor interfaces in the
12974 run-time structure.
12975 (Init_Secondary_Tags): Moved to the specification to allow the
12976 initialization of extension aggregates with abstract interfaces.
12977 (Build_Master_Renaming): Make public, for use by function declarations
12978 whose return type is an anonymous access type.
12979 (Freeze_Record_Type): Replace call to Insert_List_Before by call to
12980 Insert_List_Before_And_Analyze after the generation of the specs
12981 associated with null procedures.
12982 (Expand_Tagged_Root): Update documentation in its specification.
12983 (Init_Secondary_Tags): Update documentation.
12984 (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
12985 tibility mode and the immediate ancestor is a CPP_Pragma tagged type
12986 then generate code to inherit the contents of the dispatch table
12987 directly from the ancestor.
12988 (Expand_Record_Controller): Insert controller component after tags of
12989 implemented interfaces.
12990 (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
12991 create null procedure overridings when null procedures are inherited
12993 (Make_Null_Procedure_Specs): New procedure to generate null procedure
12994 declarations for overriding null primitives inherited from interfaces.
12995 (Is_Null_Interface_Procedure): New function in
12996 Make_Null_Procedure_Specs.
12997 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
12998 immediate ancestor of a tagged type is an abstract interface type we
12999 must generate the specification of the predefined primitives associated
13000 with controlled types (because the dispatch table of the ancestor is
13001 null and hence these entries cannot be inherited). This is required to
13002 elaborate well the dispatch table.
13004 2006-10-31 Javier Miranda <miranda@adacore.com>
13005 Ed Schonberg <schonberg@adacore.com>
13006 Bob Duff <duff@adacore.com>
13007 Gary Dismukes <dismukes@adacore.com>
13008 Robert Dewar <dewar@adacore.com>
13010 * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
13012 (Expand_N_In): Do validity checks on range
13013 (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
13014 (Expand_N_Allocator): For "new T", if the object is constrained by
13015 discriminant defaults, allocate the right amount of memory, rather than
13016 the maximum for type T.
13017 (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
13018 when the allocator is initialized by a build-in-place call, since the
13019 allocator is already rewritten as a reference to the function result,
13020 and this prevents an unwanted duplication of the function call.
13021 Add with and use of Exp_Ch6.
13022 (Expand_Allocator_Expresssion): Check for an allocator whose expression
13023 is a call to build-in-place function and apply
13024 Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
13025 untagged designated types).
13026 (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
13027 optimization if source or target is biased.
13028 (Expand_N_Allocator): Add comments for case of an allocator within a
13029 function that returns an anonymous access type designating tasks.
13030 (Expand_N_Allocator): apply discriminant checks for access
13031 discriminants of anonymous access types (AI-402, AI-416)
13033 2006-10-31 Bob Duff <duff@adacore.com>
13034 Robert Dewar <dewar@adacore.com>
13035 Gary Dismukes <dismukes@adacore.com>
13036 Ed Schonberg <schonberg@adacore.com>
13038 * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
13040 * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
13041 (Expand_N_Assignment_Statement): Call
13042 Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
13043 build-in-place function call. Currently, this can happen only for
13044 assignments that come from aggregates.
13045 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
13046 in order to alleviate the upward compatibility introduced by AI-318.
13047 (Expand_N_Extended_Return_Statement): Add support for handling the
13048 return object as a build-in-place result.
13049 (Expand_Non_Function_Return): Implement simple return statements nested
13050 within an extended return.
13051 (Enable_New_Return_Processing): Turn on the new processing of return
13053 (Expand_Non_Function_Return): For a return within an extended return,
13054 don't raise Program_Error, because Sem_Ch6 now gives a warning.
13055 (Expand_N_Extended_Return_Statement): Implement AI-318
13056 (Expand_Simple_Function_Return): Ditto.
13057 (Expand_N_If_Statement): Handle new -gnatwt warning
13058 (Expand_N_Case_Statement): Handle new -gnatwt warning
13059 (Expand_N_Assignment): Handle assignment to the Priority attribute of
13060 a protected object.
13061 (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
13062 validity checking of assignments to elementary record components.
13063 (Expand_N_Return_Statement): return Class Wide types on the secondary
13064 stack independantly of their controlled status since with HIE runtimes,
13065 class wide types are not potentially controlled anymore.
13067 * expander.adb (Expand): Add case for new N_Extended_Return_Statement
13070 * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
13071 Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
13072 it expects a block, procedure, or task. The return statement will get
13073 turned into a block, and Expand_Cleanup_Actions will happen then.
13075 2006-10-31 Robert Dewar <dewar@adacore.com>
13076 Ed Schonberg <schonberg@adacore.com>
13077 Bob Duff <duff@adacore.com>
13078 Gary Dismukes <dismukes@adacore.com>
13080 * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
13082 (Expand_Inlined_Call): Tagged types are by-reference types, and
13083 therefore should be replaced by a renaming declaration in the expanded
13084 body, as is done for limited types.
13085 (Expand_Call): If this is a call to a function with dispatching access
13086 result, propagate tag from context.
13087 (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
13089 (Make_Build_In_Place_Call_In_Assignment): New procedure to do
13090 build-in-place when the right-hand side of an assignment is a
13091 build-in-place function call.
13092 (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
13093 of the explicit dereference of the allocator to the result subtype of
13094 the build-in-place function. This is needed to satisfy type checking
13095 in cases where the caller's return object is created by an allocator for
13096 a class-wide access type and the type named in the allocator is a
13098 (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
13099 conversion of the reference to the declared object to the result subtype
13100 of the build-in-place function. This is needed to satisfy type checking
13101 in cases where the declared object has a class-wide type. Also, in the
13102 class-wide case, change the type of the object entity to the specific
13103 result subtype of the function, to avoid passing a class-wide object
13104 without explicit initialization to the back end.
13105 (Register_Interface_DT_Entry): Moved outside the body of
13106 Freeze_Subprogram because this routine is now public; it is called from
13107 Check_Dispatching_Overriding to handle late overriding of abstract
13108 interface primitives.
13109 (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
13110 adding an implicit access actual on a call to a build-in-place function.
13111 (Expand_Actuals): Test for an actual parameter that is a call to a
13112 build-in-place function and apply
13113 Make_Build_In_Place_Call_In_Anonymous_Context to the call.
13114 (Is_Build_In_Place_Function): New function to determine whether an
13115 entity is a function whose calls should be handled as build-in-place.
13116 (Is_Build_In_Place_Function_Call): New function to determine whether an
13117 expression is a function call that should handled as build-in-place.
13118 (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
13119 calls to build-in-place functions as the initialization of an allocator.
13120 (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
13121 handling calls to build-in-place functions in contexts that do not
13122 involve init of a separate object (for example, actuals of subprogram
13124 (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
13125 handling calls to build-in-place functions as the initialization of an
13126 object declaration.
13127 (Detect_Infinite_Recursion): Add explicit parameter Process to
13128 instantiation of Traverse_Body to avoid unreferenced warning.
13129 (Check_Overriding_Inherited_Interfaces): Removed.
13130 (Register_Interface_DT_Entry): Code cleanup.
13131 (Register_Predefined_DT_Entry): Code cleanup.
13132 (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
13133 inlined statements if within a transient scope.
13134 (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
13135 formal parameters with occurrences of actuals in inlined body, establish
13136 visibility on the proper view of the actual's subtype for the body's
13138 (Freeze_Subprogram): Do nothing if we are compiling under full ABI
13139 compatibility mode and we have an imported CPP subprogram because
13140 for now we assume that imported CPP primitives correspond with
13141 objects whose constructor is in the CPP side (and therefore we
13142 don't need to generate code to register them in the dispatch table).
13143 (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
13144 aligned selected component.
13145 (Add_Call_By_Copy_Node): Add missing code to handle the case in which
13146 the actual of an in-mode parameter is a type conversion.
13147 (Expand_Actuals): If the call does not come from source and the actual
13148 is potentially misaligned, let gigi handle it rather than rejecting the
13149 (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
13150 Class Wide types as returning by reference independantly of their
13151 controlled status since with HIE runtimes class wide types are not
13152 potentially controlled anymore.
13154 2006-10-31 Ed Schonberg <schonberg@adacore.com>
13156 * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
13157 references that are private components of the protected object.
13158 (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
13159 (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
13160 instantiation to deal with warnings.
13161 (Initialize_Protection): If expression for priority is non-static, use
13162 System_Priority as its expected type, in case the expression has not
13165 2006-10-31 Robert Dewar <dewar@adacore.com>
13167 * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
13168 initialization of Homonym_Len.
13169 (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
13170 names from fully qualified name. Fixes problem of duplicate
13171 external names differing only in the presence of such a block name.
13173 2006-10-31 Thomas Quinot <quinot@adacore.com>
13174 Pablo Oliveira <oliveira@adacore.com>
13176 * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
13177 subprogram Ids, even if they are not yet assigned.
13178 (Build_Subprogram_Id): It is now this function that will take care of
13179 calling Assign_Subprogram_Ids if necessary.
13180 (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
13181 should be done only once they are assigned.
13182 (Build_From_Any_Function, case of tagged types): Add missing call to
13184 (Corresponding_Stub_Type): New subprogram. Returns the associated stub
13185 type for an RACW type.
13186 (Add_RACW_Features): When processing an RACW declaration for which the
13187 designated type is already frozen, enforce E.2.2(14) rules immediately.
13188 (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
13189 special reordering of controlling formals.
13191 * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
13192 associated stub type for an RACW type.
13194 2006-10-31 Ed Schonberg <schonberg@adacore.com>
13196 * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
13197 fixed-point operations in an integer context, i.e. as operands of a
13198 conversion to an integer type, indicate that result must be rounded.
13200 2006-10-31 Robert Dewar <dewar@adacore.com>
13202 * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
13203 cases, pass the encoding method, since it is now required by the run
13206 * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
13207 assumption that Str'First = 1.
13208 (Value_Wide_Character): Takes EM (encoding method) parameter and passes
13209 it on to the Value_Wide_Wide_Character call.
13210 (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
13211 properly handles a string of the form quote-encoded_wide_char-quote.
13213 * s-wchcnv.adb: Minor reformatting
13215 2006-10-31 Javier Miranda <miranda@adacore.com>
13217 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
13218 run-time membership test to ensure that the constructed object
13219 implements the target abstract interface.
13221 2006-10-31 Robert Dewar <dewar@adacore.com>
13223 * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
13224 Machine_Attribute pragma internally to implement the user pragma.
13225 Add processing for pragma Interface so that it is now completely
13226 equivalent to pragma Import.
13228 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
13229 so that it can be applied to all entities, including record components
13230 and enumeration literals.
13231 (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
13232 priority ranges are correct, verify compatibility against task
13233 dispatching and locking policies, and if everything is correct an entry
13234 is added to the table containing priority specific dispatching entries
13235 for this compilation unit.
13236 (Delay_Config_Pragma_Analyze): Delay processing
13237 Priority_Specific_Dispatching pragmas because when processing the
13238 pragma we need to access run-time data, such as the range of
13239 System.Any_Priority.
13240 (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
13241 Allow pragma Unreferenced as a context item
13242 Add pragma Preelaborable_Initialization
13243 (Analyze_Pragma, case Interface): Interface is extended so that it is
13244 now syntactically and semantically equivalent to Import.
13245 (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
13246 insertion characters.
13247 Add handling for Pragma_Wide_Character_Encoding
13248 (Process_Restrictions_Restriction_Warnings): Ensure that a warning
13249 never supercedes a real restriction, and that a real restriction
13250 always supercedes a warning.
13251 (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
13254 2006-10-31 Bob Duff <duff@adacore.com>
13255 Ed Schonberg <schonberg@adacore.com>
13256 Robert Dewar <dewar@adacore.com>
13258 * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
13259 Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
13260 Is_Inherently_Limited_Type, because return-by-reference has no meaning
13262 (Find_Node_To_Be_Wrapped): Use new method of determining the result
13263 type of the function containing a return statement, because the
13264 Return_Type field was removed. We now use the Return_Applies_To field.
13266 * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
13267 (Build_Task_Image_Decl): If procedure is not called from an
13268 initialization procedure, indicate that function that builds task name
13269 uses the sec. stack. Otherwise the enclosing initialization procedure
13270 will carry the indication.
13271 (Insert_Actions): Remove N_Return_Object_Declaration. We now use
13272 N_Object_Declaration instead.
13273 (Kill_Dead_Code): New interface to implement -gnatwt warning for
13274 conditional dead code killed, and change implementation accordingly.
13275 (Insert_Actions): Add N_Return_Object_Declaration case.
13276 Correct comment to mention N_Extension_Aggregate node.
13277 (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
13278 attempts to save information for global variables which cannot be
13280 (Get_Current_Value_Condition): Handle conditions the other way round
13281 (constant on left). Also handle right operand of AND and AND THEN
13282 (Set_Current_Value_Condition): Corresponding changes
13283 (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
13284 (Get_Current_Value_Condition): Handle simple boolean operands
13285 (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
13286 (Get_Current_Value_Condition): If the variable reference is within an
13287 if-statement, does not appear in the list of then_statments, and does
13288 not come from source, treat it as being at unknown location.
13289 (Get_Current_Value_Condition): Enhance to allow while statements to be
13290 processed as well as if statements.
13291 (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
13293 (OK_To_Do_Constant_Replacement): Allow constant replacement within body
13294 of loop. This is safe now that we fixed Kill_Current_Values.
13295 (OK_To_Do_Constant_Replacement): Check whether current scope is
13296 Standard, before examining outer scopes.
13298 2006-10-31 Vincent Celier <celier@adacore.com>
13300 * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
13301 When True, apply VMS treatment to children of packages A, G, I and S.
13304 * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
13306 2006-10-31 Robert Dewar <dewar@adacore.com>
13307 Ed Schonberg <schonberg@adacore.com>
13309 * freeze.adb: Add handling of Last_Assignment field
13310 (Warn_Overlay): Supply missing continuation marks in error msgs
13311 (Freeze_Entity): Add check for Preelaborable_Initialization
13313 * g-comlin.adb: Add Warnings (Off) to prevent new warning
13315 * g-expect.adb: Add Warnings (Off) to prevent new warning
13317 * lib-xref.adb: Add handling of Last_Assignment field
13318 (Generate_Reference): Centralize handling of pragma Obsolescent here
13319 (Generate_Reference): Accept an implicit reference generated for a
13320 default in an instance.
13321 (Generate_Reference): Accept a reference for a node that is not in the
13322 main unit, if it is the generic body corresponding to an subprogram
13325 * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
13327 * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
13329 (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
13331 (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
13332 use clauses, to avoid messages on packages used to qualify, and also
13333 to avoid messages from obsolescent units.
13334 (Warn_On_Useless_Assignments): Don't generate messages for imported
13335 and exported variables.
13336 (Warn_On_Useless_Assignments): New procedure
13337 (Output_Obsolescent_Entity_Warnings): New procedure
13338 (Check_Code_Statement): New procedure
13340 * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
13341 Change name Is_Ada_2005 to Is_Ada_2005_Only
13342 (Last_Assignment): New field for useless assignment warning
13344 2006-10-31 Olivier Hainque <hainque@adacore.com>
13346 * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
13347 closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
13349 2006-10-31 Bob Duff <duff@adacore.com>
13350 Robert Dewar <dewar@adacore.com>
13351 Ed Schonberg <schonberg@adacore.com>
13353 * g-awk.adb (Default_Session, Current_Session): Compile this file in
13354 Ada 95 mode, because it violates the new rules for AI-318.
13356 * g-awk.ads: Use overloaded subprograms in every case where we used to
13357 have a default of Current_Session. This makes the code closer to be
13358 correct for both Ada 95 and 2005.
13360 * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
13361 code, relying on the fact that the compiler generates a warning
13362 instead of an error in -gnatg mode.
13364 * lib-xref.ads (Xref_Entity_Letters): Add entry for new
13365 E_Return_Statement entity kind.
13366 Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
13368 * par.adb (P_Interface_Type_Definition): Addition of one formal to
13369 report an error if the reserved word abstract has been previously found.
13370 (SS_End_Type): Add E_Return for new extended_return_statement syntax.
13372 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
13373 parenthesized range attribute usage
13374 (P_Expression_No_Right_Paren): Add missing comment about error recovery.
13376 * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
13377 in the syntax for extended_return_statement. This is not in the latest
13378 RM, but the ARG is expected to issue an AI allowing this.
13379 (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
13380 N_Return_Object_Declaration. We now use N_Object_Declaration instead.
13381 (P_Return_Object_Declaration, P_Return_Subtype_Indication,
13382 P_Return_Statement): Parse the new syntax for extended_return_statement.
13384 * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
13385 Output_End_Missing): Add error-recovery code for the new
13386 extended_return_statement syntax; that is, the new E_Return entry on
13389 * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
13390 limited to nonlimited, because otherwise we violate the new Ada 2005
13391 rules about returning limited types in function Create_AST_Handler in
13394 * sem.adb (Analyze): Add cases for new node kinds
13395 N_Extended_Return_Statement and N_Return_Object_Declaration.
13397 * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
13398 type is in the same category as type of context before applying check,
13399 to prevent anomalies in instantiations.
13400 (Resolve_Aggregate): Remove test for limited components in aggregates.
13401 It's unnecessary in Ada 95, because if it has limited components, then
13402 it must be limited. It's wrong in Ada 2005, because limited aggregates
13404 (Resolve_Record_Aggregate): Move check for limited types later, because
13405 OK_For_Limited_Init requires its argument to have been resolved.
13406 (Get_Value): When copying the component default expression for a
13407 defaulted association in an aggregate, use the sloc of the aggregate
13408 and not that of the original expression, to prevent spurious
13409 elaboration errors, when the expression includes function calls.
13410 (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
13411 were missing. We also didn't handle qualified expressions. Now also
13412 allow function calls. Use new common routine OK_For_Limited_Init.
13413 (Resolve_Extension_Aggregate): Minor fix to bad error message (started
13414 with space can upper case letter).
13416 * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
13417 Has_Static_Discriminants flag
13418 (Record_Type_Declaration): Diagnose an attempt to declare an interface
13419 type with discriminants.
13420 (Process_Range_Expr_In_Decl): Do validity checks on range
13421 (Build_Discriminant_Constraints): Use updated form of
13422 Denotes_Discriminant.
13423 (Process_Subtype): If the subtype is a private subtype whose full view
13424 is a concurrent subtype, introduce an itype reference to prevent scope
13426 (Build_Derived_Record_Type, Collect_Interface_Primitives,
13427 Record_Type_Declaration): The functionality of the subprograms
13428 Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
13429 is now performed by a single routine.
13430 (Build_Derived_Record_Type): If the type definition includes an explicit
13431 indication of limitedness, then the type must be marked as limited here
13432 to ensure that any access discriminants will not be treated as having
13433 a local anonymous access type.
13434 (Check_Abstract_Overriding): Issue a detailed error message when an
13435 abstract subprogram was not overridden due to incorrect mode of its
13437 (Analyze_Private_Extension_Declaration): Add support for the analysis of
13438 synchronized private extension declarations. Verify that the ancestor is
13439 a limited or synchronized interface or in the generic case, the ancestor
13440 is a tagged limited type or synchronized interface and all progenitors
13441 are either limited or synchronized interfaces.
13442 Derived_Type_Declaration): Check for presence of private extension when
13443 dealing with synchronized formal derived types.
13444 Process_Full_View): Enchance the check done on the usage of "limited" by
13445 testing whether the private view is synchronized.
13446 Verify that a synchronized private view is completed by a protected or
13448 (OK_For_Limited_Init_In_05): New function.
13449 (Analyze_Object_Declaration): Move check for limited types later,
13450 because OK_For_Limited_Init requires its argument to have been resolved.
13451 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
13452 in order to alleviate the upward compatibility introduced by AI-318.
13453 (Constrain_Corresponding_Record): If the constraint is for a component
13454 subtype, mark the itype as frozen, to avoid out-of-scope references to
13455 discriminants in the back-end.
13456 (Collect_Implemented_Interfaces): Protect the recursive algorithm of
13457 this subprogram against wrong sources.
13458 (Get_Discr_Value, Is_Discriminant): Handle properly references to a
13459 discriminant of limited type completed with a protected type, when the
13460 discriminant is used to constrain a private component of the type, and
13461 expansion is disabled.
13462 (Find_Type_Of_Object): Do not treat a return subtype that is an
13463 anonymous subtype as a local_anonymous_type, because its accessibility
13464 level is the return type of the enclosing function.
13465 (Check_Initialization): In -gnatg mode, turn the error "cannot
13466 initialize entities of limited type" into a warning.
13467 (OK_For_Limited_Init): Return true for generated nodes, since it
13468 sometimes violates the legality rules.
13469 (Make_Incomplete_Declaration): If the type for which an incomplete
13470 declaration is created happens to be the currently visible entity,
13471 preserve the homonym chain when removing it from visibility.
13472 (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
13473 inherited subprograms.
13474 (Access_Definition): If this is an access to function that is the return
13475 type of an access_to_function definition, context is a type declaration
13476 and the scope of the anonymous type is the current one.
13477 (Analyze_Subtype_Declaration): Add the defining identifier of a regular
13478 incomplete subtype to the set of private dependents of the original
13480 (Constrain_Discriminated_Type): Emit an error message whenever an
13481 incomplete subtype is being constrained.
13482 (Process_Incomplete_Dependents): Transform an incomplete subtype into a
13483 corresponding subtype of the full view of the original incomplete type.
13484 (Check_Incomplete): Properly detect invalid usage of incomplete types
13487 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
13489 * g-catiio.ads, g-catiio.adb (Value): New function.
13490 Given an input String, try and parse a valid Time value.
13492 2006-10-31 Vincent Celier <celier@adacore.com>
13494 * g-debpoo.adb (Is_Valid): Correctly compute Offset using
13495 Integer_Address arithmetic, as in Set_Valid.
13497 2006-10-31 Arnaud Charlet <charlet@adacore.com>
13498 Robert Dewar <dewar@adacore.com>
13500 * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
13501 handling executable extension manually and duplicating code.
13503 * make.adb: Implement new -S switch
13504 (Gnatmake): Use new function Osint.Executable_Name instead
13505 of handling executable extension manually.
13507 * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
13508 is specified, the executable name ends with this suffix.
13509 Take advantage of Osint.Executable_Name instead of duplicating code.
13511 * switch-m.adb: Recognize new gnatmake -S switch
13513 * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
13515 (Get_Target_Parameters): Set Executable_Extension_On_Target if
13518 * makeusg.adb: Add line for gnatmake -S switch
13520 2006-10-31 Vincent Celier <celier@adacore.com>
13522 * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
13523 call it with -static-libgcc, as there are some platforms, such as
13524 Darwin, where one of these two switches is compulsory to link.
13526 2006-10-31 Vincent Celier <celier@adacore.com>
13528 * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
13529 instead of ADA_PROJECT_PATH, for the project path.
13530 (Gnatls): When displaying the project path directories, use host dir
13533 * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
13534 names in the project path, as absolute paths may correspond to
13535 multi-valued VMS logical names.
13537 2006-10-31 Vincent Celier <celier@adacore.com>
13539 * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
13540 absolute path name.
13541 (Locate_Regular_File): Ditto
13542 (Change_Dir): Remove, no longer used
13543 (Normalize_Pathname): Do not use Change_Dir to get the drive letter
13544 on Windows. Get it calling Get_Current_Dir.
13545 (OpenVMS): Remove imported boolean, no longer needed.
13546 (Normalize_Pathname)[VMS]: Do not resolve directory names.
13547 (Pid_To_Integer): New function to convert a Process_Id to Integer
13549 2006-10-31 Thomas Quinot <quinot@adacore.com>
13551 * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
13552 sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
13554 (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
13557 2006-10-31 Robert Dewar <dewar@adacore.com>
13559 * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
13560 initial letter o as a zero.
13562 2006-10-31 Robert Dewar <dewar@adacore.com>
13564 * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
13566 2006-10-31 Robert Dewar <dewar@adacore.com>
13568 * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
13570 (Layout_Variant_Record): Retrieve the discriminants from the entity
13571 rather than from the type definition, because in the case of a full
13572 type for a private type we need to take the discriminants from the
13574 (Layout_Component_List): When applying the Max operator to variants with
13575 a nonstatic size, check whether either operand is static and scale that
13576 operand from bits to storage units before applying Max.
13577 (Layout_Type): In VMS, if a C-convention access type has no explicit
13578 size clause (and does not inherit one in the case of a derived type),
13579 then the size is reset to 32 from 64.
13581 2006-10-31 Vincent Celier <celier@adacore.com>
13583 * lib-load.adb (Load_Unit): Skip the test for a unit not found when
13584 its file has already been loaded, according to the unit being loaded,
13585 not to the current value of Multiple_Unit_Index.
13587 2006-10-31 Thomas Quinot <quinot@adacore.com>
13588 Eric Botcazou <ebotcazou@adacore.com>
13589 Arnaud Charlet <charlet@adacore.com>
13591 * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
13592 (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
13594 (a-except.o): Pass it to the compiler.
13595 (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
13596 (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
13597 a-calend-mingw.adb version.
13599 * Makefile.rtl: Added s-dsaser.
13600 Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
13601 (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
13602 Ada.Dispatching.Round_Robin.
13603 Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
13605 * Make-lang.in: Remove all references to gt-ada-decl.h.
13606 Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
13608 Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
13609 Update dependencies.
13611 * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
13613 2006-10-31 Vincent Celier <celier@adacore.com>
13615 * mlib-utl.adb (Initialized): Remove, no longer used
13616 (Initialize): Remove, no longer used
13617 (Ar): If Ar_Exec is null, get the location of the archive builder and,
13618 if there is one, the archive indexer. Fail if the archive builder cannot
13620 (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
13623 2006-10-31 Ed Schonberg <schonberg@adacore.com>
13625 * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
13626 Process_Body_Clauses): If the context of a body includes a use clause
13627 for P.Q then a with_clause for P in the same body is not redundant,
13628 even if the spec also has a with_clause on P.
13629 Add missing continuation mark to error msg
13630 (Build_Limited_Views): A limited view of a type is tagged if its
13631 declaration includes a record extension.
13632 (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
13633 node, even if the subunit has errors. This avoids malfunction by
13634 Lib.Check_Same_Extended_Unit in the presence of syntax errors.
13635 (Analyze_Compilation_Unit): Add circuit to make sure we get proper
13636 generation of obsolescent messages for with statements (cannot do
13637 this too early, or we cannot implement avoiding the messages in the
13638 case of obsolescent units withing obsolescent units).
13639 (Install_Siblings): If the with_clause is on a remote descendant of
13640 an ancestor of the current compilation unit, find whether there is
13641 a sibling child unit that is immediately visible.
13642 (Remove_Private_With_Clauses): New procedure, invoked after completing
13643 the analysis of the private part of a nested package, to remove from
13644 visibility the private with_clauses of the enclosing package
13646 (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
13647 now centralized in Generate_Reference.
13648 (Install_Limited_Context_Clauses): Remove superfluous error
13649 message associated with unlimited view visible through use
13650 and renamings. In addition, at the point in which the error
13651 is reported, we add the backslash to the text of the error
13652 to ensure that it is reported as a single error message.
13653 Use new // insertion for some continuation messages
13654 (Expand_Limited_With_Clause): Use copy of name rather than name itself,
13655 to create implicit with_clause for parent unit mentioned in original
13656 limited_with_clause.
13657 (Install_Limited_With_Unit): Set entity of parent identifiers if the
13658 unit is a child unit. For ASIS queries.
13659 (Analyze_Subunit): If the subunit appears within a child unit, make all
13660 ancestor child units directly visible again.
13662 2006-10-31 Robert Dewar <dewar@adacore.com>
13664 * par-ch10.adb (P_Context_Clause): Minor error message fix
13666 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
13667 Javier Miranda <miranda@adacore.com>
13669 * par-ch12.adb: Grammar update and cleanup.
13670 (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
13671 support for synchronized derived type definitions.
13672 Add the new actual Abstract_Present to every call to
13673 P_Interface_Type_Definition.
13674 (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
13675 a formal object declaration with an access definition or a subtype mark
13676 with a null exclusion.
13677 (P_Generic_Association): Handle association with box, and others_choice
13678 with box, to support Ada 2005 partially parametrized formal packages.
13680 2006-10-31 Robert Dewar <dewar@adacore.com>
13681 Javier Miranda <miranda@adacore.com>
13683 * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
13684 (P_Type_Declaration): Remove barrier against the reserved word "limited"
13685 after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
13686 (P_Type_Declaration): Minor code cleanup. Add support for synchronized
13687 private extensions.
13688 (P_Type_Declaration): Add the new actual Abstract_Present to every call
13689 to P_Interface_Type_Definition.
13690 (P_Interface_Type_Definition): Addition of one formal to report an error
13691 if the reserved word abstract has been previously found.
13692 (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
13693 object renaming declaration with an access definition or subtype mark
13694 with a possible null exclusion.
13696 * par-ch9.adb: Minor error msg fix
13698 * par-load.adb: Add missing continuation mark to error msg
13700 * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
13702 2006-10-31 Vincent Celier <celier@adacore.com>
13704 * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
13705 unknown attribute in unknown package or in package that does not need
13707 (Parse_Package_Declaration): Do not issue warning for unknown package in
13710 2006-10-31 Vincent Celier <celier@adacore.com>
13712 * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
13713 (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
13716 2006-10-31 Vincent Celier <celier@adacore.com>
13718 * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
13719 on VMS, change "__" to '.' before checking the name.
13720 (Record_Ada_Source): Always add the source file name in the list of
13721 of sources, even if it is not the first time, as it is for another
13723 (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
13724 dot, instead of replacing only the first '_'.
13726 * prj-part.adb (Parse): Convert project file path to canonical form
13728 * prj-proc.adb (Recursive_Process): Make sure that, when a project is
13729 extended, the project id of the project extending it is recorded in its
13730 data, even when it has already been processed as an imported project.
13732 2006-10-31 Robert Dewar <dewar@adacore.com>
13734 * repinfo.adb (List_Entities): Don't list entities from renaming
13737 2006-10-31 Arnaud Charlet <charlet@adacore.com>
13738 Robert Dewar <dewar@adacore.com>
13740 * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
13741 only a restriction warning is active for the given restriction. This is
13742 desirable because we do not want to modify code in the case where only
13744 (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
13745 causes overriding of real restrictions.
13746 Take advantage of new No_Restrictions constant.
13748 * raise.h: (__gnat_set_globals): Change profile.
13750 2006-10-31 Arnaud Charlet <charlet@adacore.com>
13752 * rtsfind.adb: Remove s-polint from comment as it exists no more.
13755 Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
13756 Move all the entities in obsolete package System.PolyORB_Interface to
13757 System.Partition_Interface.
13758 (RE_Storage_Size): New function in System.Tasking.
13759 (RE_Get_Ceiling): New entity.
13760 (RE_Set_Ceiling): New entity.
13761 (RO_PE_Get_Ceiling): New entity.
13762 (RO_RE_Set_Ceiling): New entity.
13763 (Inherit_CPP_DT): New entity
13765 2006-10-31 Robert Dewar <dewar@adacore.com>
13767 * scng.adb (Scan, case of numeric literal): Better msg for identifier
13768 starting with a digit.
13770 2006-10-31 Ed Schonberg <schonberg@adacore.com>
13771 Thomas Quinot <quinot@adacore.com>
13772 Javier Miranda <miranda@adacore.com>
13773 Gary Dismukes <dismukes@adacore.com>
13775 * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
13776 properly an attempt to apply Unchecked_Access to a protected operation.
13777 (OK_Self_Reference): New subprogram to check the legality of an access
13778 attribute whose prefix is the type of an enclosing aggregate.
13779 Generalizes previous mechanism to handle attribute references nested
13780 arbitrarily deep within the aggregate.
13781 (Analyze_Access_Attribute): An access attribute whose prefix is a type
13782 can appear in an aggregate if this is a default-initialized aggregate
13783 for a self-referential type.
13784 (Resolve_Attribute, case Access): Ditto.
13785 Add support for new implementation defined attribute Stub_Type.
13786 (Eval_Attribute, case Attribute_Stub_Type): New case.
13787 (Analyze_Attribute, case Attribute_Stub_Type): New case.
13788 (Stream_Attribute_Available): Implement using new subprogram from
13789 sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
13790 Has_Specified_Stream_Attribute flag.
13791 Disallow Storage_Size and Storage_Pool for access to subprogram
13792 (Resolve_Attribute, case 'Access et al): Take into account anonymous
13793 access types of return subtypes in extended return statements. Remove
13794 accessibility checks on anonymous access types when Unchecked_Access is
13796 (Analyze_Attribute): Add support for the use of 'Class to convert
13797 a class-wide interface to a tagged type.
13798 Add support for the attribute Priority.
13799 (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
13800 whether the designated type is discriminated with a constrained partial
13801 view and require static matching in that case.
13802 Add local variable Des_Btyp. The Designated_Type
13803 of an access to incomplete subtype is either its non-limited view if
13804 coming from a limited with or its etype if regular incomplete subtype.
13806 * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
13807 Fix predicate to identify and allow cases of (expander-generated)
13808 references to tag of designated object of a RACW.
13809 (Validate_Static_Object_Name): In Ada 2005, a formal object is
13810 non-static, and therefore cannot appear as a primary in a preelaborable
13812 (Has_Stream_Attribute_Definition): New subprogram, abstracted from
13813 Has_Read_Write_Attributes.
13814 (Has_Read_Write_Attributes): Reimplement in termes of
13815 Has_Stream_Attribute_Definition.
13816 (Missing_Read_Write_Attributes): When checking component types in a
13817 record, unconditionally call Missing_Read_Write_Attributes recursively
13818 (remove guard checking for Is_Record_Type / Is_Access_Type).
13820 2006-10-31 Robert Dewar <dewar@adacore.com>
13822 * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
13823 useless assignments here and conditionalize it on absence of exception
13825 (Analyze_Exception_Handlers): Small code reorganization of error
13826 detection code, for new handling of formal packages.
13828 2006-10-31 Ed Schonberg <schonberg@adacore.com>
13829 Hristian Kirtchev <kirtchev@adacore.com>
13831 * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
13832 that has been constant-folded, preserve information of original tree,
13834 (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
13835 generated private extension declaration if the formal derived type is
13836 synchronized. Carry synchronized present over to the generated private
13838 (Validate_Derived_Type_Instance): Ensure that the actual of a
13839 synchronized formal derived type is a synchronized tagged type.
13840 (Instantiate_Formal_Package): When creating the instantiation used to
13841 validate the actual package of a formal declared without a box, check
13842 whether the formal itself depends on a prior actual.
13843 (Instantiate_Formal_Subprogram): Create new entities for the defining
13844 identifiers of the formals in the renaming declaration, for ASIS use.
13845 (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
13846 a renaming declaration or a subtype declaration for an actual in an
13847 instance, capture location information of declaration in generic, for
13849 (Instantiate_Formal_Package): Add comments on needed additional tests.
13850 AI-317 (partial parametrization) is fully implemented.
13851 (Validate_Private_Type_Instance): Add check for actual which
13852 must have preelaborable initialization
13853 Use new // insertion for some continuation messages
13854 (Analyze_Formal_Object_Declaration): Change usage of Expression to
13855 Default_Expression. Add type retrieval when the declaration has an
13856 access definition. Update premature usage of incomplete type check.
13857 (Check_Access_Definition): New subsidiary routine. Check whether the
13858 current compilation version is Ada 05 and the supplied node has an
13860 (Instantiate object): Alphabetize local variables. Handle the creation
13861 of new renaming declarations with respect to the kind of definition
13862 used - either an access definition or a subtype mark. Guard against
13863 unnecessary error message in the context of anonymous access types after
13864 they have been resolved. Add check for required null exclusion in a
13865 formal object declaration.
13866 (Switch_View): A private subtype of a non-private type needs to be
13867 switched (the base type can have been switched without its private
13868 dependents because of the last branch of Check_Private_View.
13869 (Check_Private_View): Do not recompute Base_Type (T), instead use cached
13871 (Instantiate_Type): Emit an error message whenever a class-wide type of
13872 a tagged incomplete type is used as a generic actual.
13873 (Find_Actual_Type): Extend routine to handle a component type in a child
13874 unit that is imported from a formal package in a parent.
13875 (Validate_Derived_Type_Instance): Check that analyzed formal and actual
13876 agree on constrainedness, rather than checking against ultimate ancestor
13877 (Instantiate_Subprogram_Body): Create a cross-reference link to the
13878 generic body, for navigation purposes.
13880 2006-10-31 Robert Dewar <dewar@adacore.com>
13881 Thomas Quinot <quinot@adacore.com>
13883 * sem_ch13.adb: Storage pool cannot be given for access to subprogram
13885 (New_Stream_Subprogram): When processing an attribute definition clause
13886 for a stream-oriented subprogram, record an entity node occurring at
13887 the point of clause to use for checking the visibility of the clause,
13888 as defined by 8.3(23) as amended by AI-195.
13889 (New_Stream_Subprogram): New procedure, factoring behaviour from both
13890 New_Stream_Function and New_Stream_Procedure.
13891 (New_Stream_Function, New_Stream_Procedure): Removed.
13892 (Analyze_Attribute_Definition_Clause, case Address): Check new
13893 Alignment_Check check
13895 2006-10-31 Ed Schonberg <schonberg@adacore.com>
13896 Javier Miranda <miranda@adacore.com>
13897 Robert Dewar <dewar@adacore.com>
13899 * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
13900 generate the same errors compiling under -gnatc.
13901 (Try_Object_Operation): If no candidate interpretation succeeds, but
13902 there is at least one primitive operation with the right name, report
13903 error in call rather than on a malformed selected component.
13904 (Analyze_Selected_Component): If the prefix is an incomplete type from
13905 a limited view, and the full view is available, use the full view to
13906 determine whether this is a prefixed call to a primitive operation.
13907 (Operator_Check): Verify that a candidate interpretation is a binary
13908 operation before checking the type of its second formal.
13909 (Analyze_Call): Add additional warnings for function call contexts not
13911 (Analyze_Allocator): Move the check for "initialization not allowed for
13912 limited types" after analyzing the expression. This is necessary,
13913 because OK_For_Limited_Init looks at the structure of the expression.
13914 Before analysis, we don't necessarily know what sort of expression it
13915 is. For example, we don't know whether F(X) is a function call or an
13916 indexed component; the former is legal in Ada 2005; the latter is not.
13917 (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
13918 were missing. We also didn't handle qualified expressions. Now also
13919 allow function calls. Use new common routine OK_For_Limited_Init.
13920 (Analyze_Type_Conversion): Do not perform some legality checks in an
13921 instance, because the error message will be redundant or spurious.
13922 (Analyze_Overloaded_Selected_Component): Do not do style check when
13923 setting an entity, since we do not know it is the right entity yet.
13924 (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
13925 (Analyze_Overloaded_Selected_Component): Same change
13926 (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
13927 since regular incomplete subtypes are transformed into corresponding
13928 subtypes of their full views.
13929 (Complete_Object_Operation): Treat name of transformed subprogram call
13930 as coming from source, for browsing purposes.
13931 (Try_Primitive_Operation): If formal is an access parameter, compare
13932 with base type of object to determine whether it is a primitive
13934 (Operator_Check): If no interpretation of the operator matches, check
13935 whether a use clause on any candidate might make the operation legal.
13936 (Try_Class_Wide_Operation): Check whether the first parameter is an
13937 access type whose designated type is class-wide.
13939 2006-10-31 Robert Dewar <dewar@adacore.com>
13940 Ed Schonberg <schonberg@adacore.com>
13941 Gary Dismukes <dismukes@adacore.com>
13943 * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
13944 warn on infinite loops.
13945 Add \\ to some continuation messages
13946 (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
13947 (Process_Bounds): If the bounds are integer literals that result from
13948 constant-folding, and they carry a user-defined type, preserve that type
13949 rather than treating this as an integer range.
13950 (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
13951 (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
13952 (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
13953 left hand side of assignment.
13954 (Analyze_Assignment): Add suport to manage assigments to the attribute
13955 priority of a protected object.
13956 (Check_Possible_Current_Value_Condition): Allow fully qualified names
13957 not just identifiers.
13958 (Check_Possible_Current_Value_Condition): Acquire left operand of AND
13959 or AND THEN for possible tracking.
13960 (Analyze_Iteration_Scheme): Check for setting Current_Value for the
13961 case of while loops so we can track values in the loop body.
13963 2006-10-31 Ed Schonberg <schonberg@adacore.com>
13964 Hristian Kirtchev <kirtchev@adacore.com>
13965 Bob Duff <duff@adacore.com>
13967 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
13968 procedure cannot be a protected operation (it is a basic_declaration,
13969 not a subprogram_declaration).
13970 (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
13971 Subp. Add logic for entry processing.
13972 (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
13973 Determine whether an entry or subprogram of a protected or task type
13974 override an inherited primitive of an implemented interface.
13975 (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
13976 Update the actual used in calls to Check_Overriding_Indicator.
13977 (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
13978 generate the proper reference to the parent unit, for cross-reference.
13979 (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
13981 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
13982 (Add_Extra_Formal): Revise procedure to allow passing in associated
13983 entity, scope, and name suffix, and handle setting of the new
13984 Extra_Formals field.
13985 (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
13986 pass new parameters. Add support for adding the new extra access formal
13987 for functions whose calls are treated as build-in-place.
13988 (Analyze_A_Return_Statement): Correct casing in error message.
13989 Move Pop_Scope to after Analyze_Function_Return, because an extended
13990 return statement really is a full-fledged scope. Otherwise, visibility
13991 doesn't work right. Correct use of "\" for continuation messages.
13992 (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
13993 evilly trying to call Analyze_Object_Declaration directly. Otherwise,
13994 the node doesn't get properly marked as analyzed.
13995 (Analyze_Subprogram_Body): If subprogram is a function that returns
13996 an anonymous access type that denotes a task, build a Master Entity
13998 (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
13999 proper usage of null exclusion in a result definition.
14000 (Process_Formals): Code cleanup and new error message.
14001 (Process_Formals): Detect incorrect application of null exclusion to
14003 (Conforming_Types): Handle conformance between [sub]types and itypes
14004 generated for entities that have null exclusions applied to them.
14005 (Maybe_Primitive_Operation): Add an additional type retrieval when the
14006 base type is an access subtype. This case arrises with null exclusions.
14007 (New_Overloaded_Entity): Do not remove the overriden entity from the
14008 homonym chain if it corresponds with an abstract interface primitive.
14009 (Process_Formals): Replace membership test agains Incomplete_Kind with a
14010 call to the synthesized predicate Is_Incomplete_Type.
14011 (Analyze_Subprogram_Body): Check wrong placement of abstract interface
14013 (Analyze_Subprogram_Declaration): Check that abstract interface
14014 primitives are abstract or null.
14015 (Analyze_Subprogram_Specification): Remove previous check for abstract
14016 interfaces because it was not complete.
14017 (Has_Interface_Formals): Removed.
14019 2006-10-31 Ed Schonberg <schonberg@adacore.com>
14020 Javier Miranda <miranda@adacore.com>
14022 * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
14023 of Analyze_Package_Body, to create Itype references for anonymous
14024 access types created in the package declaration, whose designated types
14025 may have only a limited view.
14026 (Analyze_Package_Specification): For the private part of a nested
14027 package, install private_with_clauses of enclosing compilation unit if
14028 we are in its visible part.
14029 (Declare_Inherited_Private_Subprograms): Complete barrier
14030 to ensure that the primitive operation has an alias to some parent
14031 primitive. This is now required because, after the changes done for the
14032 implementation of abstract interfaces, the contents of the list of
14033 primitives has entities whose alias attribute references entities of
14034 such list of primitives.
14035 (Analyze_Package_Specification): Simplify code that handles parent units
14036 of instances and formal packages.
14037 (Uninstall_Declarations): Check the convention consistency among
14038 primitive overriding operations of a tagged record type.
14040 2006-10-31 Robert Dewar <dewar@adacore.com>
14041 Hristian Kirtchev <kirtchev@adacore.com>
14042 Javier Miranda <miranda@adacore.com>
14043 Ed Schonberg <schonberg@adacore.com>
14045 * sem_ch8.adb: Minor error msg rewording
14046 (Undefined): When checking for misspellings, invert arguments (to get
14047 expected and found set right)
14048 (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
14049 (Analyze_Generic_Renaming): Same fix
14050 (Use_One_Package): Do not take into account the internal entities of
14051 abstract interfaces during the analysis of entities that are marked
14052 as potentially use-visible.
14053 (Find_Type): Handle the case of an attribute reference for
14054 implementation defined attribute Stub_Type (simply let the analysis of
14055 the attribute reference rewrite it).
14056 (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
14057 type that appears in a Use_Type clause.
14058 (Analyze_Object_Renaming): Add support for renaming of the Priority
14060 (Find_Type): In Ada 2005, a task type can be used within its own body,
14061 when it appears in an access definition.
14062 (Analyze_Object_Renaming): Remove warning on null_exclusion.
14063 (Analyze_Object_Renaming): Introduce checks for required null exclusion
14064 in a formal object declaration or in a subtype declaration.
14065 (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
14066 (Check_Null_Exclusion): New local routine to
14067 Analyze_Subprogram_Renaming. Check whether the formals and return
14068 profile of a renamed subprogram have required null exclusions when
14069 their counterparts of the renaming already impose them.
14070 (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
14071 Determine whether an entity is inside a generic scope.
14072 (In_Open_Scope): First pass of documentation update.
14073 (Find_Expanded_Name): Add support for shadow entities associated with
14074 limited withed packages. This is required to handle nested packages.
14075 (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
14076 that makes a renaming of a limited withed package illegal.
14078 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
14079 Ed Schonberg <schonberg@adacore.com>
14081 * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
14082 Check_Overriding_Indicator.
14083 (Analyze_Task_Definition): Ditto.
14084 (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
14085 (Check_Overriding_Indicator): To find overridden interface operation,
14086 examine only homonyms that have an explicit subprogram declaration, not
14087 inherited operations created by an unrelated type derivation.
14088 (Check_Overriding_Indicator): When checking for the presence of "null"
14089 in a procedure, ensure that the queried node is a procedure
14091 (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
14092 type when the formal is an access to variable.
14093 (Analyze_Protected_Type): Add check for Preelaborable_Initialization
14094 (Analyze_Task_Type): Same addition
14095 (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
14096 provide navigation capabilities for entries.
14098 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
14099 Ed Schonberg <schonberg@adacore.com>
14100 Javier Miranda <miranda@adacore.com>
14101 Gary Dismukes <dismukes@adacore.com>
14103 * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
14104 inherited from an interface ancestor by another interface in the
14105 context of an instance as 'late'.
14106 (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
14107 of a call to a function that dispatches on access result.
14108 (Check_Dispatching_Operation): In case of late overriding of a primitive
14109 that covers abstract interface subprograms we register it in all the
14110 secondary dispatch tables associated with abstract interfaces.
14111 (Check_Dispatching_Call): Add check that a dispatching call is not made
14112 to a function with a controlling result of a limited type. This is a
14113 current implementation restriction.
14114 (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
14115 (Check_Dispatching_Operation): Do no emit a warning if the controlling
14116 argument is an interface type that is a generic formal.
14117 (Is_Interface_Subprogram): Removed.
14118 (Check_Dispatching_Operation): If the subprogram is not a dispatching
14119 operation, check the formals to handle the case in which it is
14120 associated with an abstract interface type.
14122 2006-10-31 Robert Dewar <dewar@adacore.com>
14123 Ed Schonberg <schonberg@adacore.com>
14125 * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
14126 Add new calls to this procedure during traversal
14127 (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
14128 another unit if expansion is disabled.
14130 2006-10-31 Robert Dewar <dewar@adacore.com>
14132 * sem_eval.adb (Compile_Time_Compare): Make use of information from
14133 Current_Value in the conditional case, to evaluate additional
14134 comparisons at compile time.
14136 2006-10-31 Ed Schonberg <schonberg@adacore.com>
14137 Hristian Kirtchev <kirtchev@adacore.com>
14138 Javier Miranda <miranda@adacore.com>
14140 * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
14141 subprogram type to provide better diagnostics in case of ambiguity.
14142 (Covers): Handle coverage of formal and actual anonymous access types in
14143 the context of generic instantiation.
14144 (Covers/Interface_Present_In_Ancestors): Use the base type to manage
14145 abstract interface types; this is required to handle concurrent types
14146 with discriminants and abstract interface types.
14147 (Covers): Include type coverage of both regular incomplete subtypes and
14148 incomplete subtypes of incomplete type visibles through a limited with
14151 2006-10-31 Robert Dewar <dewar@adacore.com>
14152 Hristian Kirtchev <kirtchev@adacore.com>
14153 Ed Schonberg <schonberg@adacore.com>
14155 * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
14156 messages for entities in packages which are not used.
14157 (Collect_Synchronized_Interfaces): New procedure.
14158 (Overrides_Synchronized_Primitive): New function.
14159 (Denotes_Discriminant): Extend predicate to apply to task types.
14160 Add missing continuation marks in error msgs
14161 (Unqualify): New function for removing zero or more levels of
14162 qualification from an expression. There are numerous places where this
14163 ought to be used, but we currently only deal properly with zero or one
14165 (In_Instance); The analysis of the actuals in the instantiation of a
14166 child unit is not within an instantiation, even though the parent
14167 instance is on the scope stack.
14168 (Safe_To_Capture_Value): Exclude the case of variables that are
14170 (Check_Obsolescent): Removed
14171 (Is_Aliased_View): A reference to an enclosing instance in an aggregate
14172 is an aliased view, even when rewritten as a reference to the target
14173 object in an assignment.
14174 (Get_Subprogram_Entity): New function
14175 (Known_To_Be_Assigned): New function
14176 (Type_Access_Level): Compute properly the access level of a return
14177 subtype that is an anonymous access type.
14178 (Explain_Limited_Type): Correct use of "\" for continuation messages.
14179 (Is_Transfer): The new extended_return_statement causes a transfer of
14181 (Has_Preelaborable_Initialization): New function
14182 (Has_Null_Exclusion): New function. Given a node N, determine whether it
14183 has a null exclusion depending on its Nkind.
14184 Change Is_Lvalue to May_Be_Lvalue
14185 (May_Be_Lvalue): Extensive additional code to deal with subprogram
14186 arguments (IN parameters are not Lvalues, IN OUT parameters are).
14187 (Safe_To_Capture_Value): Extend functionality so it can be used for
14188 the current value condition case.
14189 (Has_Compatible_Alignment): New function
14190 (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
14191 objects to handle the Ada 2005 case, where aliasedness no longer implies
14192 that the object is constrained. In particular, for dereferenced names,
14193 the designated object must be assumed to be unconstrained.
14194 (Kill_Current_Values): Properly deal with the case where we encounter
14195 a loop in the scope chain.
14196 (Safe_To_Capture_Value): Do not let a loop stop us from capturing
14198 (Compile_Time_Constraint_Error): Improve error message in error case
14200 * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
14201 associated with entities of abstract interface primitives.
14202 Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
14204 2006-10-31 Robert Dewar <dewar@adacore.com>
14206 * s-osinte-tru64.adb:
14207 Mark Asm statements Volatile to prevent warnings (seems a
14208 reasonable change anyway)
14211 * s-mastop-irix.adb: Add Volatile to Asm statements
14212 Suppresses warning, and seems appropriate in any case
14214 * s-osinte-vms.adb: Add Volatile to Asm statement
14216 * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
14218 * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
14220 Add call to Check_Code_Statement
14222 2006-10-31 Robert Dewar <dewar@adacore.com>
14223 Ed Schonberg <schonberg@adacore.com>
14224 Bob Duff <duff@adacore.com>
14226 * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
14227 Synchronized_Present): Add Formal_Derived_Type_Definition and
14228 Private_Extension_Declaration to the list of assertions.
14229 (Is_Entry_Barrier_Function): New flag
14230 (Has_Self_Reference): New flag on aggregates, to indicate that they
14231 contain a reference to the enclosing type, inserted through a default
14233 (Next_Rep_Item): Move from Node4 to Node5.
14234 (Entity): Add this field for N_Attribute_Definition_Clause.
14235 (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
14236 (N_Return_Object_Declaration): Remove this node kind. We now use
14237 N_Object_Declaration instead.
14238 (Actual_Designated_Subtype): Move to a different place to make room in
14239 N_Extended_Return_Statement.
14240 (Procedure_To_Call): Move to a different place to make room in
14241 N_Extended_Return_Statement.
14242 (Return_Type): Removed this field to make room in return statements
14244 (Return_Statement_Entity): New field in return statements, in part to
14245 replace Return_Type, and in part to support the fact that return
14246 statements are now pushed on the scope stack during semantic analysis.
14247 (Return_Object_Declarations): New field to support extended return
14249 (N_Extended_Return_Statement): New node for extended_return_statement
14251 (N_Return_Object_Declaration): New node for part of
14252 extended_return_statement nonterminal. Needed because all the necessary
14253 fields won't fit in N_Extended_Return_Statement.
14254 Generic_associations now carry the Box_Present flag, to indicate a
14255 default for an actual in a partially parametrized formal package.
14257 * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
14258 (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
14259 and for the new predefined dispatching policies: EDF_Across_Priorities,
14260 Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
14261 Introduce new name Stub_Type for implementation defined attribute.
14262 Add pragma Preelaborable_Initialization
14263 Add entry for Priority attribute.
14264 Add Pragma_Wide_Character_Encoding
14265 (Get_Convention_Name): Given a convention id, this function returns the
14266 corresponding name id from the names table.
14268 2006-10-31 Ed Schonberg <schonberg@adacore.com>
14269 Robert Dewar <dewar@adacore.com>
14270 Bob Duff <duff@adacore.com>
14272 * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
14273 print null exclusion twice in the case of an access definition,
14274 Implement new -gnatL switch
14275 Remove N_Return_Object_Declaration. We now use
14276 N_Object_Declaration instead. Implement the case for
14277 N_Extended_Return_Statement. Alphabetize the cases.
14278 Add cases for new nodes N_Extended_Return_Statement and
14279 N_Return_Object_Declaration. The code is not yet written.
14280 Update the output for N_Formal_Object_Declaration
14281 and N_Object_Renaming_Declaration.
14282 (Write_Itype): Account for the case of a modular integer subtype whose
14283 base type is private.
14285 2006-10-31 Arnaud Charlet <charlet@adacore.com>
14287 * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
14288 Remove elaboration code, now done in the binder.
14290 * s-rident.ads: Make this unit Preelaborate.
14291 (No_Restrictions): New constant used to clean up code and follow
14292 preelaborate constraints.
14295 Add System.Restrictions dependence, referenced directly from the
14296 binder generated file.
14298 2006-10-31 Gary Dismukes <dismukes@adacore.com>
14300 * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
14301 True when AAMP extended floating-point is in use (48-bit). Change type
14302 ByteLF to ByteLLF, add new array type ByteLF and condition the size of
14303 the two byte array types on AFloat. Change type of IV_Ilf overlay
14304 variable from Byte8 to ByteLF. Add appropriate initializations of
14305 floating-point overlays for AAMP cases.
14307 2006-10-31 Javier Miranda <miranda@adacore.com>
14309 * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
14310 (Get_Ceiling): New subprogram that returns
14311 the ceiling priority of the protected object.
14312 (Set_Ceiling): New subprogram that sets the new ceiling priority of
14313 the protected object.
14315 * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
14317 * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
14319 2006-10-31 Jose Ruiz <ruiz@adacore.com>
14321 * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
14322 requeuing to the same protected object to give higher priority tasks
14323 the opportunity to execute.
14325 2006-10-31 Robert Dewar <dewar@adacore.com>
14327 * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
14328 add more precise check for the character sequence that follows '[' to
14329 avoid possible confusion in case if '[' is the last character of a
14331 (Scan_Wide): Always allow brackets encoding
14333 2006-10-31 Olivier Hainque <hainque@adacore.com>
14335 * s-stchop.ads: make this unit preelaborate. This is desirable in
14336 general and made mandatory by the use of this unit by s-taprop which
14337 is itself preelaborate.
14339 * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
14340 Td_Events component.
14342 2006-10-31 Vincent Celier <celier@adacore.com>
14344 * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
14347 2006-10-31 Vincent Celier <celier@adacore.com>
14349 * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
14351 2006-10-31 Vincent Celier <celier@adacore.com>
14353 * makegpr.adb (Check_Compilation_Needed): Take into account path names
14355 (Check_Compilation_Needed): When checking a C or C++ source, do not
14356 resolve symbolic links.
14357 (Display_Command): New Boolean parameter Ellipse, defaulted to False.
14358 When not in verbose mode and Ellipse is True, display "..." for the
14359 first argument with Display set to False.
14360 (Build_Global_Archive): Always set Display True for the first object
14361 file. Call Display_Command with Ellipse set to True.
14363 2006-10-31 Matt Heaney <heaney@adacore.com>
14365 * a-crbtgo.ads: Commented each subprogram
14367 * a-crbtgo.adb: Added reference to book from which algorithms were
14370 * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
14371 indicate which child.
14372 (Generic_Conditional_Insert): changed parameter name from "Success" to
14374 (Generic_Unconditional_Insert_With_Hint): improved algorithm
14376 * a-coorse.adb (Replace_Element): changed parameter name in call to
14377 conditional insert operation.
14379 * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
14381 * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
14384 * a-ciorse.adb (Replace_Element): changed parameter name in call to
14385 conditional insert operation.
14387 * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
14390 * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
14391 instead of mode inout.
14393 * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
14395 (Generic_Read): preserve existing buckets array if possible
14396 (Generic_Write): don't send buckets array length anymore
14398 * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
14399 instead of mode inout.
14401 * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
14402 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
14404 * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
14405 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
14406 (Replace_Element): local operation is now an instantiation
14408 * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
14409 check current length.
14410 (Generic_Replace_Element): new operation
14412 2006-10-31 Doug Rupp <rupp@adacore.com>
14414 * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
14415 Call TBK$SYMBOLIZE without omitting parameters.
14417 2006-10-31 Vincent Celier <celier@adacore.com>
14419 * symbols-processing-vms-ia64.adb,
14420 symbols-processing-vms-alpha.adb (Process): Do not include symbols
14421 that come from generic instantiations in bodies.
14423 2006-10-31 Pat Rogers <rogers@adacore.com>
14425 * a-rttiev.ads, a-rttiev.adb:
14426 This is a significant redesign primarily for the sake of automatic
14427 timer task termination but also to fix a design flaw.
14428 Therefore we are now using an RTS lock, instead of a protected
14429 object, to provide mutual exclusion to the queue of pending events
14430 and the type Timing_Event is no longer a protected type.
14432 2006-10-31 Robert Dewar <dewar@adacore.com>
14433 Cyrille Comar <comar@adacore.com>
14434 Ben Brosgol <brosgol@adacore.com>
14436 * debug.adb: Update flags documentation
14438 * gnat_ugn.texi: Add documentation for new -gnatwq switch
14439 Clean up documentation for several other warning switches
14440 Clarify how task stack size can be specified with various
14441 versions of Windows.
14442 Add note that -gnatVo includes ranges including loops
14443 Add documentation for -gnatL switch
14444 Add note on elaboration warning for initializing variables
14445 Add documentation for new -gnatwt warning switch
14446 Document new form of pragma Warnings (On|Off, string)
14447 Add comment on use of pragma Warnings to control warnings
14448 Add documentation for -gnatjnn switch
14449 Modify section on interfacing with C for VMS 64-bit.
14450 Add doc for -gnatVe/E
14451 Add documentation of new warning flags -gnatww/-gnatwW
14452 Add warnings about address clause overlays to list of warnings
14453 (Exception Handling Control): Document that the option --RTS must be
14454 used consistently for gcc and gnatbind.
14455 Clarify that inlining is not always possible
14456 Update documentation on pragma Unchecked_Union.
14459 Add documentation for new extended version of pragma Obsolescent
14460 Add documentation for implementation defined attribute 'Stub_Type.
14461 Add note on use of Volatile in asm statements
14462 Add documentation on use of pragma Unreferenced in context clause
14463 Document new form of pragma Warnings (On|Off, pattern)
14464 Document pragma Wide_Character_Encoding
14465 Add note that pragma Restrictions (No_Elaboration_Code) is only fully
14466 enforced if code generation is active.
14467 Add section on pragma Suppress to document GNAT specific check
14469 Clarify difference between No_Dispatching_Calls & No_Dispatch.
14470 Add documentation for pragma Restrictions (No_Elaboration_Code)
14473 Add comments on layout of subprogram local variables in the
14474 presence of nested subprograms.
14476 * ug_words: Resync.
14478 * elists.ads: Minor reformatting
14479 Node returns Node_Or_Entity_Id (doc change only)
14481 * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
14483 * g-arrspl.ads (Create): Update comments.
14485 * sem.ads: Add details on the handling of the scope stack.
14487 * usage.adb: Update documentation.
14489 * validsw.ads, validsw.adb:
14490 Add definition of Validity_Check_Components and implement -gnatVe/E
14492 * vms_data.ads: Add missing VMS qualifiers.
14494 * s-addope.ads: Add documentation on overflow and divide by zero
14496 2006-10-31 Robert Dewar <dewar@adacore.com>
14497 Thomas Quinot <quinot@adacore.com>
14498 Arnaud Charlet <charlet@adacore.com>
14500 * fmap.adb: Put routines in alpha order
14502 * g-boumai.ads: Remove redundant 'in' keywords
14504 * g-cgi.adb: Minor reformatting
14506 * g-cgi.ads: Remove redundant 'in' keywords
14508 * get_targ.adb: Put routines in alpha order
14510 * prj-attr.ads: Minor reformatting
14512 * s-atacco.ads: Minor reformatting
14514 * scn.adb: Put routines in alpha order
14516 * sinput-l.adb: Minor comment fix
14518 * sinput-p.adb: Minor comment fix
14520 * s-maccod.ads: Minor reformatting
14522 * s-memory.adb: Minor reformatting
14524 * s-htable.adb: Fix typo in comment.
14526 * s-secsta.adb: Minor comment update.
14528 * s-soflin.adb: Minor reformatting
14531 Add comment about odd qualification in Storage_Offset declaration
14534 Remove unnecessary 'in' keywords for formal parameters.
14536 * treeprs.adt: Minor reformatting
14538 * urealp.adb: Put routines in alpha order
14540 * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
14543 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
14545 * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
14547 * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
14548 workaround as on other platforms.
14550 * g-eacodu-vms.adb: Remove redundant 'in' keywords
14551 * g-expect-vms.adb: Remove redundant 'in' keywords
14553 * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
14554 clear error message if the list-of-files file cannot be opened.
14556 * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
14557 equality operator is always visible.
14559 * lang.opt: Woverlength-strings: New option.
14562 Update copyright, since nmake.ads and nmake.adb have changed.
14564 * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
14565 (Binder_Output_Time_Stamps_Set): removed.
14566 (Old_Binder_Output_Time_Stamp): idem.
14567 (New_Binder_Output_Time_Stamp): idem.
14568 (Recording_Time_From_Last_Bind): idem.
14569 (Recording_Time_From_Last_Bind): Make constant.
14571 * output.ads, output.adb (Write_Str): Allow LF characters
14572 (Write_Spaces): New procedure
14574 * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
14576 * inline.adb: Minor reformatting
14578 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
14580 * s-mastop-vms.adb: Remove redundant 'in' keywords
14582 * s-osprim-vms.adb: Remove redundant 'in' keywords
14584 * s-trafor-default.adb: Remove redundant 'in' keywords
14586 * 9drpc.adb: Remove redundant 'in' keywords
14588 * s-osinte-mingw.ads: Minor reformatting
14590 * s-inmaop-posix.adb: Minor reformatting
14592 * a-direio.ads: Remove quotes from Compile_Time_Warning message
14594 * a-exexda.adb: Minor code reorganization
14596 * a-filico.adb: Minor reformatting
14598 * a-finali.adb: Minor reformatting
14600 * a-nudira.ads: Remove quote from Compile_Time_Warning message
14602 * a-numeri.ads: Minor reformatting
14604 * a-sequio.ads: Remove quotes from Compile_Time_Warning message
14606 * exp_pakd.ads: Fix obsolete comment
14608 * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
14609 a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
14610 Probably not a bug, but certainly neater and more efficient.
14612 * a-tienio.adb: Minor reformatting
14614 * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
14615 Avoid assuming low bound of string is 1.
14617 * gnatbind.adb: Change Bindusg to package and rename procedure as
14618 Display, which now ensures that it only outputs usage information once.
14619 (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
14621 * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
14624 * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
14626 (Match): Add pragma Assert to ensure that Matches'First is zero
14628 * g-regpat.ads (Match): Document that Matches lower bound must be zero
14630 * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
14631 documented preconditions (also kills warnings about bad indexes).
14633 * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
14635 (Build_Import_Library): Ditto;
14637 * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
14639 * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
14641 * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
14642 lower bound of choice table is 1.
14644 * sem_case.ads (Analyze_Choices): Document that lower bound of
14647 * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
14650 * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
14651 and add appropriate Assert pragma to suppress warnings.
14653 * atree.h, atree.ads, atree.adb
14654 Change Elist24 to Elist25
14655 Add definitions of Field28 and Node28
14656 (Traverse_Field): Use new syntactic parent table in sinfo.
14658 * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
14660 * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
14662 * exp_tss.adb: Put routines in alpha order
14664 * fe.h: Remove redundant declarations.
14666 2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
14668 * utils.c (builtin_function): Rename to gnat_builtin_function.
14669 Move common code to add_builtin_function.
14670 * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
14671 gnat_builtin_function.
14672 * gigi.h (builtin_function): Rename to gnat_builtin_function.
14673 Change the signature.
14675 2006-10-16 Brooks Moses <bmoses@stanford.edu>
14677 * Makefile.in: Add TEXI2PDF definition.
14678 * Make-lang.in: Add "ada.pdf" target.
14680 2006-10-03 Kazu Hirata <kazu@codesourcery.com>
14682 * decl.c, utils.c: Fix comment typos.
14683 * utils.c: Fix a typo.
14685 2006-09-28 Eric Botcazou <ebotcazou@adacore.com>
14687 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
14688 on "pure" Ada subprograms if SJLJ exceptions are used.
14689 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
14690 on the declaration node of JMPBUF_SAVE.
14691 * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
14692 of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
14693 * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
14695 2006-08-20 Laurent Guerby <laurent@guerby.net>
14698 g-socket.adb (Bind_Socket): Call Set_Address.
14700 2006-09-15 Eric Botcazou <ebotcazou@adacore.com>
14703 * decl.c (same_discriminant_p): New static function.
14704 (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
14705 subtype and we have discriminants, fix up the COMPONENT_REFs
14706 for the discriminants to make them reference the corresponding
14707 fields of the parent subtype after it has been built.
14709 2006-09-15 Roger Sayle <roger@eyesopen.com>
14712 * utils.c (max_size): Perform constant folding of (A ? B : C) - D
14713 into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
14715 2006-09-13 Olivier Hainque <hainque@adacore.com>
14718 * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
14719 of a SAVE_EXPR, just make the operand addressable/not-readonly and
14720 let the common gimplifier code make and propagate a temporary copy.
14721 (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
14722 out/in-out actuals and defer setting the addressable/readonly bits
14725 2006-09-13 Eric Botcazou <ebotcazou@adacore.com>
14728 * decl.c (components_to_record): Defer emitting debug info for the
14729 record type associated with the variant until after we are sure to
14732 2006-09-13 Eric Botcazou <ebotcazou@adacore.com>
14735 * gigi.h (gnat_internal_attribute_table): Declare.
14736 * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
14737 * utils.c (gnat_internal_attribute_table): New global variable.
14738 (builtin_function): Always call decl_attributes on the builtin.
14739 (handle_const_attribute): New static function.
14740 (handle_nothrow_attribute): Likewise.
14742 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
14744 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
14746 2006-06-23 Olivier Hainque <hainque@adacore.com>
14748 * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
14749 not been able to get a constant upper bound from TYPE_SIZE_UNIT.
14751 2006-06-20 James A. Morrison <phython@gcc.gnu.org>
14752 Eric Botcazou <ebotcazou@adacore.com>
14755 * Make-lang.in: Add check-gnat to lang_checks. Rename existing
14756 check-gnat into check-acats.
14758 2006-06-17 Karl Berry <karl@gnu.org>
14760 * gnat-style.texi (@dircategory): Use "Software development"
14761 instead of "Programming", following the Free Software Directory.
14763 2006-06-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14766 * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
14768 2006-06-06 Laurent Guerby <laurent@guerby.net>
14771 mlib-utl.adb: Use Program_Name.
14773 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
14775 * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
14776 sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
14777 trans.c, utils.c: Fix comment typos. Follow spelling
14779 * gnat_rm.texi, gnat_ugn.texi, : Fix typos. Follow spelling
14782 2006-05-19 Nicolas Setton <setton@adacore.com>
14784 * misc.c (gnat_dwarf_name): New function.
14785 (LANG_HOOKS_DWARF_NAME): Define to it.
14787 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
14789 * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
14790 (ada/misc.o): Likewise.
14791 (ada/utils.o): Likewise.
14793 2006-04-08 Aurelien Jarno <aurel32@debian.org>
14795 * Makefile.in: Add Ada support for GNU/kFreeBSD.
14796 * s-osinte-kfreebsd-gnu.ads: New file.
14798 2006-03-29 Carlos O'Donell <carlos@codesourcery.com>
14800 * Make-lang.in: Rename docdir to gcc_docdir.
14802 2006-03-04 Eric Botcazou <ebotcazou@adacore.com>
14804 * gigi.h (get_ada_base_type): Delete.
14805 * utils2.c (get_ada_base_type): Likewise.
14806 * trans.c (convert_with_check): Operate in the real base type.
14808 2006-03-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14810 * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
14812 2006-03-02 Richard Sandiford <richard@codesourcery.com>
14814 * utils.c (create_var_decl): Use have_global_bss_p when deciding
14815 whether to make the decl common.
14817 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
14819 * Make-lang.in (Ada): Remove.
14820 (.PHONY): Remove Ada
14822 2006-02-17 Ed Schonberg <schonberg@adacore.com>
14824 * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
14825 aggregate, check the interpretations of the other operand to find one
14826 that may be a boolean array.
14828 (Analyze_Selected_Component): Fix flow-of-control typo in case where
14829 the prefix is a private extension.
14831 2006-02-17 Eric Botcazou <botcazou@adacore.com>
14834 * utils2.c (find_common_type): If both input types are BLKmode and
14835 have the same constant size, keep using the first one.
14837 * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
14839 * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
14841 * misc.c (gnat_handle_option): New case for -Woverlength-strings.
14843 2006-02-17 Jose Ruiz <ruiz@adacore.com>
14845 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
14846 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
14847 s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
14848 s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
14849 Abort_Defer/Undefer pairs to avoid the possibility of a task being
14850 aborted while owning a lock.
14852 2006-02-17 Javier Miranda <miranda@adacore.com>
14853 Robert Dewar <dewar@adacore.com>
14855 * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
14856 through an access to class-wide interface we force the displacement of
14857 the pointer to the allocated object to reference the corresponding
14858 secondary dispatch table.
14859 (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
14860 if Long_Shifts are supported on the target, even if 64 bit divides
14861 are not supported (configurable run time mode).
14862 (Expand_N_Type_Conversion): Do validity check if validity checks on
14863 operands are enabled.
14864 (Expand_N_Qualified_Expression): Do validity check if validity checks
14865 on operands are enabled.
14867 2006-02-17 Ed Schonberg <schonberg@adacore.com>
14869 * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
14870 must be materialized when the renamed expression is an explicit
14873 2006-02-17 Ed Schonberg <schonberg@adacore.com>
14875 * freeze.adb (Statically_Discriminated_Components): Return false if
14876 the bounds of the type of the discriminant are not static expressions.
14878 * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
14879 the bounds of the discriminant type are not static.
14881 2006-02-17 Robert Dewar <dewar@adacore.com>
14883 * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
14884 then we close To if it is valid.
14886 2006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
14888 * init.c (facility_resignal_table): new array
14889 (__gnat_default_resignal_p): enhance default predicate to resignal if
14890 VMS condition has one of the predefined facility codes.
14892 2006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
14894 * Makefile.in: Use VMS64 specialized versions of several units in
14895 Interfaces.C hierarchy to be compatible with HP C default size choices.
14896 Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
14898 2006-02-17 Ed Schonberg <schonberg@adacore.com>
14900 * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
14901 instantiation, the corresponding entity is the related_instance of the
14902 wrapper package created for the instance.
14904 2006-02-17 Ed Schonberg <schonberg@adacore.com>
14906 * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
14907 the current instance is nested within another instance in a child unit.
14909 2006-02-17 Javier Miranda <miranda@adacore.com>
14910 Ed Schonberg <schonberg@adacore.com>
14912 * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
14913 type we cannot inherit the primitive operations; we inherit the
14914 Corresponding_Record_Type (which has the list of primitive operations).
14915 (Check_Anonymous_Access_Types): When creating anonymous access types for
14916 access components, use Rewrite in order to preserve the tree structure,
14918 (Analyze_Object_Declaration): For limited types with access
14919 discriminants with defaults initialized by an aggregate, obtain
14920 subtype from aggregate as for other mutable types.
14921 (Derived_Type_Declaration): If the derived type is a limited interface,
14922 set the corresponding flag (Is_Limited_Record is not sufficient).
14924 2006-02-17 Ed Schonberg <schonberg@adacore.com>
14926 * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
14927 to inline a function that returns an unconstrained type, the return
14928 expression must be the first variable declared in the body of the
14931 2006-02-17 Javier Miranda <miranda@adacore.com>
14933 * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
14934 abstract interface type, the static analysis is not enough to know if
14935 the interface is implemented or not by the source tagged type. Hence
14936 we must pass the work to the expander to generate the required code to
14937 evaluate the conversion at run-time.
14938 (Resolve_Equality_Op): Do not apply previous
14939 transformation if expansion is disasbled, to prevent anomalies when
14940 locating global references in a generic unit.
14942 2006-02-17 Vincent Celier <celier@adacore.com>
14944 * snames.ads, snames.adb: New standard names for new project attributes:
14945 archive_builder, archive_indexer, compiler_pic_option,
14946 config_body_file_name, config_body_file_name_pattern,
14947 config_file_switches, config_file_unique, config_spec_file_name,
14948 config_spec_file_name_pattern, default_builder_switches,
14949 default_global_compiler_switches, default_language,
14950 dependency_file_kind, global_compiler_switches, include_path,
14951 include_path_file, language_kind, linker_executable_option,
14952 linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
14953 roots, runtime_project.
14955 2006-02-17 Matthew Heaney <heaney@adacore.com>
14957 * a-convec.ads, a-convec.adb:
14958 (operator "&"): handle potential overflow for large index types
14959 (Insert): removed Contraint_Error when using large index types
14960 (Insert_Space): removed Constraint_Error for large index types
14961 (Length): moved constraint check from Length to Insert
14963 * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
14964 as not null access.
14965 Explicit raise statements now include an exception message.
14966 (operator "&"): handle potential overflow for large index types
14967 (Insert): removed Contraint_Error when using large index types
14968 (Insert_Space): removed Constraint_Error for large index types
14969 (Length): moved constraint check from Length to Insert
14971 2006-02-17 Robert Dewar <dewar@adacore.com>
14973 * s-wchcnv.adb: Document handling of [ on output (we do not change
14974 this to ["5B"] and the new comments say why not.
14977 Add note for -gnatVo that this now includes the cases of type
14978 conversions and qualified expressions.
14979 Add comments on handling of brackets encoding for Text_IO
14981 2006-02-17 Ramon Fernandez <fernandez@adacore.com>
14982 Thomas Quinot <quinot@adacore.com>
14983 Robert Dewar <dewar@adacore.com>
14984 Javier Miranda <miranda@adacore.com>
14986 * expander.adb: Fix typo in comment
14988 * exp_pakd.adb: Fix typo
14989 Minor comment reformatting.
14991 * g-dyntab.adb: Minor reformatting
14993 * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
14994 aliased subprograms to look for the abstract interface subprogram.
14996 2006-02-16 Eric Botcazou <ebotcazou@adacore.com>
14998 * env.c (__gnat_setenv): Use size_t.
14999 (__gnat_unsetenv): Likewise.
15000 (__gnat_clearenv): Likewise.
15002 2006-02-16 Arnaud Charlet <charlet@adacore.com>
15004 * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
15006 2006-02-13 Arnaud Charlet <charlet@adacore.com>
15008 * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
15009 g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
15010 i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
15011 s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
15012 s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
15013 s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
15014 s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
15015 s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
15016 s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
15019 2006-02-13 Jose Ruiz <ruiz@adacore.com>
15021 * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
15022 protection against race conditions is not needed.
15023 (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
15025 (Set_Specific_Handler): Add mutual exclusive access to the specific
15027 (Specific_Handler): Add mutual exclusive access for retrieving the
15030 * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
15033 * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
15034 Fall_Back_Handler and Specific_Handler.
15036 * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
15037 termination handlers.
15038 Set two different owerflow depending on the maximal stack size.
15040 * s-solita.adb (Task_Termination_Handler_T): Document why explicit
15041 protection against race conditions is not needed when executing the
15042 task termination handler.
15044 2006-02-13 Robert Dewar <dewar@adacore.com>
15046 * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
15047 a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
15048 a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
15049 a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
15050 a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
15051 a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
15052 a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
15053 a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
15054 a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
15055 a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
15056 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
15057 a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
15058 a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
15059 a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
15060 a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
15061 a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
15062 a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
15063 a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
15064 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
15065 a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
15066 g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
15067 g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
15068 mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
15069 prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
15070 s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
15071 s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
15072 s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
15073 s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
15074 s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
15075 s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
15076 a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
15077 fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
15078 par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
15079 system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
15082 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
15084 * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
15085 s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
15086 s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
15087 s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
15088 a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
15089 s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
15090 a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
15091 s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
15092 s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
15094 2006-02-13 Arnaud Charlet <charlet@adacore.com>
15096 * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
15097 s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
15098 s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
15099 s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
15100 s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
15101 s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
15102 replaced by anonymous access type.
15103 (pthread_sigmask): Now take an access sigset_t
15105 * s-osinte-hpux.ads: Ditto.
15106 (pthread_mutex_t, pthread_cond_t): Update definitions to support
15107 properly 32 and 64 bit ABIs.
15109 2006-02-13 Pascal Obry <obry@adacore.com>
15111 * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
15112 s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
15113 s-taprop-linux.adb, s-taprop-solaris.adb,
15114 s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
15115 adjustement is already done when calling this routine.
15117 2006-02-13 Pascal Obry <obry@adacore.com>
15119 * system-mingw.ads (Underlying_Priorities): Update the priority mapping
15120 table to take advantage of the 16 priority levels available on Windows
15121 2000 and XP. On NT4 there are only 7 priority levels, this is properly
15122 supported by this new mapping.
15124 2006-02-13 Nicolas Setton <setton@adacore.com>
15126 * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
15127 (get_encoding): New subprogram. Extracts the encodings from an encoded
15130 2006-02-13 Pascal Obry <obry@adacore.com>
15131 Nicolas Roche <roche@adacore.com>
15132 Arnaud Charlet <charlet@adacore.com>
15134 * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
15136 (__gnat_try_lock): Add unicode support by using a specific section on
15138 (__gnat_get_current_dir): Idem.
15139 (__gnat_open_read): Idem.
15140 (__gnat_open_rw): Idem.
15141 (__gnat_open_create): Idem.
15142 (__gnat_create_output_file): Idem.
15143 (__gnat_open_append): Idem.
15144 (__gnat_open_new): Idem.
15145 (__gnat_file_time_name): Idem.
15146 (__gnat_set_file_time_name): Idem.
15147 (__gnat_stat): Idem.
15148 (win32_no_block_spawn): Idem.
15149 (__gnat_locate_exec_on_path): Idem.
15150 (__gnat_opendir): New routine.
15151 (__gnat_closedir): Idem.
15152 (__gnat_readdir): Add new parameter length (pointer to int). Update
15153 implementation to use it and add specific Win32 code for Unicode
15155 (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
15156 (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
15157 (convert_addresses): Do not define this dummy routine on VMS.
15159 * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
15160 runtime Unicode support will be activated.
15161 (S2WS): String to Wide-String conversion. This version just copy a
15162 string in non Unicode version.
15163 (WS2S): Wide-String to String conversion. This version just copy a
15164 string in non Unicode version.
15166 * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
15167 (Open): Now import __gnat_opendir from adaint.c.
15168 (Read): Change the implementation to support unicode characters. It is
15169 not possible to use strlen() on Windows as this version supports only
15170 standard ASCII characters. So the length of the directory entry is now
15171 returned from the imported __gnat_readdir routine.
15172 Update copyright notice.
15174 * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
15175 (opendir): Moved to adaint.c.
15177 * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
15178 (Get_Directory): Fix wrong indexing.
15179 (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
15180 __gnat_getenv from env.c
15181 (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
15184 * env.h, env.c: New file.
15186 * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
15187 adaint.c by __gnat_getenv from env.c
15189 * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
15190 adaint.c by __gnat_getenv from env.c
15192 * Make-lang.in: Add env.o in the list of C object needed by gnat1
15194 Update dependencies.
15196 2006-02-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
15197 Olivier Hainque <hainque@adacore.com>
15198 Eric Botcazou <ebotcazou@adacore.com>
15200 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
15202 * gigi.h (value_factor_p): Add prototype and description, now public.
15204 * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
15205 promotion for field with rep clause if the associated size was proven
15207 Expand comments describing attempts to use a packable type.
15208 (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
15209 E_Floating_Point_Subtype>: Inherit alias set of what we are making a
15210 subtype of to ensure conflicts amongst all subtypes in a hierarchy,
15211 necessary since these are not different types and pointers may
15212 actually designate any subtype in this hierarchy.
15213 (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
15214 discriminants but put them into record only if not Unchecked_Union;
15215 pass flag to components_to_record showing Unchecked_Union.
15216 (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
15217 components before variants; don't set TYPE_UNCHECKED_UNION_P.
15218 (components_to_record): New argument UNCHECKED_UNION.
15219 Remove special case code for Unchecked_Union and instead use main code
15220 with small changes.
15223 (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
15224 variable with the expression being built, only its inner field.
15226 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
15227 emit_sequence_entry_statements.
15228 (emit_sequence_entry_statements, body_with_handlers_p): Delete.
15229 (establish_gnat_vms_condition_handler): Move before
15230 Subprogram_Body_to_gnu.
15231 (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
15232 for a subprogram if it has a foreign convention or is exported.
15233 (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
15234 substituted for a CONST_DECL.
15235 (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
15236 Etype to assoc_to_constructor.
15237 (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
15238 discriminants of Unchecked_Union.
15239 (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
15240 don't need cluttering preprocessor directives.
15241 (establish_gnat_vms_condition_handler): New function. Establish the GNAT
15242 condition handler as current in the compiled function.
15243 (body_with_handlers_p): New function. Tell whether a given sequence of
15244 statements node is attached to a package or subprogram body and involves
15245 exception handlers possibly nested within inner block statements.
15246 (emit_sequence_entry_statements): New function, to emit special
15247 statements on entry of sequences when necessary. Establish GNAT
15248 condition handler in the proper cases for VMS.
15249 (Handled_Sequence_Of_Statements_to_gnu): Start block code with
15250 emit_sequence_entry_statements.
15252 * utils2.c (find_common_type): If both input types are BLKmode and
15253 have a constant size, use the smaller one.
15254 (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
15257 * utils.c (value_factor_p): Make public, to allow uses from other gigi
15259 (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
15260 (convert, case UNION_TYPE): Remove special treatment for unchecked
15264 (update_pointer_to): Update variants of pointer types to unconstrained
15265 arrays by attaching the list of fields of the main variant.
15267 2006-02-13 Arnaud Charlet <charlet@adacore.com>
15268 Robert Dewar <dewar@adacore.com>
15270 * a-exexpr.adb, a-exexpr-gcc.adb
15271 (Process_Raise_Exception): Removed, merged with Propagate_Exception.
15272 (Propagate_Exception): Now take extra From_Signal_Handler parameter.
15273 Remove code unused for exception propagation for the compiler itself
15274 from a-except.adb and update to still share separate packages.
15276 * a-except.ads, a-except.adb: Ditto.
15277 Add comments that this version is now used only by the compiler and
15278 other basic tools. The full version that includes the Ada 2005 stuff
15279 is in separate files a-except-2005.ads/adb. The reason is that we do
15280 not want to cause bootstrap problems with compilers not recognizing
15282 Add exception reason code PE_Implicit_Return
15283 Add new exception reason code (Null Exception_Id)
15285 * a-except-2005.adb, a-except-2005.ads: New files.
15287 * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
15289 * s-wchcon.adb: New file.
15291 * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
15292 (traceback.o deps): Likewise.
15293 (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
15294 Activate build of GMEM instrumentation library on VMS targets.
15295 (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
15296 Use a-except-2005.ads/adb for all run-time library builds unless
15297 specified otherwise.
15298 [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
15299 s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
15300 Use s-parame.adb on all native platforms.
15301 Use s-parame-vxworks.adb on all vxworks platforms.
15302 Add env.c env.h in LIBGNAT_SRCS
15303 Add env.o in LIBGNAT_OBJS
15304 (GNATMAKE_OBJS): Remove ctrl_c.o object.
15305 (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
15306 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
15307 supports VxWorks 6 RTPs.
15308 (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
15309 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
15311 * types.h, types.ads (Terminate_Program): New exception
15312 Add comment on modifying multiple versions of a-except.adb when the
15313 table of exception reasons is modified.
15314 Add exception reason code PE_Implicit_Return
15315 Add new exception reason code (Null Exception_Id)
15317 * clean.adb (Initialize): Get the target parameters before checking
15318 if target is OpenVMS. Move the OpenVMS specific code here from package
15319 body elaboration code.
15321 2006-02-13 Thomas Quinot <quinot@adacore.com>
15322 Vincent Celier <celier@adacore.com>
15323 Robert Dewar <dewar@adacore.com>
15325 * ali-util.adb (Get_File_Checksum): Update to account for change in
15326 profile of Initialize_Scanner.
15328 * gprep.adb (Gnatprep): Update to account for change in profile of
15329 Initialize_Scanner.
15330 (Process_One_File): Same.
15332 * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
15333 common code between Get_Code_Unit and Get_Source_Unit. Reimplement
15334 that behaviour using the new Unit information recorded in the source
15335 files table, rather than going through all units every time.
15336 (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
15337 (Get_Source_Unit): Same.
15339 * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
15340 change in profile of Initialize_Scanner.
15341 (Prepare_To_Preprocess): Same.
15343 * lib.ads: Fix typo in comment (templace -> template).
15345 * prj-part.adb (Parse_Single_Project): Update to account for change in
15346 profile of Initialize_Scanner.
15348 * scn.adb (Initialize_Scanner): Account for change in profile of
15349 Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
15350 Also record the association of the given Source_File_Index to the
15351 corresponding Unit_Number_Type.
15353 * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
15355 (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
15356 Remove Unit formal for generic scanner: this formal
15357 is only relevant to Scn (the scanner instance used to parse Ada source
15358 files), not to other instances. Update comment accordingly.
15359 (Scan): Use new function Snames.Is_Keyword_Name.
15361 * sinfo-cn.adb: Fix typo in comment.
15363 * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
15366 * sinput.ads (Source_File_Record): New component Unit, used to capture
15367 the unit identifier (if any) associated to a source file.
15369 * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
15370 Unit in Source_File_Record.
15372 * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
15373 in profile of Initialize_Scanner.
15375 * scans.adb (Initialize_Ada_Keywords): New procedure
15377 * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
15378 Ada keywords in the Namet table, without the need to call
15379 Initialize_Scanner.
15381 * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
15382 (Is_Keyword_Name): New function
15384 * snames.ads: Add subtype Configuration_Pragma_Names
15385 Add pragma Ada_2005 (synonym for Ada_05)
15386 (Is_Keyword_Name): New function
15388 * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
15390 2006-02-13 Arnaud Charlet <charlet@adacore.com>
15392 * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
15395 * a-stwima.adb (To_Set): Add extra check when N = 0.
15397 * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
15399 2006-02-13 Arnaud Charlet <charlet@adacore.com>
15401 * s-parame-mingw.adb, s-parame-linux.adb,
15402 s-parame-solaris.adb: Removed, replaced by s-parame.adb
15404 * s-parame-vxworks.ads: Fix typo.
15406 * s-parame-vxworks.adb: New file.
15408 * s-parame.adb: Version now used by all native platforms.
15409 (Default_Stack_Size): Use 2 megs for default stack size and use
15410 __gl_default_stack_size when available.
15411 (Minimum_Stack_Size): Use 12K.
15413 * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
15414 (Create_Task): Refine implementation taking advantage of the XP stack
15415 size support. On XP, we now create the thread using the flag
15416 STACK_SIZE_PARAM_IS_A_RESERVATION.
15418 * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
15420 * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
15421 XP and 0 on older Windows versions.
15423 * interfac-vms.ads: Removed, no longer used.
15425 2006-02-13 Matthew Heaney <heaney@adacore.com>
15427 * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
15428 a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
15429 a-cohase.adb: All explicit raise statements now include an exception
15432 * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
15433 (Update_Element_Preserving_Key): renamed op to just Update_Element.
15434 Explicit raise statements now include an exception message
15436 * a-cihase.ads, a-cohase.ads: Removed comment.
15438 * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
15439 a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
15440 a-szbzha.adb, a-szfzha.ads: New files.
15442 2006-02-13 Matthew Heaney <heaney@adacore.com>
15444 * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
15447 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
15449 * lang.opt: Wvariadic-macros: New option.
15450 Wold-style-definition: Likewise.
15451 Wmissing-format-attribute: Likewise.
15453 * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
15454 -Wold-style-definition and -Wmissing-format-attribute.
15456 2006-02-13 Robert Dewar <dewar@adacore.com>
15458 * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
15460 * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
15462 2006-02-13 Nicolas Roche <roche@adacore.com>
15464 * a-envvar.adb, a-envvar.ads: New files.
15466 2006-02-13 Douglas Rupp <rupp@adacore.com>
15468 * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
15470 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
15472 2006-02-13 Pat Rogers <rogers@adacore.com>
15474 * a-rttiev.adb, a-rttiev.ads: New files.
15476 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
15478 * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
15479 a-wwboio.ads, a-zzboio.adb, a-zzboio.ads: New files.
15481 * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
15483 2006-02-13 Robert Dewar <dewar@adacore.com>
15485 * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
15486 sem_case.adb: Minor code reorganization (not Present should be No)
15488 2006-02-13 Geert Bosch <bosch@adacore.com>
15489 Gary Dismukes <dismukes@adacore.com>
15491 * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
15492 0, since the lower bound of the actual string may be greater than one.
15495 * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
15496 layout is requested.
15498 2006-02-13 Vincent Celier <celier@adacore.com>
15500 * back_end.adb (Scan_Compiler_Arguments): Check if
15501 Search_Directory_Present is True and, if it is, add the argument in
15502 the source search directory path.
15504 * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
15505 Search_Directory_Present to True.
15507 2006-02-13 Joel Brobecker <brobecke@adacore.com>
15509 * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
15510 volatile, to tell the compiler to preserve this variable at any level
15512 (Gen_Versions_Ada): Temporarily work around codegen bug.
15514 2006-02-13 Vincent Celier <celier@adacore.com>
15516 * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
15517 gcc to link with option -shared-libgcc.
15518 (Gnatlink): Remove duplicate switches -shared-libgcc
15520 2006-02-13 Robert Dewar <dewar@adacore.com>
15522 * gnatvsn.ads (Current_Year): New constant, used to easily update
15523 copyright on all GNAT tools.
15525 * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
15528 2006-02-13 Robert Dewar <dewar@adacore.com>
15530 * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
15531 after hyphen (small aesthetic change useful for a range of numbers
15533 Suppress range checks for a couple of assignments which otherwise
15534 cause validity checks with validity checking turned on.
15536 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
15537 Improvement in error message for object.
15538 (Rep_Item_Too_Late): Remove '!' in warning message.
15540 2006-02-13 Robert Dewar <dewar@adacore.com>
15541 Eric Botcazou <ebotcazou@adacore.com>
15543 * err_vars.ads: Suppress range checks for a couple of assignments
15544 which otherwise cause validity checks with validity checking turned on.
15547 * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
15548 Make message unconditional if it is a warning.
15549 (Error_Msg_NEL): Always output warning messages.
15550 Suppress range checks for a couple of assignments which otherwise
15551 cause validity checks with validity checking turned on.
15553 * errout.ads (Message Insertion Characters): Document that '!' is
15554 implied by '?' in error messages.
15556 * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
15557 (Gnat1drv): Use a goto to end of main subprogram instead of
15558 Exit_Program (E_Success) so that finalization can occur normally.
15560 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
15562 * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
15565 2006-02-13 Vincent Celier <celier@adacore.com>
15567 * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
15568 Unchecked_Conversion functions.
15569 (Modification_Time): Use direct conversion of OS_Time to Calendar time
15570 when OpenVMS returns False.
15572 * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
15573 a-dirval.adb (OpenVMS): New Boolean function
15575 2006-02-13 Ed Schonberg <schonberg@adacore.com>
15576 Thomas Quinot <quinot@adacore.com>
15578 * checks.adb (Build_Discriminant_Checks): If the expression being
15579 checks is an aggregate retrieve the values of its discriminants to
15580 generate the check, rather than creating a temporary and a reference
15582 (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
15583 (Install_Null_Excluding_Check): Ditto
15584 (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
15585 not for the renamed object, so that the actual itype is attached in the
15588 2006-02-13 Robert Dewar <dewar@adacore.com>
15589 Vincent Celier <celier@adacore.com>
15591 * debug.adb: Eliminate numeric switches for binder/gnatmake
15593 * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
15594 switches for the compiler.
15595 (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
15596 (Scan_Make_Switches): When failing with an illegal switch, output an
15597 error message with the full switch.
15598 Eliminate numeric switches for binder/gnatmake
15600 * switch.ads, switch.adb (Bad_Switch): New procedure
15602 * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
15603 Remove 0-9 as debug flag character possibilities
15604 -d is now controlling the primary stack size when its value is a
15605 positive. Also add checks against invalid values, and support for kb,
15606 mb. Ditto for -D switch.
15608 2006-02-13 Robert Dewar <dewar@adacore.com>
15609 Serguei Rybin <rybin@adacore.com>
15611 * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
15612 save/restore routines.
15613 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
15614 were not always properly handled previously.
15615 Since we are changing the tree format anyway, also get rid of the
15616 junk obsolete Immediate_Errors flag.
15617 (Tree_Read): Change the way of reading Tree_Version_String - now we
15618 read the version string from the tree even if its length is not the
15619 same as the length of the version string computed from Gnatvsn.
15620 (Search_Directory_Present): New Boolean flag for the compiler.
15621 Define Tree_Version_String as a dynamic string.
15622 (Default_Stack_Size): new variable, used to handle switch -d.
15625 For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
15626 only for main unit.
15627 Add pragma Ada_2005 (synonym for Ada_05)
15628 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
15629 were not always properly handled previously.
15631 * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
15632 explicit Ada_95 to Ada_2005.
15634 2006-02-13 Javier Miranda <miranda@adacore.com>
15635 Robert Dewar <dewar@adacore.com>
15636 Ed Schonberg <schonberg@adacore.com>
15638 * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
15639 against errors in the source program: a private types for which the
15640 corresponding full type declaration is missing and pragma CPP_Virtual
15642 (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
15643 (Is_Known_Null): New flag
15644 (Has_Pragma_Pure): New flag
15645 (No_Return): Present in all entities, set only for procedures
15646 (Is_Limited_Type): A type whose ancestor is an interface is limited if
15647 explicitly declared limited.
15648 (DT_Offset_To_Top_Func): New attribute that is present in E_Component
15649 entities. Only used for component marked Is_Tag. If present it stores
15650 the Offset_To_Top function used to provide this value in tagged types
15651 whose ancestor has discriminants.
15653 * exp_ch2.adb: Update status of new Is_Known_Null flag
15655 * sem_ch7.adb: Maintain status of new Is_Known_Null flag
15657 * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
15658 the categorization sense if Is_Pure was set by pragma Pure_Function.
15660 2006-02-13 Quentin Ochem <ochem@adacore.com>
15661 Olivier Hainque <hainque@adacore.com>
15663 * bindusg.adb: Updated documentation for -d and -D switches.
15665 * raise.h (__gnat_set_globals): added new parameter for
15666 Default_Stack_Size.
15668 * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
15669 (__gnat_handle_vms_condition): Adjust context before raise.
15670 (__gnat_install_handler): Restore the global vector setup for GCC
15671 versions before 3.4, as the frame based circtuitry is not available
15673 (__gnat_set_globals): added a parameter default_stack_size
15674 (__gl_default_stack_size): new variable.
15676 2006-02-13 Ed Schonberg <schonberg@adacore.com>
15678 * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
15679 "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
15680 does not exist in the Ada RM.
15681 (Compatible_Int_Bounds): Determine whether two integer range bounds
15682 are of equal length and have the same start and end values.
15683 (Is_Int_Range_Bounds): Determine whether a node is an integer range.
15684 (Build_Record_Aggr_Code): Perform proper sliding of a nested array
15685 aggregate when it is part of an object declaration.
15686 (Build_Record_Aggr_Code) If the aggregate ttype is a derived type that
15687 constrains discriminants of its parent, add explicitly the discriminant
15688 constraints of the ancestor by retrieving them from the
15689 stored_constraint of the parent.
15691 2006-02-13 Robert Dewar <dewar@adacore.com>
15693 * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
15694 attribute Mechanism_Code is applied to renamed subprogram, modify
15695 prefix to point to base subprogram.
15696 Max/Min attributes now violate Restriction No_Implicit_Conditionals
15698 * sinfo.ads: Document that Mechanism_Code cannot be applied to
15699 renamed subprograms so that the front-end must replace the prefix
15702 2006-02-13 Javier Miranda <miranda@adacore.com>
15703 Gary Dismukes <dismukes@adacore.com>
15705 * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
15706 availability of RE_Interface_Tag.
15707 (Build_Initialization_Call): Fix wrong access to the discriminant value.
15708 (Freeze_Record_Type): Do not generate the tables associated with
15709 timed and conditional dispatching calls through synchronized
15710 interfaces if compiling under No_Dispatching_Calls restriction.
15711 When compiling for Ada 2005, for a nonabstract
15712 type with a null extension, call Make_Controlling_Function_Wrappers
15713 and insert the wrapper function declarations and bodies (the latter
15714 being appended as freeze actions).
15715 (Predefined_Primitive_Bodies): Do not generate the bodies of the
15716 predefined primitives associated with timed and conditional
15717 dispatching calls through synchronized interfaces if we are
15718 compiling under No_Dispatching_Calls.
15719 (Build_Init_Procedure): Use RTE_Available to check if a run-time
15720 service is available before generating a call.
15721 (Make_Controlling_Function_Wrappers): New procedure.
15722 (Expand_N_Full_Type_Declaration): Create a class-wide master for
15723 access-to-limited-interfaces because they can be used to reference
15724 tasks that implement such limited interface.
15725 (Build_Offset_To_Top_Functions): Build the tree corresponding to the
15726 procedure spec and body of the Offset_To_Top function that is generated
15727 when the parent of a type with discriminants has secondary dispatch
15729 (Init_Secondary_Tags): Handle the case in which the parent of the type
15730 containing secondary dispatch tables has discriminants to generate the
15731 correct arguments to call Set_Offset_To_Top.
15732 (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
15734 * a-tags.ads, a-tags.adb: (Check_Index): Removed.
15735 Add Wide_[Wide_]Expanded_Name.
15736 (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
15737 the same functionality of Get_Prim_Op_Address but applied to predefined
15738 primitive operations because the pointers to the predefined primitives
15739 are now saved in a separate table.
15740 (Parent_Size): Modified to get access to the separate table of primitive
15741 operations or the parent type.
15742 (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
15743 functionality of Set_Prim_Op_Address but applied to predefined primitive
15745 (Set_Signature): New subprogram used to store the signature of a DT.
15746 (Displace): If the Offset_To_Top value is not static then call the
15747 function generated by the expander to get such value; otherwise use
15748 the value stored in the table of interfaces.
15749 (Offset_To_Top): The type of the actual has been changed to Address to
15750 give the correct support to tagged types with discriminants. In this
15751 case this value is stored just immediately after the tag field.
15752 (Set_Offset_To_Top): Two new formals have been added to indicate if the
15753 offset_to_top value is static and hence pass this value to the run-time
15754 to store it in the table of interfaces, or else if this value is dynamic
15755 and then pass to the run-time the address of a function that is
15756 generated by the expander to provide this value for each object of the
15759 * rtsfind.ads (Default_Prin_Op_Count): Removed.
15760 (Default_Prim_Op_Count): New entity
15761 (Get_Predefined_Prim_Op_Address): New entity
15762 (Set_Predefined_Prim_Op_Address): New entity
15763 (RE_Set_Signature): New entity
15765 2006-02-13 Thomas Quinot <quinot@adacore.com>
15766 Ed Schonberg <schonberg@adacore.com>
15768 * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
15769 Make_Adjust_Call done for a newly-allocated object.
15771 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
15772 in a subprogram are wrapped in a cleanup block, indicate that the
15773 subprogram contains an inner block with an exception handler.
15774 (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
15775 Adjust call is for a newly-allocated object. In that case we must not
15776 assume that the finalization list chain pointers are correct (since they
15777 come from a bit-for-bit copy of the original object's pointers) so if
15778 the attach level would otherwise be zero (no change), we set it to 4
15779 instead to cause the pointers to be reset to null.
15781 * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
15782 reset chain pointers to null.
15784 2006-02-13 Ed Schonberg <schonberg@adacore.com>
15786 * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
15787 string, and the context requires a loop for the assignment (e.g.
15788 because the left-hand side is packed), generate a unique name for the
15789 temporary that holds the string, to prevent spurious name clashes.
15791 2006-02-13 Ed Schonberg <schonberg@adacore.com>
15792 Javier Miranda <miranda@adacore.com>
15793 Robert Dewar <dewar@adacore.com>
15794 Gary Dismukes <dismukes@adacore.com>
15796 * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
15797 return unconstrained arrays.
15799 (Expand_Call): An indirect call through an access parameter of a
15800 protected operation is not a protected call.
15801 Add circuit to raise CE in Ada 2005 mode following call
15802 to Raise_Exception.
15803 (Register_DT_Entry): Do nothing if
15804 the run-time does not give support to abstract interfaces.
15805 (Freeze_Subprogram): In case of dispatching operations, do not generate
15806 code to register the operation in the dispatch table if the source
15807 is compiled with No_Dispatching_Calls.
15808 (Register_Predefined_DT_Entry): Generate code that calls the new
15809 run-time subprogram Set_Predefined_Prim_Op_Address instead of
15810 Set_Prim_Op_Address.
15812 * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
15813 on array assignments if the right-hand side is a function call that has
15814 been inlined. Check is performed on the assignment in the block.
15815 (Process_Bounds): If bounds and range are overloaded, apply preference
15816 rule for root operations to disambiguate, and diagnose true ambiguity.
15817 (Analyze_Assignment): Propagate the tag for a class-wide assignment with
15818 a tag-indeterminate right-hand side even when Expander_Active is True.
15819 Needed to ensure that dispatching calls to T'Input are allowed and
15820 get the tag of the target class-wide object.
15822 * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
15823 an inherited primitive operation that already overrides several
15824 abstract interface primitives. For transitivity, the new entity must
15825 also override all the abstract interface primitives covered by the
15826 inherited overriden primitive.
15827 Emit warning if new entity differs from homograph in same scope only in
15828 that one has an access parameter and the other one has a parameter of
15829 a general access type with the same designated type, at the same
15830 position in the signature.
15831 (Make_Inequality_Operator): Use source locations of parameters and
15832 subtype marks from corresponding equality operator when creating the
15833 tree structure for the implicit declaration of "/=". This does not
15834 change anything in behaviour except that the decoration of the
15835 components of the subtree created for "/=" allows ASIS to get the
15836 string images of the corresponding identifiers.
15837 (Analyze_Return_Statement): Remove '!' in warning message.
15838 (Check_Statement_Sequence): Likewise.
15839 (Analyze_Subprogram_Body): For an access parameter whose designated type
15840 is an incomplete type imported through a limited_with clause, use the
15841 type of the corresponding formal in the body.
15842 (Check_Returns): Implicit return in No_Return procedure now raises
15843 Program_Error with a compile time warning, instead of beging illegal.
15844 (Has_Single_Return): Function returning unconstrained type cannot be
15845 inlined if expression in unique return statement is not an identifier.
15846 (Build_Body_To_Inline): It is possible to inline a function call that
15847 returns an unconstrained type if all return statements in the function
15848 return the same local variable. Subsidiary procedure Has_Single_Return
15849 verifies that the body conforms to this restriction.
15851 * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
15852 same type, and one of them is of an anonymous access type, convert
15853 the other operand to it, so that this is a valid binary operation for
15855 (Resolve_Type_Conversion): Handle subtypes of protected types and
15856 task types when accessing to the corresponding record type.
15857 (Resolve_Allocator): Add '\' in 2-line warning message.
15858 Remove '!' in warning message.
15859 (Resolve_Call): Add '\' in 2-line warning message.
15860 (Valid_Conversion): Likewise.
15861 (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
15862 resulting type may be an access type with an implicit dereference.
15863 Obtain the proper component from the designated type.
15864 (Make_Call_Into_Operator): Handle properly a call to predefined equality
15865 given by an expanded name with prefix Standard, when the operands are
15866 of an anonymous access type.
15867 (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
15868 Explicit_Dereference and Resolve_Selected_Component, to verify that the
15869 prefix of the expression is not of an incomplete type. Allows full
15870 diagnoses of all semantic errors.
15871 (Resolve_Actuals): If the actual is an allocator whose directly
15872 designated type is a class-wide interface we build an anonymous
15873 access type to use it as the type of the allocator. Later, when
15874 the subprogram call is expanded, if the interface has a secondary
15875 dispatch table the expander will add a type conversion to force
15876 the displacement of the pointer.
15877 (Resolve_Call): If a function that returns an unconstrained type is
15878 marked Inlined_Always and inlined, the call will be inlined and does
15879 not require the creation of a transient scope.
15880 (Check_Direct_Boolean_Op): Removed
15881 (Resolve_Comparison_Op): Remove call to above
15882 (Resolve_Equality_Op): Remove call to above
15883 (Resolve_Logical_Op): Inline above, since this is only call.
15884 (Valid_Conversion): Handle properly conversions between arrays of
15885 convertible anonymous access types.
15888 (Set_Literal_String_Subtype): If the lower bound is not static, wrap
15889 the literal in an unchecked conversion, because GCC 4.x needs a static
15890 value for a string bound.
15892 2006-02-13 Ed Schonberg <schonberg@adacore.com>
15893 Hristian Kirtchev <kirtchev@adacore.com>
15895 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
15896 components of the corresponding record, take into account component
15897 definitions that are access definitions.
15898 (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
15899 procedure is not considered a dispatching call and will be expanded
15902 2006-02-13 Javier Miranda <miranda@adacore.com>
15904 * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
15905 controlling argument of the dispatching call is an abstract interface
15906 class-wide type then we use it directly.
15907 Check No_Dispatching_Calls restriction.
15908 (Default_Prim_Op_Position): Remove the code that looks for the last
15909 entity in the list of aliased subprograms. This code was wrong in
15911 (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
15912 when the source is compiled with the No_Dispatching_Calls restriction.
15913 (Init_Predefined_Interface_Primitives): No need to inherit primitives
15914 if we are compiling with restriction No_Dispatching_Calls.
15915 (Make_Disp_XXX): Addition of assertion to avoid the use of all these
15916 subprograms if we are compiling under No_Dispatching_Calls restriction.
15917 (Make_DT): Generate a dispatch table with a single dummy entry if
15918 we are compiling with the No_Dispatching_Calls restriction. In
15919 addition, in this case we don't generate code that calls to the
15920 following run-time subprograms: Set_Type_Kind, Inherit_DT.
15921 (Make_Select_Specific_Data_Table): Add assertion to avoid the use
15922 of this subprogram if compiling with the No_Dispatching_Calls
15924 (Expand_Type_Conversion): Instead of using the actual parameter,
15925 the argument passed as parameter to the conversion function was
15926 erroneously referenced by the expander.
15927 (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
15928 Set_Predefined_Primitive_Op_Address and Set_Signature.
15929 (Expand_Dispatching_Call): Generate call to
15930 Get_Predefined_Prim_Op_Address for predefined primitives.
15931 (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
15932 predefined primitives.
15933 (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
15934 primitives we reserve one dummy entry to ensure that the tag does not
15935 point to some memory that is associated with some other object. In
15936 addition, remove all the old code that generated the assignments
15937 associated with the signature of the dispatch table and replace them
15938 by a call to the new subprogram Set_Signature.
15939 (Set_All_DT_Position): Change the algorithm because now we have a
15940 separate dispatch table associated with predefined primitive operations.
15941 (Expand_Interface_Conversion): In case of non-static offset_to_top
15942 add explicit dereference to get access to the object after the call
15943 to displace the pointer to the object.
15944 (Expand_Interface_Thunk): Modify the generation of the actual used
15945 in the calls to the run-time function Offset_To_Top to fulfil its
15947 (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
15949 2006-02-13 Ed Schonberg <schonberg@adacore.com>
15951 * exp_dist.adb (Copy_Specification): For access parameters, copy
15952 Null_Exclusion flag, which will have been set for stream subprograms
15955 2006-02-13 Pascal Obry <obry@adacore.com>
15957 * expect.c (__gnat_expect_portable_execvp): New implementation. The
15958 previous implementation was using the C runtime spawnve routine but
15959 the corresponding wait was using directly the Win32 API. This was
15960 causing some times a lock when waiting for an event using
15961 WaitForSingleObject in __gnat_waitpid. This new implementation uses
15962 the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
15963 API fixes this problem.
15965 2006-02-13 Robert Dewar <dewar@adacore.com>
15967 * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
15970 2006-02-13 Thomas Quinot <quinot@adacore.com>
15972 * exp_pakd.ads: Fix typos in comments.
15974 * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
15975 array reference that is an explicit dereference, mark the converted
15976 (packed) array reference as analyzed to prevent a forthcoming
15977 reanalysis from resetting its type to the original (non-packed) array
15980 2006-02-13 Ed Schonberg <schonberg@adacore.com>
15981 Javier Miranda <miranda@adacore.com>
15982 Eric Botcazou <ebotcazou@adacore.com>
15984 * exp_util.ads, exp_util.adb (Find_Prim_Op,
15985 Is_Predefined_Primitive_Operation): When
15986 searching for the predefined equality operator, verify that operands
15987 have the same type.
15988 (Is_Predefined_Dispatching_Operation): Remove the code that looks
15989 for the last entity in the list of aliased subprograms. This code
15990 was wrong in case of renamings.
15991 (Set_Renamed_Subprogram): New procedure
15992 (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
15993 Exp_Type constant computed when entering this subprogram.
15994 (Known_Null): New function
15995 (OK_To_Do_Constant_Replacement): New function
15996 (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
15997 (Side_Effect_Free): An attribute reference 'Input is not free of
15998 side effect, unlike other attributes that are functions. (from code
16000 (Remove_Side_Effects): Expressions that involve packed arrays or records
16001 are copied at the point of reference, and therefore must be marked as
16002 renamings of objects.
16003 (Is_Predefined_Dispatching_Operation): Return false if the operation is
16004 not a dispatching operation.
16007 (Remove_Side_Effects): Lift enclosing type conversion nodes for
16008 elementary types in all cases.
16010 2006-02-13 Javier Miranda <miranda@adacore.com>
16012 * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
16013 task types when accessing to the corresponding record type.
16014 Remove '!' in warning message.
16016 2006-02-13 Olivier Hainque <hainque@adacore.com>
16018 * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
16019 to avoid useless and space inefficient overalignments on targets where
16020 Max_Alignment is larger than 16.
16022 2006-02-13 Pascal Obry <obry@adacore.com>
16024 * g-catiio.adb (Sec_Number): New type used to compute the number of
16025 seconds since 1-1-1970.
16026 (Image) [Natural]: The parameter was an Integer, as we can't deal with
16027 negative numbers (years, months...) it is better to have a Natural here.
16029 (Image) [Number]: Change parameter from Long_Integer to Number.
16030 (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
16031 overflow for dates past year 2038.
16033 2006-02-13 Matthew Heaney <heaney@adacore.com>
16035 * g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
16038 2006-02-13 Arnaud Charlet <charlet@adacore.com>
16040 * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
16042 (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
16043 finalization can occur normally.
16045 2006-02-13 Vincent Celier <celier@adacore.com>
16047 * gnatcmd.adb (Rules_Switches): New table
16048 (Add_To_Rules_Switches): New procedure
16049 (GNATCmd): For command CHECK, put all options following "-rules" in the
16050 Rules_Switches table. Append these -rules switches after the -cargs
16053 2006-02-13 Robert Dewar <dewar@adacore.com>
16055 * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
16056 These two cases were generating incorrect output, and if this unit
16057 was built with checks on, generated a discriminant mismatch constraint
16060 2006-02-13 Ed Schonberg <schonberg@adacore.com>
16061 Robert Dewar <dewar@adacore.com>
16063 * lib-xref.adb (Get_Type_Reference): For a private type whose full
16064 view is an array type, indicate the component type as well, for
16065 navigation purposes.
16066 (Generate_Reference): Don't consider array ref on LHS to be a case
16067 of violating pragma Unreferenced.
16068 Do not give Ada 2005 warning except on real reference.
16070 2006-02-13 Vincent Celier <celier@adacore.com>
16072 * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
16073 main source, add switch -mdebug-main=_ada_ so that the executable can
16074 be debugged by the standard VMS debugger.
16075 (Gnatmake): Set No_Main_Subprogram to True when there is no main
16076 subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
16077 Exit the Multi_Main_Loop when Unique_Compile is True after compilation
16078 of the last source, as the binding and linking phases are never
16080 Set all executable obsolete when rebuilding a library.
16082 * makeutl.adb (Linker_Options_Switches): Do not process empty linker
16085 2006-02-13 Javier Miranda <miranda@adacore.com>
16088 * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
16089 code to improve the error message reported when the program has
16090 declarations of abstract interface types and it is not compiled with
16091 the -gnat05 switch.
16092 (P_Access_Definition): Reorganize the code to improve the error
16093 message reported when the new Ada 2005 syntax for anonymous
16094 access types is used and the program is not compiled with the
16097 2006-02-13 Robert Dewar <dewar@adacore.com>
16099 * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
16100 stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
16103 2006-02-13 Javier Miranda <miranda@adacore.com>
16105 * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
16106 against source containing syntax errors.
16108 2006-02-13 Vincent Celier <celier@adacore.com>
16110 * prj.adb (Reset): Initialize the first element of table Namings with
16111 the standard naming data.
16113 2006-02-13 Vincent Celier <celier@adacore.com>
16115 * prj.ads (Error_Warning): New enumeration type
16117 * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
16118 unknown, use the location of the project to report the error.
16119 (When_No_Sources): New global variable
16120 (Report_No_Ada_Sources): New procedure
16121 (Check): New parameter When_No_Sources. Set value of global variable
16123 (Find_Sources): Call Report_No_Ada_Sources when appropriate
16124 (Get_Sources_From_File): Ditto
16125 (Warn_If_Not_Sources): Better warning messages indicating the unit name
16128 * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
16129 Call Prj.Proc.Process with parameter When_No_Sources.
16131 * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
16132 Call Recursive_Check with parameter When_No_Sources.
16133 (Recursive_Check): New parameter When_No_Sources. Call itself and
16134 Prj.Nmsc.Check with parameter When_No_Sources.
16135 (Process): New parameter When_No_Sources. Call Check with parameter
16137 (Copy_Package_Declarations): New procedure to copy renamed parameters
16138 and setting the location of the declared attributes to the location
16139 of the renamed package.
16140 (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
16143 2006-02-13 Vincent Celier <celier@adacore.com>
16145 * prj-makr.adb (Make): Preserve the comments from the original project
16147 When removing nodes (attributes Source_Dirs, Source_Files,
16148 Source_List_File and package Naming), save the comments and attach the
16149 saved comments to the newly created nodes.
16150 Do not add a with clause for the naming package if one already exists.
16152 2006-02-13 Javier Miranda <miranda@adacore.com>
16153 Gary Dismukes <dismukes@adacore.com>
16154 Robert Dewar <dewar@adacore.com>
16156 * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
16158 * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
16159 aliased entities to look for the overriden abstract interface
16161 (Is_Interface_Subprogram): Complete documentation.
16162 (Check_Dispatching_Operation): Do not generate code to register the
16163 operation in the dispatch table if the source is compiled with
16164 restriction No_Dispatching_Calls.
16165 (Override_Dispatching_Operation): Check for illegal attempt to override
16166 No_Return procedure with procedure that is not No_Return
16167 (Check_Dispatching_Call): Suppress the check for an abstract operation
16168 when the original node of an actual is a tag-indeterminate attribute
16169 call, since the attribute, which must be 'Input, can never be abstract.
16170 (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
16171 call to the Input attribute (even when rewritten).
16172 (Propagate_Tag): Augment comment to indicate the possibility of a call
16173 to an Input attribute.
16175 * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
16176 calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
16178 * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
16179 No_Wide_Characters is no longer partition-wide
16180 No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
16183 2006-02-13 Douglas Rupp <rupp@adacore.com>
16185 * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
16187 2006-02-13 Javier Miranda <miranda@adacore.com>
16189 * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
16190 handles default-initialized components to keep separate the management
16191 of this feature but also avoid the unrequired resolution and
16192 expansion of components that do not have partially initialized
16194 (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
16195 (Check_Bounds): Likewise.
16196 (Check_Length): Likewise.
16198 2006-02-13 Javier Miranda <miranda@adacore.com>
16199 Ed Schonberg <schonberg@adacore.com>
16201 * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
16202 abstract interface type call analyze_and_resolve to expand the type
16203 conversion into the corresponding displacement of the
16204 reference to the base of the object.
16205 (Eval_Attribute, case Width): For systems where IEEE extended precision
16206 is supported, the maximum exponent occupies 4 decimal digits.
16207 (Accessibility_Message): Add '\' in 2-line warning message.
16208 (Resolve_Attribute): Likewise.
16209 (case Attribute_Access): Significantly revise checks
16210 for illegal access-to-subprogram Access attributes to properly enforce
16211 the rules of 3.10.2(32/2).
16212 Diagnose use of current instance with an illegal attribute.
16214 * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
16216 (Enclosing_Generic_Unit): New function to return a node's innermost
16217 enclosing generic declaration node.
16218 (Compile_Time_Constraint_Error): Remove '!' in warning messages.
16219 (Type_Access_Level): The accessibility level of anonymous acccess types
16220 associated with discriminants is that of the current instance of the
16221 type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
16222 (Compile_Time_Constraint_Error): Handle case of conditional expression.
16223 (Kill_Current_Values_For_Entity): New function
16224 (Enter_Name): Change formal type to Entity_Id
16226 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
16227 Ed Schonberg <schonberg@adacore.com>
16228 Gary Dismukes <dismukes@adacore.com>
16230 * sem_ch10.adb (Check_Redundant_Withs): New procedure in
16231 Analyze_Compilation_Unit.
16232 Detect and warn on redundant with clauses detected in a package spec
16233 and/or body when -gnatwr is used.
16234 (Analyze_Context): Analyze config pragmas before other items
16235 (Install_Context_Items): Don't analyze config pragmas here
16236 (Install_Limited_Withed_Unit): Set limited entity of package in
16237 with_clause so that cross-reference information or warning messages on
16238 unused packages can be properly generated
16239 (Is_Visible_Through_Renamings): Return false if the limited_with_clause
16240 has Error_Posted set. Prevent infinite loops in illegal programs.
16241 (Check_Private_Child_Unit): Move test for a nonprivate with clause down
16242 to the point of the error test requiring the current unit to be private.
16243 This ensures that private with clauses are not exempted from the basic
16244 checking for being a descendant of the same library unit parent as a
16245 withed private descendant unit.
16246 (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
16247 handle private with clauses properly, as well as to account for cases
16248 where the withed unit is a public descendant of a private ancestor
16249 (in which case the current unit must be a descendant of the private
16250 ancestor's parent). The spec comments were updated accordingly. Also,
16251 the old error message in this subprogram was replaced with error
16252 messages that mirror the errors tested and reported by
16253 Check_Private_Child_Unit.
16254 Parameter and variable names improved for readability.
16255 (Install_Limited_Context_Clauses): Remove test for a withed unit being
16256 private as the precondition for calling
16257 Check_Private_Limited_Withed_Unit since that subprogram has been
16258 revised to test public units as well as private units.
16260 2006-02-13 Thomas Quinot <quinot@adacore.com>
16261 Robert Dewar <dewar@adacore.com>
16262 Ed Schonberg <schonberg@adacore.com>
16263 Javier Miranda <miranda@adacore.com>
16265 * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
16266 that Scope_Stack.First = 1.
16267 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
16268 were not always properly handled previously.
16269 (Formal_Entity): Complete rewrite, to handle properly some complex case
16270 with multiple levels of parametrization by formal packages.
16271 (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
16272 to the corresponding derived type declaration for proper semantics.
16274 * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
16275 (Check_Component): Enforce restriction on components of
16276 unchecked_unions: a component in a variant cannot contain tasks or
16278 (Unchecked_Union): Allow nested variants and multiple discriminants, to
16280 Add pragma Ada_2005 (synonym for Ada_05)
16281 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
16282 were not always properly handled previously.
16283 Document that pragma Propagate_Exceptions has no effect
16284 (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
16285 (Set_Convention_From_Pragma): Check that if a convention is
16286 specified for a dispatching operation, then it must be
16287 consistent with the existing convention for the operation.
16288 (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
16289 longer required to specify an vtable-ptr component in the record. For
16290 compatibility reasons we leave the support for the previous definition.
16291 (Analyze_Pragma, case No_Return): Allow multiple arguments
16293 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
16294 non-overrideen inherited operation with a controlling result as
16295 illegal only its implicit declaration comes from the derived type
16296 declaration of its result's type.
16297 (Check_Possible_Deferred_Completion): Relocate the object definition
16298 node of the subtype indication of a deferred constant completion rather
16299 than directly analyzing it. The analysis of the generated subtype will
16300 correctly decorate the GNAT tree.
16301 (Record_Type_Declaration): Check whether this is a declaration for a
16302 limited derived record before analyzing components.
16303 (Analyze_Component_Declaration): Diagnose record types not explicitly
16304 declared limited when a component has a limited type.
16305 (Build_Derived_Record_Type): Code reorganization to check if some of
16306 the inherited subprograms of a tagged type cover interface primitives.
16307 This check was missing in case of a full-type associated with a private
16309 (Constant_Redeclaration): Check that the subtypes of the partial and the
16310 full view of a constrained deferred constant statically match.
16311 (Mentions_T): A reference to the current type in an anonymous access
16312 component declaration must be an entity name.
16313 (Make_Incomplete_Type_Declaration): If type is tagged, set type of
16314 class_wide type to refer to full type, not to the incomplete one.
16315 (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
16316 available. Required to give support to the certified run-time.
16317 (Analyze_Component_Declaration): In case of anonymous access components
16318 perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
16319 (Process_Discriminants): For an access discriminant, use the
16320 discriminant specification as the associated_node_for_itype, to
16321 simplify accessibility checks.
16323 2006-02-13 Ed Schonberg <schonberg@adacore.com>
16324 Javier Miranda <miranda@adacore.com>
16326 * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
16327 abstract interpretations on an operator, remove interpretations that
16328 yield Address or a type derived from it, if one of the operands is an
16330 (Try_Object_Operation.Try_Primitive_Operation,
16331 Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
16332 location when creating the new reference to a primitive or class-wide
16333 operation as a part of rewriting a subprogram call.
16334 (Try_Primitive_Operations): If context requires a function, collect all
16335 interpretations after the first match, because there may be primitive
16336 operations of the same type with the same profile and different return
16337 types. From code reading.
16338 (Try_Primitive_Operation): Use the node kind to choose the proper
16339 operation when a function and a procedure have the same parameter
16341 (Complete_Object_Operation): If formal is an access parameter and prefix
16342 is an object, rewrite as an Access reference, to match signature of
16343 primitive operation.
16344 (Find_Equality_Type, Find_One_Interp): Handle properly equality given
16345 by an expanded name with prefix Standard, when the operands are of an
16346 anonymous access type.
16347 (Remove_Abstract_Operations): If the operation is abstract because it is
16348 inherited by a user-defined type derived from Address, remove it as
16349 well from the set of candidate interpretations of an overloaded node.
16350 (Analyze_Membership_Op): Membership test not applicable to cpp-class
16353 2006-02-13 Bob Duff <duff@adacore.com>
16355 * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
16356 redundant use clauses.
16357 In particular, if the scope of two use clauses overlaps, but one is not
16358 entirely included in the other, we should not warn. This can happen
16359 with nested packages.
16360 (Analyze_Subprogram_Renaming): Protect the compiler against previously
16361 reported errors. The bug was reported when the compiler was built
16362 with assertions enabled.
16363 (Find_Type): If the node is a 'Class reference and the prefix is a
16364 synchronized type without a corresponding record, return the type
16367 2006-02-13 Javier Miranda <miranda@adacore.com>
16369 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
16370 if this is the full-declaration associated with a private declaration
16371 that implement interfaces, then the private type declaration must be
16373 (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
16374 as aliased. The use of the 'access attribute is not available for such
16375 object (for this purpose the object should be explicitly marked as
16376 aliased, but being an anonymous type this is not possible).
16378 2006-02-13 Ed Schonberg <schonberg@adacore.com>
16379 Robert Dewar <dewar@adacore.com>
16381 * sem_elab.adb (Same_Elaboration_Scope): A package that is a
16382 compilation unit is an elaboration scope.
16383 (Add_Task_Proc): Add '\' in 2-line warning message.
16384 (Activate_All_Desirable): Deal with case of unit with'ed by parent
16386 2006-02-13 Ed Schonberg <schonberg@adacore.com>
16387 Javier Miranda <miranda@adacore.com>
16389 * sem_type.adb (Write_Overloads): Improve display of candidate
16391 (Add_One_Interp): Do not add to the list of interpretations aliased
16392 entities corresponding with an abstract interface type that is an
16393 immediate ancestor of a tagged type; otherwise we have a dummy
16394 conflict between this entity and the aliased entity.
16395 (Disambiguate): The predefined equality on universal_access is not
16396 usable if there is a user-defined equality with the proper signature,
16397 declared in the same declarative part as the designated type.
16398 (Find_Unique_Type): The universal_access equality operator defined under
16399 AI-230 does not cover pool specific access types.
16400 (Covers): If one of the types is a generic actual subtype, check whether
16401 it matches the partial view of the other type.
16403 2006-02-13 Thomas Quinot <quinot@adacore.com>
16405 * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
16406 line. This is necessary to allow In_Extended_Main_Unit to provide
16407 correct results for itypes while writing out expanded source.
16408 (Close_File): No need to update the source_index_table here since it's
16409 now done for each line.
16411 2006-02-13 Ed Schonberg <schonberg@adacore.com>
16412 Robert Dewar <dewar@adacore.com>
16414 * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
16415 preserve the source unit where the itype is declared, and prevent a
16417 (Note_Implicit_Run_Time_Call): New procedure
16418 (Write_Itype): Handle missing cases (E_Class_Wide_Type and
16421 * sprint.ads: Document use of $ for implicit run time routine call
16423 2006-02-13 Quentin Ochem <ochem@adacore.com>
16425 * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
16428 2006-02-13 Bob Duff <duff@adacore.com>
16430 * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
16431 Scan_Unsigned, so we do not scan leading blanks and sign twice.
16432 Integer'Value("- 5") and Integer'Value("-+5") now correctly
16433 raise Constraint_Error.
16435 * s-vallli.adb (Scan_Long_Long_Integer): Call
16436 Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
16437 do not scan leading blanks and sign twice.
16438 Integer'Value("- 5") and Integer'Value("-+5") now correctly
16439 raise Constraint_Error.
16441 * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
16442 Scan_Long_Long_Unsigned): Split out most of the processing from
16443 Scan_Long_Long_Unsigned out into
16444 Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
16445 This prevents scanning leading blanks and sign twice.
16446 Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
16449 * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
16450 out most of the processing from Scan_Unsigned out into
16451 Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
16452 This prevents scanning leading blanks and sign twice.
16454 * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
16455 use with Modular'Value attribute.
16456 (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
16459 2006-02-13 Robert Dewar <dewar@adacore.com>
16461 * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
16463 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
16465 * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
16466 (PPC VxWorks): Likewise.
16467 (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
16468 (forced_callee): Make non-inlinable and non-pure.
16469 (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
16471 2006-02-13 Arnaud Charlet <charlet@adacore.com>
16472 Ben Brosgol <brosgol@adacore.com>
16473 Robert Dewar <dewar@adacore.com>
16475 * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
16477 Document that gnatbind -M option is for cross environments only.
16478 Added description of using gnatmem to trace gnat rtl allocs and deallocs
16479 Add note on use of $ to label implicit run time calls
16480 Add documentation for -gnatyI (check mode IN)
16481 Updated chapter on compatibility with HP Ada
16482 VMS-oriented edits.
16483 Ran spell and corrected errors
16484 Add documentation for gnatbind -d and rework documentation of -D
16486 Add subprogram/data elimination section.
16487 Minor editing of annex A.
16488 Add section for gnatcheck.
16489 Add documentation for restriction No_Dispatching_Calls
16490 Add documentation for pragma Ada_2005
16491 Remove mention of obsolete pragma Propagate_Exceptions
16492 Document that pragma Unreferenced can appear after DO in ACCEPT
16493 Clarify Pure_Function for library level units
16494 Mention Max/Min in connection with No_Implicit_Conditionals
16495 No_Wide_Characters restriction is no longer partition-wide
16496 Add a nice example for Universal_Literal_String attribute
16497 Document that pragma No_Return can take multiple arguments
16499 * ug_words: Added entry for gnatcheck
16501 * g-ctrl_c.ads (Install_Handler): Enhance comments
16503 * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
16505 * g-trasym.ads: Add documentation on how to do off line symbolic
16506 traceback computation.
16508 * s-fatgen.adb: Add comments for Unaligned_Valid
16510 * stand.ads: Fix typo in comment
16512 2006-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
16514 * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
16516 2006-02-06 Roger Sayle <roger@eyesopen.com>
16518 * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
16520 2006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16523 * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
16524 implementation that calls __main.
16526 2006-01-25 Peter O'Gorman <peter@pogma.com>
16529 * Makefile.in (GCC_LINK): Remove quotes.
16530 (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
16533 (powerpc-darwin): Pass -shared-libgcc when building shared library.
16535 2006-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16538 * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
16540 2005-12-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16542 * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
16544 2005-12-12 Arnaud Charlet <charlet@adacore.com>
16546 * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
16549 2005-12-12 Arnaud Charlet <charlet@adacore.com>
16551 * Make-lang.in: Update dependencies
16553 2005-12-12 Arnaud Charlet <charlet@adacore.com>
16555 * Make-lang.in: Add rule for ada/exp_sel.o
16557 2005-12-12 Arnaud Charlet <charlet@adacore.com>
16559 * Makefile.in (mingw section): Remove EH_MECHANISM setting.
16561 2005-12-09 Arnaud Charlet <charlet@adacore.com>
16563 * gnatvsn.ads (Library_Version): Bump to version 4.2
16564 (ASIS_Version_Number): Bumped.
16566 2005-12-09 Doug Rupp <rupp@adacore.com>
16568 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
16569 Ada bind file prefix on VMS from b$ to b__.
16570 (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
16573 * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
16574 Targparm.OpenVMS_On_Target.
16575 (Object_Suffix): Initialize with target object suffix.
16576 (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
16578 * butil.adb: Change some Hostparm.OpenVMS checks to
16579 Targparm.OpenVMS_On_Target.
16581 * clean.adb: Change some Hostparm.OpenVMS checks to
16582 Targparm.OpenVMS_On_Target.
16583 (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
16584 ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
16585 Ada bind file prefix on VMS from b$ to b__.
16587 * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
16588 --GCC so that Get_Target_Parameters can find system.ads.
16589 (Gnatlink): Call Get_Target_Parameters in mainline.
16590 Initialize standard packages for Targparm.
16591 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
16592 (Process_Args): Also Check for object files with target object
16594 (Make_Binder_File_Names): Create with target object extension.
16595 (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
16598 * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
16599 Targparm.OpenVMS_On_Target.
16600 ({declaration},Build_Library,Check_Library): Change Ada bind file
16601 prefix on VMS from b$ to b__.
16603 * osint-b.adb: Change some Hostparm.OpenVMS checks to
16604 Targparm.OpenVMS_On_Target.
16605 (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
16608 * targext.c: New file.
16610 * Makefile.in: add support for vxworks653 builds
16611 (../../vxaddr2line): gnatlink with targext.o.
16612 (TOOLS_LIBS): Move targext.o to precede libgnat.
16613 (init.o, initialize.o): Minor clean up in dependencies.
16614 (GNATLINK_OBJS): Add targparm.o, snames.o
16615 Add rules fo building targext.o and linking it explicitly with all
16617 Also add targext.o to gnatlib.
16619 * Make-lang.in: Add rules for building targext.o and linking it in
16620 with gnat1 and gnatbind.
16621 Add entry for exp_sel.o.
16623 * osint.adb Change some Hostparm.OpenVMS checks to
16624 Targparm.OpenVMS_On_Target.
16625 (Object_File_Name): Use target object suffix.
16627 * osint.ads (Object_Suffix): Remove, no longer used.
16628 (Target_Object_Suffix): Initialize with target object suffix.
16630 * rident.ads: Add special exception to license.
16632 * targparm.adb (Get_Target_Parameters): Set the value of
16633 Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
16635 (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
16637 * targparm.ads: Add special exception to license.
16639 * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
16641 (Copy_File): Make sure from file is closed if error on to file
16642 (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
16644 * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
16645 (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
16647 * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
16648 target object suffix.
16650 2005-12-09 Jose Ruiz <ruiz@adacore.com>
16651 Quentin Ochem <ochem@adacore.com>
16652 Florian Villoing <villoing@adacore.com>
16654 * a-taster.ads, a-taster.adb: New files.
16656 * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
16657 link to the version that does nothing. This way the task termination
16658 routine is not executed twice for the environment task when finishing
16659 because of an unhandled exception.
16661 * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
16662 handler because of an unhandled exception.
16664 * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
16665 System.Tasking.Utilities instead of that in System.Tasking.Stages.
16667 * s-finimp.adb (initialization code): Modify the soft link for the
16668 finalization of the global list instead of Adafinal.
16670 * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
16671 non-tasking version of the soft link for task termination. We do
16672 nothing since if we are using the non-tasking version it
16673 means that the task termination functionality is not used.
16674 (Null_Finalize_Global_List): Add this null version for the procedure
16675 in charge of finalizing the global list for controlled objects.
16676 (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
16677 instead for handling run-time termination in a more flexible way.
16678 (Adafinal_NT): This new procedure will take care of finalizing the
16679 global list for controlled objects if needed, but no tasking
16682 * s-tarest.adb (Task_Lock): Do not try to lock again the
16683 Global_Task_Lock if we already own it. Otherwise, we get blocked in
16684 some run-time operations.
16685 (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
16686 until all nested locks have been released.
16687 (Task_Wrapper): Call the fall-back task termination handler. It
16688 applies to all tasks but the environment task.
16689 (Finalize_Global_Tasks): Add the call for the task termination
16690 procedure for the environment task.
16691 (Task_Wrapper): suppress warnings around declaration of
16692 Secondary_Stack_Address.
16694 * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
16695 moved to the Common_ATCB record.
16696 (Task_Lock): Global_Task_Lock_Nesting has been moved to the
16697 Common_ATCB record.
16698 (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
16699 Common_ATCB record.
16701 * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
16702 Fall_Back_Handler, and Specific_Handler.
16704 * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
16705 defined in Ada.Task_Termination, to avoid circular dependencies.
16706 (Termination_Handler): Redefine this type here, alredy defined in
16707 Ada.Task_Termination, for avoiding circular dependencies.
16708 (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
16709 for storing task termination handlers. In addition,
16710 Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
16711 Common_ATCB because it is used by both the regular and the restricted
16713 (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
16714 Common_ATCB because it is used by both the regular and the restricted
16716 (Common_ATCB): Added a dynamic task analyzer field.
16718 * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
16719 potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
16720 (Task_Wrapper): Call the task termination handler. It applies to all
16721 tasks but the environment task.
16722 (Finalize_Global_Tasks): Call the task termination procedure for the
16723 environment task. The call to Finalize_Global_List is now performed
16724 using the soft links mechanism.
16725 (Task_Wrapper): added dynamic stack analysis.
16727 * s-tasuti.adb (Abort_Tasks): The code in charge of checking
16728 potentially blocking operations has been moved from
16729 System.Tasking.Stages.Abort_Tasks to this procedure. There can be
16730 direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
16731 through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
16732 this run-time check.
16734 * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
16735 of task termination procedure.
16736 (Init_Tasking_Soft_Links): Install the task-safe version of the soft
16737 link for the task termination procedure.
16739 * bindusg.adb: (Bindusg): Added documentation for -u option.
16741 * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
16742 (Get_Main_C): Add handling of dynamic stack analysis.
16743 (Gen_Output_File_C): Add external functions for dynamic stack analysis.
16745 * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
16746 (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
16747 (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
16749 * opt.ads: Added flags used by dynamic stack measurement.
16750 (Max_Line_Length): Remove (not used anymore)
16752 * s-io.ads, s-io.adb (Standard_Error): new subprogram
16753 (Standart_Output): new subprogram
16754 (Set_Output): new subprogram
16755 (Put): now uses the value of Current_Out to know if the output has to be
16756 send to stderr or stdout.
16758 * s-stausa.ads: Complete implementation.
16760 * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
16762 * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
16763 list of Ada 05 files.
16764 (GNAT Library Units): Add AltiVec files.
16766 * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
16767 g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
16768 g-alvety.ads, g-alvevi.ads: New files providing altivec API.
16770 2005-12-09 Nicolas Setton <setton@adacore.com>
16772 * adaint.c (__gnat_locate_regular_file): Return immediately if
16773 file_name is empty.
16775 2005-12-09 Javier Miranda <miranda@adacore.com>
16776 Hristian Kirtchev <kirtchev@adacore.com>
16778 * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
16779 to the specification because the frontend generates code that uses this
16781 (Set_Interface_Table): Add missing assertion.
16782 Update documentation describing the run-time structure.
16783 (Displace): New subprogram that displaces the pointer to the object
16784 to reference one of its secondary dispatch tables.
16785 (IW_Membership): Modified to use the new table of interfaces.
16786 (Inherit_TSD): Modified to use the new table of interfaces.
16787 (Register_Interface_Tag): Use the additional formal to fill the
16788 contents of the new table of interfaces.
16789 (Set_Interface_Table): New subprogram that stores in the TSD the
16790 pointer to the table of interfaces.
16791 (Set_Offset_To_Top): Use the additional formal to save copy of
16792 the offset value in the table of interfaces.
16793 Update structure of GNAT Primary and Secondary dispatch table diagram.
16794 Add comment section on GNAT dispatch table prologue.
16795 (Offset_To_Signature): Update the constant value of the Signature field.
16796 (Dispatch_Table): Update comment on hidden fields in the prologue.
16797 (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
16798 Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
16799 the type of formal parameter T to Tag, introduce additional assertions.
16800 (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
16802 (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
16804 * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
16805 in all the calls to Expand_Interface_Thunk. Instead of referencing the
16806 record component containing the tag of the secondary dispatch table we
16807 have to use the Offset_To_Top run-time function to get this information;
16808 otherwise if the pointer to the base of the object has been displace
16809 we get a wrong value if we use the 'position attribute.
16811 * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
16812 all the calls to Expand_Interface_Thunk.
16813 (Make_Secondary_DT): Secondary dispatch tables do not have a table of
16814 interfaces; hence the call to Set_Interface_Table was clearly wrong.
16815 (Collect_All_Interfaces): Modify the internal subprogram Collect to
16816 ensure that the interfaces implemented by the ancestors are placed
16817 at the header of the generated list.
16818 (Expand_Interface_Conversion): Handle the case in which the displacement
16819 associated with the interface conversion is not statically known. In
16820 this case we generate a call to the new run-time subprogram Displace.
16821 (Make_DT): Generate and fill the new table of interfaces.
16822 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
16823 Get_Tagged_Kind and Set_Tagged_Kind.
16824 (Tagged_Kind): New function that determines the tagged kind of a type
16825 with respect to limitedness and concurrency and returns a reference to
16827 (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
16828 Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
16829 primary dispatch table for a type.
16830 (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
16831 secondary dispatch table respectively of a tagged type.
16833 * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
16834 (Expand_Interface_Conversion): New subprogram to indicate if the
16835 displacement of the type conversion is statically known.
16836 (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
16838 * rtsfind.ads (RE_Offset_To_Top): New entity
16839 (RTU_Id): Add Ada_Task_Termination to the list so that it is made
16840 accessible to users.
16841 (Re_Displace): New entity
16842 (RE_Interface_Data): New entity
16843 (RE_Set_Interface_Data): New_Entity
16844 (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
16845 Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
16846 RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
16847 RE_TK_Tagged, RE_TK_Task.
16849 * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
16850 Init_Secondary_Tags_Internal to allow its use with interface types and
16851 also to generate the code for the new additional actual required
16852 by Set_Offset_To_Top.
16853 (Build_Init_Statements): In case of components associated with abstract
16854 interface types there is no need to generate a call to its IP.
16855 (Freeze_Record_Type): Generate Select Specific Data tables only for
16857 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
16858 the bodies and specifications of the predefined primitive operations
16859 dealing with dispatching selects and abort, 'Callable, 'Terminated only
16860 for concurrent types.
16862 * exp_sel.ads, exp_sel.adb: New files.
16864 * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
16865 Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
16866 properly protected objects and attach handler in the case of the
16867 restricted profile.
16868 Move embeded package Select_Expansion_Utilities into a separate external
16870 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
16871 Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
16872 (Build_K, Build_S_Assignment): New subprograms, part of the select
16873 expansion utilities.
16874 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
16875 Expand_N_Timed_Entry_Call): Optimize expansion of select statements
16876 where the trigger is a dispatching procedure of a limited tagged type.
16878 2005-12-09 Olivier Hainque <hainque@adacore.com>
16880 * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
16881 pointer initialization values. Make a SAVE_EXPR instead. Add comments
16882 about the use and expansion of SAVE_EXPRs in the various possible
16883 renaming handling cases.
16884 (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
16885 abusing DECL_FCONTEXT.
16887 2005-12-09 Matthew Heaney <heaney@adacore.com>
16889 * a-convec.adb (Merge): Added assertions to check whether vector params
16892 * a-coinve.adb (Merge): Added assertions to check whether vector params
16895 * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
16897 (Cursor'Read): raises PE
16899 * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
16900 to its default value.
16902 * a-cihama.adb: Manually check whether cursor's key and elem are
16905 * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
16906 (Merge): Assert that target and source lists are in order
16907 (Swap): Declare non-const temporaries, to pass to Splice
16909 * a-cdlili.ads: (Splice): Changed param name and param mode
16911 * a-cdlili.adb: (Splice): Changed param name and param mode
16912 (Merge): Assert that target and source lists are in order
16913 (Swap): Declare non-const temporaries, to pass to Splice
16915 * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
16916 (Write): declare Stream param as not null
16918 * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
16919 an exception message.
16921 2005-12-09 Thomas Quinot <quinot@adacore.com>
16922 Robert Dewar <dewar@adacore.com>
16924 * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
16925 which is the absolute maximum length we can support.
16927 * frontend.adb: For the processing of configuration pragma files,
16928 remove references to Opt.Max_Line_Length, which is not checked anymore.
16930 * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
16933 * scn.adb, scng.adb:
16934 Always check line length against the absolute supported maximum,
16935 Hostparm.Max_Line_Length.
16937 * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
16938 value for the maximum line length is Max_Line_Length (not
16939 Column_Number'Last).
16940 Minor error msg update
16941 (Set_Style_Check_Options): New interface returning error msg
16942 Minor code reorganization (processing for 'M' was out of alpha order)
16944 * switch-c.adb: New interface for Set_Style_Check_Options
16946 * stylesw.ads (Set_Style_Check_Options): New interface returning error
16949 2005-12-09 Javier Miranda <miranda@adacore.com>
16951 * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
16952 with IP subprogram were only supported if there were limited types.
16954 * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
16955 records with IP subprogram were only supported if there were limited
16958 2005-12-09 Olivier Hainque <hainque@adacore.com>
16959 Eric Botcazou <ebotcazou@adacore.com>
16961 * trans.c (tree_transform, emit_check): Adjust calls to
16962 build_call_raise, passing the now expected GNAT_NODE argument.
16964 * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
16965 source line information than what the current global locus indicates
16968 * utils2.c (build_simple_component_ref): Return 0 if the offset of the
16969 field has overflowed.
16970 (build_call_raise): Add a GNAT_NODE argument to convey better source
16971 line information than what the current global locus indicates when
16973 (build_component_ref): Adjust call to build_call_raise.
16975 2005-12-09 Pascal Obry <obry@adacore.com>
16977 * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
16978 the iterator is quitting iteration on parent directory.
16980 2005-12-09 Javier Miranda <miranda@adacore.com>
16982 * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
16983 and the assignment to a class-wide object, before the assignment we
16984 generate a run-time check to ensure that the tag of the Target is
16985 covered by the tag of the source.
16987 2005-12-09 Robert Dewar <dewar@adacore.com>
16989 * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
16990 parameter in call to Image_Wide_Character.
16992 * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
16993 parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
16994 (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
16995 annoying FFFE/FFFF inconsistency.
16997 2005-12-09 Robert Dewar <dewar@adacore.com>
16998 Javier Miranda <miranda@adacore.com>
16999 Ed Schonberg <schonberg@adacore.com>
17001 * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
17002 of type conversion.
17003 (Find_Interface): New subprogram that given a tagged type and one of its
17004 component associated with the secondary table of an abstract interface
17005 type, return the entity associated with such abstract interface type.
17006 (Make_Subtype_From_Expr): If type has unknown discriminants, always use
17007 base type to create anonymous subtype, because entity may be a locally
17008 declared subtype or generic actual.
17009 (Find_Interface): New subprogram that given a tagged type and one of its
17010 component associated with the secondary table of an abstract interface
17011 type, return the entity associated with such abstract interface type.
17013 * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
17014 conversion cannot be handled at compile time. In this case we pass this
17015 information to the expander to generate the appropriate code.
17017 2005-12-09 Robert Dewar <dewar@adacore.com>
17018 Ed Schonberg <schonberg@adacore.com>
17019 Gary Dismukes <dismukes@adacore.com>
17020 Javier Miranda <miranda@adacore.com>
17021 Hristian Kirtchev <kirtchev@adacore.com>
17023 * einfo.adb (Itype_Printed): New flag
17024 (Is_Limited_Type): Derived types do not inherit limitedness from
17025 interface progenitors.
17026 (Is_Return_By_Reference_Type): Predicate does not apply to limited
17029 * einfo.ads (Itype_Printed): New flag
17030 Move Is_Wrapper_Package to proper section
17031 Add missing Inline for Is_Volatile
17033 * output.ads, output.adb (Write_Erase_Char): New procedure
17034 (Save/Restore_Output_Buffer): New procedures
17035 (Save/Restore_Output_Buffer): New procedures
17037 * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
17038 Add missing support for anonymous access type
17039 (Write_Id): Insert calls to Write_Itype
17040 (Write_Itype): New procedure to output itypes
17042 * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
17043 use of "limited" in declaration.
17045 * sinfo.ads, sinfo.adb:
17046 Formal derived types can carry an explicit "limited" indication.
17048 * sem_ch3.adb: Add with and use of Targparm.
17049 (Create_Component): If Frontend_Layout_On_Target is True and the
17050 copied component does not have a known static Esize, then reset
17051 the size and positional fields of the new component.
17052 (Analyze_Component_Declaration): A limited component is
17053 legal within a protected type that implements an interface.
17054 (Collect_Interfaces): Do not add to the list the interfaces that
17055 are implemented by the ancestors.
17056 (Derived_Type_Declaration): If the parent of the full-view is an
17057 interface perform a transformation of the tree to ensure that it has
17058 the same parent than the partial-view. This simplifies the job of the
17059 expander in order to generate the correct object layout, and it is
17060 needed because the list of interfaces of the full-view can be given in
17062 (Process_Full_View): The parent of the full-view does not need to be
17063 a descendant of the parent of the partial view if both parents are
17065 (Analyze_Private_Extension_Declaration): If declaration has an explicit
17066 "limited" the parent must be a limited type.
17067 (Build_Derived_Record_Type): A derived type that is explicitly limited
17068 must have limited ancestor and progenitors.
17069 (Build_Derived_Type): Ditto.
17070 (Process_Full_View): Verify that explicit uses of "limited" in partial
17071 and full declarations are consistent.
17072 (Find_Ancestor_Interface): Remove function.
17073 (Collect_Implemented_Interfaces): New procedure used to gather all
17074 implemented interfaces by a type.
17075 (Contain_Interface): New function used to check whether an interface is
17077 (Find_Hidden_Interface): New function used to determine whether two
17078 lists of interfaces constitute a set equality. If not, the first
17079 differing interface is returned.
17080 (Process_Full_View): Improve the check for the "no hidden interface"
17081 rule as defined by AI-396.
17083 2005-12-09 Robert Dewar <dewar@adacore.com>
17085 * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
17086 types, not on record subtypes.
17087 (Freeze_Entity): Code cleanup. Add barrier to the loop
17088 that generates the references for primitive operations. This allows to
17089 remove an unnecessary exception handler.
17090 Code reformatting and comment clean ups.
17092 2005-12-09 Vincent Celier <celier@adacore.com>
17094 * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
17095 If GNAT CHECK is called with a project file, but with no
17096 source on the command line, call gnatcheck with all the compilable
17097 sources of the project.
17098 Take into account the new command Check, for gnatcheck. Treat as for
17099 other ASIS tools: take into account project, specific package Check and
17101 For ASIS tools, add the switches in package Compiler for
17102 the invocation of the compiler.
17104 * prj-attr.adb: Add package Check and its attributes
17106 * vms_conv.ads (Command_Type): New command Check, for gnatcheck
17108 * vms_conv.adb (Initialize): Change Params of command Check to
17110 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
17111 Add data for new command Check
17113 * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
17115 Add qualifiers for Check command options
17116 (Command_Type): New command Check
17118 2005-12-09 Thomas Quinot <quinot@adacore.com>
17120 * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
17121 command line switch overruns the output buffer.
17123 2005-12-09 Robert Dewar <dewar@adacore.com>
17125 * sem_prag.adb: Processing for new pragma Complete_Representation
17126 (Analyze_Pragma, case Debug): Implement two argument form.
17128 * par-prag.adb: Entry for new pragma Complete_Representation
17129 (Prag, case Debug): Recognize two argument form of pragma Debug
17130 New interface for Set_Style_Check_Options.
17132 * sem_ch13.adb: Implement new pragma Complete_Representation.
17134 * snames.adb, snames.ads, snames.h: Entry for new pragma
17135 Complete_Representation.
17137 2005-12-09 Gary Dismukes <dismukes@adacore.com>
17139 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
17140 available user-specified stream attributes on limited parameters to
17141 also test the type directly rather than only its underlying type (for
17142 Ada 95) and, in the case of Ada 2005, to check that the user-specified
17143 attributes are visible at the point of the subprogram declaration.
17144 For Ada 2005, the error message is modified to indicate that the
17145 type's stream attributes must be visible (again, only for -gnat05).
17147 2005-12-09 Ed Schonberg <schonberg@adacore.com>
17149 * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
17150 anonymous access types.
17152 * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
17153 matching of anonymous access types and anonymous access to subprogram
17154 types. 'R'M 4.9.1 (2/2).
17156 2005-12-09 Ed Schonberg <schonberg@adacore.com>
17158 * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
17159 rule prematurely when operands are universal, remaining ambiguities
17160 will be removed during resolution.
17163 * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
17164 that are Ada 2005 functions.
17165 (Has_Abstract_Interpretation): Subsidiary to
17166 Remove_Conversions, to remove ambiguities caused by abstract operations
17167 on numeric types when operands are universal.
17169 2005-12-09 Robert Dewar <dewar@adacore.com>
17171 * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
17172 for case where spec is categorized.
17174 2005-12-09 Javier Miranda <miranda@adacore.com>
17176 * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
17177 types use the corresponding record type. This was not needed before
17178 the implementation of Ada 2005 synchronized types because
17179 concurrent types were never tagged types in Ada 95.
17181 2005-12-09 Ed Schonberg <schonberg@adacore.com>
17183 * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
17184 first subtype of the type of the expression to verify that it is a
17187 2005-12-09 Robert Dewar <dewar@adacore.com>
17189 * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
17192 2005-12-09 Quentin Ochem <ochem@adacore.com>
17193 Robert Dewar <dewar@adacore.com>
17194 Ed Falis <falis@adacore.com>
17195 Florian Villoing <villoing@adacore.com>
17196 Thomas Quinot <quinot@adacore.com>
17197 Arnaud Charlet <charlet@adacore.com>
17199 * gnat_ugn.texi: Created section "Stack Related Tools"
17200 Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
17201 "Stack Related Tools"
17202 Added subsection "Static Stack Usage Analysis"
17203 Added subsection "Dynamic Stack Usage Analysis"
17204 Include documentation of itypes in sprint listing (-gnatG)
17205 Documented gnatbind -D switch (default sec stack size for fixed sec
17207 Added Interrupt_State and Persistent_BSS to list of configuration
17209 Add missing doc for maximum value of nnn in -gnatyMnnn
17211 * gnat_rm.texi: Document the AltiVec binding.
17212 Add documentation for pragma Complete_Representation
17213 Shortened an overly long line (> 79 chars)
17214 Clarify documentation of unchecked conversion in implementation
17216 Document two argument form of pragma Debug
17218 * types.ads (Column_Number): Update documentation.
17220 * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
17221 library level Finalize_Storage_Only objects (these are not attached to
17222 any finalization list).
17224 * system-mingw.ads: (Underlying_Priorities): Update comment.
17226 2005-12-09 Robert Dewar <dewar@adacore.com>
17228 * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
17229 i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
17230 inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
17231 i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
17232 krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
17233 lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
17234 interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
17235 s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
17238 2005-12-09 Robert Dewar <dewar@adacore.com>
17240 * s-vaflop-vms-alpha.adb: (Ne_F): New function
17241 (Ne_G): New function
17243 * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
17244 for tag assignment.
17245 (Rewrite_Comparison): Handle case where operation is not a comparison
17246 and ignore, and also handle type conversion case.
17248 2005-12-09 Thomas Quinot <quinot@adacore.com>
17250 * exp_aggr.ads: Fix typo in comment.
17251 ???-mark Convert_Aggr_In_Assignment as needing documentation.
17253 2005-12-09 Gary Dismukes <dismukes@adacore.com>
17255 * layout.adb: Replace various uses of byte by storage unit throughout.
17256 (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
17257 static size, convert to storage units before returning, to conform to
17260 2005-12-09 Matthew Gingell <gingell@adacore.com>
17262 * g-exctra.ads: Fix typo in comment.
17264 2005-12-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
17266 * utils.c: Minor reformatting.
17268 2005-12-09 Robert Dewar <dewar@adacore.com>
17271 Further comment fixes to make the status of the default file clear
17273 * s-bitops.adb: Clarify comment for Bits_Array
17275 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
17277 * Make-lang.in (ada.install-normal): Remove.
17279 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
17281 * Make-lang.in: Remove all dependencies on s-gtype.
17283 2005-12-05 Richard Guenther <rguenther@suse.de>
17285 * utils.c (convert): Use fold_convert where appropriate.
17287 2005-12-05 Paolo Bonzini <bonzini@gnu.org>
17289 * Makefile.in (gnatlib): Fix regex, using \. instead of . when
17292 2005-12-02 Richard Guenther <rguenther@suse.de>
17294 * trans.c (gnat_gimplify_expr): Use buildN instead of build.
17296 2005-12-01 Roger Sayle <roger@eyesopen.com>
17298 * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
17301 2005-11-23 Laurent Guerby <laurent@guerby.net>
17303 * mlib-prj.adb (Build_Library): Initialize Delete.
17305 2005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
17307 * socket.c: Add extern int h_errno for rtems since networking header
17308 files are not available at this point in a tool bootstrap. Newlib
17309 only has basic C library header files.
17311 2005-11-19 Richard Guenther <rguenther@suse.de>
17312 Roger Sayle <roger@eyesopen.com>
17315 * misc.c (internal_error_function): Don't use vsprintf to format
17316 the error message text, instead use pp_format_text and the new
17317 pretty printer APIs. This allows handling of %qs, %w, etc.
17319 2005-11-18 Laurent Guerby <laurent@guerby.net>
17322 * Makefile.in: Use s-auxdec-empty for RTEMS.
17324 2005-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
17327 * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
17328 a temporary if taking the address of something that is neither
17329 reference, declaration, or constant, since the gimplifier
17330 can't handle that case.
17332 2005-11-17 Laurent Guerby <laurent@guerby.net>
17335 * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
17337 2005-11-16 Richard Guenther <rguenther@suse.de>
17339 * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
17341 2005-11-16 Joel Sherrill <joel.sherrill@oarcorp.com>
17344 * raise-gcc.c: Add missing stdarg.h include.
17346 2005-11-16 Richard Guenther <rguenther@suse.de>
17348 * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
17349 (ada/misc.o): Likewise.
17351 2005-11-14 Thomas Quinot <quinot@adacore.com>
17353 * g-soccon.ads: Minor reformatting. Update comments.
17355 * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
17356 gain visibility on the declaration of struct timeval.
17358 * g-soccon-freebsd.ads,
17359 g-soccon-darwin.ads,
17360 g-soccon-tru64.ads,
17364 g-soccon-solaris.ads,
17366 g-soccon-mingw.ads,
17367 g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
17369 * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
17370 g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
17371 g-soccon-linux-x86.ads: New files.
17373 * g-socthi-mingw.adb:
17374 (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
17376 * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
17377 (time_t, suseconds_t): New types constructed to match the tv_sec
17378 and tv_usec fields of C struct timeval.
17379 (Timeval): Construct structure in terms of the new types.
17380 (Host_Errno): New function (imported from socket.c), returns last hosts
17383 * g-socthi-vxworks.adb: Add error handling circuitry.
17385 * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
17386 components of struct timeval.
17387 (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
17388 (Check_Selector): In error conditions, clear internal socket sets to
17389 avoid a memory leak.
17390 (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
17391 Send_Timeout, Receive_Timeout.
17393 * g-socthi.ads (time_t, suseconds_t): New types constructed to match
17394 the tv_sec and tv_usec fields of C struct timeval.
17395 (Timeval): Construct structure in terms of the new types.
17396 (Host_Errno): New function (imported from socket.c), returns last hosts
17399 * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
17400 hosts database last error code.
17402 * gen-soccon.c: Complete value expansion should not be performed on
17403 TARGET, as it has the form of a math expression, and some components
17404 may be platform-defined macros.
17405 For VxWorks, generate the OK and ERROR values.
17406 New constants giving the sizes of the components of C struct timeval.
17408 2005-11-14 Robert Dewar <dewar@adacore.com>
17409 Ed Schonberg <schonberg@adacore.com>
17412 * types.ads: Include All_Checks in Suppress_Array
17414 * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
17415 not(a=b), since we no longer do this rewriting, and hence it is not
17417 (Elaboration_Checks_Suppressed): Add special casing to
17418 deal with different cases of static and dynamic elaboration checks (all
17419 checks does not count in the first case, but does in the second).
17420 (Expr_Known_Valid): Do not assume that the result of any arbitrary
17421 function call is valid, since this is not the case.
17422 (Ensure_Valid): Do not apply validity check to a real literal
17423 in a universal or fixed context
17425 * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
17426 elementary types using the operator in standard. It is cleaner not to
17427 modify the programmers intent, especially in the case of floating-point.
17428 (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
17429 it did not matter because we always rewrote a/=b to not(a=b).
17430 (Expand_Allocator_Expression): For an allocator expression whose nominal
17431 subtype is an unconstrained packed type, convert the expression to its
17432 actual constrained subtype.
17433 Implement warning for <= or >= where < or > not possible
17434 Fix to Vax_Float tests (too early in many routines, causing premature
17435 Vax_Float expansions.
17437 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
17438 to be used with packages and generic packages as well as with
17440 (Suppress): Set All_Checks, but not Elaboration_Check, for case
17441 of pragma Suppress (All_Checks)
17442 (Analyze_Pragma, case Warnings): Implement first argument allowed to be
17443 a string literal for precise control over warnings.
17444 Avoid raise of pragma in case of unrecognized pragma and just return
17447 * sem_prag.ads: Minor reformatting
17449 * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
17450 with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
17451 Switch. Do not handle any exception.
17452 Include -gnatwx as part of -gnatg (warn on redundant parens)
17453 Allow optional = after -gnatm
17454 (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
17455 longer sets Elaboration_Checks.
17456 Code to set warning mode moved to Sem_Warn
17457 so that it can be shared by pragma processing.
17459 * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
17462 * s-taprop-solaris.adb:
17463 Change some <= to =, to avoid new warning
17465 * a-exexda.adb, prj-proc.adb:
17466 Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
17467 Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
17469 2005-11-14 Robert Dewar <dewar@adacore.com>
17471 * exp_vfpt.adb: Handle /= case
17472 (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
17473 so that we do not get duplicate scaling for fixed point conversions.
17475 * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
17477 2005-11-14 Matthew Gingell <gingell@adacore.com>
17479 * system-lynxos-ppc.ads, system-lynxos-x86.ads:
17480 Increase default priority on Lynx from 15 to 17, and meet the Ada
17481 requirement that Default_Priority be ((Priority'First +
17482 Priority'Last) / 2) by increasing the range of Interrupt_Priority.
17484 2005-11-14 Vincent Celier <celier@adacore.com>
17486 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
17487 mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
17488 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
17489 mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
17490 mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
17491 mlib-tgt-lynxos.adb (DLL_Prefix): New function
17493 2005-11-14 Doug Rupp <rupp@adacore.com>
17495 * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
17498 2005-11-14 Arnaud Charlet <charlet@adacore.com>
17500 * s-traces-default.adb, s-trafor-default.ads,
17501 s-tratas-default.adb: Fix compilation errors.
17503 2005-11-14 Jose Ruiz <ruiz@adacore.com>
17505 * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
17506 raising the exception so the memory used is freed.
17508 2005-11-14 Arnaud Charlet <charlet@adacore.com>
17510 * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
17511 (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
17512 (convert_address): Update comments and list of platforms using this.
17514 * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
17517 2005-11-14 Pascal Obry <obry@adacore.com>
17518 Vincent Celier <celier@adacore.com>
17520 * gnatdll.adb (Parse_Command_Line): Remove redundant use of
17523 * memroot.adb: Remove redundant with/use clause on
17524 System.Storage_Elements.
17526 2005-11-14 Arnaud Charlet <charlet@adacore.com>
17528 * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
17529 (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
17530 related code to a-exexpr.adb
17531 (Save_Occurrence_And_Private): Move GCC EH related code to
17533 (Raise_Current_Excep): Add new variable Id with pragma
17534 volatile, to ensure that the variable lives on stack.
17536 * a-exexpr-gcc.adb, raise-gcc.c: New file.
17538 * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
17540 Move GCC EH related code to a-exexpr-gcc.adb
17542 * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
17544 Split the Linux version of g-soccon into separate variants for 32 and 64
17546 (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
17547 vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
17548 install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
17549 of host variable $(RANLIB_FLAGS).
17550 (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
17551 Code clean up: remove unused/obsolete targets.
17552 (EH_MECHANISM): New variable introduced to differenciate between the
17553 two EH mechanisms statically.
17554 (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
17555 (LIBGNAT_OBJS): Add raise-gcc.o
17556 (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
17557 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
17558 supports VxWorks 6 RTPs.
17559 (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
17560 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
17562 * raise.c: Move all GCC EH-related routines to raise-gcc.c
17564 2005-11-14 Jose Ruiz <ruiz@adacore.com>
17566 * s-tassta.adb (Create_Task): Move the code in charge of resetting the
17567 deferral level, when abort is not allowed, to a later stage (the
17569 (Task_Wrapper): If Abort is not allowed, reset the deferral level since
17570 it will not get changed by the generated code. It was previously done
17573 2005-11-14 Thomas Quinot <quinot@adacore.com>
17574 Olivier Hainque <hainque@adacore.com>
17575 Eric Botcazou <ebotcazou@adacore.com>
17578 Factor common code to build a storage type for an unconstrained object
17579 from a fat or thin pointer type and a constrained object type.
17580 (annotate_value): Handle BIT_AND_EXPR.
17581 (annotate_rep): Don't restrict the back annotation of inherited
17582 components to the type_annotate_only case.
17583 (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
17584 we are not defining the type.
17585 <E_Record_Type>: Likewise.
17586 (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
17587 to get advantage of the new maybe_stabilize_reference interface, to
17588 ensure that what we reference is indeed stabilized instead of relying
17589 on assumptions on what the stabilizer does.
17590 (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
17591 type imported through a limited_with clause, use its non-limited view.
17592 (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
17594 (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
17595 of #if sections + explicit comparisons of convention identifiers.
17596 (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
17597 before early-returning for certain types when code generation is
17599 (gnat_to_gnu_entity) <object>: Adjust comment attached to the
17600 nullification of gnu_expr we do for objects with address clause and
17601 that we are not defining.
17602 (elaborate_expression_1): Do not create constants when creating
17603 variables needed by the debug info: the dwarf2 writer considers that
17604 CONST_DECLs is used only to represent enumeration constants, and emits
17606 (gnat_to_gnu_entity) <object>: When turning a non-definition of an
17607 object with an address clause into an indirect reference, drop the
17608 initializing expression.
17610 (STACK_CHECK_BUILTIN): Delete.
17611 (STACK_CHECK_PROBE_INTERVAL): Likewise.
17612 (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
17613 (STACK_CHECK_MAX_VAR_SIZE): Likewise.
17614 (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
17615 corresponding to the renamed object as ignored for debugging purposes.
17617 * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
17618 related): For a prefix that is a dereference of a fat or thin pointer,
17619 if there is an actual subtype provided by the front-end, use that
17620 subtype to build an actual type with bounds template.
17621 (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
17622 is provided by the front-end, use that subtype to compute the size of
17623 the deallocated object.
17624 (gnat_to_gnu): When adding a statement into an elaboration procedure,
17625 check for a potential violation of a No_Elaboration_Code restriction.
17626 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
17627 with extra arguments to control whether to recurse through non-values
17628 and to let the caller know if the stabilization has succeeded.
17629 (gnat_stabilize_reference): Now a simple wrapper around
17630 maybe_stabilize, for common uses without restriction on lvalues and
17631 without need to check for the success indication.
17632 (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
17633 pass false instead of 0 as the FORCE argument which is a bool.
17634 (Identifier_to_gnu): Remove checks ensuring that an renamed object
17635 attached to a renaming pointer has been properly stabilized, as no such
17636 object is attached otherwise.
17637 (call_to_gnu): Invoke create_var_decl to create the temporary when the
17638 function uses the "target pointer" return mechanism.
17639 Reinstate conversion of the actual to the type of the formal
17640 parameter before any other specific treatment based on the passing
17641 mechanism. This turns out to be necessary in order for PLACEHOLDER
17642 substitution to work properly when the latter type is unconstrained.
17644 * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
17646 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
17647 with extra arguments to control whether to recurse through non-values
17648 and to let the caller know if the stabilization has succeeded.
17650 * utils2.c (gnat_build_constructor): Only sort the fields for possible
17651 static output of record constructor if all the components are constant.
17652 (gnat_build_constructor): For a record type, sort the list of field
17653 initializers in increasing bit position order.
17654 Factor common code to build a storage type for an unconstrained object
17655 from a fat or thin pointer type and a constrained object type.
17656 (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
17657 types variants, and process special cases of VIEW_CONVERT expressions
17658 as their NOP_EXPR counterpart to ensure we get to the
17659 CORRESPONDING_VARs associated with CONST_DECls.
17660 (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
17661 on the right-hand side.
17663 * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
17665 (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
17666 are converting back to its original type.
17667 (convert) <JM input>: Fallthrough regular conversion code instead of
17668 extracting the object if converting to a type variant.
17669 (create_var_decl): When a variable has an initializer requiring code
17670 generation and we are at the top level, check for a potential violation
17671 of a No_Elaboration_Code restriction.
17672 (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
17673 SIZE and SIZE_UNIT which we need for later back-annotations.
17674 * utils.c: (convert) <STRING_CST>: Remove obsolete code.
17675 <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
17676 is an unchecked union.
17677 (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
17678 (convert) <VIEW_CONVERT_EXPR>: When the types have the same
17679 main variant, just replace the VIEW_CONVERT_EXPR.
17680 <UNION_TYPE>: Revert 2005-03-02 change.
17682 * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
17684 * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
17686 2005-11-14 Matthew Heaney <heaney@adacore.com>
17688 * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads,
17689 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb,
17690 a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads,
17691 a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb,
17692 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
17693 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb:
17694 Compiles against the spec for ordered maps described in sections
17695 A.18.6 of the most recent (August 2005) AI-302 draft.
17697 2005-11-14 Olivier Hainque <hainque@adacore.com>
17699 * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
17700 to ensure bias adjustments take place when need be and to prevent
17701 occurrences of intermediate overflows.
17703 2005-11-14 Matthew Gingell <gingell@adacore.com>
17704 Olivier Hainque <hainque@adacore.com>
17706 * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
17709 * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
17710 tracebacks on ia64 HP-UX and provide explanatory comment.
17711 Enable backtraces on ia64 GNU/Linux.
17712 (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
17713 base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
17715 2005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
17716 Javier Miranda <miranda@adacore.com>
17718 * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
17719 exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
17720 exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
17721 einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
17723 * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
17724 properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
17727 * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
17728 subprogram that generates the external name associated with a
17729 secondary dispatch table.
17730 (Get_Secondary_DT_External_Name): New subprogram that generates the
17731 external name associated with a secondary dispatch table.
17733 2005-11-14 Emmanuel Briot <briot@adacore.com>
17735 * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
17736 line in the ALI file to include both an instantiation reference, and a
17739 2005-11-14 Vincent Celier <celier@adacore.com>
17741 * clean.adb (Check_Project): Look for Ada code in extending project,
17742 even if Ada is not specified as a language.
17743 Use new function DLL_Prefix for DLL_Name
17744 (Clean_Interface_Copy_Directory): New procedure
17745 (Clean_Library_Directory): New procedure
17746 (Clean_Directory): Remove procedure, no longer used
17747 (Clean_Project): Do not delete any file in an externally built project
17749 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
17750 directory of an extending project, even when there are no Ada source
17752 (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
17753 (Set_Ada_Paths.Add.Recursive_Add): Ditto
17755 * mlib-prj.adb (Check_Library): For all library projects, get the
17756 library file timestamp.
17757 (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
17758 (Build_Library): Use new function DLL_Prefix for the DLL_Name
17759 (Clean): Remove procedure, no longer used
17760 (Ultimate_Extension_Of): New function
17761 (Build_Library): When cleaning the library directory, only remove an
17762 existing library file and any ALI file of a source of the project.
17763 When cleaning the interface copy directory, remove any source that
17764 could be a source of the project.
17766 * prj.ads, prj.adb (Project_Empty): Add values of new components
17767 Library_TS and All_Imported_Projects.
17768 (Project_Empty): Add values for new components of Project_Data:
17769 Library_ALI_Dir and Display_Library_ALI_Dir
17771 * prj-attr.adb: New project level attribute name Library_ALI_Dir
17773 * prj-nmsc.adb (Check_Library_Attributes): Take into account new
17774 attribute Library_ALI_Dir.
17775 (Check_Library_Attributes): The library directory cannot be the same as
17776 any source directory of the project tree.
17777 (Check_Stand_Alone_Library): The interface copy directory cannot be
17778 the same as any source directory of the project tree.
17780 * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
17781 all temporary files.
17783 2005-11-14 Robert Dewar <dewar@adacore.com>
17784 Ed Schonberg <schonberg@adacore.com>
17786 * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
17787 (Check_Elab_Call): A call within a protected body is never an
17788 elaboration call, and does not require checking.
17789 (Same_Elaboration_Scope): Take into account protected types for both
17791 (Activate_Elaborate_All_Desirable): New procedure
17793 * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
17796 * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
17797 (Elab_Error_Msg): Use -da to include internal unit links, not -de.
17799 * lib-writ.ads, lib-writ.adb:
17800 Implement new AD/ED for Elaborate_All/Elaborate desirable
17801 Use new Elaborate_All_Desirable flag in N_With_Clause node
17803 * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
17804 N_Free_Statement nodes.
17805 Define new class N_Subprogram_Instantiation
17806 Add Elaborate_Desirable flag to N_With_Clause node
17807 Add N_Delay_Statement (covering two kinds of delay)
17809 * debug.adb: Introduce d.f flag for compiler
17810 Add -da switch for binder
17812 2005-11-14 Ed Schonberg <schonberg@adacore.com>
17813 Cyrille Comar <comar@adacore.com>
17815 * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
17816 for task component, in the case of a limited aggregate. The enclosed
17817 object declaration will create it earlier. Otherwise, in the case of a
17818 nested aggregate, the object may appear in the wrong scope.
17819 (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
17820 (Gen_Assign): If the component being assigned is an array type and the
17821 expression is itself an aggregate, wrap the assignment in a block to
17822 force finalization actions on the temporary created for each row of the
17824 (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
17825 structures are initialized after all discriminants are set so that
17826 they can be accessed even when their offset is dynamic.
17828 2005-11-14 Robert Dewar <dewar@adacore.com>
17829 Hristian Kirtchev <kirtchev@adacore.com>
17831 * sem_attr.adb: Implement Machine_Rounding attribute
17832 (Analyze_Access_Attribute): The access attribute may appear within an
17833 aggregate that has been expanded into a loop.
17834 (Check_Task_Prefix): Add semantic check for attribute 'Callable and
17835 'Terminated whenever the prefix is of a task interface class-wide type.
17836 (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
17837 the prefix is of a task interface class-wide type.
17839 * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
17842 * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
17843 Remove pragma Inline for [Unaligned_]Valid.
17844 Add comments that Valid routines do not work for Vax_Float
17846 * exp_attr.adb: Implement Machine_Rounding attribute
17848 * snames.h: Add entry for Machine_Rounding attribute
17850 2005-11-14 Javier Miranda <miranda@adacore.com>
17851 Robert Dewar <dewar@adacore.com>
17852 Hristian Kirtchev <kirtchev@adacore.com>
17854 * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
17855 and related): For a prefix that is an explicit dereference of an
17856 access to unconstrained packed array type, annotate the dereference
17857 with an actual subtype so GIGI can make a correct size computation.
17858 (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
17859 'Unrestricted_Access, if the designated type is an interface we
17860 add a type conversion to force the displacement of the pointer
17861 to the secondary dispatch table.
17862 Use Universal_Real instead of Long_Long_Float when we need a high
17863 precision float type for the generated code (prevents gratuitous
17864 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
17865 (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
17866 'Terminated for task interface class-wide objects. Generate a call to
17867 the predefined dispatching routine used to retrieve the _task_id from
17868 a task corresponding record.
17869 (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
17871 * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
17872 (Check_Dispatching_Operation): Protect the frontend againts
17873 previously detected errors.
17875 * Makefile.rtl: Add new instantiations of system.fat_gen
17877 * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads:
17878 Change name of instantiated package for better consistency
17879 with newly added system.fat_gen instantiations.
17881 * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
17882 s-fvagfl.ads: New files.
17884 2005-11-14 Cyrille Comar <comar@adacore.com>
17885 Thomas Quinot <quinot@adacore.com>
17887 * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
17888 assignment of a value of a tagged type that has been rewritten to a
17889 block statement, it is known by construction that no checks are
17890 necessary for the statements within the block: analyze it with checks
17892 (Expand_N_If_Statement): When killing a dead then-branch in an
17893 if-statement that has elsif_parts, recompute the Current_Value node
17894 for any entity whose value is known from the condition of the first
17896 (Expand_N_Return_Statement): When returning a mutable record, convert
17897 the return value into its actual subtype in order to help the backend
17898 to return the actual size instead of the maximum. This is another
17899 aftermath of not returning mutable records on the sec-stack anymore.
17901 * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
17902 handling of error msg for suspicious reverse range iteration.
17903 (Check_Possible_Current_Value_Condition): Move declaration from body to
17904 spec, to allow this subprogram to be called from exp_ch5.
17906 2005-11-14 Thomas Quinot <quinot@adacore.com>
17908 * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
17909 generate a set of nested array aggregates instead of a single flat
17910 aggregate for multi-dimensional arrays.
17912 2005-11-14 Pascal Obry <obry@adacore.com>
17914 * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
17915 by spawnve is a process handle, no need to convert. Add a parameter
17916 close to control wether the process handle must be closed.
17917 (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
17918 a process handle, not need to convert.
17919 (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
17921 * g-expect.adb: (Kill): Document the new close parameter.
17922 (Close): Do not release the process handle in the kill there as
17923 waitpid() is using it.
17924 (Send_Signal): Release the process handle.
17926 2005-11-14 Robert Dewar <dewar@adacore.com>
17928 * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
17929 need a high precision float type for the generated code (prevents
17930 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
17933 * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
17934 need a high precision float type for the generated code (prevents
17935 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
17937 (Expand_Width_Attribute): In configurable run-time, the attribute is not
17938 allowed on non-static enumeration subtypes. Force a load error to emit
17939 the correct diagnostic.
17941 2005-11-14 Thomas Quinot <quinot@adacore.com>
17942 Robert Dewar <dewar@adacore.com>
17943 Ed Schonberg <schonberg@adacore.com>
17945 * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
17946 subtype to compute the size of the designated object at run-time,
17947 create such a subtype and store it in the Actual_Designated_Subtype
17948 attribute of the N_Free_Statement.
17949 Generate itype for classwide designated object in both cases of
17950 user-specified storage pool: specific and class-wide, not only in the
17952 Raise CE when trying to set a not null access type object to null.
17953 (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
17954 an explicit loop, because freeze nodes make its position variable.
17956 * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
17959 2005-11-14 Javier Miranda <miranda@adacore.com>
17961 * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
17962 Build_Stream_Procedure): Add the null-excluding attribute to the first
17964 This has no semantic meaning under Ada95 mode but it is a
17965 requirement under Ada05 mode.
17967 * par-ch3.adb (P_Access_Definition): Addition of warning message if
17968 the null exclusion is used under Ada95 mode
17969 (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
17970 (P_Access_Definition): Remove assertion that forbids the use of
17971 the null-exclusion feature in Ada95.
17973 2005-11-14 Robert Dewar <dewar@adacore.com>
17975 * impunit.adb: Exclude container helper units not intended for use by
17978 2005-11-14 Ed Schonberg <schonberg@adacore.com>
17980 * freeze.adb (Freeze_Entity): For an access formal that is an access
17981 to subprogram, freeze the anonymous subprogram type at the same time,
17982 to prevent later freezing in the wrong scope, such as the enclosing
17984 (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
17985 subprogram whenever available.
17987 2005-11-14 Arnaud Charlet <charlet@adacore.com>
17990 * gnatvsn.ads (Library_Version): Bump to 4.1
17992 2005-11-14 Robert Dewar <dewar@adacore.com>
17994 * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
17995 Storage_Offset to avoid wrap around causing invalid results.
17997 2005-11-14 Pascal Obry <obry@adacore.com>
17999 * gnatbind.adb (Is_Cross_Compiler): New function returning True for
18001 (Scan_Bind_Arg): Fail with an error message if -M option is used
18002 on a native compiler.
18004 2005-11-14 Robert Dewar <dewar@adacore.com>
18005 Vincent Celier <celier@adacore.com>
18007 * gprep.adb: Implement -C switch to scan comments
18009 * scng.adb: Scan comment symbol separately if Replace_In_Comments set
18011 * scans.ads: Comment updates (including new use of Tok_Comment in
18014 * opt.ads: Add documentation for flags that are used by gprmake,
18015 currently and in the next version of gprmake.
18016 (Verbosity_Level): New variable
18017 Add Replace_In_Comments switch
18019 * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
18021 Add /REPLACE_IN_COMMENTS for gnatprep -C switch
18023 2005-11-14 Arnaud Charlet <charlet@adacore.com>
18025 * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
18026 message, friendlier.
18028 2005-11-14 Robert Dewar <dewar@adacore.com>
18030 * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
18032 2005-11-14 Doug Rupp <rupp@adacore.com>
18034 * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
18036 2005-11-14 Robert Dewar <dewar@adacore.com>
18038 * interfac.ads: Change declarations of IEEE float types so that we no
18039 longer need a separate version of this package for VMS.
18041 2005-11-14 Ed Schonberg <schonberg@adacore.com>
18043 * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
18044 internal entity created for the declaration of a child subprogram body
18045 with no spec as coming from source, to generate proper cross-reference
18048 2005-11-14 Vincent Celier <celier@adacore.com>
18050 * make.adb (Compile_Sources): Change verbose message to minimum
18051 verbosity level High for "is in an Ada library", "is a read-only
18052 library" and "is an internal library",
18053 (Create_Binder_Mapping_File): Path name of ALI file for library project
18054 must include the library directory, not the object directory.
18055 (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
18056 for new switches -vl, -vm and -vh.
18057 (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
18058 (Check): Use minimum verbosity Medium for some Verbose_Msg calls
18059 (Compile_Sources): Do not attempt to compile if an ALI file is missing
18060 in a project that is externally built.
18061 (Compute_All_Imported_Projects): New procedure
18062 (Gnatmake): Check if importing libraries should be regenerated because
18063 at least an imported library is more recent.
18064 (Initialize): For each project compute the list of the projects it
18065 imports directly or indirectly.
18066 (Add_Library_Search_Dir): New procedure, used in place of
18067 Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
18068 put in the search paths.
18069 (Add_Source_Search_Dir): New procedure, used in place of
18070 Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
18071 put in the search paths.
18072 (Mark_Directory): Resolve the absolute path the directory before marking
18075 * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
18076 call to new procedure Bad_Switch. Call Scan_Pos with new parameter
18077 Switch. Do not handle any exception.
18078 (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
18079 so that the switch is recognized as valid.
18080 (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
18082 2005-11-14 GNAT Script <nobody@adacore.com>
18084 * Make-lang.in: Makefile automatically updated
18086 2005-11-14 Pascal Obry <obry@adacore.com>
18088 * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
18090 (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
18091 In both cases the last argument was dropped.
18093 2005-11-14 Eric Botcazou <ebotcazou@adacore.com>
18095 * namet.h: (Column_Numbe): New type.
18096 (Get_Column_Number): Define to sinput__get_column_number.
18097 (Instantiation): Define to sinput__instantiation.
18098 (Get_Column_Number): Declare.
18099 (Instantiation): Likewise.
18101 2005-11-14 Robert Dewar <dewar@adacore.com>
18103 * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
18104 syntax, which could cause compiler hangs.
18106 2005-11-14 Vincent Celier <celier@adacore.com>
18108 * prj-ext.adb: Take into account new environment variable
18109 GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
18111 (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
18112 normalize its path name, making it absolute and resolving symbolic
18113 links, and replace the original if resolved path is different.
18115 2005-11-14 Vincent Celier <celier@adacore.com>
18117 * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
18118 into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
18120 2005-11-14 Emmanuel Briot <briot@adacore.com>
18122 * prj-pp.adb (Print): Do not output the with statement if the
18123 associated name is empty, which happens for virtual extending projects.
18124 (Print): Preserve the "extends all" attribute when printing the project.
18126 * prj-tree.ads (String_Value_Of): Add comment about returned value for
18127 a virtual extending project.
18129 2005-11-14 Ed Schonberg <schonberg@adacore.com>
18131 * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
18132 rhs of an assignment even if the type is unconstrained, when the
18133 context is non-expanding.
18134 In an inlined body, if the context type is private,
18135 resolve with its full view, which must be a composite type.
18137 2005-11-14 Robert Dewar <dewar@adacore.com>
18138 Ed Schonberg <schonberg@adacore.com>
18140 * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
18141 Do not give obsolescent warning on with of subprogram (since we
18143 (Analyze_With_Clause): Add test for obsolescent package
18144 (Install_Context_Clauses): If the unit is the body of a child unit, do
18145 not install twice the private declarations of the parents, to prevent
18146 circular lists of Use_Clauses in a parent.
18147 (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
18148 compiling body of child unit.
18149 Use new class N_Subprogram_Instantiation
18150 (Expand_With_Clause): If this is a private with_clause for a child unit,
18151 appearing in the context of a package declaration, then the implicit
18152 with_clauses generated for parent units are private as well.
18153 (License_Check): Do not generate message if with'ed unit is internal
18155 2005-11-14 Gary Dismukes <dismukes@adacore.com>
18156 Ed Schonberg <schonberg@adacore.com>
18157 Thomas Quinot <quinot@adacore.com>
18159 * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
18160 names are internal, because they will not have a corresponding partner
18161 in the actual package.
18162 (Analyze_Formal_Package): Move the setting of the formal package spec's
18163 Generic_Parent field so that it occurs prior to analyzing the package,
18164 to allow proper operation of Install_Parent_Private_Declarations.
18165 (Analyze_Package_Instantiation): Set the instantiated package entity's
18166 Package_Instantiation field.
18167 (Get_Package_Instantiation_Node): Move declaration to package spec.
18168 Retrieve the N_Package_Instantiation node when the Package_Instantiation
18170 (Check_Generic_Child_Unit): Within an inlined call, the only possible
18171 instantiation is Unchecked_Conversion, for which no parents are needed.
18172 (Inline_Instance_Body): Deinstall and record the use_clauses for all
18173 parent scopes of a scope being removed prior to inlining an instance
18175 (Analyze_Package_Instantiation): Do not perform front-end inlining when
18176 the current context is itself an instance within a non-instance child
18177 unit, to prevent scope stack errors.
18178 (Save_References): If the node is an aggregate that is an actual in a
18179 call, rewrite as a qualified expression to preserve some type
18180 information, to resolve possible ambiguities in the instance.
18181 (Instance_Parent_Unit): New global variable to record the ultimate
18182 parent unit associated with a generic child unit instance (associated
18183 with the existing Parent_Unit_Visible flag).
18184 (type Instance_Env): New component Instance_Parent_Unit for stacking
18185 parents recorded in the global Instance_Parent_Unit.
18186 (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
18188 (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
18189 it's not a top-level unit, and only do this if Instance_Parent_Unit is
18190 not already set. Replace test of Is_Child_Unit with test of parent's
18191 scope against package Standard. Add comments and a ??? comment.
18192 (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
18193 on a child instance parent to test that the parent equals
18194 Instance_Parent rather than simply checking that the unit is not a
18196 (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
18197 (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
18198 a formal interface are ancestors of the corresponding actual.
18199 (Validate_Formal_Interface_Type): Additional legality checks.
18200 (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
18201 interface types with ancestors.
18202 (Analyze_Formal_Package): If formal is a renaming, use renamed entity
18203 to diagnose attempts to use generic within its own declaration.
18205 2005-11-14 Ed Schonberg <schonberg@adacore.com>
18206 Javier Miranda <miranda@adacore.com>
18208 * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
18210 (Build_Private_Derived_Type): The entity of the created full view of the
18211 derived type does not come from source. If after installing the private
18212 declarations of the parent scope the parent is still private, use its
18213 full view to construct the full declaration of the derived type.
18214 (Build_Derived_Record_Type): Relax the condition that controls the
18215 execution of the check that verifies that the partial view and
18216 the full view agree in the set of implemented interfaces. In
18217 addition, this test now only takes into account the progenitors.
18218 (Derive_Interface_Subprograms): No need to derive subprograms
18219 of ancestors that are interfaces.
18220 (Derive_Subprograms): Remove formal No_Predefined_Prims and the
18222 Change name Is_Package to Is_Package_Or_Generic_Package
18223 (Complete_Subprograms_Derivation): Handle the case in which the full
18224 view is a transitive derivation of the ancestor of the partial view.
18225 (Process_Full_View): Rename local subprogram Find_Interface_In_
18226 Descendant to Find_Ancestor_Interface to leave the code more clear.
18227 Remove wrong code that avoids the generation of an error message
18228 when the immediate ancestor of the partial view is an interface.
18229 In addition some minor reorganization of the code has been done to
18230 leave it more clear.
18231 (Analyze_Type_Declaration): If type has previous incomplete tagged
18232 partial view, inherit properly its primitive operations.
18233 (Collect_Interfaces): Make public, for analysis of formal
18235 (Analyze_Interface_Declaration): New procedure for use for regular and
18236 formal interface declarations.
18237 (Build_Derived_Record_Type): Add support for private types to the code
18238 that checks if a tagged type implements abstract interfaces.
18239 (Check_Aliased_Component_Type): The test applies in the spec of an
18241 (Access_Type_Declaration): Clean up declaration of malformed type
18242 declared as an access to its own classwide type, to prevent cascaded
18244 (Collect_Interfaces): For private extensions and for derived task types
18245 and derived protected types, the parent may be an interface that must
18246 be included in the interface list.
18247 (Access_Definition): If the designated type is an interface that may
18248 contain tasks, create Master_Id for it before analyzing the expression
18249 of the declaration, which may be an allocator.
18250 (Record_Type_Declaration): Set properly the interface kind, for use
18251 in allocators, the creation of master id's for task interfaces, etc.
18253 2005-11-14 Javier Miranda <miranda@adacore.com>
18254 Ed Schonberg <schonberg@adacore.com>
18256 * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
18257 omitted in case of stream attribute subprograms.
18258 (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
18259 appear immediately after a subprogram body, when there is no previous
18260 subprogram declaration.
18261 Change name Is_Package to Is_Package_Or_Generic_Package
18262 (Process_Formals): A non null qualifier on a non null named access
18263 type is not an error, and is a warning only if Redundant_Constructs
18266 2005-11-14 Gary Dismukes <dismukes@adacore.com>
18267 Ed Schonberg <schonberg@adacore.com>
18269 * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
18270 nested within Analyze_Package_Specification to install the private
18271 declarations and use clauses within each of the parent units of a
18272 package instance of a generic child package.
18273 (Analyze_Package_Specification): When entering a private part of a
18274 package associated with a generic instance or formal package, the
18275 private declarations of the parent must be installed (by calling new
18276 procedure Install_Parent_Private_Declarations).
18277 Change name Is_Package to Is_Package_Or_Generic_Package
18278 (Preserve_Full_Attributes): For a synchronized type, the corresponding
18279 record is absent in a generic context, which does not indicate a
18282 2005-11-14 Ed Schonberg <schonberg@adacore.com>
18284 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
18285 not try to rewrite a renamed stream attribute, because the operations
18286 on the type may not have been generated.
18287 Handle properly a renaming_as_body generated for a stream operation
18288 whose default is abstract because the object type itself is abstract.
18289 (Find_Type): If the type is incomplete and appears as the prefix of a
18290 'Class reference, it is tagged, and its list of primitive operations
18291 must be initialized properly.
18292 (Chain_Use_Clauses): When chaining the use clauses that appear in the
18293 private declaration of a parent unit, prior to compiling the private
18294 part of a child unit, find on the scope stack the proper parent entity
18295 on which to link the use clause.
18296 (Note_Redundant_Use): Emit a warning when a redundant use clause is
18298 (Analyze_Object_Renaming): An attribute reference is not a legal object
18299 if it is not a function call.
18301 2005-11-14 Robert Dewar <dewar@adacore.com>
18302 Ed Schonberg <schonberg@adacore.com>
18304 * sem_eval.adb: Implement d.f flag
18305 (Subtype_Statically_Match): A generic actual type has unknown
18306 discriminants when the corresponding actual has a similar partial view.
18307 If the routine is called to validate the signature of an inherited
18308 operation in a child instance, the generic actual matches the full view,
18310 2005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
18311 Ed Schonberg <schonberg@adacore.com>
18312 Robert Dewar <dewar@adacore.com>
18313 Thomas Quinot <quinot@adacore.com>
18315 * sem_res.adb (Resolve_Call): Provide a better error message whenever
18316 a procedure call is used as a select statement trigger and is not an
18317 entry renaming or a primitive of a limited interface.
18318 (Valid_Conversion): If the operand has a single interpretation do not
18319 remove address operations.
18320 (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
18321 statement to inhibit warning.
18322 (Resolve_Unary_Op): Do not produce a warning when
18323 processing an expression of the form -(A mod B)
18324 Use Universal_Real instead of Long_Long_Float when we need a high
18325 precision float type for the generated code (prevents gratuitous
18326 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
18327 (Resolve_Concatenation_Arg): Improve error message when argument is an
18328 ambiguous call to a function that returns an array.
18329 (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
18330 there is an implicit operator in the given scope if we are within an
18331 instance: legality check has been performed on the generic.
18332 (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
18333 after resolving operand, to avoid false warnings on overloaded calls.
18335 2005-11-14 Ed Schonberg <schonberg@adacore.com>
18336 Javier Miranda <miranda@adacore.com>
18339 * sem_type.adb (Covers): In an inlined body, a composite type matches
18340 a private type whose full view is a composite type.
18341 (Interface_Present_In_Ancestor): Protect the frontend against
18342 previously detected errors to ensure that its compilation
18343 with assertions enabled gives the same output that its
18344 compilation without assertions.
18345 (Interface_Present_In_Ancestor): Add support for private types.
18346 Change name In_Actual to In_Generic_Actual (clean up)
18347 (Disambiguate): New predicate In_Actual, to recognize expressions that
18348 appear in the renaming declaration generated for generic actuals, and
18349 which must be resolved in the outer context.
18351 2005-11-14 Robert Dewar <dewar@adacore.com>
18352 Thomas Quinot <quinot@adacore.com>
18353 Hristian Kirtchev <kirtchev@adacore.com>
18354 Ed Schonberg <schonberg@adacore.com>
18356 * sem_util.ads, sem_util.adb: Change name Is_Package to
18357 Is_Package_Or_Generic_Package.
18358 (Check_Obsolescent): New procedure.
18359 (Set_Is_Public): Remove obsolete junk test.
18360 (Set_Public_Status): Do not set Is_Public on an object whose declaration
18361 occurs within a handled_sequence_of_statemets.
18362 (Is_Controlling_Limited_Procedure): Factor some of the logic, account
18363 for a parameterless procedure.
18364 (Enter_Name): Recognize renaming declarations created for private
18365 component of a protected type within protected operations, so that
18366 the source name of the component can be used in the debugger.
18368 2005-11-14 Ed Schonberg <schonberg@adacore.com>
18369 Robert Dewar <dewar@adacore.com>
18371 * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
18372 of a generic subprogram are not visible outside the body.
18373 (Set_Warning_Switch): New procedure (code to set warning mode moved
18374 here from Switch.C so that it can be shared by pragma processing.
18375 (Check_References): Special case warning for non-modified non-imported
18377 * par-prag.adb: Modify processing of pragma Warnings to accomodate new
18378 form with a string literal argument
18380 2005-11-14 Javier Miranda <miranda@adacore.com>
18382 * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
18384 (Write): Addition of "not null" to the anonymous access.
18385 (Read): Addition of "not null" to the anonymous access.
18386 (Write): Addition of "not null" to the anonymous access.
18388 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
18389 I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
18390 I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
18391 (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
18392 W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
18393 "not null" to the anonymous access.
18395 2005-11-14 Robert Dewar <dewar@adacore.com>
18397 * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
18400 2005-11-14 Vincent Celier <celier@adacore.com>
18402 * switch.adb (Bad_Switch): New procedure
18403 (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
18404 message when in error.
18406 * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
18407 Too_Many_Output_Files): Remove declarations, no longer used.
18408 (Scan_Nat): New parameter Switch
18410 (Bad_Switch): New procedure
18412 * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
18413 with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
18414 new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
18415 to Osint.Fail. Do not handle any exception.
18417 2005-11-14 Vincent Celier <celier@adacore.com>
18419 * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
18420 designates a non existent directory.
18422 2005-11-14 Robert Dewar <dewar@adacore.com>
18424 * xgnatugn.adb: Replace invalid membership test by 'Valid
18426 2005-11-14 Vincent Celier <celier@adacore.com>
18428 * makegpr.adb (Gprmake): Do not attempt to build the global archive if
18429 there is no object directory.
18431 2005-11-14 Robert Dewar <dewar@adacore.com>
18433 * usage.adb: Minor adjustment to output format, use nn instead of nnn
18434 (so that -gnateInnn does not run into next column)
18436 2005-11-14 Ed Falis <falis@adacore.com>
18438 * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
18441 2005-11-14 Cyrille Comar <comar@adacore.com>
18443 * s-chepoo.ads: Add comments on Dereference.
18444 Remove unnecessary inherited abstract primitives.
18447 2005-11-14 Robert Dewar <dewar@adacore.com>
18449 * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
18450 node parameter, not needed, since it is available as Declaration_Node.
18452 2005-11-14 Geert Bosch <bosch@adacore.com>
18454 * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
18455 grammatically correct.
18457 2005-11-14 Vincent Celier <celier@adacore.com>
18459 * s-fileio.ads: Correct spelling error in comment
18461 2005-11-14 Cyrille Comar <comar@adacore.com>
18462 Robert Dewar <dewar@adacore.com>
18463 Vincent Celier <celier@adacore.com>
18464 Ben Brosgol <brosgol@adacore.com>
18465 Jose Ruiz <ruiz@adacore.com>
18466 Pascal Obry <obry@adacore.com>
18469 Document that -fstack-check is needed for strict compliance with the
18470 Ada 95 Reference Manual.
18471 Correct reference to VAX systems to meet HP guidelines
18472 Add documentation for new gnatmake switches -vl, -vm and -vh
18473 Replace DEC Ada by HP Ada
18474 Replace DIGITAL by HP
18475 Remove empty section on tools in compatibility section
18476 Clarify the Windows convention semantics.
18477 Document the Win32 calling convention.
18478 The Stdcall, Win32 and DLL convention are synonyms.
18479 Add a note in -gnatR description about zero size record components
18480 Note on new >= and <= warnings for -gnatwc
18481 Document that equal sign after -gnatm is optional.
18482 Note that strip is working fine on DLL built with a Library
18483 Project. The restriction apply only to DLL built with gnatdll.
18484 Update section about the way to debug a DLL.
18485 Update information about the DLL convention.
18486 Document -C switch for gnatprep
18487 Document new attribute Library_ALI_Dir
18488 Update elaboration doc to include implicit Elaborate pragmas now
18489 generated for subprogram instantiations.
18490 Document limitation on executable names that include spaces for --GCC,
18491 --GNATBIND, and --GNATLINK switches.
18492 Document that -w causes -gnatws to be added at start of gcc switches
18494 * gnat_rm.texi: Document that -mieee is needed for generating infinite
18495 and NaN values in case of overflow on machines that are not fully
18496 compliant with the IEEE floating-point standard.
18497 Create a section describing the set of compiler options needed for
18498 strict compliance with the Ada 95 Reference Manual.
18499 Add documentation for pragma Obsolescent applied to a package
18500 Clarify potential issues of mixed language programs related to the
18501 I/O buffering enabling in the elaboration of the GNAT runtime.
18502 Add extra documentation for pragma Restrictions (No_Elaboration_Code)
18503 This documentation only patch adds extra documentsion for pragma
18504 Restrictions (No_Elaboration_Code), explaining why it is not possible
18505 to document this restriction in terms of allowed source constructs.
18506 Document string literal form of pragma Warnings
18507 Document new attribute Library_ALI_Dir
18508 Add documentation on stable attributes in project files that was missing
18510 * gnat-style.texi: Indicate that paragraphs within a single comment
18511 should be separated by empty comment lines
18513 * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
18516 * bindusg.adb: Minor cleanup, put -m before -M for consistency
18518 2005-11-14 Robert Dewar <dewar@adacore.com>
18520 * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
18521 a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
18522 a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
18523 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
18524 a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
18525 a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
18526 a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
18527 a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
18528 a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
18529 a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
18530 a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
18531 a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
18532 g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
18533 a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
18534 a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
18535 system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
18536 g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
18537 g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
18538 a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
18539 a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
18540 a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
18541 a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
18542 a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
18543 a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
18544 system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
18545 system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
18546 a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
18547 a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
18548 a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
18549 system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
18550 system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
18551 s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
18552 system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
18553 system-interix.ads, system-solaris-sparc.ads,
18554 system-solaris-sparcv9.ads, s-inmaop-vms.adb,
18555 s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
18556 system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
18557 s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
18558 a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
18559 a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
18560 a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
18561 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
18562 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
18563 a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
18564 a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
18565 a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
18566 a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
18567 a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
18568 a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
18569 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
18570 a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
18571 a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
18572 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
18573 a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
18574 a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
18575 a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
18576 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
18577 a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
18578 a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
18579 a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
18580 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
18581 a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
18582 a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
18583 a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
18584 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
18585 a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
18586 a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
18587 a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
18588 bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
18589 csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
18590 errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
18591 errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
18592 exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
18593 exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
18594 freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
18595 g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
18596 g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
18597 g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
18598 g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
18599 g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
18600 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
18601 g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
18602 g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
18603 gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
18604 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
18605 g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
18606 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
18607 g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
18608 g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
18609 g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
18610 layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
18611 mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
18612 mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
18613 nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
18614 osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
18615 par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
18616 par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
18617 par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
18618 prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
18619 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
18620 prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
18621 prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
18622 sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
18623 sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
18624 sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
18625 sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
18626 s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
18627 sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
18628 s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
18629 s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
18630 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
18631 s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
18632 s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
18633 s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
18634 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
18635 s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
18636 s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
18637 s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
18638 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
18639 s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
18640 s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
18641 s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
18642 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
18643 s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
18644 s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
18645 s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
18646 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
18647 s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
18648 s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
18649 s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
18650 s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
18651 s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
18652 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
18653 s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
18654 styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
18655 s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
18656 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
18657 s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
18658 s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
18659 s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
18660 s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
18661 s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
18662 s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
18663 s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
18664 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
18665 table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
18666 tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
18667 ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
18668 usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
18669 xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
18670 xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
18671 a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
18672 a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
18673 a-numaux-darwin.ads, a-numaux-darwin.adb,
18674 a-swuwha.ads, a-stunha.ads: Minor reformatting
18676 2005-11-14 Robert Dewar <dewar@adacore.com>
18679 * osint-m.adb: Add pragma Elaborate_All for Osint
18681 2005-11-10 Eric Botcazou <ebotcazou@adacore.com>
18684 * trans.c (call_to_gnu): Restore statement lost in translation.
18686 2005-11-08 Eric Botcazou <ebotcazou@adacore.com>
18688 * init.c: Use the Linux-specific section for the IA-64/Linux target.
18689 (__gnat_adjust_context_for_raise): Add conditional code so that the
18690 IA-64 is also supported.
18692 2005-11-03 James E Wilson <wilson@specifix.com>
18695 * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
18696 TREE_OVERFLOW check.
18698 2005-09-21 Olivier Hainque <hainque@adacore.com>
18701 * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
18702 as we create them to store a size in bits.
18704 2005-10-21 Eric Botcazou <ebotcazou@adacore.com>
18712 * utils2.c (build_return_expr): New helper function.
18713 * gigi.h (build_return_expr): Declare it.
18714 * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
18715 of manually building the RETURN_EXPR tree.
18716 (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
18717 (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
18718 build_binary_op for the "target pointer" case. Use build_return_expr
18719 instead of manually building the RETURN_EXPR tree.
18721 2005-09-16 Laurent Guerby <laurent@guerby.net>
18724 * s-tpinop.ads: Make this unit Preelaborate.
18726 2005-09-16 Andreas Jaeger <aj@suse.de>
18728 * socket.c: Add string.h for memcpy.
18730 2005-09-05 Arnaud Charlet <charlet@adacore.com>
18732 * dec-io.ads, dec-io.adb: Removed, no longer used.
18734 2005-09-01 Arnaud Charlet <charlet@adacore.com>
18736 * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
18738 * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
18739 s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
18740 s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
18741 s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
18742 dependent units are Preelaborate.
18743 (Initialize): Call Interrupt_Managemeent.Initialize and
18744 OS_Primitives.Initialize to ensure proper initialization of this unit.
18745 Remove use of System.Soft_Links
18746 Make this unit Preelaborate.
18748 * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
18749 s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
18750 s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
18751 s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
18752 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
18753 s-tratas.ads, s-tasinf.ads: Minor reformatting.
18754 Add pragma Preelaborate, since these packages are suitable for this
18758 * s-traent-vms.ads, s-intman-dummy.adb,
18759 s-taprop-dummy.adb: Make this unit Preelaborate.
18761 * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
18762 s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
18763 s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
18764 s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
18765 s-intman-solaris.adb, s-intman-irix-athread.adb,
18766 s-intman-irix.adb: Mark this unit Preelaborate.
18767 (Initialize): New procedure.
18770 * s-taspri-linux.ads: Removed.
18772 * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
18773 as done by other implementations (e.g. posix).
18775 * s-taprop.ads (Timed_Delay): Update spec since the caller now is
18776 responsible for deferring abort.
18777 Mark this unit Preelaborate.
18779 * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
18780 proper initialization of the tasking run-time.
18782 * s-tasdeb.ads: Mark this unit Preelaborate.
18783 (Known_Tasks): Add explicit default value to avoid elaboration code.
18785 * s-inmaop-vms.adb (Elaboration code): Add call to
18786 Interrupt_Management.Initialize since the elaboration code depends on
18787 proper initialization of this package.
18789 * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
18790 s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
18791 s-osprim-posix.adb: Make this unit Preelaborate.
18793 * a-calend.adb: Add call to OS_Primitives.Initialize
18795 * a-elchha.adb: Update use of Except.Id.Full_Name.
18796 Minor reformatting.
18797 Remove use of Ada.Exceptions.Traceback when possible, cleaner.
18799 * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
18800 Move with clauses outside Warnings Off now that dependent units are
18802 Use raise xxx with "..."; Ada 2005 form.
18804 * a-taside.ads, a-taside.adb:
18805 Remove some dependencies, to make it easier to make this unit truly
18807 Rewrite some code to be conformant with Preelaborate rules.
18809 * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
18810 marked Preelaborate in the future.
18812 * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
18813 these units Preelaborate.
18815 * s-exctab.adb: Update use of Except.Id.Full_Name.
18817 * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
18818 (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
18819 Set_Exc_Stack_Addr): Removed, no longer used.
18820 Remove reference to *Machine_State_Addr*, no longer needed.
18822 * s-stalib.ads: Mark this unit as Preelaborate[_05].
18823 (Exception_Data): Full_Name is now a System.Address so that this unit
18824 can be made Preelaborate.
18825 Clean up/simplify code thanks to Full_Name being a System.Address.
18826 Remove obsolete pragma Suppress (All_Checks), no longer needed.
18828 * s-taskin.ads, s-taskin.adb:
18829 Move with clauses outside Warnings Off now that dependent units are
18831 Make this unit Preelaborate.
18832 (Initialize): New proceduure, replace elaboration code and makes the
18833 set up of the tasking run-time cleaner.
18834 (Detect_Blocking): Now a function instead of a deferred boolean, to
18835 obey Preelaborate rules.
18837 * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
18838 soft links, no longer used.
18840 * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
18841 packages are suitable for this categorization.
18843 * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
18844 since we compile run-time sources in Ada 2005 mode.
18845 (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
18846 avoid having s-taprop*.adb depend on s-soflin and to avoid code
18848 Remove reference to *Machine_State_Addr*, no longer needed.
18850 2005-09-01 Arnaud Charlet <charlet@adacore.com>
18852 * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
18853 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
18854 Remove reference to System.Exceptions.
18856 * s-mastop-x86.adb: Removed, no longer used.
18858 * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
18860 * a-excach.adb: Minor reformatting.
18862 * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
18863 instead fix new warnings that were hidden by this change.
18864 (AAA, ZZZ): Removed, replaced by...
18865 (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
18866 are used instead of constants, to help make Ada.Exception truly
18868 (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
18869 Raise_Storage_Error): File is now a System.Address, to simplify code.
18870 (Elab code): Removed, no longer used.
18871 (Null_Occurrence): Remove Warnings Off and make this construct
18873 Remove code related to front-end zero cost exception handling, since
18874 it is no longer used.
18875 Remove -gnatL/-gnatZ switches.
18877 * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
18878 Update use of Except.Msg.
18880 * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
18881 freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
18882 to front-end zero cost exception handling, since it is no longer used.
18883 Remove -gnatL/-gnatZ switches.
18885 * lib-writ.ads: Minor reformatting
18888 * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
18890 * Make-lang.in: Remove references to s-except.ads
18892 * s-except.ads: Removed, no longer used.
18894 * s-mastop.ads, s-mastop.adb:
18895 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
18896 Remove reference to System.Exceptions.
18898 * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
18899 switch-b.adb: Remove code related to front-end zero cost exception
18900 handling, since it is no longer used.
18901 Remove -gnatL/-gnatZ switches.
18903 2005-09-01 Robert Dewar <dewar@adacore.com>
18904 Gary Dismukes <dismukes@adacore.com>
18905 Javier Miranda <miranda@adacore.com>
18907 * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
18908 type by valid test and generate warning.
18909 (Tagged_Membership): Generate call to the run-time
18910 subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
18911 Change formal name Subtype_Mark to Result_Definition in several calls to
18912 Make_Function_Specification.
18913 (Expand_Allocator_Expression): Add tests for suppression of the AI-344
18914 check for proper accessibility of the operand of a class-wide allocator.
18915 The check can be left out if checks are suppressed or if the expression
18916 has a specific tagged type whose level is known to be safe.
18918 * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
18919 generates the run-time check associated with null-excluding entities.
18920 (Expand_N_Return_Statement): Add tests to determine if the accessibility
18921 check on the level of the return expression of a class-wide function
18922 can be elided. The check usually isn't needed if the expression has a
18923 specific type (unless it's a conversion or a formal parameter). Also
18924 add a test for whether accessibility checks are suppressed. Augment
18925 the comments to describe the conditions for performing the check.
18927 2005-09-01 Hristian Kirtchev <kirtchev@adacore.com>
18928 Javier Miranda <miranda@adacore.com>
18929 Gary Dismukes <dismukes@adacore.com>
18930 Ed Schonberg <schonberg@adacore.com>
18932 * a-tags.adb (IW_Membership): Give support to
18933 "Iface_CW_Typ in T'Class". For this purpose the functionality of this
18934 subprogram has been extended to look for the tag in the ancestors tag
18936 Update the structure of the GNAT Dispatch Table to reflect the
18937 additional two tables used in dispatching selects.
18938 Introduce appropriate array types and record components in
18939 Type_Specific_Data to reflect the two tables.
18940 (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
18941 the TSD of a tag, indexed by position.
18942 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
18943 operation kind in the TSD of a tag, indexed by position.
18945 * a-tags.ads: Introduce an enumeration type to capture different
18946 primitive operation kinds. Define a constant reflecting the number of
18947 predefined primitive operations.
18948 (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
18949 of an entry wrapper.
18950 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
18951 callable entity of a primitive operation.
18953 * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
18954 primitive operations used in dispatching selects for limited
18955 interfaces, limited tagged, task and protected types what implement a
18957 (Freeze_Type): Generate the bodies of the primitive operations used in
18958 dispatching selects for limited tagged, task and protected types that
18959 implement a limited interface. Generate statements to populate the two
18960 auxiliary tables used for dispatching in select statements.
18961 (Freeze_Record_Type): Add call to initialize the dispatch table entries
18962 associated with predefined interface primitive operations.
18963 (Build_Dcheck_Function): Change Set_Subtype_Mark to
18964 Set_Result_Definition.
18965 (Build_Variant_Record_Equality): Change Subtype_Mark to
18967 (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
18968 (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
18969 (Build_Assignment): Simplify the code that adds the run-time-check.
18970 (Expand_N_Object_Declaration): Code cleanup.
18972 * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
18973 entries when there is a protected type that implements a limited
18976 * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
18977 common routines used in expansion of dispatching selects.
18978 (Add_Private_Declarations): Select the appropriate protection type when
18979 there is a protected type that implements a limited interface.
18980 (Build_Parameter_Block): Generate a wrapped parameter block.
18981 (Build_Protected_Subprogram_Body): Select the appropriate type for
18982 locking entries when there is a protected type that implements a
18984 (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
18985 classified as entry wrappers.
18986 (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
18987 asynchronous selects.
18988 (Expand_N_Conditional_Entry_Call): Add support for expansion of
18989 dispatching conditional selects.
18990 (Expand_N_Protected_Type_Declaration): Select the appropriate type for
18991 protection when there is a protected type that implements limited
18993 (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
18995 (Extract_Dispatching_Call): Extract the entity of the name of a
18996 dispatching call, the object parameter, actual parameters and
18997 corresponding formals.
18998 (Make_Initialize_Protection): Correct logic of protection initialization
18999 when there is a protected type that implements a limited interface.
19000 (Parameter_Block_Pack): Populate a wrapped parameter block with the
19001 values of actual parameters.
19002 (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
19003 block and assign them to the original actual parameters.
19005 * exp_ch9.ads (Subprogram_Protection_Mode): New type.
19006 (Build_Protected_Sub_Specification): Change the type and name of the
19007 last formal to account for the increased variety of protection modes.
19009 * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
19010 entities. Used to save the value of the Is_Hidden attribute when the
19011 limited-view is installed.
19012 (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
19013 the attribute of procedures classified as entry wrappers.
19014 (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
19015 entity of a primitive wrapper.
19016 (Write_Entity_Flags): Output the name and value of the
19017 Is_Primitive_Wrapper attribute.
19018 (Write_Field27_Name): Output the name and entity of the field Wrapped_
19020 (Underlying_Type): If we have an incomplete entity that comes from
19021 the limited view then we return the Underlying_Type of its non-limited
19022 view if it is already available.
19023 (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
19024 including operators.
19025 (Write_Field26_Name): Add entry for Overridden_Operation
19026 (Overridden_Operation): New attribute of functions and procedures.
19028 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
19029 predefined position in the dispatch table for the primitive operations
19030 used in dispatching selects.
19031 (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
19032 predefined primitive operations and replace it with
19033 Default_Prim_Op_Count.
19034 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
19035 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
19036 the names of the generated primitive operations used in dispatching
19038 (Init_Predefined_Interface_Primitives): No need to inherit primitives in
19039 case of abstract interface types. They will be inherit by the objects
19040 implementing the interface.
19041 (Make_DT): There is no need to inherit the dispatch table of the
19042 ancestor interface for the elaboration of abstract interface types.
19043 The dispatch table will be inherited by the object implementing the
19045 (Copy_Secondary_DTs): Add documentation.
19046 (Validate_Position): Improve this static check in case of
19047 aliased subprograms because aliased subprograms must have
19049 (Init_Predefined_Interface_Primitives): New subprogram that initializes
19050 the entries associated with predefined primitives of all the secondary
19052 (Build_Anonymous_Access_Type): Removed.
19053 (Expand_Interface_Actuals): With the previous cleanup there is no need
19054 to build an anonymous access type. This allows further cleanup in the
19055 code generated by the expander.
19056 (Expand_Interface_Conversion): If the actual is an access type then
19057 build an internal function to handle the displacement. If the actual
19058 is null this function returns null because no displacement is
19059 required; otherwise performs a type conversion that will be
19060 expanded in the code that returns the value of the displaced actual.
19061 (Expand_Interface_Actuals): Avoid the generation of unnecessary type
19062 conversions that have no effect in the generated code because no
19063 displacement is required. Code cleanup; use local variables to
19064 avoid repeated calls to the subprogram directly_designated_type().
19066 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
19067 Classify the primitive operations used in dispatching selects as
19069 (Implements_Limited_Interface): Determine whether some type either
19070 directly implements a limited interface or extends a type that
19071 implements a limited interface.
19072 (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
19073 (Expand_Subtype_From_Expr): Do not build actual subtype if the
19074 expression is limited.
19075 (Find_Interface_Tag): Add code to handle class-wide types and
19076 entities from the limited-view.
19078 * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
19079 Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
19080 POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
19081 POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
19084 * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
19085 of procedure name or prefix that appears as a trigger in a triggering
19088 * uintp.ads: Introduce constants Uint_11 and Uint_13.
19090 2005-09-01 Arnaud Charlet <charlet@adacore.com>
19092 * s-tataat.adb, a-tasatt.adb:
19093 Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
19095 * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
19096 these procedures to body, and renamed Abort_Defer, Abort_Undefer.
19097 (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
19100 2005-09-01 Arnaud Charlet <charlet@adacore.com>
19101 Jose Ruiz <ruiz@adacore.com>
19103 * s-taprop-vxworks.adb:
19104 Move with clauses outside Warnings Off now that dependent units are
19106 (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
19107 initialization of this unit.
19108 (Specific): Add new procedures Initialize and Delete so that this
19109 package can be used for VxWorks 5.x and 6.x
19110 (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
19111 differences between VxWorks 5.x and 6.x
19112 Minor reformatting.
19113 (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
19115 Use only Preelaborate-compatible constructs.
19117 * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
19118 Primitives.Operations.
19119 (Delete, Initialize): New procedures.
19121 * s-osinte-vxworks.adb: Body used to handle differences between
19122 VxWorks 5.x and 6.x
19123 (kill, Set_Time_Slice, VX_FP_TASK): New functions.
19125 * s-osinte-vxworks.ads: Minor reformatting.
19126 Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
19127 (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
19129 (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
19130 between Vxworks 5 and 6.
19131 (taskLock, taskUnlock): Removeed, no longer used.
19133 * adaint.c: The wait.h header is not located in the sys directory on
19134 VxWorks when using RTPs.
19135 (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
19137 (__gnat_dup): dup is available on Vxworks when using RTPs.
19138 (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
19140 * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
19142 * expect.c: The wait.h header is not located in the sys directory on
19143 VxWorks when using RTPs.
19145 2005-09-01 Thomas Quinot <quinot@adacore.com>
19147 * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
19149 * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
19151 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
19152 g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
19153 g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
19154 g-soccon-freebsd.ads: Add new constants:
19156 SO_RCVTIMEO/SO_SNDTIMEO
19160 Move all target-specific file inclusions and macro definitions to
19161 gsocket.h, in order to ensure that any C code in socket.c will see a
19162 set of constants that is consistent with the contents of g-soccon.ads.
19164 * gsocket.h: Code imported from gen-soccon.c:
19165 Move all target-specific file inclusions and macro definitions to
19166 gsocket.h, in order to ensure that any C code in socket.c will see a set
19167 of constants that is consistent with the contents of g-soccon.ads.
19168 This change also makes gen-soccon self-contained (removing dependencies
19169 upon GCC internal headers).
19171 * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
19173 (To_Inet_Addr): Now a procedure instead of a function, more efficient.
19175 * socket.c: Minor reformatting.
19177 2005-09-01 Ed Schonberg <schonberg@adacore.com>
19178 Thomas Quinot <quinot@adacore.com>
19180 * fname-sf.adb, mlib-tgt.ads,
19181 back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
19182 g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
19183 osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
19184 prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
19185 prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
19186 prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
19187 sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
19188 makegpr.adb: Remove redundant use_clauses.
19190 2005-09-01 Arnaud Charlet <charlet@adacore.com>
19192 * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
19193 s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
19194 s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
19195 s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
19196 s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
19197 s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
19198 s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
19199 table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
19200 s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
19201 s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
19202 a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
19203 a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
19204 a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
19205 a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
19206 system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
19207 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
19208 s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
19209 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
19210 s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
19211 s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
19212 s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
19213 s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
19214 system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
19215 s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
19216 system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
19217 s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
19218 a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
19219 a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
19220 a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
19221 a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
19222 a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
19223 a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
19224 a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
19225 a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
19226 a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
19227 a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
19228 csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
19229 g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
19230 a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
19231 a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
19232 a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
19233 a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
19234 g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
19235 i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
19236 interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
19237 i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
19238 s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
19239 s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
19240 s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
19241 s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
19242 s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
19243 s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
19244 s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
19245 s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
19246 s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
19247 s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
19248 s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
19249 s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
19250 s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
19251 s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
19252 s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
19253 s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
19254 s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
19255 s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
19256 s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
19257 s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
19258 s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
19259 s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
19260 and always use the no parameter form for consistency.
19262 * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
19264 2005-09-01 Robert Dewar <dewar@adacore.com>
19266 * binde.adb: Minor reformatting
19267 (Find_Elab_Order): Output warning if -p used with static elab order
19269 2005-09-01 Robert Dewar <dewar@adacore.com>
19271 * checks.adb (Check_Needed): New procedure, deals with removing checks
19272 based on analysis of short-circuited forms. Also generates warnings for
19273 improper use of non-short-circuited forms.
19276 2005-09-01 Robert Dewar <dewar@adacore.com>
19278 * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
19281 2005-09-01 Robert Dewar <dewar@adacore.com>
19283 * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
19285 Implement new insertion char < (conditional warning)
19286 * errutil.adb, erroutc.adb: Implement new insertion char <
19287 (conditional warning).
19288 * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
19289 (Error_Msg_Warn): New variable for < insertion char.
19290 * prj-nmsc.adb: Implement new errout insertion char < (conditional
19292 (Check_For_Source): Change value of Source_Id only after the current
19293 source has been dealt with.
19295 2005-09-01 Robert Dewar <dewar@adacore.com>
19296 Doug Rupp <rupp@adacore.com>
19298 * exp_attr.adb: Handle vax fpt for 'Valid attribute
19299 * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
19300 * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
19301 (Valid_D, Valid_F, Valid_G): New functions
19303 2005-09-01 Ed Schonberg <schonberg@adacore.com>
19304 Hristian Kirtchev <kirtchev@adacore.com>
19305 Javier Miranda <miranda@adacore.com>
19307 * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
19308 from object notation, the original node is unanalyzed and carries no
19309 semantic information, so that accessiblity checks must be performed on
19310 the type of the actual itself.
19311 (Expand_N_Subprogram_Declaration): Change last actual parameter for
19312 compatibility with Build_Protected_Sub_Specification.
19313 (Check_Overriding_Inherited_Interfaces): Add suport to handle
19314 overloaded primitives.
19315 (Register_Interface_DT_Entry): Use the new name of the formal
19316 the the calls to Expand_Interface_Thunk
19318 * exp_dbug.ads: Augment comments on encoding of protected types to
19319 include the generation of dispatching subprograms when the type
19320 implements at least one interface.
19322 * lib.ads: Extend information in Load_Stack to include whether a given
19323 load comes from a Limited_With_Clause.
19325 * lib-load.adb (From_Limited_With_Chain): New predicate to determine
19326 whether a potential circularity is harmless, because it includes units
19327 loaded through a limited_with clause. Extends previous treatment which
19328 did not handle properly arbitrary combinations of limited and
19329 non-limited clauses.
19331 2005-09-01 Nicolas Setton <setton@adacore.com>
19333 * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
19334 to be encoded as typ___XBLU_lowerbound__upperbound instead of
19335 typ___XB_lowerbound__upperbound.
19337 2005-09-01 Thomas Quinot <quinot@adacore.com>
19339 * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
19340 dummy access formal for RACW/RAS TypeCode TSS.
19341 (Build_TypeCode_Call): Do not generate dummy null access actual for
19342 calls to the TypeCode TSS.
19344 2005-09-01 Ed Schonberg <schonberg@adacore.com>
19346 * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
19347 fully qualified name, to distinguish instances with the same local name.
19349 * g-souinf.ads (Enclosing_Entity): Document that entity name is now
19352 2005-09-01 Robert Dewar <dewar@adacore.com>
19354 * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
19357 2005-09-01 Jerome Lambourg <lambourg@adacore.com>
19359 * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
19360 (Free): New deallocation procedure for filter elements
19361 (Close): Deallocate any existing filter for the concerned connection
19363 2005-09-01 Laurent Pautet <pautet@adacore.com>
19365 * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
19366 position set is provided, we compute one in order to reduce the maximum
19367 length of the keys. This computation first selects a character
19368 position between 1 and the minimum length of the keys in order to
19369 avoid reducing one of the keys to an empty string.
19370 (Initialize, Compute): When the ratio V to K is too low, the algorithm
19371 does not converge. The initialization procedure now comes with a
19372 maximum number of iterations such that when exceeded, an exception is
19373 raised in Compute. The user can initialize this ratio to another value
19375 Reformating and updated headers.
19377 2005-09-01 Javier Miranda <miranda@adacore.com>
19379 * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
19380 that given an entity T creates and returns an Itype that duplicates the
19381 contents of T. The returned Itype has the null-exclusion
19382 attribute set to True, and its Etype attribute references T
19383 to keep the association between the two entities.
19384 Update copyright notice
19386 * sem_aggr.adb (Check_Can_Never_Be_Null,
19387 Aggregate_Constraint_Checks, Resolve_Aggregate,
19388 Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
19390 * sem_ch5.adb (Analyze_Assignment): Code cleanup.
19392 2005-09-01 Gary Dismukes <dismukes@adacore.com>
19393 Robert Dewar <dewar@adacore.com>
19394 Hristian Kirtchev <kirtchev@adacore.com>
19396 * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
19399 * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
19401 Call Set_Result_Definition instead of Set_Subtype_Mark.
19402 (P_Subprogram_Specification): Add parsing of anonymous access result
19403 plus null exclusions. Call Set_Result_Definition instead of
19406 * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
19407 (P_Access_Type_Definition): Add parsing for an anonymous access result
19408 subtype, plus parsing for null exclusions. Call Set_Result_Definition
19409 instead of Set_Subtype_Mark.
19411 * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
19412 (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
19413 (Result_Definition): New function for N_Function_Specifications.
19414 (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
19415 N_Function_Specification.
19416 (Set_Null_Exclusion_Present): Allow this flag for
19417 N_Function_Specification.
19418 (Set_Result_Definition): New procedure for N_Function_Specifications.
19419 (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
19420 and N_Function_Specification.
19422 * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
19423 Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
19424 Add support for LIMITED NEW for Ada 2005 AI-419
19425 Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
19426 syntax for anonymous access results.
19427 Replace Subtype_Mark field by Result_Definition in
19428 N_Function_Specification and N_Access_Definition specs.
19429 Add Null_Exclusion_Present to spec of N_Function_Specification.
19430 (Result_Definition): New function for N_Function_Specification and
19431 N_Access_Function_Definition.
19432 (Set_Result_Definition): New procedure for N_Function_Specification and
19433 N_Access_Function_Definition.
19435 * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
19436 Result_Definition for cases of N_Access_Function_Definition and
19437 N_Function_Specification.
19438 Print "not null" if Null_Exclusion_Present on N_Function_Specification.
19440 2005-09-01 Vincent Celier <celier@adacore.com>
19442 * lib-writ.adb: Update Copyright notice
19443 (Write_With_Lines): On platforms where file names are case-insensitive,
19444 record the file names in lower case.
19445 (Write_ALI): For D lines, on platforms where file names are
19446 case-insensitive, record the file names in lower case.
19448 2005-09-01 Ed Schonberg <schonberg@adacore.com>
19449 Emmanuel Briot <briot@adacore.com>
19451 * lib-xref.adb (Output_Overridden_Op): Display information on
19452 overridden operation.
19454 * lib-xref.ads: Add documentation on overridden operations.
19456 * ali.ads (Xref_Entity_Record): Add support for storing the overriding
19459 * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
19460 overriding entity information.
19462 2005-09-01 Vincent Celier <celier@adacore.com>
19464 * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
19465 including those that are inherited.
19467 2005-09-01 Robert Dewar <dewar@adacore.com>
19469 * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
19471 * par-prag.adb: Implement new pragma Debug_Policy
19473 * sem_prag.adb Implement new pragma Debug_Policy
19474 (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
19475 Component_Size attribute specification. Give warning for ignored pragma
19478 * snames.h, snames.ads, snames.adb: Introduce entries in
19479 Preset_Names for Name_Disp_Asynchronous_Select,
19480 Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
19481 Name_Disp_Timed_Select.
19482 New pragma Debug_Policy
19484 * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
19486 Switch -gnata also sets Debug_Pragmas_Enabled
19488 * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
19489 handle an explicit -gnata when compiling predefined files.
19491 2005-09-01 Vincent Celier <celier@adacore.com>
19493 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
19494 directories of projects that have no Ada sources.
19496 2005-09-01 Robert Dewar <dewar@adacore.com>
19498 * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
19499 (makes a difference for wide characters)
19501 * widechar.adb, widechar.ads:
19502 Add Wide_Char_Byte_Count feature to count chars vs bytes
19504 2005-09-01 Thomas Quinot <quinot@adacore.com>
19505 Ed Schonberg <schonberg@adacore.com>
19506 Robert Dewar <dewar@adacore.com>
19508 * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
19509 'Address attribute reference with an overloaded prefix, use the
19510 location of the prefix (not the location of the attribute reference) as
19511 the error location.
19512 (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
19513 a function renaming thereof, is a valid prefix for 'Size (where it is
19514 intepreted as a function call).
19515 (Statically_Denotes_Entity): New predicate to determine whether the
19516 prefix of an array attribute can be considered static.
19519 (Eval_Attr): Fix failure to evaluate Component_Size for
19520 unconstrained arrays (resulted in wrong value in packed case, since
19521 back end cannot handle this case)
19523 2005-09-01 Robert Dewar <dewar@adacore.com>
19525 * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
19526 error msgs for most common cases.
19527 Use new errout insertion char < (conditional warning)
19529 2005-09-01 Javier Miranda <miranda@adacore.com>
19530 Ed Schonberg <schonberg@adacore.com>
19532 * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
19533 become local to the whole package.
19534 (Install_Limited_Withed_Unit): Instead of unchaining real entities if
19535 the package was already analyzed the new algorithm "replaces" the
19536 real entities by the shadow ones. This is required to ensure that
19537 the order of these entities in the homonym chains does not change;
19538 otherwise we can have undefined references at linking time because
19539 in case of conflicts the external name of the entities will have
19540 a suffix that depends on the order of the entities in the chain.
19541 (Remove_Limited_With_Clause): Complementary code that completes the
19542 new algorithm and replaces the shadow entities by the real ones.
19543 (Install_Limited_Withed_Unit): When unchaining entities before the
19544 installation of the shadow entities, only regular entities of the
19545 public part must be taken into account. This is required to
19546 keep this routine in synch with the work done by Remove_Limited_
19548 (Install_Limited_With_Clause): Introduce implicit limited_with_clause
19549 even if unit is analyzed, because the analysis of the unit is
19550 idempotent in any case, and the limited view of the unit may have to
19551 be installed for proper visibility.
19552 (Expand_Limited_With_Clause): Even if the unit in the implicit
19553 with_clause has been analyzed already, a limited view of the package
19554 must be built for the current context, if it does not exist yet.
19556 2005-09-01 Ed Schonberg <schonberg@adacore.com>
19557 Javier Miranda <miranda@adacore.com>
19558 Gary Dismukes <dismukes@adacore.com>
19560 * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
19561 defining entity for the instance body, make a new defining identifier
19562 rather than copying the entity of the spec, to prevent accidental
19563 sharing of the entity list.
19564 (Check_Private_View): When exchanging views of private types, build the
19565 list of exchanged views as a stack, to ensure that on exit the exchanges
19566 are undone in the proper order.
19567 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
19568 Restore the compilation environment in case of instantiation_error.
19569 (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
19570 for an anonymous access result.
19571 (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
19572 (Formal_Entity): Handle properly the case of a formal package that
19573 denotes a generic package renaming.
19575 2005-09-01 Thomas Quinot <quinot@adacore.com>
19577 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
19578 clause if the array aggregate is surrounded by parentheses.
19580 2005-09-01 Cyrille Comar <comar@adacore.com>
19581 Gary Dismukes <dismukes@adacore.com>
19582 Ed Schonberg <schonberg@adacore.com>
19583 Javier Miranda <miranda@adacore.com>
19585 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
19587 to check if a type is Constrained in cases related to code generation
19588 (rather than semantic checking) since otherwise we do not generate
19589 similar code for mutable private types depending if their
19590 discriminants are visible or not.
19591 (Check_Abstract_Overriding): Do not complain about failure to override
19592 the primitive operations used in dispatching selects since they will
19593 always be overriden at the freeze point of the type.
19594 (Access_Definition): Separate out handling for resetting the scope
19595 of an anonymous access function result type. Retrieve the scope
19596 of the associated function rather than using Current_Scope, which
19597 does not have a consistent value (depends on whether we're in the
19598 middle of analyzing formal parameters). Add ??? comment about
19599 finding a cleaner way to handle the special cases of scope setting.
19600 (Process_Incomplete_Dependents): A protected operation is never a
19601 dispatching operation (only its wrapper may be).
19602 (Build_Derived_Record_Type): In case of tagged private types that
19603 implement interfaces add derivation of predefined primitive
19605 (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
19606 by two parameters that are used in case of derivation from abstract
19607 interface types: No_Predefined_Prims is used to avoid the derivation
19608 of predefined primitives from the interface, and Predefined
19609 Prims_Only is used to complete the derivation predefined primitives
19610 in case of private tagged types implementing interfaces.
19611 Fix typo in comments
19612 (Find_Interface_In_Descendant): Protect the frontend against
19613 wrong code with large circularity chains.
19614 (Is_Private_Overriding): Add support for entities overriding interface
19615 subprograms. The test failed because Entities associated with overriden
19616 interface subprograms are always marked as hidden (and used to build
19617 the secondary dispatch table); in this case the overriden entity is
19618 available through the field abstract_interface_alias (cf. override_
19619 dispatching_operation)
19620 (Access_Definition): Set the scope of the type to Current_Scope for the
19621 case of a function with an anonymous access result type.
19622 (Access_Subprogram_Declaration): Handle creation of the type entity for
19623 an access-to-function type with an anonymous access result.
19624 (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
19625 in handling for N_Access_Function_Definition.
19626 (Analyze_Subtype_Declaration): Modify the text of error message.
19627 (Derived_Type_Declaration): Modify the text of error message.
19628 (Process_Subtype): Modify the text of error message plus cleanup
19629 of one redundant error message.
19630 (Analyze_Component_Declaration): Code cleanup.
19631 (Analyze_Object_Declaration): Code cleanup.
19632 (Analyze_Subtype_Declaration): Propagate the null-exclusion
19633 attribute in case of access types. Code cleanup.
19634 (Array_Type_Declaration): Code cleanup.
19635 (Process_Discriminants): Create the new null-excluding itype
19636 if required. Code cleanup.
19637 (Process_Subtype): Create the new null-excluding itype if
19638 required. Code cleanup.
19639 (Build_Derived_Record_Type): Code cleanup to avoid calling
19640 twice the subprogram derive_subprograms in case of private
19641 types that implement interfaces. In this particular case the
19642 subprogram Complete_Subprograms_Derivation already does the
19643 job associated with the second call.
19645 * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
19646 conversion to the full view when generating an operation for a
19647 discriminant whose type may currently be private.
19649 2005-09-01 Ed Schonberg <schonberg@adacore.com>
19650 Javier Miranda <miranda@adacore.com>
19652 * sem_ch4.adb (Transform_Object_Operation): In a context off the form
19653 V (Obj.F), the rewriting does not involve the indexed component, but
19654 only the selected component itself.
19655 Do not apply the transformation if the analyzed node is an actual of a
19656 call to another subprogram.
19657 (Complete_Object_Operation): Retain the entity of the
19658 dispatching operation in the selector of the rewritten node. The
19659 entity will be used in the expansion of dispatching selects.
19660 (Analyze_One_Call): Improve location of the error message associated
19662 (Analyze_Selected_Component): No need to resolve prefix when it is a
19663 function call, resolution is done when parent node is resolved, as
19665 (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
19666 when attempting to resolve a call transformed from its object notation.
19667 (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
19668 of the argument list for each interpretation of the operation.
19669 (Try_Object_Operation): The designated type of an access parameter may
19670 be an incomplete type obtained through a limited_with clause, in which
19671 case the primitive operations of the type are retrieved from its full
19673 (Analyze_Call): If this is an indirect call, and the return type of the
19674 access_to_subprogram is incomplete, use its full view if available.
19676 2005-09-01 Javier Miranda <miranda@adacore.com>
19677 Gary Dismukes <dismukes@adacore.com>
19679 * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
19680 access types the null-exclusion and access-to-constant attributes must
19682 (Analyze_Return_Statement): When the result type is an anonymous access
19683 type, apply a conversion of the return expression to the access type
19684 to ensure that appropriate accessibility checks are performed.
19685 (Analyze_Return_Type): For the case of an anonymous access result type,
19686 generate the Itype and set Is_Local_Anonymous_Access on the type.
19687 Add ??? placeholder for check to disallow returning a limited object
19688 in Ada 2005 unless it's an aggregate or a result of a function call.
19689 Change calls from Subtype_Mark to Result_Definition.
19690 (Analyze_Subprogram_Body): Change formal Subtype_Mark to
19691 Result_Definition in call to Make_Function_Specification.
19692 (Build_Body_To_Inline): Change Set_Subtype_Mark to
19693 Set_Result_Definition.
19694 (Make_Inequality_Operator): Change formal Subtype_Mark to
19695 Result_Definition in call to Make_Function_Specification.
19696 (Process_Formals): Create the new null-excluding itype if required.
19697 (New_Overloaded_Entity): For an entity overriding an interface primitive
19698 check if the entity also covers other abstract subprograms in the same
19699 scope. This is required to handle the general case, that is, overriding
19700 other interface primitives and overriding abstract subprograms inherited
19701 from some abstract ancestor type.
19702 (New_Overloaded_Entity): For an overriding entity that comes from
19703 source, note the operation that it overrides.
19704 (Check_Conformance, Type_Conformant): Addition of one new formal
19705 to skip controlling formals in the analysis. This is used to
19706 handle overloading of abstract interfaces.
19707 (Base_Types_Match): Add missing case for types imported from
19708 limited-with clauses
19709 (New_Overloaded_Entity): Add barrier to protect the use of
19710 the "alias" attribute.
19712 2005-09-01 Ed Schonberg <schonberg@adacore.com>
19714 * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
19715 verify that the procedure and the entry are mode conformant.
19716 (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
19717 as a different operator, which is often a cut-and-paste error.
19719 2005-09-01 Javier Miranda <miranda@adacore.com>
19720 Ed Schonberg <schonberg@adacore.com>
19722 * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
19723 used in controlling parameters exclude null because it is necessary to
19724 read the tag to dispatch, and null has no tag.
19725 (Override_Dispatching_Operation): If the previous operation is inherited
19726 from an interface, it becomes hidden and does not participate in later
19729 2005-09-01 Javier Miranda <miranda@adacore.com>
19730 Ed Schonberg <schonberg@adacore.com>
19731 Gary Dismukes <dismukes@adacore.com>
19733 * sem_res.adb (Resolve_Membership_Op): In case of the membership test
19734 "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
19735 the expander will generate the corresponding run-time check to evaluate
19737 (Resolve_Call): Check for legal type of procedure name or prefix that
19738 appears as a trigger in a triggering alternative.
19739 (Valid_Conversion): If expression is ambiguous and the context involves
19740 an extension of System, remove System.Address interpretations.
19741 (Resolve_Qualified_Expression): Reject the case of a specific-type
19742 qualification applied to a class-wide argument. Enhance comment
19743 to explain checking of Original_Node.
19744 (Resolve_Type_Conversion): The location of the error message was not
19745 general enough to handle the general case and hence it has been removed.
19746 In addition, this patch improves the text of the message.
19747 (Resolve_Type_Conversion): Add missing support for access to interface
19749 (Resolve_Type_Conversion): If the target is a class-wide interface type,
19750 do not expand if the expression is the actual in a call, because proper
19751 expansion will take place when the call itself is expanded.
19752 (Resolve_Allocator): If the context is an unchecked conversion, the
19753 allocator inherits its storage pool, if any, from the target type of
19756 2005-09-01 Ed Schonberg <schonberg@adacore.com>
19757 Javier Miranda <miranda@adacore.com>
19759 * sem_type.adb (Add_One_Interp): If a candidate operation is an
19760 inherited interface operation that has an implementation, use the
19761 implementation to avoid spurious ambiguities.
19762 (Interface_Present_In_Ancestor): In case of concurrent types we can't
19763 use the Corresponding_Record_Typ attribute to look for the interface
19764 because it is set by the expander (and hence it is not always
19765 available). For this reason we traverse the list of interfaces
19766 (available in the parent of the concurrent type).
19767 (Interface_Present_In_Ancestor): Handle entities from the limited view
19769 2005-09-01 Ed Schonberg <schonberg@adacore.com>
19771 * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
19772 from the list of required components.
19773 (Is_Controlling_Limited_Procedure): Determine whether an entity is a
19774 primitive procedure of a limited interface with a controlling first
19776 (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
19778 (Safe_To_Capture_Value): A value (such as non_null) is not safe to
19779 capture if it is generated in the second operand of a short-circuit
19781 Do not capture values for variables with address clauses.
19782 (Is_Object_Reference): Treat a function call as an object reference only
19783 if its type is not Standard_Void_Type.
19785 2005-09-01 Ed Schonberg <schonberg@adacore.com>
19787 * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
19788 to a variable that is statically known to be constant.
19790 2005-09-01 Geert Bosch <bosch@adacore.com>
19791 Robert Dewar <dewar@adacore.com>
19793 * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
19794 (VAXGF_Safe_First): Idem.
19796 2005-09-01 Robert Dewar <dewar@adacore.com>
19797 Arnaud Charlet <charlet@adacore.com>
19799 * g-dirope.ads: Minor reformatting
19800 Document that bounds of result of Base_Name match the input index
19802 Add documentation on environment variable syntax for Expand_Path
19804 * gnat_ugn.texi: Update documentation to include mention of -m switches
19805 Document new treatment of wide characters in max line length
19807 Remove -gnatL/-gnatZ switches, no longer used.
19808 Add note on pragmas Assertion_Policy and Debug_Policy in discussion
19811 * gnat_rm.texi: Add doc for two argument form of pragma
19812 Float_Representation.
19813 Add documentation for pragma No_Strict_Aliasing
19814 Add note that explicit component clause overrides pragma Pack.
19815 Add documentation of pragma Debug_Policy
19817 2005-09-01 Matthew Heaney <heaney@adacore.com>
19819 * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
19820 a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
19821 a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
19822 a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
19823 draft (Draft 13, August 2005) of Ada Amendment 1.
19825 2005-09-01 Arnaud Charlet <charlet@adacore.com>
19827 * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
19828 Note that the platform-specific version of g-soccon.ads for VMS is now
19829 named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
19830 really is a package spec).
19831 Replace s-taspri-linux.ads by s-taspri-posix.ads
19832 Remove references to s-mastop-x86.adb
19834 * system-vxworks-xscale.ads: Removed, no longer used.
19835 * s-vxwork-xscale.ads: Removed, no longer used.
19837 2005-09-01 Robert Dewar <dewar@adacore.com>
19839 * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
19840 g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
19841 g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
19842 exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
19843 g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
19844 g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
19845 g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
19846 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
19847 g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
19848 g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
19849 sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
19850 a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
19851 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
19852 a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
19853 a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
19854 a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
19855 g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
19856 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
19857 g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
19858 i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
19859 a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
19861 2005-08-29 Arnaud Charlet <charlet@adacore.com>
19865 (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
19867 2005-08-29 Arnaud Charlet <charlet@adacore.com>
19868 Doug Rupp <rupp@adacore.com>
19870 * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
19872 (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
19873 this code in the GNAT run-time.
19875 * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
19878 * init.c (__gnat_error_handler [many]): Mark "msg" as const
19879 (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
19881 (__gnat_inside_elab_final_code): Moved here from
19882 Standard_Library and only defined for the compiler.
19883 __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
19884 (__gnat_inum_to_ivec): Do not define this function on VxWorks when
19885 using RTPs because directly vectored Interrupt routines are not
19886 supported on this configuration.
19887 (getpid): Do not redefine this function on VxWorks when using RTPs
19888 because this primitive is well supported by the RTP libraries.
19889 (copy_msg): Correct the code that checks for buffer overflow.
19890 Discovered during code reading.
19892 2005-08-29 Olivier Hainque <hainque@adacore.com>
19894 * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
19895 a library level mutable variable with an initializer, tell
19896 build_allocator to ignore the initializer's size. It may not be large
19897 enough for all the values that might be assigned to the variable later
19900 2005-08-29 Arnaud Charlet <charlet@adacore.com>
19901 Eric Botcazou <ebotcazou@adacore.com>
19903 * trans.c: Protect < in error msg with quote
19904 Replace GCC_ZCX by Back_End_Exceptions.
19905 (addressable_p) <COMPONENT_REF>: Also return 1 if the field
19906 has been sufficiently aligned in the record.
19908 2005-08-15 James E. Wilson <wilson@specifix.com>
19910 * system-linux-alpha.ads: Change ia64 to alpha.
19912 2005-08-01 Kazu Hirata <kazu@codesourcery.com>
19914 * decl.c, utils.c: Fix comment typos.
19916 2005-07-29 Kazu Hirata <kazu@codesourcery.com>
19918 * decl.c, init.c, initialize.c: Fix comment typos.
19920 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
19922 Make CONSTRUCTOR use VEC to store initializers.
19923 * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
19925 * trans.c (extract_values): Likewise.
19926 * utils.c (convert, remove_conversions): Likewise.
19927 * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
19928 gnat_build_constructor): Likewise.
19930 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
19932 * decl.c (components_to_record): Use DECL_FCONTEXT instead of
19934 (compare_field_bitpos): Likewise.
19936 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
19938 * utils.c (create_var_decl): Only set DECL_COMMON on
19939 VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
19940 VAR_OR_FUNCTION_DECL_P.
19942 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
19944 * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
19947 2005-07-07 Pascal Obry <obry@adacore.com>
19949 * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
19950 returned type on Windows.
19952 * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
19955 * g-socket.adb (Inet_Addr): Check for empty Image and raises an
19956 exception in this case.
19957 Simplify the code as "Image (Image'Range)" = "Image".
19959 2005-07-07 Vincent Celier <celier@adacore.com>
19961 * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
19962 the destructor/constructor attributes for <lib>final/<lib>init.
19964 * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
19966 2005-07-07 Eric Botcazou <ebotcazou@adacore.com>
19968 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
19969 type if the parameter is not passed by copy but reference by default.
19971 2005-07-07 Javier Miranda <miranda@adacore.com>
19973 * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
19974 Reimplementation of the support for abstract interface types in order
19975 to leave the code more clear and easy to maintain.
19977 * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
19978 abstract interface types in order to leave the code clearer and easier
19981 * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
19982 is now implemented by the new subprogram Fill_Secondary_DT_Entry.
19983 (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
19984 appropriate entry of the secondary dispatch table.
19985 (Make_DT): Add code to inherit the secondary dispatch tables of
19988 * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
19989 implementing both functionalities by means of a common routine, each
19990 routine has its own code.
19992 2005-07-07 Javier Miranda <miranda@adacore.com>
19994 * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
19996 * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
19999 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
20002 * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
20003 use of tag incomplete types.
20005 * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
20006 give support to tagged incomplete types.
20008 * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
20009 expression is a discriminant reference and its type is private, as can
20010 happen within a stream operation for a mutable record, use the full
20011 view of the type to resolve the case alternatives.
20012 (Analyze_Assignment): Check wrong dereference of incomplete types.
20014 * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
20017 * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
20020 * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
20021 N_Incomplete_Type_Declaration nodes.
20023 * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
20024 Tag_Present to give support to tagged incomplete types:
20026 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
20029 2005-07-07 Olivier Hainque <hainque@adacore.com>
20032 * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
20033 definitions for the Unwind wrappers in the compiler case.
20035 2005-07-07 Ed Schonberg <schonberg@adacore.com>
20036 Javier Miranda <miranda@adacore.com>
20038 * par-load.adb (Load): If a child unit is loaded through a limited_with
20039 clause, each parent must be loaded as a limited unit as well.
20041 * sem_ch10.adb (Previous_Withed_Unit): Better name for
20042 Check_Withed_Unit. Return true if there is a previous with_clause for
20043 this unit, whether limited or not.
20044 (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
20046 (Is_Visible_Through_Renamings): New local subprogram of install_limited
20047 _withed_unit that checks if some package installed through normal with
20048 clauses has a renaming declaration of package whose limited-view is
20049 ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
20050 of the current Draft document for Ada 2005.
20051 (Analyze_Context): Complete the list of compilation units that
20052 are allowed to contain limited-with clauses. It also contains
20053 checks that were previously done by Install_Limited_Context_Clauses.
20054 This makes the code more clear and easy to maintain.
20055 (Expand_Limited_With_Clause) It is now a local subprogram of
20056 Install_Limited_Context_Clauses, and contains the code that adds
20057 the implicit limited-with clauses for parents of child units.
20058 This functionality was prevously done by Analyze_Context.
20060 * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
20063 * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
20064 been erroneously named in a limited-with clause of its own context.
20065 In this case the error has been previously notified by Analyze_Context.
20067 2005-07-07 Ed Schonberg <schonberg@adacore.com>
20069 * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
20070 generic package that contains local declarations with the same name.
20071 (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
20073 2005-07-07 Bernard Banner <banner@adacore.com>
20075 * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
20076 ia64 platform only on platforms that you the GCC unwind library
20077 rather than the system unwind library.
20079 2005-07-07 Thomas Quinot <quinot@adacore.com>
20081 * expect.c: Minor reformatting
20083 2005-07-07 Sergey Rybin <rybin@adacore.com>
20085 * vms_data.ads: Add VMS qualifiers for new gnatpp switch
20088 * gnat_ugn.texi: Add description for new gnatpp option
20091 2005-07-04 Thomas Quinot <quinot@adacore.com>
20093 * g-expect-vms.adb, g-expect.ads, g-expect.adb
20094 (Get_Command_Output): New subprogram to launch a process and get its
20095 standard output as a string.
20097 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
20098 Olivier Hainque <hainque@adacore.com>
20100 * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
20101 fetch a code-range descriptor associated with the machine state. On
20102 failure set the machine state's PC to 0; on success, pass the
20103 descriptor to exc_virtual_unwind.
20105 * init.c (Tru64 section): New function __gnat_set_code_loc.
20107 2005-07-04 Vincent Celier <celier@adacore.com>
20109 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
20110 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
20111 mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
20112 Remove all auto-initialization code, as this is now done through the
20113 constructor mechanism.
20115 * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
20116 __gnat_sals_init_using_constructors): New functions.
20118 * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
20119 Linker_Constructor and Linker_Destructor when switch -a is used.
20121 * bindusg.adb: Add line for new switch -a
20123 * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
20124 (Gnatbind): When switch -a is used, check if it is allowed
20126 * switch-b.adb (Scan_Binder_Switches): Process new switch -a
20128 2005-07-04 Joel Brobecker <brobecker@adacore.com>
20130 * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
20131 This prevents us from hitting a limitation during the debug info
20132 generation when using stabs.
20133 (Prims_Ptr): Likewise.
20135 2005-07-04 Gary Dismukes <dismukes@adacore.com>
20136 Ed Schonberg <schonberg@adacore.com>
20137 Javier Miranda <miranda@adacore.com>
20139 * checks.adb (Null_Exclusion_Static_Checks): In the case of
20140 N_Object_Declaration, only perform the checks if the Object_Definition
20141 is not an Access_Definition.
20143 * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
20144 where the parent of an the access definition is an N_Object_Declaration
20145 when determining the Associated_Node_For_Itype and scope of an
20146 anonymous access-to-subprogram type.
20148 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
20149 Corresponding_Spec on the body created for a null procedure. Add ???
20150 comment. Remove New_Copy_Tree call on body argument to
20151 Set_Body_To_Inline.
20153 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
20154 discriminants, use the type of the actual as well, because the
20155 discriminants may be read by the called subprogram.
20157 * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
20158 access type we do not need to handle non-limited views.
20159 (Build_Derived_Record_Type): Additional check to check that in case of
20160 private types, interfaces are only allowed in private extensions.
20162 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
20164 * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
20165 <Pragma_Linker_Destructor>: Likewise.
20167 * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
20168 Pragma_Linker_Destructor.
20170 * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
20171 ATTR_LINK_DESTRUCTOR.
20172 (static_ctors, static_dtors): New variables.
20174 * misc.c (gnat_expand_body): Output current function as constructor
20175 and destructor if requested.
20177 * par-prag.adb: Add processing for pragma Linker_Constructor and
20180 * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
20181 extracted from Check_Interrupt_Or_Attach_Handler.
20182 (Check_Interrupt_Or_Attach_Handler): Invoke it.
20183 Implement pragma Linker_Constructor and Linker_Destructor with the
20184 help of Find_Unique_Parameterless_Procedure.
20185 Replace Name_Alias with Name_Target for pragma Linker_Alias.
20187 * snames.h, snames.ads, snames.adb:
20188 Add Name_Linker_Constructor and Name_Linker_Destructor.
20189 Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
20190 * snames.adb: Remove Name_Alias.
20192 * trans.c: Include cgraph.h.
20193 (build_global_cdtor): New function.
20194 (Compilation_Unit_to_gnu): Build global constructor and destructor if
20196 (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
20198 (addressable_p) <COMPONENT_REF>: Unconditionally test
20199 DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
20201 * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
20202 variable if it is external.
20204 (static_ctors, static_dtors): New global variables.
20205 (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
20206 <ATTR_LINK_DESTRUCTOR>: Likewise.
20207 (end_subprog_body): Chain function as constructor and destructor
20210 * exp_util.adb (Force_Evaluation): Unconditionally invoke
20211 Remove_Side_Effects with Variable_Ref set to true.
20212 (Remove_Side_Effects): Handle scalar types first. Use a renaming
20213 for non-scalar types even if Variable_Ref is true and for class-wide
20216 2005-07-04 Ed Schonberg <schonberg@adacore.com>
20218 * exp_attr.adb (Mod): Evaluate condition expression with checks off,
20219 to prevent spurious warnings.
20221 2005-07-04 Thomas Quinot <quinot@adacore.com>
20223 * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
20224 Itypes. Itypes are really unexpected there.
20225 (Build_TypeCode_Function): Generalise special processing for Itypes to
20226 handle the case of numeric implicit base types as well as enumerated
20229 2005-07-04 Ed Schonberg <schonberg@adacore.com>
20231 * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
20232 controlled, indicate the expected type of the dereference that is
20233 created for the call to Deep_Finalize, to prevent spurious errors when
20234 the designated type is private and completed with a derivation from
20235 another private type.
20237 2005-07-04 Vincent Celier <celier@adacore.com>
20239 * make.adb (Change_To_Object_Directory): When unable to change the
20240 current dir to the object directory, output the full path of the
20243 2005-07-04 Matthew Gingell <gingell@adacore.com>
20245 * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
20247 * indepsw-linux.adb: Replace by...
20249 * indepsw-gnu.adb: ...this new file
20251 2005-07-04 Vincent Celier <celier@adacore.com>
20253 * mlib-prj.adb (Auto_Initialize): New constant String
20254 (SALs_Use_Constructors): New Boolean function
20255 (Build_Library): Call gnatbind with Auto_Initialize switch when
20256 SALs_Use_Constructors returns True.
20258 * mlib-tgt.ads: Minor reformatting
20260 * mlib-utl.ads: Minor reformatting
20262 * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
20264 2005-07-04 Ed Schonberg <schonberg@adacore.com>
20266 * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
20267 single protected declarations can have an interface list.
20268 (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
20269 with seriously malformed entry declarations, and lead to compilation
20270 abandoned messages.
20272 2005-07-04 Javier Miranda <miranda@adacore.com>
20274 * par-load.adb: Load the context items in two rounds.
20276 2005-07-04 Robert Dewar <dewar@adacore.com>
20278 * scng.adb: Do not consider Mod used as an attribute to be a keyword
20280 2005-07-04 Ed Schonberg <schonberg@adacore.com>
20281 Javier Miranda <miranda@adacore.com>
20283 * sem_ch10.adb (Build_Limited_Views): A type declared with a private
20284 type extension needs a limited view.
20285 Remove previous restriction on private types available through the
20286 limited-view (only tagged private types were previously allowed).
20287 (Install_Withed_Unit): In the code that implements the
20288 legality rule given in AI-377, exclude a child unit with the name
20289 Standard, because it is a homonym of the Standard environment package.
20291 2005-07-04 Thomas Quinot <quinot@adacore.com>
20293 * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
20294 overloaded function call, carry interpretations from the original tree
20297 2005-07-04 Ed Schonberg <schonberg@adacore.com>
20299 * sem_ch6.adb (Conforming_Types): If the types are anonymous access
20300 types check whether some designated type is a limited view, and use
20301 the non-limited view if available.
20303 2005-07-04 Gary Dismukes <dismukes@adacore.com>
20305 * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
20306 constraint of full view of a private view T1 if present, when T2 is a
20307 discriminated full view.
20309 2005-07-04 Thomas Quinot <quinot@adacore.com>
20311 * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
20312 actual that is a view conversion of a bit packed array reference.
20314 2005-07-04 Ed Schonberg <schonberg@adacore.com>
20316 * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
20317 present before checking whether an interface type covers a synchronized
20320 2005-07-04 Ed Schonberg <schonberg@adacore.com>
20322 * sem_util.adb (Is_Object_Reference): An indexed or selected component
20323 whose prefix is an implicit dereference is an object reference. Removes
20324 spurious errors when compiling with -gnatc.
20326 2005-07-04 Robert Dewar <dewar@adacore.com>
20329 * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
20331 2005-07-04 Matthew Gingell <gingell@adacore.com>
20333 * tracebak.c: Enable tracebacks on ia64 platforms
20335 2005-07-04 Vincent Celier <celier@adacore.com>
20337 * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
20338 the GNAT BIND command, as gnatbind accepts multiples ALI files with
20339 the -L or -n switches.
20341 2005-07-04 Vincent Celier <celier@adacore.com>
20343 * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
20344 correctly computed and the main project data is not modified while
20346 (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
20347 (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
20348 c++linker as this does not work on some platforms.
20350 2005-07-04 Matthew Heaney <heaney@adacore.com>
20352 * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
20354 * a-coinve.adb: Perform constraint checks explicitly.
20356 2005-07-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
20357 Thomas Quinot <quinot@adacore.com>
20359 * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
20360 new target gen-soccon.
20362 2005-07-04 Robert Dewar <dewar@adacore.com>
20364 * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
20366 2005-07-04 Thomas Quinot <quinot@adacore.com>
20368 * g-socket.ads (Check_Selector): Minor rewording of comment.
20370 2005-07-04 Vincent Celier <celier@adacore.com>
20372 * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
20374 2005-07-04 Thomas Quinot <quinot@adacore.com>
20376 * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
20378 2005-07-04 Sergey Rybin <rybin@adacore.com>
20380 * gnat_ugn.texi: Add description of --eol gnatpp option
20382 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
20383 Thomas Quinot <quinot@adacore.com>
20385 * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
20386 if the user wants all calls of a subprogram to be flagged,
20387 independently of whether they are made from within the same unit or
20389 Mention restriction for pragma Linker_Alias on some platforms.
20390 Document pragma Linker_Constructor and Linker_Destructor.
20391 Rewrite documentation of Weak_External, Linker_Section and
20392 Linker_Alias pragmas.
20394 2005-07-04 Arnaud Charlet <charlet@adacore.com>
20396 * s-stausa.ads, s-stausa.adb: New files.
20398 2005-06-30 Kelley Cook
20400 * all files: Update FSF address in copyright headers.
20401 * gen-soccon.co (main): Output new FSF address in generated files.
20403 2005-06-28 Paul Brook <paul@codesourcery.com>
20405 * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
20407 2005-06-14 Olivier Hainque <hainque@adacore.com>
20408 Eric Botcazou <ebotcazou@adacore.com>
20410 * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
20411 exc_unwind, now that we are generating proper .debug_frame output for
20414 * tracebak.c: Remove the mips-irix section, as we are now using the
20415 s-mastop based unwinder again.
20416 Under SPARC/Solaris, take into account the stack bias to compute the
20417 frame offset. The stack bias is 0 for the V8 ABI and 2047 for the V9
20420 2005-06-14 Doug Rupp <rupp@adacore.com>
20422 * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
20424 * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
20426 2005-06-14 Pascal Obry <obry@adacore.com>
20428 * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
20429 a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
20430 a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
20433 * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
20434 a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
20435 a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
20436 a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
20437 a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
20438 a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
20439 a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
20440 s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
20441 s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
20442 s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
20443 s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
20444 s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
20445 s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
20446 s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
20447 s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
20448 s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
20449 s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
20450 s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
20451 s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
20452 s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
20453 s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
20454 s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
20455 s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
20456 s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
20457 s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
20458 s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
20459 s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
20460 s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
20461 s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
20462 s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
20463 a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
20464 a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
20465 a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
20466 a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
20467 a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
20468 a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
20469 a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
20470 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
20471 a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
20472 a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
20473 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
20474 a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
20475 a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
20476 a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
20477 a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
20478 a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
20479 a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
20480 a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
20481 a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
20482 a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
20483 a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
20484 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
20485 a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
20486 a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
20487 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
20488 a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
20489 a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
20490 dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
20491 g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
20492 g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
20493 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
20494 g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
20495 g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
20496 gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
20497 g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
20498 i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
20499 s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
20500 s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
20501 s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
20502 s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
20503 s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
20504 s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
20505 s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
20506 s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
20507 s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
20508 s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
20509 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
20510 s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
20511 s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
20512 s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
20513 s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
20514 s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
20515 s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
20516 s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
20517 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
20518 s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
20519 s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
20520 s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
20521 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
20522 s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
20523 s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
20524 s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
20525 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
20526 s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
20527 s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
20528 s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
20529 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
20530 s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
20531 s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
20532 s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
20533 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
20534 s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
20535 s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
20536 s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
20537 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
20538 s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
20539 s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
20540 s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
20541 s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
20542 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
20543 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
20544 s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
20545 s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
20546 s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
20547 s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
20548 s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
20549 s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
20550 s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
20551 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
20552 s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
20553 s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
20554 s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
20555 s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
20556 a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
20557 a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
20558 a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
20559 a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
20560 a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
20561 a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
20562 a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
20563 a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
20564 a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
20565 "GNU Ada" to GNAT, use proper casing for RUN-TIME.
20567 2005-06-14 Jose Ruiz <ruiz@adacore.com>
20568 Arnaud Charlet <charlet@adacore.com>
20570 * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
20571 longer protected objects. They have been replaced by lower-level
20572 suspension objects made up by a mutex and a condition variable (or
20573 their equivalent given a particular OS) plus some internal data to
20574 reflect the state of the suspension object.
20575 (Initialize, Finalize): Add this initialization procedure for
20576 Suspension_Object, which is a controlled type.
20577 (Finalize): Add the finalization procedure for Suspension_Object,
20578 which is a controlled type.
20580 * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
20581 Ada.Synchronous_Task_Control because there is no longer a need for a
20582 VxWorks specific version of this package. Target dependencies
20583 has been moved to System.Task_Primitives.Operations.
20585 * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
20587 (InitializeCriticalSection, EnterCriticalSection,
20588 LeaveCriticalSection, DeleteCriticalSection): Replace the type
20589 pCriticalSection by an anonymous access type so that we avoid problems
20590 of accessibility to local objects.
20592 * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
20593 s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
20594 s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
20595 s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
20596 s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
20597 set the environment task mask here.
20598 (Current_State): Add this function that returns the state of the
20600 (Set_False): Add this procedure that sets the state of the suspension
20602 (Set_True): Add this procedure that sets the state of the suspension
20603 object to True, releasing the task that was suspended, if any.
20604 (Suspend_Until_True): Add this procedure that blocks the calling task
20605 until the state of the object is True. Program_Error is raised if
20606 another task is already waiting on that suspension object.
20607 (Initialize): Add this procedure for initializing the suspension
20608 object. It initializes the mutex and the condition variable which are
20609 used for synchronization and queuing, and it sets the internal state
20611 (Finalize): Add this procedure for finalizing the suspension object,
20612 destroying the mutex and the condition variable.
20614 * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
20615 s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
20616 s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
20617 s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
20618 which provides a low-level abstraction (using operating system
20619 primitives) for Ada.Synchronous_Task_Control.
20620 This object is made up by a mutex (for ensuring mutual exclusion), a
20621 condition variable (for queuing threads until the condition is
20622 signaled), a Boolean (State) indicating whether the object is open,
20623 and a Boolean (Waiting) reflecting whether there is a task already
20624 suspended on this object.
20626 * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
20627 s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
20628 s-intman-vms.ads, s-intman-mingw.adb,
20629 (Initialize_Interrupts): Removed, no longer used.
20631 * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
20632 (Setup_Interrupt_Mask): New procedure.
20634 * s-intman-vxworks.ads, s-intman-vxworks.adb: Update comments.
20636 * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
20638 * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
20639 this is no longer done in the body of s-taprop
20640 (Server_Task): Explicitely test for Pending_Action in case
20641 System.Parameters.No_Abort is True.
20643 * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
20644 is no longer done in the body of s-taprop
20646 2005-06-14 Robert Dewar <dewar@adacore.com>
20648 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
20649 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
20650 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
20651 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
20652 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
20653 system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
20654 system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
20655 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
20656 system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
20657 system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
20658 system-linux-hppa.ads, system-vms_64.ads,
20659 system-vxworks-alpha.ads: Minor comment update for
20660 AI-362 (unit is Pure).
20662 * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
20663 Add pragma Pure_05 for AI-362
20664 Make remaining conversion functions obsolescent in Ada 95
20666 * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
20667 Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
20668 Add entries for a-wichun and a-zchuni
20669 Add a-widcha a-zchara for AI-395
20670 Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
20672 * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
20673 Add entries for a-wichun.o and a-zchuni.o
20674 Entries for a-widcha.o and a-zchara.o
20675 Add entry for a-chacon.o
20677 * a-ztenau.adb: Add with of Ada.Characters.Conversions
20679 * a-chacon.ads, a-chacon.adb: New files.
20681 * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
20682 categorization violations.
20684 * a-strmap.ads: Add pragma Pure_05 for AI-362
20685 * a-strmap.ads: Add note on implicit categorization for AI-362
20687 * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
20689 * par-prag.adb: Dummy entry for pragma Persistent_BSS
20690 Set Ada_Version_Explicit, for implementation of AI-362
20691 Add processing for pragma Pure_05 and Preelaborate_05
20692 Add entry for Assertion_Policy pragma
20694 * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
20695 when needed for proper processing of categorization stuff
20698 For several cases, make errors in preealborate units warnings,
20699 instead of errors, if GNAT_Mode is set. For AI-362.
20701 * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
20702 preelaborate unit is now warning if in GNAT mode
20704 * s-stoele.ads: Document AI-362 for pragma preelaborate
20706 2005-06-14 Doug Rupp <rupp@adacore.com>
20708 * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
20709 s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
20710 Default_Exception_Msg_Max_Length: new parameter.
20712 * a-except.ads: (Exception_Msg_Max_Length): Set to
20713 System.Parameters.Default_Exception_Msg_Max_Length
20714 Add pragma Preelaborate_05 for AI-362
20715 Add warnings off to allow categorization violations for AI-362
20717 2005-06-14 Vincent Celier <celier@adacore.com>
20719 * gnatsym.adb: Adapt to modification of package Symbols: procedure
20720 Process is now in package Processing.
20722 * symbols.ads, symbols.adb:
20723 (Processing): New package, containing procedure Process
20725 * symbols-vms-alpha.adb:
20726 Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
20728 * symbols-vms.adb, symbols-processing-vms-alpha.adb,
20729 symbols-processing-vms-ia64.adb: New files.
20731 2005-06-14 Pascal Obry <obry@adacore.com>
20733 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
20734 implementation. This new version generates the proper DllMain routine
20735 to initialize the SAL. The DllMain is generated in Ada and compiled
20736 before being added as option to the library build command.
20738 2005-06-14 Doug Rupp <rupp@adacore.com>
20739 Pascal Obry <obry@adacore.com>
20741 * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
20742 call to decc$translate_vms.
20743 (__gnat_locate_regular_file): Check if the path_val contains quotes. We
20744 need to remove those quotes before catenating the filename.
20745 (__gnat_locate_exec_on_path): improvements to the Win32 section:
20746 * avoid allocating the memory twice for better efficiency;
20747 * allocate 32K buffer for environment expansion as suggested by MSDN;
20748 * prepend ".;" to the path so that current directory is searched too.
20750 2005-06-14 Robert Dewar <dewar@adacore.com>
20752 * a-except.adb (Exception_Identity): return Null_Id for null occurrence
20753 instead of raising CE (AI-241)
20754 Add warnings off to allow categorization violations for AI-362
20756 2005-06-14 Robert Dewar <dewar@adacore.com>
20758 * ali-util.adb, gnatbind.adb: Remove references to
20759 Force_RM_Elaboration_Order.
20761 * switch-b.adb: Remove recognition of -f switch
20763 2005-06-14 Pascal Obry <obry@adacore.com>
20765 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
20766 implementation which is slightly more efficient.
20768 2005-06-14 Gary Dismukes <dismukes@adacore.com>
20769 Javier Miranda <miranda@adacore.com>
20770 Ed Schonberg <schonberg@adacore.com>
20771 Hristian Kirtchev <kirtchev@adacore.com>
20773 * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
20774 allocator's designated type is a class-wide type, and compiling for
20775 Ada 2005, emit a run-time check that the accessibility level of the
20776 type given in the allocator's expression is not deeper than the level
20777 of the allocator's access type.
20779 (Tagged_Membership): Modified to gives support to abstract interface
20782 * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
20784 (Descendant_Tag): New predefined function
20785 (Is_Descendant_At_Same_Level): New predefined function
20786 (Get_Access_Level): New private function
20787 (Set_Access_Level): New private procedure
20788 (IW_Membership): New function. Given the tag of an object and the tag
20789 associated with an interface, evaluate if the object implements the
20791 (Register_Interface_Tag): New procedure used to initialize the table of
20792 interfaces used by the IW_Membership function.
20793 (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
20794 of the dispatch table.
20795 (Inherit_TSD): Modified to copy the table of ancestor tags plus the
20796 table of interfaces of the parent.
20797 (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
20798 (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
20799 (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
20800 and raise Tag_Error if the passed tag equalis No_Tag, to conform with
20801 Ada 2005 semantics for the new predefined function.
20803 * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
20804 call to Descendant_Tag rather than Internal_Tag.
20805 (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
20806 the accessibility level of the attribute's Item parameter is not deeper
20807 than the level of the attribute's prefix type. Tag_Error is raised if
20808 the check fails. The check is only emitted for Ada_05.
20809 (Find_Stream_Subprogram): If a TSS exists on the type itself for the
20810 requested stream attribute, use it.
20811 (Expand_N_Attribute_Reference): If the designated type is an interface
20812 then rewrite the referenced object as a conversion to force the
20813 displacement of the pointer to the secondary dispatch table.
20814 (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
20815 is a dereference of an object with a constrained partial view.
20817 * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
20818 type is a class-wide type, emit a run-time check that the accessibility
20819 level of the returned object is not deeper than the level of the
20820 function's master (only when compiling for Ada 2005).
20822 * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
20823 Action_Nb_Arg): Add entries for new Get_Access_Level and
20824 Set_Access_Level routines in these tables.
20825 (Make_DT): Generate a call to set the accessibility level of the
20826 tagged type in its TSD.
20827 (Make_DT): Code cleanup. The functionality of generating all the
20828 secondary dispatch tables has been moved to freeze_record_type.
20829 (Make_Abstract_Interface_DT): Minor code cleanup.
20830 (Set_All_DT_Position): Code cleanup. As part of the code cleanup
20831 this subprogram implements a new algorithm that provides the
20832 same functionality and it is more clear in case of primitives
20833 associated with abstract interfaces.
20834 (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
20835 clean up, the functionality of this subprogram is now provided
20836 by Set_All_DT_Position.
20837 (Write_DT): New subprogram: a debugging procedure designed to be called
20838 within gdb to display the dispatch tables associated with a tagged
20840 (Collect_All_Interfaces): New subprogram that collects the whole list
20841 of interfaces that are directly or indirectly implemented by a tagged
20843 (Default_Prim_Op_Position): New subprogram that returns the fixed
20844 position in the dispatch table of the default primitive operations.
20845 (Expand_Interface_Actuals): New subprogram to generate code that
20846 displaces all the actuals corresponding to class-wide interfaces to
20847 reference the interface tag of the actual object.
20848 (Expand_Interface_Conversion): New subprogram. Reference the base of
20849 the object to give access to the interface tag associated with the
20850 secondary dispatch table.
20851 (Expand_Interface_Thunk): New subprogram that generates the code of the
20852 thunk. This is required for compatibility with the C+ ABI.
20853 (Make_Abstract_Interface_DT): New subprogram that generate the
20854 declarations for the secondary dispatch tables associated with an
20855 abstract interface.
20856 (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
20857 attribute for each primitive operation covering interface subprograms
20858 (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
20859 These subprograms were upgraded to give support to abstract interfaces
20861 * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
20862 RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
20863 RE_Set_Access_Level.
20864 (RE_Unit_Table): Add entries for new Ada.Tags operations.
20865 Add support to call the followig new run-time subprograms:
20866 IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
20868 * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
20869 match its full declaration when both have an access definition with
20870 statically matching designated subtypes.
20871 (Analyze_Component_Declaration): Delete commented out code that was
20872 incorrectly setting the scope of an anonymous access component's type.
20873 (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
20874 an access discriminant when the containing type is nonlimited.
20875 (Make_Incomplete_Type_Declaration): Create an incomplete type
20876 declaration for a record type that includes self-referential access
20878 (Check_Anonymous_Access_Types): Before full analysis of a record type
20879 declaration, create anonymous access types for each self-referential
20881 (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
20882 an access component in this context is a Local_Anonymous_Access, for
20883 proper accessibility checks.
20884 (Access_Definition): Set properly the scope of the anonymous access type
20885 created for a stand-alone access object.
20886 (Find_Type_Of_Object): An object declaration may be given with an access
20888 (Complete_Subprograms_Derivation): New subprogram used to complete
20889 type derivation of private tagged types implementing interfaces.
20890 In this case some interface primitives may have been overriden
20891 with the partial-view and, instead of re-calculating them, they
20892 are included in the list of primitive operations of the full-view.
20893 (Build_Derived_Record_Type): Modified to give support to private
20894 types implemening interfaces.
20895 (Access_Definition): Reject ALL on anonymous access types.
20896 (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
20897 type derivation to occur at a deeper accessibility level than the
20899 For the case of derivation within a generic body however, disallow the
20900 derivation if the derived type has an ancestor that is a formal type
20901 declared in the formal part of an enclosing generic.
20902 (Analyze_Object_Declaration): For protected objects, remove the check
20903 that they cannot contain interrupt handlers if not declared at library
20905 (Add_Interface_Tag_Components): New subprogram to add the tag components
20906 corresponding to all the abstract interface types implemented by a
20907 record type or a derived record type.
20908 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
20909 Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
20910 Process_Full_View, Record_Type_Declaration): Modified to give
20911 support to abstract interface types
20912 (Collect_Interfaces): New subprogram that collects the list of
20913 interfaces that are not already implemented by the ancestors
20914 (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
20915 when partial view has no discriminants and full view has defaults.
20916 (Constrain_Access): Reject a constraint on a general access type
20917 if the discriminants of the designated type have defaults.
20918 (Access_Subprogram_Declaration): Associate the Itype node with the inner
20919 full-type declaration or subprogram spec. This is required to handle
20920 nested anonymous declarations.
20921 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
20922 Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
20923 Process_Full_View, Record_Type_Declaration): Modified to give
20924 support to abstract interface types
20925 (Derive_Subprograms): Addition of a new formal to indicate if
20926 we are in the case of an abstact-interface derivation
20927 (Find_Type_Of_Subtype_Indic): Moved from the body of the package
20928 to the specification because it is requied to analyze all the
20929 identifiers found in a list of interfaces
20931 * debug.adb: Complete documentation of flag "-gnatdZ"
20933 * exp_ch3.adb: Implement config version of persistent_bss pragma
20934 (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
20935 testing for TSS presence to properly enforce visibility rules.
20936 (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
20937 Make_Abstract_Interfaces_DT to generate the secondary tables
20938 associated with abstract interfaces.
20939 (Build_Init_Procedure): Modified to initialize all the tags
20941 (Component_Needs_Simple_Initialization): Similar to other tags,
20942 interface tags do not need initialization.
20943 (Freeze_Record_Type): Modified to give support to abstract interface
20945 (Expand_N_Object_Declaration): Do not generate an initialization for
20946 a scalar temporary marked as internal.
20948 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
20949 in-out parameter that is a component in an initialization procedure,
20950 whose constraint might depend on discriminants, and that may be
20951 misaligned because of packing or representation clauses.
20952 (Is_Legal_Copy): New predicate to determine whether a possibly
20953 misaligned in-out actual can actually be passed by copy/return. This
20954 is an error in case the type is by_reference, and a warning if this is
20955 the consequence of a DEC import pragma on the subprogram.
20956 (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
20958 (Expand_Inlined_Call): Mark temporary generated for the return value as
20959 internal, so that no useless scalar normalization is generated for it.
20960 (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
20961 null procedure can always be inlined.
20962 (Expand_N_Subprogram_Declaration): If this is the declaration of a null
20963 procedure, generate an explicit empty body for it.
20965 * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
20966 Given a type implementing an interface, returns the corresponding
20967 access_disp_table value.
20968 (Find_Interface_Tag): New subprogram. Given a type implementing an
20969 interface, returns the record component containing the tag of the
20971 (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
20972 previous ones that return the corresponding tag and access_disp_table
20974 (Is_Predefined_Dispatching_Operation): Determines if a subprogram
20975 is a predefined primitive operation.
20976 (Expand_Subtype_From_Expr): If the expression is a selected component
20977 within an initialization procedure, compute its actual subtype, because
20978 the component may depend on the discriminants of the enclosing record.
20980 * i-cpp.ads, i-cpp.adb:
20981 This package has been left available for compatibility with previous
20982 versions of the frontend. As part of the new layout this is now a
20983 dummy package that uses declarations available at a-tags.ads
20985 * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
20986 "constant access" and "aliased [constant] access" when not compiling
20988 Suppress Ada 2005 keyword warning if -gnatwY used
20989 (P_Identifier_Declarations): Add support for object declarations with
20990 access definitions.
20991 (Private_Extension_Declaration): Complete the documentation
20992 (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
20993 attribute in case of private extension declaration
20994 (P_Type_Declaration): Mark as "abstract" the type declarations
20995 corresponding with protected, synchronized and task interfaces
20996 (P_Declarative_Items): "not" and "overriding" are overriding indicators
20997 for a subprogram or instance declaration.
20999 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
21000 instantiation that is a dispatching operation has controlling access
21001 parameters that are null excluding.
21002 Save and restore Ada_Version_Explicit, for implementation of AI-362
21003 (Validate_Derived_Type_Instance): Add check for abstract interface
21005 (Analyze_Formal_Package): Establish Instantiation source for the copy of
21006 the generic that is created to represent the formal package.
21007 (Analyze_Package_Instantiation): Instantiate body immediately if the
21008 package is a predefined unit that contains inlined subprograms, and
21009 we are compiling for a Configurable_Run_Time.
21010 (Instantiate_Formal_Subprogram): Indicate that null default subprogram
21011 If the program has a null default, generate an empty body for it.
21013 * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
21014 error message condition, null procedures are correctly detected now.
21015 (New_Overloaded_Entity): Bypass trivial overriding indicator check
21016 for subprograms in the context of protected types. Instead, the
21017 indicator is examined in Sem_Ch9 while analysing the subprogram
21019 (Check_Overriding_Indicator): Check consistency of overriding indicator
21020 on subprogram stubs as well.
21021 (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
21023 (Analize_Subprogram_Specification): When analyzing a subprogram in which
21024 the type of the first formal is a concurrent type, replace this type
21025 by the corresponding record type.
21026 (Analyze_Subprogram_Body): Undo the previous work.
21027 (Analyze_Procedure_Call): If the call has the form Object.Op, the
21028 analysis of the prefix ends up analyzing the call itself, after which
21030 (Has_Interface_Formals): New subprogram subsidiary to analyze
21031 subprogram_specification that returns true if some non
21032 class-wide interface subprogram is found
21033 (New_Overloaded_Entity): Modified to give support to abstract
21035 (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
21036 access to subprograms must be recursive.
21037 (Is_Unchecked_Conversion): Improve the test that recognizes
21038 instantiations of Unchecked_Conversion, and allows them in bodies that
21039 are to be inlined by the front-end. When the body comes from an
21040 instantiation, a reference to Unchecked_Conversion will be an
21041 Expanded_Name, even though the body has not been analyzed yet.
21042 Replace Is_Overriding and Not_Overriding in subprogram_indication with
21043 Must_Override and Must_Not_Override, to better express intent of AI.
21044 (Analyze_Subprogram_Body): If an overriding indicator is given, check
21045 that it is consistent with the overrinding status of the subprogram
21047 (Analyze_Subprogram_Declaration): Indicate that a null procedure is
21049 If the subprogram is a null procedure, indicate that it does not need
21052 * sem_disp.adb (Check_Controlling_Type): Give support to entities
21053 available through limited-with clauses.
21054 (Check_Dispatching_Operation): A stub acts like a body, and therefore is
21055 allowed as the last primitive of a tagged type if it has no previous
21057 (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
21058 to give support to abstract interface types
21060 * sem_res.adb (Valid_Conversion): Perform an accessibility level check
21061 in the case where the target type is an anonymous access type of an
21062 object or component (that is, when Is_Local_Anonymous_Access is true).
21063 Prevent the special checks for conversions of access discriminants in
21064 the case where the discriminant belongs to a nonlimited type, since
21065 such discriminants have their accessibility level defined in the same
21066 way as a normal component of an anonymous access type.
21067 (Resolve_Allocator): When an allocator's designated type is a class-wide
21068 type, check that the accessibility level of type given in the
21069 allocator's expression or subtype indication is not statically deeper
21070 than the level of the allocator's access type.
21071 (Check_Discriminant_Use): Diagnose discriminant given by an expanded
21072 name in a discriminant constraint of a record component.
21073 (Resolve_Explicit_Dereference): Do not check whether the type is
21074 incomplete when the dereference is a use of an access discriminant in
21075 an initialization procedure.
21076 (Resolve_Type_Conversion): Handle conversions to abstract interface
21078 (Valid_Tagged_Conversion): The conversion of a tagged type to an
21079 abstract interface type is always valid.
21080 (Valid_Conversion): Modified to give support to abstract interface types
21081 (Resolve_Actuals): Enable full error reporting on view conversions
21082 between unrelated by_reference array types.
21083 The rule for view conversions of arrays with aliased components is
21084 weakened in Ada 2005.
21085 Call to obsolescent subprogram is now considered to be a violation of
21086 pragma Restrictions (No_Obsolescent_Features).
21087 (Check_Direct_Boolean_Operator): If the boolean operation has been
21088 constant-folded, there is nothing to check.
21089 (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
21090 check on possible violation of restriction No_Direct_Boolean_Operators
21091 until after expansion of operands, to prevent spurious errors when
21092 operation is constant-folded.
21094 * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
21095 Has_Compatible_Type): Modified to give support to abstract interface
21097 (Interface_Present_In_Ancestor): New function to theck if some ancestor
21098 of a given type implements a given interface
21100 * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
21101 prefix is a parameterless function that returns an access_to_procedure.
21102 (Transform_Object_Operation): Handle properly function calls of the
21103 form Obj.Op (X), which prior to analysis appear as indexed components.
21104 (Analyze_One_Call): Complete the error notification to help new Ada
21106 (Analyze_Allocator): For an allocator without an initial value, where
21107 the designated type has a constrained partial view, a discriminant
21108 constraint is illegal.
21110 2005-06-14 Robert Dewar <dewar@adacore.com>
21112 * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
21113 do with treatment of Set_Col when positioned at end of line character.
21115 2005-06-14 Robert Dewar <dewar@adacore.com>
21117 * atree.adb: (Elist*): Protect against uninitialized field
21119 2005-06-14 Ed Schonberg <schonberg@adacore.com>
21121 * checks.adb (Install_Null_Excluding_Check): Do not generate checks
21122 for an attribute reference that returns an access type.
21123 (Apply_Discriminant_Check): No need for check if (designated) type has
21124 constrained partial view.
21126 (Apply_Float_Conversion_Check): Generate a short-circuit expression for
21127 both bound checks, rather than a conjunction.
21128 (Insert_Valid_Check): If the expression is an actual that is an indexed
21129 component of a bit-packed array, force expansion of the packed element
21130 reference, because it is specifically inhibited elsewhere.
21132 2005-06-14 Vincent Celier <celier@adacore.com>
21134 * clean.adb (Clean_Project): Correctly delete executable specified as
21135 absolute path names.
21137 * make.adb (Gnatmake): Allow relative executable path names with
21138 directory information even when project files are used.
21139 (Change_To_Object_Directory): Fail gracefully when unable to change
21140 current working directory to object directory of a project.
21141 (Gnatmake): Remove exception handler that could no longer be exercized
21142 (Compile_Sources.Compile): Use deep copies of arguments, as some of them
21143 may be deallocated by Normalize_Arguments.
21144 (Collect_Arguments): Eliminate empty arguments
21146 * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
21147 and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
21148 (Check_Project): Return False when Project is No_Project. Return True
21149 when All_Projects is True.
21150 (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
21151 All_Projects to True.
21154 2005-06-14 Ed Schonberg <schonberg@adacore.com>
21155 Javier Miranda <miranda@adacore.com>
21156 Thomas Quinot <quinot@adacore.com>
21157 Robert Dewar <dewar@adacore.com>
21158 Hristian Kirtchev <kirtchev@adacore.com>
21159 Gary Dismukes <dismukes@adacore.com>
21161 * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
21162 anonymous access types, to indicate that the accessibility level of
21163 the type is determined by that of the enclosing declaration.
21164 (Has_Persistent_BSS): New flag
21165 (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
21166 of this attribute with functions.
21167 (Is_Primitive_Wrapper): Remove the barrier.
21168 (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
21169 Has_Specified_Stream_Read, Has_Specified_Stream_Write):
21171 (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
21172 Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
21174 (Is_Pure_Unit_Access_Type): New flag
21175 (Abstract_Interfaces): Complete the assertion to cover all usages.
21176 (Set_Is_Interface): Complete the assertion to cover all usages.
21177 (Is_Primitive_Wrapper): New attribute.
21178 (Is_Obsolescent): Now applies to all entities (though it is only set
21179 for subprograms currently)
21180 New flag: Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
21181 which solves various problems concerning access subtypes.
21182 (Has_Persistent_BSS): New flag
21183 (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
21184 Remove these subprograms because this attribute is currently
21187 Has_Specified_Stream_Input (Flag190)
21188 Has_Specified_Stream_Output (Flag191)
21189 Has_Specified_Stream_Read (Flag192)
21190 Has_Specified_Stream_Write (Flag193)
21191 Present in all type and subtype entities. Set for a given view if the
21192 corresponding stream-oriented attribute has been defined by an
21193 attribute definition clause. When such a clause occurs, a TSS is set
21194 on the underlying full view; the flags are used to track visibility of
21195 the attribute definition clause for partial or incomplete views.
21196 (Is_Pure_Unit_Access_Type): New flag
21197 Clarify use of Is_Internal.
21198 (Is_Primitive_Wrapper): New attribute present in primitive subprograms
21199 internally generated to wrap the invocation of tasks and protected
21200 types that implement interfaces.
21201 (Implementation_Base_Type): Documentation correction
21202 (Is_Obsolescent): Now applies to all entities (though it is only set
21203 for subprograms currently)
21204 New flag: Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
21205 which solves various problems concerning access subtypes.
21207 * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
21208 for examined parameters. Identify unequal parameter list lengths as
21209 non-conformant parameters.
21210 (Overriding_Possible): Do not check for "All" qualifier in declaration
21211 of controlling access parameter, following prescription of AI-404.
21212 (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
21213 that build the procedure body that wraps an entry invocation
21214 (Build_Corresponding_Record, Build_Protected_Sub_Specification,
21215 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
21216 Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
21217 give support to abstract interface types
21219 * freeze.adb (Freeze_Entity): Issue error message if
21220 Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
21221 type has no storage pool (Ada 2005) AI-366.
21222 Also modified to give support to abstract interface types
21223 (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
21224 Inline_Always pragma.
21226 * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
21227 now begin an entry declaration.
21228 (P_Entry_Or_Subprogram_With_Indicator): New procedure in
21229 P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
21230 a subprogram declaration preceded by an overriding indicator.
21231 (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
21232 declarations or subprogram declarations preceded by reserved words
21233 "not" or "overriding".
21234 (P_Entry_Declaration): Update comment. Parse and check overriding
21235 indicator, set semantic flags of entry declarations.
21236 (P_Task): New error message in case of private applied
21237 to a task type declaration.
21238 (P_Protected): New error message in case of private applied
21239 to a task type declaration.
21241 * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
21242 in which the full view of a type implementing an interface is a
21244 (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
21245 Declare_Inherited_Private_Subprograms): If an explicit operation
21246 overrides an operation that is inherited in the private part, mark the
21247 explicit one as overriding, to enable overriding indicator checks.
21248 (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
21249 full view to partial view, to simplify handling in back-end.
21251 * sprint.adb: Print interface lists where needed: derived types,
21252 protected types, task types.
21253 output "is null" for null procedures. Part of implementation of
21255 * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
21256 relaxation of rules for access types in pure, shared passive partitions.
21258 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
21259 first read discriminants into temporary objects, performing checks on
21260 the read values, then possibly performing discriminant checks on the
21261 actual (if it is constrained), and only finally reading the components
21262 into a constrained temporary object.
21263 (Build_Elementary_Input_Call): Adjust the specific circuitry for the
21264 case of reading discriminants of a mutable record type to recognize
21265 the new form of the code generated by
21266 Build_Mutable_Record_Read_Procedure.
21268 * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
21269 of a simple call to Make_TSS_Name.
21270 (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
21271 buffer, in order for Is_TSS to work correctly on local TSS names.
21273 * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
21274 Is_Local_Anonymous_Access to check legaliy of attributes in the
21275 context of access components and stand-alone access objects.
21276 (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
21277 treated as available for a limited private type if there is an
21278 attribute_definition_clause that applies to its full view, but not in
21279 other cases where the attribute is available for the full view
21280 (specifically, the sole fact that the full view is non-limited does not
21281 make the attribute available for the partial view).
21282 (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
21283 non-overloaded intrinsic subprogram.
21284 (Check_Stream_Attribute): Reject an attribute reference for an
21285 unavailable stream attribute even if the prefix is not a limited type
21286 (case of a 'Input attribute reference for an abstract, non-classwide
21288 (Stream_Attribute_Available): New function to determine whether a stream
21289 attribute is available at a place.
21290 (Check_Attribute): Use Stream_Attribute_Available instead of just
21291 testing for TSS presence on the implementation base type.
21292 (Analyze_Attribute): Modified to give support to task interfaces.
21293 (Analyze_Access_Attribute): Add error check for use of an Access (or
21294 Unrestricted_Access) attribute with a subprogram marked as
21296 (Analyze_Attribute, case Attribute_Address): Add error check for use of
21297 an Address attribute with a subprogram marked as Inline_Always.
21298 Update Eval_Attribute to handle new value of Width from AI-395
21300 * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
21301 (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
21302 Factor common code across the stream-oriented attribute circcuits into
21303 a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
21304 processing is functionally identical to the previous duplicated one,
21305 except that an expression that denotes an abstract subprogram will now
21306 be rejected, as mandated by AI-195 item 5.
21308 * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
21309 Is_Local_Anonymous_Access to apply accessibility checks to access
21310 components and stand-alone access objects.
21311 (Has_Discriminant_Dependent_Constraint): Moved to spec for use
21313 (Is_Potentially_Persistent_Type): New function
21314 (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
21315 a heap-object whose type has a constrained partial view, the object is
21316 unconstrained and the component may depend on a discriminant, making its
21319 * sinfo.ads, sinfo.adb
21320 (Must_Not_Override): Flag applicable to N_Entry_Declaration.
21321 (Must_Override): Flag applicable to N_Entry_Declaration.
21322 Indicate that interface_list can appear in single task and single
21323 protected declarations.
21324 Replace Is_Overriding and Not_Overriding with Must_Override and
21325 Must_Not_Override, to better express intent of AI.
21326 Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
21327 of an overriding indicator in a subprogram or instance.
21328 Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
21329 Add the overriding indicator [[not] overriding] construct to the
21330 following grammar productions:
21332 GENERIC_INSTANTIATION
21333 SUBPROGRAM_SPECIFICATION
21335 * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
21336 can start with an overriding indicator.
21338 * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
21339 flags accordingly on subrogram specifications or instances.
21342 (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
21343 overriding_indicator, if present, is consistent with status of spec.
21344 Improve error message for null-excluding checks on controlling access
21346 (Check_In_Previous_With_Clause): Protect the frontend against
21347 previously reported critical errors in the context clauses.
21348 Save and restore Ada_Version_Explicit, for implementation of AI-362
21349 (Analyze_Subprogram_Renaming): If the new entity is a dispatching
21350 operation verify that controlling formals of the renamed entity that
21351 are access parameters are explicitly non-null.
21352 (Find_Expanded_Name): Improve error message when prefix is an illegal
21353 reference to a private child unit.
21355 * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
21356 s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
21357 Rewrite to correspond to new wide character names in AI-395
21359 * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
21360 default procedures.
21362 2005-06-14 Ed Schonberg <schonberg@adacore.com>
21363 Robert Dewar <dewar@adacore.com>
21365 * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
21366 code, not on the bodies of predefined operations, to cut down on
21369 2005-06-14 Ed Schonberg <schonberg@adacore.com>
21371 * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
21372 be expanded in place. The size computation does not require a
21373 subtraction, which would raise an exception on a compiler built with
21374 assertions when the upper bound is Integer'first.
21375 (Flatten): For an array of composite components, take into account the
21376 size of the components to determine whether it is safe to expand the
21377 array into a purely positional representation.
21379 2005-06-14 Thomas Quinot <quinot@adacore.com>
21381 * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
21382 denoting a formal parameter into account.
21384 2005-06-14 Ed Schonberg <schonberg@adacore.com>
21386 * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
21387 the entry_call alternative of a conditional entry call, wrap the
21388 conditional entry call itself.
21390 2005-06-14 Nicolas Setton <setton@adacore.com>
21391 Ed Schonberg <schonberg@adacore.com>
21393 * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
21394 the "simple_choice" member in a variant record, in accordance with the
21395 description in the package spec: the information output for a constant
21396 should be "S number", not "SS number".
21397 (Get_Encoded_Name): Return at once if not generating code. Avoids name
21398 overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
21400 2005-06-14 Thomas Quinot <quinot@adacore.com>
21402 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
21403 RACW without any primitives, do not generate the if statement for
21404 dispatching by name in the PolyORB/DSA case, as it would be malformed
21405 (it would have an Elsif_Parts list that is not No_List, but with a
21408 2005-06-14 Robert Dewar <dewar@adacore.com>
21410 * exp_intr.adb, par-ch5.adb: Minor fix to error message text
21412 2005-06-14 Jose Ruiz <ruiz@adacore.com>
21414 * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
21415 can determine whether pragma Suppress_Exception_Locations is in effect.
21417 * utils2.c (build_call_raise): Do not pass the file name to the
21418 exception handler if pragma Suppress_Exception_Locations is in effect.
21419 (build_allocator): Add and process arg IGNORE_INIT_TYPE.
21421 2005-06-14 Emmanuel Briot <briot@adacore.com>
21423 * g-debpoo.adb (Deallocate, Dereference): Improve output.
21425 2005-06-14 Nicolas Roche <roche@adacore.com>
21427 * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
21429 (Next_Level): Fix minor bug in handling of ../dir case
21430 (Read): Add dir separator to Directory name so that "" is understood as
21433 2005-06-14 Pascal Obry <obry@adacore.com>
21435 * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
21436 releasing the items.
21438 2005-06-14 Vincent Celier <celier@adacore.com>
21439 Cyrille Comar <comar@adacore.com>
21441 * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
21442 with output file descriptor and with output file name.
21443 (Dup, Dup2): Now global procedures as they are used by two subprograms
21444 (Copy): Allocate the 200K buffer on the heap rather than on the stack.
21446 2005-06-14 Thomas Quinot <quinot@adacore.com>
21449 * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
21451 (Create_Selector): Bind listening socket used to create the signalling
21452 socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
21453 Set listen backlog to 1 to ensure that we detect socket theft by a
21454 failure of our own connect(2) call.
21455 (Check_Selector): Improve documentation of the selector mechanism.
21456 (Broadcast_Inet_Addr): New constant.
21458 2005-06-14 Gary Dismukes <dismukes@adacore.com>
21460 * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
21461 type which turns out to be an incomplete and incorrect fix.
21462 (Layout_Array_Type): Use Underlying_Type when checking whether the scope
21463 of the type is declared in a record (for determination of insertion
21465 (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
21466 a private type and ensure that the primary entity is used for the type
21467 of the newly created function's V formal by taking the Etype of the
21470 2005-06-14 Javier Miranda <miranda@adacore.com>
21471 Jose Ruiz <ruiz@adacore.com>
21472 Robert Dewar <dewar@adacore.com>
21473 Ed Schonberg <schonberg@adacore.com>
21475 * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
21476 that indicates if we are parsing a compilation unit found in a
21477 limited-with clause.
21478 It is use to avoid the circularity check.
21480 * par.ads, par.adb (Par): Addition of a new parameter to indicate if
21481 we are parsing a compilation unit found in a limited-with clause. This
21482 is use to avoid the circularity check.
21484 * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
21485 unit as a consequence of parsing a limited-with clause. This is used
21486 to avoid the circularity check.
21488 * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
21489 (Analyze_Context): Limited-with clauses are now allowed
21490 in more compilation units.
21491 (Analyze_Subunit_Context, Check_Parent): Protect the frontend
21492 againts previously reported critical errors in context clauses
21493 (Install_Limited_Withed_Unit): Code cleanup plus static detection
21494 of two further errors: renamed subprograms and renamed packages
21495 are not allowed in limited with clauses.
21496 (Install_Siblings): Do not install private_with_clauses on the package
21497 declaration for a non-private child unit.
21498 (Re_Install_Parents): When a parent of the subunit is reinstalled,
21499 reset visibility of child units properly.
21500 (Install_Withed_Unit): When a child unit appears in a with_clause of its
21501 parent, it is immediately visible.
21503 2005-06-14 Ed Schonberg <schonberg@adacore.com>
21504 Emmanuel Briot <briot@adacore.com>
21506 * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
21507 declared within an inlined body as referenced, to prevent spurious
21509 (Output_One_Ref): If an entity renames an array component, indicate in
21510 the ALI file that this aliases (renames) the array. Capture as well
21511 function renamings that rename predefined operations.
21512 Add information about generic parent for package and subprogram
21514 (Get_Type_Reference): For a subtype that is the renaming of an actual in
21515 an instantiation, use the first_subtype to ensure that we don't generate
21516 cross-reference information for internal types.
21517 For objects and parameters of a generic private type, retain the '*'
21518 indicator to distinguish such an entity from its type.
21520 * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
21521 to store information about instantiated entities.
21523 * ali.adb (Scan_ALI): Add support for parsing the reference to the
21526 * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
21527 (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
21530 2005-06-10 Doug Rupp <rupp@adacore.com>
21531 Arnaud Charlet <charlet@adacore.com>
21532 Olivier Hainque <hainque@adacore.com>
21533 Jose Ruiz <ruiz@adacore.com>
21535 * Make-lang.in: Add initialize.o when needed.
21536 Remove obsolete references to RT_FLAGS.
21537 Add missing dependencies for sdefault.o
21539 * initialize.c: New file.
21541 * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
21542 [VMS] cond_signal_table: Fix problem in declaration.
21543 [VMS] __gnat_error_handler: rewrite.
21544 Move all __gnat_initialize() routines to initialize.c
21545 Specialize the former "hpux" section to "hppa hpux", as this is what the
21546 section really is here for and we now have other hpux ports that need
21547 different contents.
21548 (__gnat_adjust_context_for_raise) i386-linux: First version of this
21549 function for this target. Adjust PC by one in the machine context. This
21550 adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
21551 it is more reliable to do that in the signal handler itself.
21552 (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
21553 flags, so that the handler is passed the context structure to adjust
21554 prior to the raise.
21555 (__gnat_error_handler) i386-linux: Adjust the signature to match what a
21556 SA_SIGINFO sigaction should look like. Call
21557 __gnat_adjust_context_for_raise before actually raising. Cleanup unused
21558 Machine_State_Operations stuff.
21559 Add conditional code so that the x86_64 is also supported.
21561 2005-06-14 Pascal Obry <obry@adacore.com>
21563 * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
21566 2005-06-14 Robert Dewar <dewar@adacore.com>
21568 * opt.ads, opt.adb: New flags for persistent_bss mode
21569 Add Ada_Version_Explicit, for implementation of AI-362
21570 Add Assertions_Enabled_Config and associated handling
21571 Needed since setting can be changed with Assertion_Policy pragma
21572 Add new flag Warn_On_Ada_2005_Compatibility
21574 * switch-c.adb: Recognize -gnatwy/Y
21575 Set Ada_Version_Explicit, for implementation of AI-362
21576 The -gnatg switch now includes -gnatyu
21578 * usage.adb: Add -gnatwy/Y
21579 Remove wrong asterisk on -gnatwX line
21580 Add line for -gnatyu switch
21582 2005-06-14 Vincent Celier <celier@adacore.com>
21584 * osint.adb (Add_Default_Search_Dirs): Put source and object
21585 directories of project files before directories coming from
21586 ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
21588 2005-06-14 Robert Dewar <dewar@adacore.com>
21591 * par-ch2.adb (Scan_Pragma_Argument): New procedure
21592 (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
21594 2005-06-14 Vincent Celier <celier@adacore.com>
21596 * prep.adb (Preprocess): Ignore error when scanning the first token of
21599 2005-06-14 Vincent Celier <celier@adacore.com>
21601 * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
21602 (Check_Stand_Alone_Library): If the specified reference symbol file does
21603 not exist, only issue a warning when the symbol policy is not
21604 Controlled. And, when symbol policy is Compliant, set the symbol
21605 policy to Autonomous.
21607 2005-06-14 Vincent Celier <celier@adacore.com>
21609 * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
21610 when the project file in a with clause is not the last one, that is the
21611 project file name is followed by a comma.
21612 * prj-pp.adb: (First_With_In_List): New Boolean global variable
21613 (Print): Issue list of project files separated by commas in with clauses
21614 according to the values returned by Is_Not_Last_In_List.
21615 * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
21616 (Set_Is_Not_Last_In_List): New procedure
21618 2005-06-14 Eric Botcazou <ebotcazou@adacore.com>
21620 * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
21622 2005-06-14 Robert Dewar <dewar@adacore.com>
21624 * scng.adb: Add call to new Check_EOF routine
21625 (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
21626 Add some comments regarding wide character handling
21628 * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
21630 * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
21632 * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
21633 characters are now considered graphic characters and hence yield false
21636 * nmake.adt: Modify header so that xnmake does not generate output
21637 files with multiple blank lines.
21639 * treeprs.adt: Remove a blank line so that output from xtreeprs does
21640 not have an extra blank line
21642 2005-06-14 Gary Dismukes <dismukes@adacore.com>
21644 * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
21645 expression when the component type is an anonymous access type to
21646 ensure that appropriate accessibility checks are done.
21648 * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
21649 expression of an assignment when the target object is of an anonymous
21650 access type. This ensures that required accessibility checks are done.
21651 (One_Bound): Move the check for type Universal_Integer to
21653 (Process_Bounds): Check whether the type of the preanalyzed range is
21654 Universal_Integer, and in that case set Typ to Integer_Type prior
21655 to setting the type of the original range and the calls to One_Bound.
21657 2005-06-14 Ed Schonberg <schonberg@adacore.com>
21659 * sem_case.adb (Expand_Others_Choice): Improve warning.
21661 2005-06-14 Ed Schonberg <schonberg@adacore.com>
21663 * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
21664 constraint of full view if present, when other type is discriminated.
21665 (Eval_Relational_Op): Recognize tests of pointer values against Null,
21666 when the pointer is known to be non-null, and emit appropriate warning.
21668 2005-06-14 Robert Dewar <dewar@adacore.com>
21669 Ed Schonberg <schonberg@adacore.com>
21672 * sem_prag.adb: Implement pragma Persistent_BSS
21673 Remove obsolete pragma Persistent_Data, Persistent_Object
21674 Set Ada_Version_Explicit, for implementation of AI-362
21675 Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
21676 Add processing for pragma Pure_05 and Preelaborate_05
21677 Add processing for Assertion_Policy pragma
21678 Add pragma identifiers for Assert
21679 (Analyze_Pragma, case Assert): Check number of arguments
21680 (Process_Inline): Additional guard against an illegal program, where the
21681 argument of the pragma is undefined, and warnings on redundant
21682 constructs are enabled.
21683 (Analyze_Pragma, case Obsolescent): Allow an optional second argument
21684 Ada_05 to this pragma, specifying that the pragma is only active in
21686 (Check_Arg_Order): New procedure
21687 Add appropriate calls to this procedure throughout
21688 Also throughout, check entity name before doing any other checks
21690 * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
21691 Remove obsolete pragma Persistent_Data, Persistent_Object
21692 Add entries for pragma Pure_05 and Preelaborate_05
21693 Add entries for Assertion_Policy pragma and associated names
21694 Add some names for pragma argument processing
21696 * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
21698 2005-06-14 Ed Schonberg <schonberg@adacore.com>
21700 * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
21701 appears within a negation (either from source or as a rewriting of
21702 inequality) adjust text of warning accordingly.
21704 2005-06-14 Thomas Quinot <quinot@adacore.com>
21706 * s-strxdr.adb: Follow AI95-00132
21708 2005-06-14 Arnaud Charlet <charlet@adacore.com>
21710 * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
21712 2005-06-14 Arnaud Charlet <charlet@adacore.com>
21713 Jose Ruiz <ruiz@adacore.com>
21715 * s-tposen.adb, s-tpobop.adb
21716 (Exceptional_Complete_Rendezvous): Save the occurrence and not only
21718 (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
21719 there is no violation of the Max_Entry_Queue_Length restriction (if it
21720 has been set); Program_Error is raised otherwise.
21721 (Requeue_Call): Before requeuing the task on the target entry queue we
21722 check that there is no violation of the Max_Entry_Queue_Length
21723 restriction (if it has been set); Program_Error is raised otherwise.
21725 2005-06-14 Robert Dewar <dewar@adacore.com>
21727 * styleg.adb: Fix several remaining problems in -gnatyu switch
21728 Blank line count not reset at start
21729 Scanning outside source buffer in some cases
21730 Confusing message for blanks at end of file
21731 Non-empty blank lines not recognized
21733 * nmake.adt: Modify header so that xnmake does not generate output
21734 files with multiple blank lines.
21736 * treeprs.adt: Remove a blank line so that output from xtreeprs does
21737 not have an extra blank line
21739 2005-06-14 Sergey Rybin <rybin@adacore.com>
21741 * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
21743 2005-06-14 Doug Rupp <rupp@adacore.com>
21744 Vincent Celier <celier@adacore.com>
21746 * vms_conv.ads, vms_conv.adb: Remove "Library" command.
21749 * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
21750 Remove "Library" command.
21751 Change keyword for style check -gnatyd from NOCRLF to
21753 Remove useless second style check keyword NONE
21754 Remove help documentation for inexistent style check keyword
21756 Add help documentation for style check keywords DOS_LINE_ENDINGS,
21757 UNNECESSARY_BLANK_LINES and XTRA_PARENS
21758 Add UNNECESSARY_BLANK_LINES for -gnatyu
21759 Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
21761 * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
21763 2005-06-14 Vincent Celier <celier@adacore.com>
21765 * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
21766 gprmake was invoked with -d.
21767 (Compile_Sources): If -d was used, output the "completed ..." message
21768 for each compilation.
21769 (Scan_Arg): Recognize new switch -d
21770 When -c and at least one main is specified, set
21771 Unique_Compile to True to guarantee that no other sources will be
21774 2005-06-14 Matthew Heaney <heaney@adacore.com>
21776 * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
21777 * a-swuwha.ads, a-swuwha.adb: New files
21779 * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
21780 * a-szuzha.ads, a-szuzha.adb: New files.
21782 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
21783 a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
21784 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
21785 a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
21786 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
21787 a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
21788 a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
21789 a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
21790 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
21791 a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
21794 2005-06-10 Eric Botcazou <ebotcazou@adacore.com>
21795 Olivier Hainque <hainque@adacore.com>
21796 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
21797 Pascal Obry <obry@adacore.com>
21799 * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
21801 * trans.c (call_to_gnu): Issue a warning for users of Starlet when
21802 making a temporary around a procedure call because of non-addressable
21804 (process_freeze_entity): If entity is a private type, capture size
21805 information that may have been computed for the full view.
21806 (tree_transform, case N_Allocator): If have initializing expression,
21807 check type for Has_Constrained_Partial_View and pass that to
21809 (tree_transform, case N_Return_Statement): Pass extra arg to
21812 * decl.c (annotate_value): Remove early return if -gnatR is not
21814 (gnat_to_gnu_field): Don't make a packable type for a component clause
21815 if the position is byte aligned, the field is aliased, and the clause
21816 size isn't a multiple of the packable alignment. It serves no useful
21817 purpose packing-wise and would be rejected later on.
21818 (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
21821 (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
21822 context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
21824 (create_concat_name): Idem.
21826 2005-06-10 Robert Dewar <dewar@adacore.com>
21827 Eric Botcazou <ebotcazou@adacore.com>
21828 Ben Brosgol <brosgol@adacore.com>
21829 Cyrille Comar <comar@adacore.com>
21830 Sergey Rybin <rybin@adacore.com>
21831 Pascal Obry <obry@adacore.com>
21833 * gnat_rm.texi: Add documentation for pragma Persistent_BSS
21834 Document second argument (Ada_05) of pragma Obsolescent
21835 Add note that call to subprogram marked with pragma Obsolescent
21836 is now considered to be a violation of program Restrictions
21837 (No_Obsolescent_Features).
21838 (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
21839 that only machine-dependent attributes are supported.
21842 Commented out menu lines and empty section for gnatclean examples
21844 Fix some over long lines
21845 Clarify and enhance documentation of ADA_PROJECT_PATH.
21846 Rework section 2.11.2(3) about linking with a non-GNU compiler.
21847 Mention new switch -fcallgraph-info.
21848 Mention new switch -fstack-usage.
21849 For gnatpp, replace '-notab' with '-N' and add this option to Index
21850 Corrected VMS example.
21851 VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
21853 Add documentation for -gnatyu switch (unnecessary blank lines)
21854 Document new switch -U for GNAT PRETTY and GNAT METRIC
21855 Add note about Stdcall being handled as C convention on non Windows OS.
21856 Remove some junk typo in description of gnatbind -S switch
21857 Remove reference to Extensions_Allowed pragma
21858 Document the new order of the directories to be searched (source and
21859 object directories of project files before directories in ADA_*_PATH
21860 environment variables.
21862 * g-trasym.ads: Document that IRIX is supported
21864 2005-06-10 Arnaud Charlet <charlet@adacore.com>
21866 * Makefile.in: Add initialize.o when needed.
21867 Adapt to new VMS package body Symbols and subunits
21868 No specialized version of a-sytaco is needed for VxWorks.
21870 * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
21871 * a-zchara.ads, a-widcha.ads: New files.
21873 * system-hpux-ia64.ads: New file.
21875 * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
21876 is imported from the VxWorks kernel.
21878 2005-06-14 Robert Dewar <dewar@adacore.com>
21880 * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
21881 fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
21882 a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
21883 s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
21884 a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
21885 g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
21886 i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
21887 namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
21888 sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
21889 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
21890 s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
21891 xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
21893 2005-06-14 Thomas Quinot <quinot@adacore.com>
21895 * xeinfo.adb: Fix typo in comment
21897 2005-06-14 Javier Miranda <miranda@adacore.com>
21899 * repinfo.ads: Fix typo in comment
21901 2005-06-14 Gary Dismukes <dismukes@adacore.com>
21903 * s-finimp.adb (Parent_Tag): Delete this imported function (function
21904 Parent_Tag is now in the visible part of Ada.Tags).
21905 (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
21906 using imported function.
21908 2005-06-14 Bernard Banner <banner@adacore.com>
21910 * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
21911 also apply for handling support for VxSim 653.
21913 2005-06-14 Eric Botcazou <ebotcazou@adacore.com>
21915 * xsnames.adb: Add automatic generation of snames.h.
21917 2005-06-14 Thomas Quinot <quinot@adacore.com>
21919 * gen-soccon.c: Add IP_MULTICAST_IF constant
21920 Minor reformatting and adjustments to prevent warnings.
21922 2005-06-14 Pascal Obry <obry@adacore.com>
21924 * seh_init.c: Do not include <sys/stat.h>. This is not needed.
21926 2005-06-03 Andrew Pinski <pinskia@physics.uc.edu>
21928 * trans.c (gnat_gimplify_expr): Call
21929 recompute_tree_invarant_for_addr_expr when we change
21930 the operand of the ADDR_EXPR.
21932 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21934 * misc.c: Don't include errors.h.
21936 2005-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21938 * raise.c (db): Add ATTRIBUTE_PRINTF_2.
21940 2005-05-29 Kazu Hirata <kazu@cs.umass.edu>
21942 * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
21944 * gnat_rm.texi, gnat_ugn.texi: Fix typos.
21946 2005-05-16 Nathanael Nerode <neroden@gcc.gnu.org>
21949 * Makefile.in: Make TGT_LIB behave correctly.
21951 2005-04-23 DJ Delorie <dj@redhat.com>
21953 * misc.c: Adjust warning() callers.
21955 2005-04-16 Laurent Guerby <laurent@guerby.net>
21958 * a-nudira.adb (Value): Check for valid string.
21959 * a-nuflra.adb (Value): Likewise.
21961 2005-04-11 Richard Sandiford <rsandifo@redhat.com>
21963 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
21965 2005-04-10 Kazu Hirata <kazu@cs.umass.edu>
21967 * adaint.c, init.c, tracebak.c: Fix comment typos.
21968 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
21970 2005-04-07 Laurent Guerby <laurent@guerby.net>
21971 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21973 * Makefile.in: Add make ifeq define for hppa linux tasking support.
21974 * system-hpux.ads: Define Signed_Zeros to be True.
21975 * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
21977 2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
21979 * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
21980 raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
21983 2005-03-30 Tom Tromey <tromey@redhat.com>
21985 * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
21987 2005-03-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
21989 * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
21991 2005-03-29 Robert Dewar <dewar@adacore.com>
21993 * sem_res.adb (Resolve_Real_Literal): Generate warning if static
21994 fixed-point expression has value that is not a multiple of the Small
21997 * opt.ads (Warn_On_Bad_Fixed_Value): New flag
21999 * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
22002 * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
22004 2005-03-29 Vincent Celier <celier@adacore.com>
22006 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
22007 (Build_Dynamic_Library.Version_String): Return the empty string when
22008 Lib_Version is empty or when the symbol policy is not Autonomous.
22010 * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
22011 a symbol is not in the reference symbol file, increase the Major ID
22012 and set the Minor ID to 0.
22013 Use gsmatch=lequal instead of gsmatch=equal
22015 2005-03-29 Doug Rupp <rupp@adacore.com>
22017 * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
22018 name and translate.
22020 2005-03-29 Javier Miranda <miranda@adacore.com>
22022 * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
22023 (Inherit_DT): The first formal has been redefined as a Tag.
22024 This allows us the removal of the subprogram Get_TSD.
22025 (TSD): Replace the call to Get_TSD by the actual code.
22027 * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
22028 (Make_DT): Upgrade the call to Inherit_TSD according to the
22029 new interface: the first formal is now a Tag.
22031 * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
22032 redefined as a Tag.
22033 This change allows us to remove the subprogram Get_TSD.
22034 (CPP_Get_TSD): Subprogram removed.
22035 (TSD): Replace the call to CPP_Get_TSD by the actual code.
22037 * rtsfind.ads: Remove support to call the run-time
22040 2005-03-29 Robert Dewar <dewar@adacore.com>
22042 * errutil.adb, errout.adb:
22043 Minor comment updates on Line_Terminator references
22045 * par-ch10.adb: Add ??? comment about line terminator
22047 * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
22048 (check dos line terminator).
22049 (Check_Line_Max_Length): New procedure, split off from the existing
22050 Check_Line_Terminator routine. Separating this out allows -gnatyf to
22051 be properly recognized.
22053 * styleg.adb: Add ??? comment for line terminator reference
22055 * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
22056 (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
22058 * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
22059 (check dos line terminator).
22060 (Check_Line_Max_Length): New procedure, split off from the existing
22061 Check_Line_Terminator routine. Separating this out allows -gnatyf to
22062 be properly recognized.
22064 * stylesw.ads, stylesw.adb:
22065 Add handling for new -gnatyd switch (check dos line terminator)
22067 * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
22068 Recognize -gnatwb/-gnatwB switches
22069 Include Warn_On_Bad_Fixed_Value for -gnatg
22072 Add line for new -gnatyd switch (check dos line terminator)
22074 * usage.adb: Add lines for -gnatwb/-gnatwB
22076 * vms_data.ads: Add entry for NOCRLF (-gnatyd)
22078 * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
22080 * gnat_ugn.texi: Fix overlong lines
22081 Document new -gnatyd switch
22082 Document new -gnatwb/-gnatwB switches
22084 2005-03-29 Ed Schonberg <schonberg@adacore.com>
22086 * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
22087 order to retrieve the component list of the type, before examining
22088 individual components.
22090 * sem_type.adb (Covers): Types are compatible if one is the base type
22091 of the other, even though their base types might differ when private
22092 views are involved.
22094 2005-03-29 Thomas Quinot <quinot@adacore.com>
22096 * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
22097 To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
22098 of using Set_Renaming_TSS. This ensures that the TSS bodies are not
22099 analyzed if expansion is disabled (which could otherwise cause spurious
22100 error messages if expansion has been disabled due to previous
22101 (unrelated) errors).
22103 * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
22104 is disabled, the entity denoted by the argument is the access type
22105 itself, not an underlying record type, so there is no need to go back
22106 to the Corresponding_Remote_Type.
22108 2005-03-29 Gary Dismukes <dismukes@adacore.com>
22109 Robert Dewar <dewar@adacore.com>
22111 * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
22112 expand a call to an instance of
22113 Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
22114 Constructor actual of the instance. A class-wide membership
22115 check is also generated, to ensure that the tag passed to the instance
22116 denotes a type in the class.
22117 (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
22118 of Name_Generic_Dispatching_Constructor.
22120 * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
22121 05 unit for AI-260-02).
22123 * a-tgdico.ads: New file.
22125 * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
22126 predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
22128 * snames.ads, snames.adb (Preset_Names): Add entry for
22129 Generic_Dispatching_Constructor.
22132 * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
22133 character type cases.
22134 (Analyze_Subprogram_Renaming): Add special handling for
22135 the case of renaming of stream attributes when the renaming denotes a
22136 generic formal subprogram association for an abstract formal subprogram.
22137 Check that the attribute is a primitive stream attribute (and not
22138 a class-wide stream attribute) and then rewrite the attribute name
22139 as the name of the appropriate compiler-generated stream primitive.
22141 2005-03-29 Robert Dewar <dewar@adacore.com>
22143 * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
22145 (Is_Possibly_Unaligned_Object): Correct typo that
22146 resulted in inaccurate result for unaligned scalars within records.
22148 2005-03-29 Ed Schonberg <schonberg@adacore.com>
22150 * freeze.adb (Freeze_Record_Type): If the type of the component is an
22151 itype whose parent is controlled and not yet frozen, do not create a
22152 freeze node for the itype if expansion is disabled.
22154 2005-03-29 Vincent Celier <celier@adacore.com>
22156 * make.adb (Gnatmake): Don't fail if the main project file is declared
22157 as having no Ada sources. Do not display message "no sources to
22158 compile" in quiet output.
22160 2005-03-29 Doug Rupp <rupp@adacore.com>
22162 * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
22165 2005-03-29 Robert Dewar <dewar@adacore.com>
22167 * par-ch12.adb (P_Generic): Give better msg for illegal private generic
22170 2005-03-29 Robert Dewar <dewar@adacore.com>
22172 * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
22173 missing TYPE Improve the error message generated when compiling a
22174 limited interface in Ada83 or Ada95 mode.
22176 2005-03-29 Robert Dewar <dewar@adacore.com>
22178 * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
22179 rather than proceed ahead using a junk attribute name.
22181 2005-03-29 Vincent Celier <celier@adacore.com>
22183 * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
22185 * prj-part.adb (Parse_Single_Project): Set the location of a project
22186 on its defining identifier, rather than on the reserved word "project".
22188 * prj-proc.adb (Expression): Adapt to the fact that default of external
22189 references may be string expressions, not always literal strings.
22190 (Recursive_Process): Set Display_Name equal to Name
22191 when Location is No_Location, that is when there is no actual file.
22192 Get the Display_Name of the project from the source, when it is not a
22194 (Process): Use the Display_Name in error messages
22196 * prj-strt.adb (External_Reference): Allow default to be string
22197 expressions, not only literal strings.
22199 2005-03-29 Vincent Celier <celier@adacore.com>
22201 * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
22202 file and the reference symbol file to be the same file.
22204 2005-03-29 Thomas Quinot <quinot@adacore.com>
22206 * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
22207 forbid conversion of a local access-to-subprogram type to a remote one.
22209 * sem_util.adb (Wrong_Type): For a record type that is the expanded
22210 equivalent type for a remote access-to-subprogram type, go back to the
22211 original RAS entity when displaying an error message, so the casing is
22212 the original source casing.
22214 2005-03-29 Robert Dewar <dewar@adacore.com>
22216 * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
22219 2005-03-29 Ed Schonberg <schonberg@adacore.com>
22221 * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
22222 subtype if code is being pre-analyzed, to prevent un-expanded
22223 references to protected formals, among others.
22224 (Analyze_Explicit_Dereference): If the overloaded prefix includes some
22225 interpretation that can be a call, include the result of the call as a
22226 possible interpretation of the dereference.
22228 * sem_ch5.adb (Process_Bounds): Determine type of range by
22229 pre-analyzing a copy of the original range, and then analyze the range
22230 with the expected type.
22232 * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
22233 with an overloaded prefix where not all interpretations yield an
22234 access to subprogram, do not rewrite node as a call.
22235 (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
22236 the node as a call once the context identifies the interpretation of
22237 the prefix whose call yields the context type.
22238 (Valid_Conversion): For the case of a conversion between
22239 local access-to-subprogram types, check subtype conformance using
22240 Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
22241 detailed error message.
22243 2005-03-29 Ed Schonberg <schonberg@adacore.com>
22245 * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
22246 indicator, indicate that the formal can never be null.
22247 (Process_Formals): If a formal has a non_null indicator, insert the
22248 resulting subtype immediately before the enclosing subprogram decl,
22249 and not at the beginning of the corresponding declarative part, to
22250 prevent access before elaboration (Ada2005).
22252 2005-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22255 * utils.c (finish_record_type): Use variable_size when setting sizes.
22257 2005-03-29 Robert Dewar <dewar@adacore.com>
22259 * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
22260 guarantee Unix style line terminators for the output files, even when
22261 running on windows.
22263 2005-03-29 Robert Dewar <dewar@adacore.com>
22265 * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
22266 buffer if an exception is raised.
22268 2005-03-29 Ed Falis <falis@adacore.com>
22270 * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
22273 2005-03-29 Robert Dewar <dewar@adacore.com>
22275 * sem_util.ads: Minor reformatting
22276 * gnat_rm.texi: Minor editing.
22278 2005-03-29 Eric Botcazou <ebotcazou@adacore.com>
22280 * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
22281 * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
22283 2005-03-24 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
22285 * adaint.c (__gnat_portable_spawn): Adjust cast.
22287 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
22289 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
22291 2005-03-17 Pascal Obry <obry@adacore.com>
22293 * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
22296 * expect.c (__gnat_waitpid): Moved here from adaint.c.
22297 Reimplement under Win32 using Win32 API.
22299 (__gnat_kill) [Win32]: Properly close the process handle before leaving
22302 2005-03-17 Eric Botcazou <ebotcazou@adacore.com>
22304 * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
22305 (DECL_RENAMED_OBJECT): New accessor macro.
22306 (SET_DECL_RENAMED_OBJECT): New setter macro.
22308 * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
22309 object in all cases. Attach the renamed object to the VAR_DECL.
22310 (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
22311 field is not prescribed.
22313 * misc.c (gnat_handle_option): Handle -gnatO separately.
22314 (gnat_print_decl) <VAR_DECL>: New case.
22315 Print the DECL_RENAMED_OBJECT node.
22317 * lang.opt: Declare separate -gnatO option.
22319 * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
22320 pointer, replace it with the renamed object.
22321 <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
22322 pointer type if the source is not a fat pointer type whose underlying
22323 array has the same non-zero alias set as that of the destination array.
22325 2005-03-17 Javier Miranda <miranda@adacore.com>
22327 * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
22328 (Get_Inheritance_Depth): Removed.
22329 (Set_Inheritance_Depth): Removed.
22331 * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
22332 subprogram Get_Expanded_Name because it is not referenced by the
22335 * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
22336 (CPP_Get_Inheritance_Depth): Removed.
22337 (CPP_Set_Inheritance_Depth): Removed.
22339 * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
22341 2005-03-17 Robert Dewar <dewar@adacore.com>
22343 * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
22344 3, since we now expect GCC 3 to do all the work.
22346 2005-03-17 Javier Miranda <miranda@adacore.com>
22348 * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
22349 of one barrier to avoid wrong usage of this attribute.
22351 * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
22352 First_Private_Entity.
22354 * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
22355 the subprogram against wrong usage.
22356 Adapt the code to traverse the entities in the
22357 scope of a record_type because in addition to its usage regarding
22358 packages, this subprogram is also called by Expand_N_Freeze_Entity
22359 to install the visible declarations of the enclosing scope of a
22360 record_type_with_private to establish the proper visibility before
22361 freezing the entity and related subprograms.
22363 2005-03-17 Ed Schonberg <schonberg@adacore.com>
22365 * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
22368 2005-03-17 Thomas Quinot <quinot@adacore.com>
22370 * exp_ch3.adb (Check_Attr): New subprogram.
22371 (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
22372 into a new Check_Attr subprogram, in order to provide a more
22373 explanatory error message (including the name of the missing attribute).
22374 (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
22375 subprogram determines whether a default implementation exists for a
22376 given stream attribute.
22377 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
22378 Determine whether to generate a default implementation for each stream
22379 attribute separately, as this depends on the specific attribute.
22381 * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
22382 limited extension where a stream attribute is missing for a limited
22383 component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
22384 generate a bogus reference to the missing attribute to prevent
22385 cascaded errors. Instead, generate a null statement.
22387 * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
22388 available for a limited type if it has been specified for an ancestor
22391 2005-03-17 Ed Schonberg <schonberg@adacore.com>
22393 * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
22394 entity is an operator.
22396 2005-03-17 Thomas Quinot <quinot@adacore.com>
22398 * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
22399 spec, to make this predicate available to other units.
22401 * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
22404 * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
22405 when no distribution runtime library is available.
22407 * sem_res.adb, sem_dist.adb: Disable expansion of remote
22408 access-to-subprogram types when no distribution runtime library is
22410 (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
22411 predicate available to other units.
22413 * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
22414 spec, to make this predicate available to other units.
22416 2005-03-17 Vincent Celier <celier@adacore.com>
22418 * make.adb (Insert_Project_Sources): Make sure the Q is always
22421 * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
22422 the default for the tree, not the global default naming.
22424 * prj-proc.adb (Recursive_Process): No need to put the default naming
22425 in the project data, it's already there.
22427 2005-03-17 Doug Rupp <rupp@adacore.com>
22429 * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
22431 * 5xcrtl.ads: Renamed to...
22432 * s-crtl-vms64.ads: ...this new file
22434 2005-03-17 Robert Dewar <dewar@adacore.com>
22437 * namet.adb (Copy_One_Character): Set proper wide character encoding
22438 for upper half character if we have upper half encoding.
22440 2005-03-17 Robert Dewar <dewar@adacore.com>
22442 * par.adb (Par): Improved msg for attempt to recompile predefined unit
22444 2005-03-17 Thomas Quinot <quinot@adacore.com>
22446 * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
22447 tagged limited type, the TSS is a newly built renaming declaration:
22448 insert it using Set_TSS, not Copy_TSS.
22450 2005-03-17 Javier Miranda <miranda@adacore.com>
22452 * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
22453 Try_Object_Operation): Analyze the object that is accessible
22454 through the prefix of the subprogram call before we apply
22455 the transformation of the object-operation notation.
22457 2005-03-17 Jose Ruiz <ruiz@adacore.com>
22459 * s-taprob.adb (Initialize_Protection): Initialize the protected
22460 object's owner to Null_Task.
22461 (Lock): If pragma Detect_Blocking is in effect and the caller of this
22462 procedure is already the protected object's owner then Program_Error
22463 is raised. In addition the protected object's owner is updated.
22464 (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
22465 of this procedure is already the protected object's owner then
22466 Program_Error is raised.
22467 In addition the protected object's owner is updated.
22468 (Unlock): Remove the ownership of the protected object.
22470 * s-taprob.ads (Protection): Add the field Owner, used to store the
22471 protected object's owner.
22472 This component is needed for detecting one type of potentially blocking
22473 operations (external calls on a protected subprogram with the same
22474 target object as that of the protected action). Document the rest of
22477 * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
22478 Initialize the protected object's owner to Null_Task.
22479 (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
22480 caller of this procedure is already the protected object's owner then
22481 Program_Error is raised.
22482 Do not raise Program_Error when this procedure is called from a
22484 (Unlock_Entries): Remove the ownership of the protected object.
22485 (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
22486 of this procedure is already the protected object's owner then
22487 Program_Error is raised.
22488 Do not raise Program_Error when this procedure is called from
22489 a protected action.
22491 * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
22492 used to store the protected object's owner.
22494 * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
22495 effect and this procedure (a potentially blocking operation) is called
22496 from whithin a protected action, Program_Error is raised.
22497 (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
22498 and this procedure (a potentially blocking operation) is called from
22499 whithin a protected action, Program_Error is raised.
22501 2005-03-17 Vincent Celier <celier@adacore.com>
22502 Nicolas Setton <setton@adacore.com>
22504 * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
22505 switch, not supported by the linker on Darwin. Add '_' before
22506 <library>init, as this character is added unconditionally by the
22508 (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
22509 correct one ".dylib". This fixes detection of the archive files when
22510 building library projects.
22512 2005-03-17 Vincent Celier <celier@adacore.com>
22514 * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
22515 -gnat83, -gnat95 and -gnat05.
22517 2005-03-17 Vasiliy Fofanov <fofanov@adacore.com>
22519 * gnat_ugn.texi: Document gnatmem restriction
22521 2005-03-17 Thomas Quinot <quinot@adacore.com>
22523 * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
22526 2005-03-17 Robert Dewar <dewar@adacore.com>
22528 * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
22529 a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
22530 s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
22532 * casing.adb: Comment improvements
22534 2005-03-17 Pascal Obry <obry@adacore.com>
22536 * g-expect.adb: Minor reformatting.
22538 2005-03-15 Zack Weinberg <zack@codesourcery.com>
22540 * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
22541 (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
22544 2005-03-15 Vincent Celier <celier@adacore.com>
22546 * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
22547 Add new parameter In_Tree to specify the project tree: needed
22548 by the project manager. Adapt to changes in project manager
22549 using new parameter In_Tree.
22551 2005-03-15 Jakub Jelinek <jakub@redhat.com>
22553 * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
22554 ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
22555 ada/bldtools to avoid make -jN failures.
22557 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
22559 * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
22560 to NULL_TREE on entry.
22562 2005-03-15 Robert Dewar <dewar@adacore.com>
22564 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
22565 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
22566 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
22567 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
22568 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
22569 system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
22570 system-interix.ads, system-solaris-sparc.ads,
22571 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
22572 system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
22573 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
22574 system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
22575 system-linux-s390.ads, system-linux-s390x.ads: Add line defining
22576 Compiler_System_Version to be False.
22578 * opt.ads: Add new flag Opt.Address_Is_Private
22580 * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
22581 Add new parameter Compiler_System_Version to avoid checking for
22582 completeness of parameters when compiler is compiling itself.
22583 Allows old versions of GNAT to be compiled with new compiler.
22585 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
22587 * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
22588 (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
22590 (Stack_Base_Available): New flag.
22591 (Get_Page_Size): New overloaded functions imported from C.
22592 (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
22593 PROT_ON, PROT_OFF): New constants.
22594 (mprotect): New function imported from C.
22595 (pthread_teb_t): New record type.
22597 * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
22598 (Create_Task): Account for the Yellow Zone and the guard page.
22600 2005-03-15 Vincent Celier <celier@adacore.com>
22602 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
22603 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
22604 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
22605 mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
22606 Library_File_Name_For): Add new parameter In_Tree
22607 to specify the project tree: needed by the project manager.
22608 Adapt to changes in project manager using new parameter In_Tree.
22609 Remove local imports, use functions in System.CRTL.
22611 * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
22612 to use the project manager.
22614 * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
22615 In_Tree to designate the project tree. Adapt to changes in the project
22616 manager, using In_Tree.
22618 * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
22619 Copy_Interface_Sources): Add new parameter In_Tree to specify the
22620 project tree: needed by the project manager.
22621 (Build_Library): Check that Arg'Length >= 6 before checking if it
22622 contains "--RTS=...".
22624 * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
22625 Library_File_Name_For): Add new parameter In_Tree to specify the
22626 project tree: needed by the project manager.
22628 * prj.ads, prj.adb: Major modifications to allow several project trees
22629 in memory at the same time.
22630 Change tables to dynamic tables and hash tables to dynamic hash
22631 tables. Move tables and hash tables from Prj.Com (in the visible part)
22632 and Prj.Env (in the private part). Move some constants from the visible
22633 part to the private part. Make other constants deferred.
22634 (Project_Empty): Make it a variable, not a function
22635 (Empty_Project): Add parameter Tree. Returns the data with the default
22636 naming data of the project tree Tree.
22637 (Initialize): After updating Std_Naming_Data, copy its value to the
22638 component Naming of Project Empty.
22639 (Register_Default_Naming_Scheme): Use and update the default naming
22640 component of the project tree, instead of the global variable
22642 (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
22643 Tree is not defaulted, return the default naming data of the Tree.
22644 (Initial_Buffer_Size): Constant moved from private part
22645 (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
22646 variables initialized in procedure Initialize.
22647 (Add_To_Buffer): Add two in out parameters to replace global variables
22648 Buffer and Buffer_Last.
22649 (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
22651 Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
22653 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
22654 for the project tree.
22655 (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
22656 constant at the beginning of the package spec, so that they cane be used
22657 in subprograms before their full declarations.
22658 (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
22659 (Empty_Project): Add parameter of type Project_Node_Ref
22660 (Private_Project_Tree_Data): Add component Default_Naming of type
22662 (Buffer, Buffer_Last): remove global variables
22663 (Add_To_Buffer): Add two in out parameters to replace global variables
22664 Buffer and Buffer_Last.
22665 (Current_Packages_To_Check): Remove global variable
22666 (Empty_Name): Move to private part
22667 (No-Symbols): Make it a constant
22668 (Private_Project_Tree_Data): New type for the private part of the
22670 (Project_Tree_Data): New type for the data of a project tree
22671 (Project_Tree_Ref): New type to designate a project tree
22672 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
22673 for the project tree.
22675 * prj-attr.ads: Add with Table; needed, as package Prj no longer
22676 imports package Table.
22678 * prj-com.adb: Remove empty, no longer needed body
22680 * prj-com.ads: Move most of the content of this package to package Prj.
22682 * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
22683 designate the project node tree and Packages_To_Check to replace
22684 global variable Current_Packages_To_Check.
22685 Add new parameters In_Tree and Packages_To_Check to local subprograms,
22686 when needed. Adapt to changes in project manager with project node tree
22689 * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
22690 project tree to most subprograms. Move tables and hash tables to
22691 private part of package Prj.
22692 Adapt to changes in project manager using project tree In_Tree.
22694 * prj-makr.adb (Tree): New constant to designate the project node tree
22695 Adapt to change in project manager using project node tree Tree
22697 * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
22698 display the Library_Src_Dir and the Library_Dir.
22699 Add new parameter In_Tree to designate the project node tree to most
22700 subprograms. Adapt to changes in the project manager, using project tree
22702 (Check_Naming_Scheme): Do not alter the casing on platforms where
22703 the casing of file names is not significant.
22704 (Check): Add new parameter In_Tree to designate the
22706 * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
22707 designate the project tree.
22708 Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
22710 * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
22711 to replace those that were in the private part of package Prj.
22712 Add new parameter In__Tree to designate the project node tree to most
22713 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
22714 (Post_Parse_Context_Clause): When specifying the project node of a with
22715 clause, indicate that it is a limited with only if there is "limited"
22716 in the with clause, not necessarily when In_Limited is True.
22717 (Parse): Add new parameter In_Tree to designate the project node tree
22719 * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
22720 designate the project node tree. Adapt to change in Prj.Tree with
22721 project node tree In_Tree.
22723 * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
22724 tree In_Tree in the call to function Empty_Process to give its initial
22725 value to the project data Processed_Data.
22726 Add new parameters In_Tree to designate the project tree and
22727 From_Project_Node_Tree to designate the project node tree to several
22728 subprograms. Adapt to change in project manager with project tree
22729 In_Tree and project node tree From_Project_Node_Tree.
22731 * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
22732 to replace those that were in the private part of package Prj.
22733 Add new parameter In_Tree to designate the project node tree to most
22734 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
22736 * prj-tree.ads, prj-tree.adb: Add new parameter of type
22737 Project_Node_Tree_Ref to most subprograms.
22738 Use this new parameter to store project nodes in the designated project
22740 (Project_Node_Tree_Ref): New type to designate a project node tree
22741 (Tree_Private_Part): Change table to dynamic table and hash tables to
22742 dynamic hash tables.
22744 * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
22745 the project tree to most subprograms. Adapt to changes in project
22746 manager using project tree In_Tree.
22748 * makegpr.adb (Project_Tree): New constant needed to use project
22751 2005-03-15 Olivier Hainque <hainque@adacore.com>
22753 * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
22754 for sigactions with SA_SIGINFO set. Call
22755 __gnat_adjust_context_for_raise before raising, to perform the
22756 potentially required adjustments to the machine context for the GCC
22759 * raise.h (__gnat_adjust_context_for_raise): New prototype.
22761 * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
22762 Adjust PC by one in the provided machine context.
22763 (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
22764 so that the handler is passed the context structure to adjust prior to
22766 (__gnat_error_handler) HPUX: Adjust the signature to match what an
22767 SA_SIGINFO sigaction should look like. Call
22768 __gnat_adjust_context_for_raise before actually raising.
22769 (__gnat_adjust_context_for_raise): Default noop to help PC
22770 adjustments before raise from signal handlers.
22771 (__gnat_error_handler): Indirectly call a predicate function to
22772 determine if a condition should be resignaled or not.
22773 (__gnat_set_resignal_predicate): User interface to modify the predicate.
22774 (__gnat_default_resignal_p): Default GNAT predicate.
22776 2005-03-15 Doug Rupp <rupp@adacore.com>
22778 * adaint.c: Prefix #include of VMS system header files with vms/
22779 [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
22780 Do not define a dummy function "convert_addresses" under Darwin,
22783 * tb-alvms.c, expect.c: Prefix #include of VMS system header files
22786 2005-03-15 Nicolas Setton <setton@adacore.com>
22788 * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
22791 2005-03-15 Robert Dewar <dewar@adacore.com>
22793 * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
22796 * a-retide.ads: Minor comment changes
22798 2005-03-15 Robert Dewar <dewar@adacore.com>
22800 * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
22801 a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
22802 Realloc_For_Chunk to private part of package.
22803 New subprograms for AI-301
22805 * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
22806 Get_Line procedure.
22807 Avoid unnecessary use of Get/Set_Wide_String
22809 2005-03-15 Robert Dewar <dewar@adacore.com>
22812 * a-stunau.ads, a-stunau.adb:
22813 Change interface to allow efficient (and correct) implementation
22814 The previous changes to allow extra space in unbounded strings had
22815 left this interface a bit broken.
22817 * a-suteio.adb: Avoid unnecessary use of Get/Set_String
22819 * g-spipat.ads, g-spipat.adb: New interface for Get_String
22820 Minor reformatting (function specs)
22822 * g-spitbo.adb: New interface for Get_String
22824 * g-spitbo.ads: Minor reformatting
22826 * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
22828 * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
22830 2005-03-15 Javier Miranda <miranda@adacore.com>
22831 Robert Dewar <dewar@adacore.com>
22832 Thomas Quinot <quinot@adacore.com>
22833 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22835 * atree.ads, atree.adb: Add support for Elist24 field
22837 * atree.h: Fix wrong definition of Field27
22838 Add support for Elist16 field
22839 Add support for Elist24 field
22841 * einfo.ads, einfo.adb (Abstract_Interfaces,
22842 Set_Abstract_Interfaces): New subprograms.
22843 (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
22845 (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
22846 entities rather than a single node.
22847 (Is_Interface, Set_Is_Interface): New subprogram
22848 (First_Tag_Component): New syntesized attribute
22849 (Next_Tag_Component): New synthesized attribute
22850 (Write_Entity_Flags): Upgraded to write Is_Interface
22851 (Write_Field24_Name): Upgraded to write Abstract_Interfaces
22852 (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
22853 (Task_Body_Procedure): New subprogram to read this attribute.
22854 (Set_Task_Body_Procedure): New subprogram to set this attribute.
22855 (Has_Controlled_Component): Now applies to all entities.
22856 This is only a documentation change, since it always worked to apply
22857 this to other than composite types (yielding false), but now this is
22859 Update documentation on Must_Be_Byte_Aligned for new spec
22861 * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
22862 exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
22863 uses of the Access_Disp_Table attribute to reference the first dispatch
22864 table associated with a tagged type. As
22865 part of the implementation of abstract interface types,
22866 Access_Disp_Table has been redefined to contain a list of dispatch
22867 tables (rather than a single dispatch table).
22868 Similarly, upgrade all the references to Tag_Component by the
22869 new attribute First_Tag_Component.
22870 (Find_Inherited_TSS): Moved to exp_tss.
22871 Clean up test in Expand_N_Object_Declaration for cases
22872 where we need to do a separate assignment of the initial value.
22873 (Expand_N_Object_Declaration): If the expression in the
22874 declaration of a tagged type is an aggregate, no need to generate an
22875 additional tag assignment.
22876 (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
22878 Bit packed array ops are only called if operands are known to be
22880 (Component_Equality): When returning an N_Raise_Program_Error statement,
22881 ensure that its Etype is set to Empty to avoid confusing GIGI (which
22882 expects that only expressions have a bona fide type).
22883 (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
22884 determine the amount of data to be copied.
22886 * par.adb (P_Interface_Type_Definition): New subprogram that parses the
22887 new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
22888 INTERFACE_TYPE_DEFINITION ::=
22889 [limited | task | protected | synchronized] interface
22890 [AND interface_list]
22892 * par-ch3.adb (P_Type_Declaration): Modified to give support to
22894 (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
22896 (P_Interface_Type_Definition): New subprogram that parses the new
22897 syntax rule of Ada 2005 interfaces
22898 (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
22899 messages by the correct RENAMES (quotes removed).
22901 * sem_prag.adb: Upgrade all the references to Tag_Component by the new
22902 attribute First_Tag_Component.
22904 * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
22905 (Interface_List, Set_Interface_List): New subprograms.
22906 (Interface_Present, Set_Interface_Present): New subprograms.
22907 (Limited_Present, Set_Limited_Present): Available also in derived
22908 type definition nodes.
22909 (Protected_Present, Set_Protected_Present): Available also in
22910 record type definition and
22911 derived type definition nodes.
22912 (Synchronized_Present, Set_Synchronized_Present): New subprograms.
22913 (Task_Present, Set_Task_Present): New subprogram.
22914 (Task_Body_Procedure): Removed.
22915 (Set_Task_Body_Procedure): Removed.
22916 These subprogram have been removed because the attribute
22917 Task_Body_Procedure has been moved to the corresponding task type
22918 or task subtype entity to leave a field free to store the list
22919 of interfaces implemented by a task (for AI-345)
22920 Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
22921 (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
22922 expression flag Do_Range_Check
22923 (Exception_Junk): Change to Flag7 to accomodate above change
22924 (Box_Present, Default_Name, Specification, Set_Box_Present,
22925 Set_Default_Name, Set_Specification): Expand the expression
22926 "X in N_Formal_Subprogram_Declaration" into the corresponding
22927 two comparisons. Required to use the csinfo tool.
22929 * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
22930 "with string" given.
22932 * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
22935 * par-ch11.adb (P_Raise_Statement): Recognize with string expression
22938 * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
22939 attribute Task_Body_Procedure rather than the old semantic field that
22940 was available in the task_type_declaration node.
22942 * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
22943 interface type definitions.
22944 (P_Formal_Derived_Type_Definition): Modified to handle the list of
22947 * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
22948 task type declaration.
22949 (P_Protected): Modified to handle the list of interfaces in a
22950 protected type declaration.
22952 2005-03-15 Doug Rupp <rupp@adacore.com>
22953 Vincent Celier <celier@adacore.com>
22955 * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
22956 (Gen_Output_File_C): Likewise.
22957 (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
22959 2005-03-15 Thomas Quinot <quinot@adacore.com>
22961 * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
22962 is an N_Raise_Constraint_Error node, create a new copy of it without
22963 going through a call to Duplicate_Subexpr.
22965 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
22966 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22967 Nicolas Setton <setton@adacore.com>
22968 Ed Schonberg <schonberg@adacore.com>
22974 * decl.c (gnat_to_gnu_field): Reject aliased components with a
22975 representation clause that prescribes a size not equal to the rounded
22976 size of their types.
22977 (gnat_to_gnu_entity, case E_Component): Always look at
22978 Original_Record_Component if Present and not the entity.
22979 (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
22980 of tagged extension types by not making field for components that are
22982 (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
22983 (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
22984 expression to the type of the object when the object is constant.
22985 Reverse defer_debug_incomplete_list before traversing it, so that trees
22986 are processed in the order at which they were added to the list. This
22987 order is important when using the stabs debug format.
22988 If we are deferring the output of debug information, also defer this
22989 output for a function return type.
22990 When adding fields to a record, prevent emitting debug information
22991 for incomplete records, emit the information only when the record is
22993 (components_to_record): New parameter defer_debug.
22994 (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
22995 (gnat_to_gnu_field_decl): New function.
22996 (substitution_list, annotate_rep): Call it.
22997 (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
22998 (gnat_to_gnu_entity, case E_Record_Type): Likewise.
22999 No longer update discriminants to not be a COMPONENT_REF.
23000 (copy_alias_set): Strip padding from input type; also handle
23001 unconstrained arrays properly.
23003 * gigi.h (write_record_type_debug_info): New function.
23004 Convert to use ANSI-style prototypes. Remove unused
23005 declarations for emit_stack_check, elab_all_gnat and
23006 set_second_error_entity.
23007 (gnat_to_gnu_field_decl): New decl.
23009 * utils.c (write_record_type_debug_info): New function.
23010 (finish_record_type): Delegate generation of debug information to
23011 write_record_type_debug_info.
23012 (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
23013 (update_pointer_to): Fix pasto.
23014 (convert) <UNION_TYPE>: Accept slight type variations when
23015 converting to an unchecked union type.
23017 * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
23018 replace the N_Freeze_Entity with a null statement.
23020 * freeze.adb (Freeze_Expression): If the freeze nodes are generated
23021 within a constrained subcomponent of an enclosing record, place the
23022 freeze nodes in the scope stack entry for the enclosing record.
23023 (Undelay_Type): New Subprogram.
23024 (Set_Small_Size): Pass T, the type to modify; all callers changed.
23025 (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
23026 within records; allow them to have freeze nodes if their base types
23029 * exp_util.adb (Remove_Side_Effects): Properly test for
23030 Expansion_Delayed and handle case when it's inside an
23031 N_Qualified_Expression.
23033 * sem_ch3.adb (Derived_Type_Declaration): New predicate
23034 Comes_From_Generic, to recognize accurately that the parent type in a
23035 derived type declaration can be traced back to a formal type, because
23036 it is one or is derived from one, or because its completion is derived
23038 (Constrain_Component_Type): If component comes from source and has no
23039 explicit constraint, no need to constrain in in a subtype of the
23041 (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
23042 Minor change to propagate Is_Ada_2005 flag
23044 * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
23045 Expansion_Delayed is False.
23046 (assoc_to_constructor): Ignore fields that have a
23047 Corresponding_Discriminant.
23048 (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
23049 function returns "by target", dereference the target pointer using the
23050 type of the actual return value.
23051 <all>: Be prepared for a null gnu_result.
23052 (processed_inline_subprograms): Check flag_really_no_inline
23053 instead of flag_no_inline.
23054 (set_second_error_entity): Remove unused function.
23055 (gnat_to_gnu, case N_Selected_Component): Call
23056 gnat_to_gnu_field_decl.
23057 (assoc_to_constructor): Likewise.
23059 2005-03-15 Robert Dewar <dewar@adacore.com>
23060 Ed Schonberg <schonberg@adacore.com>
23061 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
23063 * exp_pakd.adb (Create_Packed_Array_Type): Do not set
23064 Must_Be_Byte_Aligned for cases where we do not need to use a
23065 System.Pack_nn unit.
23067 * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
23069 Needed now that we do some processing for IN parameters as well. This
23070 may well fix some unrelated errors.
23071 (Expand_Call): Handle case of unaligned objects (in particular those
23072 that come from packed arrays).
23073 (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
23074 renamed entity is an inherited operation, re-expand the call using the
23075 original operation, which is the one to call.
23076 Detect attempt to inline parameterless recursive subprogram.
23077 (Represented_As_Scalar): Fix to work properly with private types
23078 (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
23079 accurate estimate. Yields True in far fewer cases than before,
23080 improving the quality of code that depends on this test.
23082 * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
23083 over both visible and private declarations to remove them from tree,
23084 and mark subprograms declared in package as eliminated, to prevent
23085 spurious use in subsequent compilation of generic units in the context.
23087 * exp_util.ads: Minor cleanup in variable names
23089 * sem_eval.ads, sem_eval.adb: Minor reformatting
23090 (Compile_Time_Known_Bounds): New function
23092 2005-03-15 Ed Schonberg <schonberg@adacore.com>
23094 * exp_ch7.adb (Convert_View): Use base types of underlying types when
23095 determining whether an unchecked conversion is needed for the argument
23096 of an initialization call.
23098 2005-03-15 Ed Schonberg <schonberg@adacore.com>
23100 * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
23101 that appears in the instantiation rather than the internal subtype
23102 generated in the wrapper package, to avoid anomalies in gigi when the
23103 target is derived from a private type whose full view is an access type.
23105 2005-03-15 Robert Dewar <dewar@adacore.com>
23107 * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
23109 Add documentation to replace the use of this flag
23110 Fix kludge for Maximum_Alignment on x86 so that it does not apply to
23113 2005-03-15 Thomas Quinot <quinot@adacore.com>
23115 * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
23116 here from exp_attr so it can be shared between exp_attr and exp_dist.
23117 (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
23118 all TSS names, not a subset thereof, and the previous name introduced
23119 an unnecessarily confusion that a distinction might exist between
23120 "OK" TSS names and some "not OK" TSS names.
23122 2005-03-15 Doug Rupp <rupp@adacore.com>
23124 * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
23127 2005-03-15 Pascal Obry <obry@adacore.com>
23128 Eric Botcazou <ebotcazou@adacore.com>
23132 * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
23133 when IN_RTS. This is to work around a bootstrap path problem.
23135 * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
23136 table and pass it to __gnat_install_SEH_handler().
23137 (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
23139 * lang.opt: Fix specification of -fRTS=.
23141 2005-03-15 Doug Rupp <rupp@adacore.com>
23142 Bernard Banner <banner@adacore.com>
23143 Vincent Celier <celier@adacore.com>
23144 Arnaud Charlet <charlet@adacore.com>
23147 This change works fine when gnatlib is built from the gcc directory,
23148 but does not work when using the libada Makefile, since GCC_FOR_TARGET
23149 is not passed to ada/Makefile.in, so more work is needed by a
23150 Makefile/configure expert.
23152 * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
23153 set GMEM_LIB on ia64 linux to add optional support for gnatmem.
23154 Setup gnatlink switch -M for x86_64 linux, as it is already setup
23156 (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
23157 Run ranlib on libgccprefix.a
23158 Define PREFIX_OBJS for Darwin, to build libgccprefix.
23159 (ADA_INCLUDE_SRCS): Split Ada packages.
23161 2005-03-15 Robert Dewar <dewar@adacore.com>
23163 * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
23165 * impunit.adb: Add GNAT.UTF_32
23167 * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
23169 * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
23170 now uses GNAT.UTF_32).
23172 * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
23173 capabilities for categorizing characters using Unicode categories
23175 2005-03-15 Ed Schonberg <schonberg@adacore.com>
23177 * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
23178 instantiation that has been rewritten as a package body, retrieve spec
23179 to generate proper name for implicit_with_clause.
23180 (Install_Parents): Recognize a parent that is an instantiation but has
23181 been rewritten as a package declaration during analysis.
23183 2005-03-15 Javier Miranda <miranda@adacore.com>
23184 Ed Schonberg <schonberg@adacore.com>
23186 * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
23187 parameter reported some error we immediately return. This improves the
23188 behaviour of the frontend in case of errors.
23189 (Install_Parent, Remove_Parent): Introduce new flag
23190 Parent_Unit_Visible, to preserve the proper visibility of the ultimate
23191 ancestor of a generic child unit, when the child is being instantiated.
23192 (Inline_Instance_Body): If we are compiling the private
23193 part or the body of a child unit, restore the proper visibility of the
23194 parents after compiling the instance body.
23196 2005-03-15 Ed Schonberg <schonberg@adacore.com>
23197 Javier Miranda <miranda@adacore.com>
23200 * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
23201 of a private type, in which case it is underlying_type that denotes
23202 the proper task. Also modified to use the new entity attribute
23203 that is directly available in the task type and task subtype entities
23204 (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
23205 arrays when other dimensions than the first are constrained by
23206 discriminants of an enclosing record.
23207 (Insert_Explicit_Dereference): If the prefix is an indexed component or
23208 a combination of indexed and selected components, find ultimate entity
23209 and generate the appropriate reference for it, to suppress spurious
23211 (Note_Possible_Modification): If an entity name has no entity, return.
23212 (Is_Variable): A function call never denotes a variable.
23213 (Requires_Transient_Scope): For record types, recurse only on
23214 components, not on internal subtypes that may have been generated for
23215 constrained components.
23217 2005-03-15 Ed Schonberg <schonberg@adacore.com>
23219 * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
23220 Eliminated as candidates for resolution. Both efficient, and avoids
23221 anomalies with operators declared in deleted code.
23222 (Process_Implicit_Dereference_Prefix): Use this procedure whenever
23223 expansion is disabled (as when compiling a generic) to prevent spurious
23224 warnings on prefixes of selected components.
23226 2005-03-15 Ed Schonberg <schonberg@adacore.com>
23228 * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
23229 attached to a list before checking whether it appears in the private
23230 declarations of the current package.
23231 (Make_Inequality_Operator): Insert declaration in proper declarative
23232 list rather than just setting the Parent field, so that
23233 Is_Private_Declaration can handle it properly.
23235 2005-03-15 Ed Schonberg <schonberg@adacore.com>
23237 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
23238 a renaming a body, check that the renamed subprogram in not intrinsic.
23239 (Find_Direct_Name): If several use_visible entities hide
23240 each other, and the context is a predefined file compiled through
23241 rtsfind, keep only the entity that comes from a predefined file.
23243 2005-03-15 Geert Bosch <bosch@adacore.com>
23245 * s-fatgen.adb (Valid): Extend special exceptions to account for long
23246 long float padding to also cover AMD64 and IA64.
23248 2005-03-15 Gary Dismukes <dismukes@adacore.com>
23250 * s-imgwch.adb: Add with and use of Interfaces.
23251 (Img_Wide_Character): Change type of Val to Unsigned_16.
23252 (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
23254 2005-03-15 Matthew Gingell <gingell@adacore.com>
23256 * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
23258 2005-03-15 Robert Dewar <dewar@adacore.com>
23260 * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
23262 * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
23264 * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
23266 2005-03-15 Robert Dewar <dewar@adacore.com>
23268 * s-bitops.adb, s-bitops.ads,
23269 s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
23270 s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
23271 tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
23272 s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
23273 s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
23274 s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
23275 s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
23276 s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
23279 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
23281 * utils2.c (build_binary_op): Fix typo.
23283 2005-03-15 Doug Rupp <rupp@adacore.com>
23285 * s-crtl.ads (popen,pclose): New imports.
23287 2005-03-15 Cyrille Comar <comar@adacore.com>
23289 * comperr.adb (Compiler_Abort): remove references to obsolete
23290 procedures in the bug boxes for various GNAT builds.
23292 2005-03-15 Vincent Celier <celier@adacore.com>
23294 * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
23296 2005-03-15 Geert Bosch <bosch@adacore.com>
23297 Arnaud Charlet <charlet@adacore.com>
23298 Robert Dewar <dewar@adacore.com>
23299 Cyrille Comar <comar@adacore.com>
23300 Sergey Rybin <rybin@adacore.com>
23302 * gnat_ugn.texi: Remove extended inline assembly example, as it was far
23303 too specific and long-winded to be appropriate for the GNAT User's
23305 Warn about use of GCC switches not documented in the GNAT User's Guide,
23306 as these may cause generated code to not conform to Ada semantics.
23307 Remove mention of -gdwarf-2 for sparc64, since this is now the default.
23308 Add documentation for -gnat95 and -gnat05 switches
23309 Remove paragraph documenting obsolete way to refer to third party
23311 Add a few references to Ada_05 that were missing.
23312 Update documentation on -gnatZ/-gnatL.
23313 Document limitation when using -m64 under Solaris.
23314 Change the "Name Casing" subsection of the pretty-printer section
23315 according to the changes in the dictionary processing.
23317 * gnat_rm.texi: Document the Ada_05 pragma.
23318 Section on record representation clauses describes the new more
23319 relaxed rules about placement of large packed bit array components.
23320 Add documentation of GNAT.UTF_32
23322 2005-03-12 Daniel Berlin <dberlin@dberlin.org>
23324 * misc.c (gnat_post_options): Turn off structural
23327 2005-03-08 Laurent Guerby <laurent@guerby.net>
23329 * system-linux-sparc.ads: Fix typo in previous commit.
23331 2005-03-07 James A. Morrison <phython@gcc.gnu.org>
23332 Laurent Guerby <laurent@guerby.net>
23335 * system-linux-sparc.ads: New.
23336 * Makefile.in: Add sparc linux entry.
23338 2005-02-27 Danny Smith <dannysmith@users.sourceforge.net>
23340 * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
23341 parameters as unused.
23343 2005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
23344 Partial merge from libada-gnattools-branch:
23346 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
23347 * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
23348 into code in gnattools/Makefile.in. Remove direct dependencies on
23349 stamp-tools by tools clauses.
23350 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
23351 * config-lang.in: Add gnattools to $lang_dirs.
23353 2005-02-13 Andrew Pinski <pinskia@physics.uc.edu>
23356 * utils.c (gnat_type_for_mode): Return null instead of ICE because
23357 we asked for an unknown mode.
23359 2005-02-12 Richard Henderson <rth@redhat.com>
23361 * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
23362 validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
23364 2005-02-10 Andreas Jaeger <aj@suse.de>
23366 * init.c (__gnat_initialize): Mark parameter as unused.
23368 2005-02-09 Doug Rupp <rupp@adacore.com>
23370 * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
23371 * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
23373 2005-02-09 Doug Rupp <rupp@adacore.com>
23375 * gnatchop.adb (dup, dup2),
23376 g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
23378 * gnatlbr.adb (mkdir),
23379 mlib-tgt-vms-ia64.adb (popen, plose): Import with decc$ prefix.
23381 * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
23383 2005-02-09 Doug Rupp <rupp@adacore.com>
23385 * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
23387 2005-02-09 Robert Dewar <dewar@adacore.com>
23388 Thomas Quinot <quinot@adacore.com>
23389 Javier Miranda <miranda@adacore.com>
23390 Pascal Obry <obry@adacore.com>
23391 Ed Schonberg <schonberg@adacore.com>
23392 Doug Rupp <rupp@adacore.com>
23393 Gary Dismukes <dismukes@adacore.com>
23394 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
23396 * g-zstspl.ads: New file.
23398 * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
23400 * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
23402 Add definition of Wide_Wide_Space for AI-285
23404 * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
23405 interface (to support Ada 95 and Ada 2005 units).
23406 Add Unbounded_IO files
23407 Add entries for Wide_Wide packages for AI-285
23408 Add list of containers packages to Ada 2005 unit list
23410 * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
23411 support new Unbounded_IO package cleanly.
23413 * g-utf_32.ads, g-utf_32.adb: New files.
23415 * Makefile.rtl: Add entry for g-utf_32
23416 Add new files for Unbounded_IO
23417 Adjust make file for new AI-285 wide wide packages
23418 Add AI-302 containers to the run time.
23420 * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
23421 a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
23422 subprograms for AI-301.
23424 * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
23426 * a-stunau.ads: Minor comment correction
23428 * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
23430 Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
23431 (Check_RPC): Update to match changes in expanded code.
23432 Clean up unused entity.
23434 * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
23435 was not taken into account.
23436 This includes proper initialization with Normalize_Scalars.
23437 (Get_Simple_Init_Val): Major rewrite for initialize scalars and
23438 normalize scalars cases (particularly the latter) to do a better job
23439 of finding invalid representations.
23441 * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
23443 * s-strops.ads, s-strops.adb: Remove string normalize routines, never
23446 * exp_dist.adb: Add support for wide wide character type
23447 (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
23448 private part, generate stub bodies at the end of the private part,
23449 not the visible part.
23450 (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
23452 (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
23453 generic wrapper to execute final processing after completing the
23454 expansion of the RPC receiver for an RACW.
23456 * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
23457 packages and attributes.
23458 (Preset_Names): Addition of the new reserved words of Ada 2005,
23459 that is interface, overriding and synchronized.
23460 (Get_Pragma_Id): Give support to the use of the new reserved word
23461 "interface" as a pragma name.
23462 (Is_Pragma_Name): Give support to the use of the new reserved word
23463 "interface" as a pragma name.
23464 (Preset_Names): Add stream_size string for the Stream_Size Ada2005
23465 attribute implementation.
23467 * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
23468 checks to entities that are output parameters of Asm operations.
23469 Handle the Stream_Size attribute.
23470 Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
23472 * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
23474 * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
23475 for second parameter being 0.0.
23476 Add support for wide wide character type.
23477 (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
23479 * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
23480 s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
23481 s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
23482 s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
23483 for wide wide character cases.
23485 * cstand.adb: Create entities for Wide_Wide_Character and
23488 * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
23489 accordance with AI-258.
23490 Add new declarations for 16/32 bit C character types (Part of AI285)
23492 * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
23493 (Obsolescent_Warning): New field
23494 (Rep_Clause): New local subprogram used to share code. Returns the rep
23495 clause for which the name is given in parameter.
23496 (Has_Stream_Size_Clause): New routine.
23497 (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
23498 (Address_Clause): Implementation is now using Rep_Clause.
23499 (Alignment_Clause): Idem.
23500 (Size_Clause): Idem.
23502 * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
23503 entity in non-Ada 2005 mode and generate warning.
23505 * par-prag.adb: Add handling of one argument form for pragma Ada_05.
23506 (Prag): Code cleanup. Remove old gnat pragma "overriding"
23508 * sem_prag.adb: Add handling of one argument form for pragma Ada_05
23509 (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
23510 on the named unit if the pragma is not in the current compilation unit,
23511 so that elaboration calls in the current unit can set up an elaboration
23512 dependency on the named unit, as needed.
23513 (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
23514 subprogram as well as for subprograms declared within a package.
23515 (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
23518 * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
23519 to z) to avoid some instances of duplication for Wide_Wide packages.
23521 * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
23524 * scn.adb: Char_Literal_Value field is now a Uint
23526 * scng.adb: Significant rewrite to handle new Ada 2005 features
23527 allowing wide and wide wide characters in program text, e.g. for
23528 identifiers, as described in AI-285.
23529 (Set_Reserved): New procedure, makes setting up keywords cleaner.
23530 (Initialize_Scanner): Register the new reserved words of Ada 2005.
23531 (Scan): Give support to the new reserved words.
23533 * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
23534 warning notifying that interface, overriding, and synchronized are
23535 new reserved words.
23536 (P_Pragma): Allow the use of the new reserved word "interface" as
23539 * gnatls.adb, gnatbind.adb,
23540 ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
23541 identifiers named "interface" to "SAL_Interface".
23543 * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
23544 (Structured Exception handling).
23545 (Gen_Main_C): Idem.
23548 (Gen_Main_Ada): Set the default exit code if specified.
23549 (Gen_Main_C): Likewise.
23551 (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
23552 Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
23554 * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
23557 * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
23558 has a collision with the new Ada 2005 "interface" reserved word.
23560 * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
23561 generate a warning notifying that interface, overriding, and
23562 synchronized are new reserved words.
23564 * scans.ads (Token_Type): Addition of the tokens corresponding to the
23565 new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
23566 and Tok_Synchronized.
23568 * sem_res.adb (Resolve_Actuals): Change error messages to refer to
23569 "dispatching" rather than "primitive" operations, since dispatching
23570 calls are now allowed to abstract formal subprograms (which are not
23572 Char_Literal_Value field is now a Uint
23573 (Resolve_Slice): If the prefix is an access to an unconstrained array,
23574 compute the actual subtype of the designated object to impose the proper
23576 (Resolve_Selected_Component): Do not insert an access check if the
23577 prefix is an access type: such a node is expanded into an explicit
23578 dereference, on which the access check is performed anyway. Removes
23579 expensive duplicate checks.
23580 (Resolve_Call): Use new flag Is_Obsolescent and field
23581 Obsolescent_Warning so that pragma Obsolescent works on library
23583 Add support for wide wide character type
23584 (Resolve_Allocator): Replace the error message on wrong null-exclusion
23585 value by a warning message.
23586 (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
23587 as fixed-point, and one of the operands is non-static and universal, it
23588 can only be an illegal exponentiation operation, in which case there is
23589 no real value to retrieve.
23591 * exp_strm.adb: Add support for wide wide character type
23592 (Build_Elementary_Input_Call): Compute the size of the stream element by
23593 querying the rep chain to find the Stream_Attribute attribute value.
23594 (Build_Elementary_Write_Call): Ditto.
23596 * sem_aggr.adb: Char_Literal_Value field is now a Uint
23597 Add support for wide wide character type
23598 Replace the error messages on wrong null-exclusion value by warnings
23599 as described in Ada 2005.
23600 (Resolve_Extension_Aggregate): Document the fact that the error
23601 message on class-wide expressions in extensions aggregates.
23603 * sem_case.adb: Add support for wide wide character type
23605 * sem_ch13.adb: Add support for wide wide character type
23606 (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
23608 * sem_ch3.adb: Add support for wide wide character type
23609 (Process_Subtype): If constraint is illegal for the type, set Ekind of
23610 now-useless Itype, to prevent cascaded errors on a compiler built
23613 * sem_ch8.adb: Add with and use of Sem_Disp.
23614 (Analyze_Subprogram_Renaming): Replace unclean uses of
23615 Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
23616 of Corresponding_Spec to Empty).
23617 (Attribute_Renaming): Replace use of Corresponding_Spec with
23618 Corresponding_ Formal_Spec and simplify condition.
23619 (Use_One_Package): Check that scope of homonym of identifier is defined,
23620 before checking whether it is a wrapper package.
23621 Add support for wide wide character type
23623 * sem_eval.adb: Add support for wide wide character type.
23624 (Eval_Arithmetic_Op): Check for compile time known signed integer
23625 overflow in the non-static case.
23626 (Subtypes_Statically_Match): A formal scalar type and its base type do
23627 not statically match.
23629 * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
23630 "not in" for test of N_Formal_Subprogram_Declaration (which is now a
23632 (Unit_Declaration_Node): Ditto.
23633 (Is_Variable_Prefix): For the case of an indexed component whose prefix
23634 has a packed array type, the prefix has been rewritten into a type
23635 conversion. Determine variable-ness from the converted expression.
23636 Handle wide wide character cases.
23638 * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
23640 * stringt.ads, stringt.adb: Handle full UTF-32 range.
23641 Remove ["0A"] from comment, since it can look like a line terminator.
23642 Currently we don't permit this, but this is under discussion by the
23643 ARG, and it is easy enough to use a different example.
23645 * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
23646 handling UTF-32 encoding for wide wide character.
23647 Implement new brackets coding ["hhhhhhhh"]
23648 Add UTF-8 encodings for full UTF-32 range
23650 * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
23652 * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
23653 bit range Add full UTF-32 support.
23654 (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
23655 notify that constraint error will be raised at run-time
23656 because a null value is assigned to a null-excluding object.
23657 Remove some obsolete declarations and make Char_Code
23660 * a-except.adb (Rcheck_30): New subprogram. Addition of the message
23661 corresponding to CE_Null_Not_Allowed, and adjust the output of all the
23662 Rcheck subprograms.
23664 * checks.adb (Check_Null_Not_Allowed): Replace the error message on
23665 wrong null-exclusion value by a warning message.
23666 (Enable_Range_Check): Do range check if the prefix is an
23667 explicit dereference whose designated object is an unconstrained array.
23668 Current algorithm for removing duplicate checks is over-eager in this
23671 * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
23672 null-exclusion value by a warning message
23674 * atree.h, atree.ads, atree.adb: Remove Char_Code field support
23675 completely. Add support for Uint2 field
23677 sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
23678 exp_prag.adb: Char_Literal_Value field is now a Uint.
23680 * exp_util.adb (Insert_Actions): Replace
23681 N_Formal_Subprogram_Declaration by
23682 N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
23683 Char_Literal_Value field is now a Uint.
23685 * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
23686 defined for subprogram renaming declarations. When set, the field
23687 indicates the defining entity of a corresponding formal subprogram
23688 when the renaming corresponds to a formal subprogram association in an
23690 (Set_Corresponding_Formal_Spec): New procedure to return
23691 Corresponding_Formal_Spec field.
23692 Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
23693 (which is now a subtype).
23694 Char_Literal_Value field is now a Uint
23696 * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
23697 pointer to the base of the dispatch table.
23698 Minor changes to comments.
23699 (Controlling_Type): New function for determining the tagged type
23700 associated with a tagged primitive subprogram.
23701 (Expand_Dispatching_Call): Add support for a controlling actual that is
23702 directly a value of type Ada.Tag rather than a tagged object.
23704 * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
23705 describing the new layout.
23706 (Dispatch_Table): The expander computes the actual array size, allocates
23707 the Dispatch_Table record accordingly, and generates code that displaces
23708 the base of the record after the Typeinfo_Ptr component. The access to
23709 these components is done by means of local functions.
23710 (Offset_To_Top): New function.
23711 (Typeinfo_Ptr): New function.
23712 (Get_TSD): Modified to access the new position of the TSD.
23713 (Set_TSD): Modified to save the TSD in its new position.
23715 * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
23716 case of formal abstract subprograms. Add check and message for -gnat05.
23719 * sem_ch12.adb: Add with and use for Sem_Disp.
23720 (Analyze_Associations): Minor change from "=" to "in" for use of
23721 N_Formal_Subtype_Declaration (which is now a subtype).
23722 (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
23723 N_Formal_Subtype_Declaration (which is now a subtype).
23724 (Analyze_Formal_Subprogram): Add handling for
23725 N_Formal_Abstract_Subprogram, marking the formal as abstract and
23726 dispatching, setting the controlling status of the formal parameters
23727 and result, and issuing an error if there is no controlling type for
23728 the formal subprogram.
23729 (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
23730 which is an unclean use of that field, we set the new field
23731 Corresponding_Formal_Spec to make the formal subprogram available to
23732 processing in Analyze_Subprogram_Declaration.
23733 (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
23734 Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
23735 Constrained, so that it is is does not statically match its anonymous
23738 * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
23739 abstract formal subprograms in error check for functions returning
23740 abstract types. Set scope of new designator for
23741 a parameterless subprogram, so that it is available when checking the
23742 body for nested subprograms, before full analysis of said body.
23743 (Analyze_Subprogram_Body): Warn on inlining bodies with nested
23744 subprogram only if inner one comes from source.
23745 (Analyze_Function_Call): If the call is given in object notation, the
23746 analysis of the name rewrites the node and analyzes it with the proper
23747 argument list. After analyzing the name, if the call has been rewritten
23748 and the result type is set, no further analysis is needed.
23749 (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
23750 mark in function specification, in a context where the formals are
23751 visible and hide outer homographs.
23753 * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
23754 as the tagged type for the cases of abstract formal subprograms and
23755 renamings of those. Clean up spec comments.
23756 (Check_Dispatching_Context): Add error message to indicate "abstract
23757 procedure", covering the case of a call to a formal abstract procedure
23758 that has statically tagged operands.
23759 (Check_Dispatching_Call): Check for the case of an actual given by
23760 a tag-indeterminate function call whose type is an ancestor of the
23761 containing call's associated tagged type. This situation can occur
23762 for inherited primitives with function defaults. In this case we
23763 use the tagged type's tag directly as the controlling argument for
23765 (Expand_Call): Name change on call to Expand_Dispatch_Call.
23767 * sprint.adb (Sprint_Node_Actual): Split
23768 N_Formal_Subprogram_Declaration into two alternatives for the new
23769 cases N_Formal_Abstract_Subprogram_Declaration and
23770 N_Formal_Concrete_Subprogram_Declaration.
23771 Char_Literal_Value field is now a Uint.
23773 * trans.c: Get rid of junk Uint2 reference.
23774 Char_Literal_Value field is now a Uint.
23775 (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
23776 (gigi): Correct third arg to gimplify_body.
23778 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
23779 (TYPE_LANG_FLAG_0): Check for record or union.
23781 * treepr.adb: Char_Literal_Value field is now a Uint
23783 * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
23786 * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
23787 Add full UTF-32 support
23788 Char_Code is now 32 bits
23790 * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
23791 wide character UTF_32 line terminators.
23792 Initialize Main_Source_File to avoid error when no main
23795 * errout.adb (Finalize): Do not check Num_SRef_Pragmas
23796 (Main_Source_File) when no main source has been loaded, to avoid
23799 2005-02-09 Robert Dewar <dewar@adacore.com>
23801 * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
23802 Fix name of Set routine
23804 * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
23807 * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
23808 a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
23811 * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
23812 forms of Get_Line subprograms for AI-301.
23814 * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
23815 a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
23816 a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
23817 a-stwima.ads: Minor reformatting.
23819 2005-02-09 Doug Rupp <rupp@adacore.com>
23820 Thomas Quinot <quinot@adacore.com>
23822 * adaint.c, adaint.h
23823 [VMS] (to_ptr32): New function.
23824 (MAYBE_TO_PTR32): New macro.
23825 (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
23827 [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
23828 [VMS] (#define fork()): Remove since unneccessary.
23829 (__gnat_set_close_on_exec): New routine to support
23830 GNAT.OS_Lib.Set_Close_On_Exec.
23832 * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
23833 the parent side as close-on-exec so that they are not inherited by the
23836 * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
23837 set or clear the FD_CLOEXEC flag on a file descriptor.
23839 2005-02-09 Eric Botcazou <ebotcazou@adacore.com>
23840 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
23844 (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
23845 on the field if Pragma Component_Alignment (Storage_Unit).
23846 (gnat_to_gnu_entity, case object): Do not treat a renaming that has
23847 side-effects as if it were a constant; also make SAVE_EXPR to protect
23849 (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
23851 (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
23852 (components_to_record): Test it.
23853 Fix improper usage of REFERENCE_CLASS_P.
23855 * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
23858 * utils2.c: Minor reformatting.
23860 * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
23861 handle other cases like RECORD_TYPE.
23863 * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
23865 2005-02-09 Ed Schonberg <schonberg@adacore.com>
23867 * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
23868 component of an array of arrays in an assignment context, and the
23869 aggregate has component associations that require sliding on
23870 assignment, force reanalysis of the aggregate to generate a temporary
23871 before the assignment.
23872 (Must_Slide): Make global to the package, for use in Gen_Assign.
23874 2005-02-09 Ed Schonberg <schonberg@adacore.com>
23876 * exp_ch4.adb (Expand_Composite_Equality): If a component is an
23877 unchecked union with no inferable discriminants, return a
23878 Raise_Program_Error node, rather than inserting it at the point the
23880 (Expand_Record_Equality, Component_Equality): Handle properly the case
23881 where some subcomponent is an unchecked union whose generated equality
23882 code raises program error.
23884 2005-02-09 Doug Rupp <rupp@adacore.com>
23886 * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
23887 [VMS] (#define exit hack): Remove.
23889 2005-02-09 Pascal Obry <obry@adacore.com>
23890 Arnaud Charlet <charlet@adacore.com>
23892 * init.c (__gnat_initialize): Add a new parameter eh which contains the
23893 address of the exception registration. The Win32 version of this
23894 routine calls __gnat_install_SEH_handler() to initialize the SEH
23895 (Structured Exception Handling) handler.
23896 (__gnat_error_handler) [Win32]: Removed. Not needed as we use
23897 SEH (Structured Exception Handling) now.
23898 (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
23899 (__gnat_initialize for ppc-vxworks): Adjust comments and the
23900 preprocessor condition protecting the call to the extra eh setup
23901 subprogram, which is only available for the ppc target.
23902 (__gnat_clear_exception_count): replaced reference to
23903 variable taskIdCurrent by call to taskIdSelf(), cleaner.
23905 * seh_init.c: New file.
23907 * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
23908 (GNATBIND_OBJS): Idem.
23910 * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
23911 routine takes a new parameter (a pointer to the exception registration
23912 for the SEH (Structured Exception Handling) support.
23914 * raise.h: (__gnat_install_SEH_handler): New prototype.
23915 Update copyright notice.
23917 * s-tassta.adb (Task_Wrapper): Declare the exception registration
23918 record and initialize it by calling __gnat_install_SEH_handler.
23920 2005-02-09 Vincent Celier <celier@adacore.com>
23922 * make.adb (Gnatmake): Do not fail when the main project has no object
23925 2005-02-09 Doug Rupp <rupp@adacore.com>
23927 * Makefile.in [VMS] (LN,LN_S): Define as cp -p
23928 Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
23929 [VMS]: Add translations for g-enblsp.adb.
23931 * s-asthan-vms.adb: Removed.
23932 * s-asthan-vms-alpha.adb: Added.
23934 2005-02-09 Pascal Obry <obry@adacore.com>
23936 * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
23937 (LIBGNAT_OBJS): Add seh_init.o.
23939 2005-02-09 Arnaud Charlet <charlet@adacore.com>
23942 * Makefile.in: Link all gnat tools with -static-libgcc, since
23943 -shared-libgcc is now used by default on some systems (e.g. linux with
23945 Remove references to Makefile.prolog/generic, no longer used.
23947 2005-02-09 Vincent Celier <celier@adacore.com>
23949 * prj-makr.adb (Process_Directory): Put file name in canonical case
23950 before matching against the patterns.
23951 If gnatname has been invoked as <prefix>-gnatname
23952 then invoke the compiler as <prefix>-gcc, not just "gcc".
23954 2005-02-09 Ed Schonberg <schonberg@adacore.com>
23956 * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
23957 with expansion disabled. The actual subtype is needed among other
23958 places when the selected component appears in the context of a loop
23959 bound, and denotes a packed array.
23960 (Operator_Check): Always use the first subtype in the
23961 error message, to avoid the appearance of internal base types.
23962 (Transform_Object_Operation): Copy each actual in full
23963 to the parameter associations of the constructed call, rather than
23964 using the shallow copy mechanism of New_Copy_List. This ensures that
23965 the chaining of named associations is done properly.
23966 (Complete_Object_Operation): Rewrite node, rather than
23967 replacing it, so that we can trace back to the original selected
23970 * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
23971 and calls that use object notation, if the called function is not
23972 declared in a withed unit, place the elaboration constraint on the
23973 unit in the context that makes the function accessible.
23974 (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
23975 imposes an elaboration constraint between two packages.
23977 2005-02-09 Ed Schonberg <schonberg@adacore.com>
23979 * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
23980 views of a private type after handling its private dependents, to
23981 maintain proper stack discipline between entry and exit from the
23984 2005-02-09 Cyrille Comar <comar@adacore.com>
23986 * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
23987 Minor reformatting.
23989 2005-02-09 Arnaud Charlet <charlet@adacore.com>
23991 * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
23992 fields for foreign threads.
23994 2005-02-09 Doug Rupp <rupp@adacore.com>
23996 * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
23997 recursion warnings when compiled with -gnatdm.
23999 2005-02-09 Robert Dewar <dewar@adacore.com>
24001 * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
24002 Slight fix to documentation of -gnaty with no parameters
24004 * xr_tabls.ads: Add ??? comment for missing overall comment
24006 * xsinfo.adb: Make default file name be sinfo.h, since this is what
24007 we now use by default.
24009 * xsnames.adb: Adjust end of file test to look for five space followed
24010 by '#' instead of six spaces. The format of xsnames.adb was modified
24011 in the last update.
24013 * a-numeri.ads: Add reference to AI-388 for greek letter pi
24016 * clean.adb: Minor reformatting.
24018 * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
24019 gnatname.adb: Minor reformatting
24020 Add 2005 to copyright output when utility is run
24022 * csets.adb: Eliminate obsolete comment
24024 * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
24027 * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
24029 2005-02-09 Sergey Rybin <rybin@adacore.com>
24031 * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
24032 the difference between compact and incompact layout and add the record
24033 representation clause to the example illustrating different layouts.
24034 Add the description of '-A5' gnatpp option ("align 'AT' keywords in
24035 component clauses").
24037 2005-02-09 Florian Villoing <villoing@adacore.com>
24039 * gnat_ugn.texi: Fix typos.
24040 Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
24042 Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
24043 in the generated documentation.
24045 2005-02-09 Arnaud Charlet <charlet@adacore.com>
24047 * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
24049 Update linker wrapper when linking with non GNU C++.
24051 2005-02-09 Pascal Obry <obry@adacore.com>
24054 Document the procedure to debug the DllMain routine on Windows.
24055 Add note about -funwind-tables and mixed Ada and C/C++ programming in
24057 Document new BIND qualifer /RETURN_CODES=VMS.
24059 2005-02-09 Ben Brosgol <brosgol@adacore.com>
24061 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
24062 Edited gnatmetric chapter
24064 2005-02-09 Robert Dewar <dewar@adacore.com>
24067 Changes to document new wide wide character support
24069 Update documentation on Normalize_Scalars and Initialize_Scalars
24071 2005-02-09 Pascal Obry <obry@adacore.com>
24073 * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
24075 2005-02-09 Jose Ruiz <ruiz@adacore.com>
24077 * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
24078 from the VxWorks kernel) that is needed for getting the active
24079 priority of the different tasks.
24081 * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
24082 Use a pragma Elaborate_Body in the spec file instead.
24083 Noticed by code reading.
24085 2005-02-09 Thomas Quinot <quinot@adacore.com>
24087 * exp_util.ads: Minor correction in comment.
24089 2005-02-09 Arnaud Charlet <charlet@adacore.com>
24091 * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
24092 since this procedure is now too complex to be worth inlining.
24094 2005-02-09 Richard Henderson <rth@redhat.com>
24096 * utils.c (gnat_define_builtin): Remove.
24097 (gnat_install_builtins): Use build_common_builtin_nodes.
24099 2005-02-09 Arnaud Charlet <charlet@adacore.com>
24101 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
24102 a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
24103 a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
24104 a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
24105 a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
24106 a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
24107 a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
24108 a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
24109 a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
24110 a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
24111 a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
24112 a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
24113 a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
24114 a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
24115 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
24116 a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
24117 a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
24118 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
24119 a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
24120 a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
24121 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
24122 a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
24123 a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
24124 a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
24125 a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
24126 a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
24127 a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
24128 a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
24129 a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
24130 a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
24131 a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
24132 a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
24133 a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
24134 a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
24137 2005-01-27 Laurent Guerby <laurent@guerby.net>
24139 * Makefile.in: Fix a-intnam.ads from previous commit,
24140 add 2005 to copyright.
24141 * a-intman-rtems.ads: Renamed to...
24142 * a-intnam-rtems.ads:
24144 2005-01-27 Laurent Guerby <laurent@guerby.net>
24146 * Makefile.in: Rename GNAT RTEMS specific files.
24147 * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
24148 5rosinte.ads, 5rparame.adb: Replaced by files below.
24149 * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
24150 s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
24152 2005-01-27 Joel Sherrill <joel.sherrill@oarcorp.com>
24153 Laurent Guerby <laurent@guerby.net>
24156 * 5rosinte.ads: Add No_Key constant.
24157 * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
24158 * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
24160 2005-01-26 Laurent Guerby <laurent@guerby.net>
24163 * i-cobol.adb (Valid_Numeric): Handle zero length case.
24165 2005-01-20 Richard Henderson <rth@redhat.com>
24167 * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
24168 a-intnam-linux.ads and system-linux-alpha.ads.
24169 * a-intnam-linux-alpha.ads: Remove file.
24170 * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
24171 * system-linux-alpha.ads: New file.
24173 2005-01-18 Jakub Jelinek <jakub@redhat.com>
24176 * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
24177 set to the new string.
24179 2005-01-18 Toon Moene <toon@moene.indiv.nluug.nl>
24181 * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
24184 2005-01-18 Richard Henderson <rth@redhat.com>
24186 * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
24187 THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
24189 * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
24191 2005-01-14 Andrew Pinski <pinskia@physics.uc.edu>
24193 * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
24194 (GCC_ZCX_Support): Likewise.
24196 2005-01-11 Bastian Blank <waldi@debian.org>
24198 * system-linux-s390.ads: Define Preallocated_Stacks.
24199 * system-linux-s390x.ads: Likewise.
24201 2005-01-04 Arnaud Charlet <charlet@adacore.com>
24203 * gnat_ugn.texi: Fix texi errors with null variables.
24205 2005-01-03 Thomas Quinot <quinot@adacore.com>
24207 * gen-soccon.c: New utility program to generate g-soccon.ads
24210 * socket.c, gsocket.h: Split inclusion of system header files into a
24211 gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
24213 * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
24214 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
24215 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
24216 g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
24217 should not be edited by hand anymore, but should be regenerated using
24220 2005-01-03 Robert Dewar <dewar@adacore.com>
24221 Ed Schonberg <schonberg@adacore.com>
24222 Vincent Celier <celier@adacore.com>
24224 * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
24225 on/off, since this is an obsolescent feature, for which we now generate
24228 * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
24229 warning mode is set and obsolescent usage of this attribute occurs.
24230 (Resolve_Access, case 'Access): Note that GNAT uses the context type to
24231 disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
24232 predates, and partly motivates, the adoption of the AI.
24233 Implement new Ada 2005 attribute Mod
24235 * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
24238 * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
24240 * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
24241 pragma restrictions.
24242 New entry for Ada 2005 attribute Mod.
24245 Add recognition of new pragma Restrictions No_Dependence
24246 Recognize restriction No_Obsolescent_Features at parse time
24248 * bcheck.adb: Add circuitry for checking for consistency of
24249 No_Dependence restrictions.
24251 * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
24254 * restrict.ads, restrict.adb: Add subprograms to deal with
24255 No_Dependence restrictions.
24257 * rtsfind.adb: Check that implicit with's do not violate No_Dependence
24260 * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
24261 sem_attr.adb: Add check for new restriction No_Obsolescent_Features
24263 * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
24264 dummy parameter to scng instantiation.
24265 Needed for new restriction No_Obsolescent_Features
24267 * scn.adb: (Obsolescent_Check): New procedure
24268 Needed for new restriction No_Obsolescent_Features
24270 * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
24271 specified by AI-285, needed for implementation of AI-388 (adding greek
24272 pi to Ada.Numerics).
24273 Add new generic formal to scng, needed for new restriction
24274 No_Obsolescent_Features.
24276 * s-rident.ads: Add new restriction No_Obsolescent_Features.
24278 * ali.ads, ali.adb: Adjustments for reading new No_Dependence
24279 restrictions lines.
24280 (Scan_ALI): When finding an unexpected character on an R line, raise
24281 exception Bad_R_Line, instead of calling Fatal_Error, so that, when
24282 Ignore_Errors is True, default restrictions are set and scanning of the
24283 ALI file continues with the next line. Also, when Bad_R_Line is raised
24284 and Ignore_Errors is True, skip to the end of le line.
24286 * sem_ch10.adb: Check that explicit with's do not violate
24287 No_Dependence restrictions.
24288 (Install_Withed_Unit): Add code to implement AI-377 and diagnose
24289 illegal context clauses containing child units of instance.
24291 * sem_prag.adb: Processing and checking for new No_Dependence
24293 (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
24294 analyze and check the External argument.
24296 * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
24298 2005-01-03 Robert Dewar <dewar@adacore.com>
24300 * atree.adb: Add a fifth component to entities
24301 This allows us to add 32 flags and four new fields
24303 * atree.ads: Add a fifth component to entities
24304 This allows us to add 32 flags and four new fields
24306 * einfo.ads, einfo.adb: Document new fields and new flags now available
24307 Add routines for printing new fields
24309 * treepr.adb: Call routines to print out additional fields if present
24311 2005-01-03 Arnaud Charlet <charlet@adacore.com>
24313 * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
24314 gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
24316 * Makefile.in: Add support to build shared Ada libraries on solaris x86
24317 Remove gpr2make, replaced by gprmake.
24318 Remove references to gnatmem and libaddr2line.
24319 Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
24320 (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
24321 Add support for specialized version of Ada.Numerics.Aux for Darwin: use
24322 a-numaux-darwin.ads and a-numaux-darwin.adb
24323 Enable mlib-tgt-lynxos.adb on lynxos.
24325 * Make-lang.in: Remove rules for gpr2make.
24326 When generating sdefault.adb, do not call Relocate_Path
24327 on S3 for function Target_Name, as it is not a path.
24328 Remove references to gnatmem and libaddr2line.
24330 * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
24333 2005-01-03 Samuel Tardieu <tardieu@adacore.com>
24335 * checks.adb (Apply_Alignment_Check): Generate a warning if an object
24336 address is incompatible with its base type alignment constraints when
24337 this can be decided statically.
24339 2005-01-03 Olivier Hainque <hainque@adacore.com>
24341 * decl.c (compatible_signatures_p): New function. The intended purpose
24342 is to check if two function signatures for a call-site and a callee are
24343 compatible enough for the call to be valid. The underlying purpose is
24344 to check if a call to a mapped builtin is using the right interface.
24345 The current code actually does not check antyhing - this a placeholder
24346 for future refinements.
24347 (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
24348 builtin calls for convention Intrinsic.
24350 * gigi.h (builtin_decl_for): Declare (new function).
24352 * utils.c (gnat_install_builtins): Install the target specific builtins.
24353 (builtin_decl_for): New function, provide a dummy body for now.
24355 2005-01-03 Geert Bosch <bosch@adacore.com>
24357 * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
24358 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
24359 (Pred): Implement in terms of Succ.
24361 * trans.c (convert_with_check): Reimplement conversion of float to
24364 2005-01-03 Ed Schonberg <schonberg@adacore.com>
24365 Vincent Celier <celier@adacore.com>
24367 * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
24368 bounds can be negative, and must be declared Int, not Nat.
24370 * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
24371 array is checked after using the index in the array.
24373 * makegpr.adb (Add_Switches): Check if there is a package for the
24374 processor. If there is no package, do not look for switches.
24376 2005-01-03 Ed Schonberg <schonberg@adacore.com>
24378 * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
24379 generation of predefined stream operations (specs and bodies) should
24380 proceed. Under various restrictions these subprograms must not be
24383 2005-01-03 Thomas Quinot <quinot@adacore.com>
24386 Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
24387 amount of PCS-specific code in RACW stubs generation.
24388 (Copy_Specification): Set Etype on copied formal parameter entities, as
24389 this information is needed for PolyORB stubs generation.
24390 (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
24391 variable Dynamic_Async.
24392 (Build_Subprogram_Receiving_Stubs): Make PCS-specific
24393 (Build_RPC_Receiver_Specification): Make generic again, as recent
24394 changes have allowed RPC receivers to have the same profile for both
24395 variants of the PCS.
24396 Reorganise RPC receiver generation to reduce differences between the
24397 structure of GARLIC and PolyORB RPC receivers.
24398 (Add_Receiving_Stubs_To_Declarations): Make this subprogram
24400 Simplify elaboration code for RCI packages.
24402 * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
24403 generation to reduce differences between the structure of GARLIC and
24404 PolyORB RPC receivers.
24406 * s-stratt.adb: Fix typo in comment.
24408 2005-01-03 Thomas Quinot <quinot@adacore.com>
24410 * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
24411 copied from Make_Init_Call).
24413 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
24414 reads and assignments on a temporary variable declared with appropriate
24417 2005-01-03 Robert Dewar <dewar@adacore.com>
24419 * i-c.adb (To_C): Raise CE if string is null and Append_Null
24421 2005-01-03 Robert Dewar <dewar@adacore.com>
24423 * i-cstrin.adb (Update): Do not append a null in form called with a
24424 String. This avoids unintended behavior.
24426 2005-01-03 Arnaud Charlet <charlet@adacore.com>
24429 * init.c: Fix warnings on Free BSD section.
24431 2005-01-03 Arnaud Charlet <charlet@adacore.com>
24434 * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
24437 2005-01-03 Vincent Celier <celier@adacore.com>
24439 * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
24440 libraries when Unique_Compile is True (-u switch).
24443 2005-01-03 Robert Dewar <dewar@adacore.com>
24445 * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
24446 upper case letter or underscore after W, as allowed by spec.
24448 2005-01-03 Arnaud Charlet <charlet@adacore.com>
24450 * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
24451 darwin port by using proper type definitions from header files.
24452 Use SIGTERM instead of SIGABRT for SIGADAABORT.
24454 2005-01-03 Robert Dewar <dewar@adacore.com>
24456 * par.adb: Enhance error message handling for configuration file
24459 2005-01-03 Robert Dewar <dewar@adacore.com>
24461 * s-arit64.adb (Double_Divide): Put back changes that got accidentally
24462 removed during the previous update (test properly for case of dividing
24463 largest negative number by -1, which generates overflow).
24465 2005-01-03 Ed Schonberg <schonberg@adacore.com>
24466 Sergey Rybin <rybin@adacore.com>
24468 * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
24469 to use as the defining identifier for a formal package.
24470 (Remove_Parent): If the instance takes place within (an instance of)
24471 a sibling, preserve private declarations of common parent.
24473 2005-01-03 Ed Schonberg <schonberg@adacore.com>
24475 * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
24476 to determine whether one of the operands is a fixed-point type for
24477 which a user-defined multiplication or division operation might be
24480 * sem_res.adb (Valid_Conversion): The legality rules for conversions
24481 of access types are symmetric in Ada 2005: either designated type can
24484 2005-01-03 Vincent Celier <celier@adacore.com>
24486 * s-fileio.adb (Temp_File_Record): Change length of string component
24487 Name from L_tmpnam + 1 to max_path_len + 1.
24489 2005-01-03 Arnaud Charlet <charlet@adacore.com>
24491 * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
24492 Self_Id.Deferral_Level = 0.
24493 (Do_Pending_Action): Move this function to the spec.
24495 * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
24496 Do_Pending_Action explicitely when needed, in case we're using
24497 No_Abort restrictions.
24499 * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
24500 deferral level since it will not get changed by the generated code.
24501 Keeping a default value of 1 would prevent some operations (e.g.
24502 select or delay) to proceed successfully.
24504 2005-01-03 Ben Brosgol <brosgol@adacore.com>
24505 Robert Dewar <dewar@adacore.com>
24506 Cyrille Comar <comar@adacore.com>
24508 * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
24509 porting guide chapter (vms version).
24510 Revised doc title (removed "for native platforms") and subtitle.
24511 Add discussion on warning flag for obsolescent features. First we
24512 note that it applies to obsolete GNAT features, which was previously
24513 omitted. Second we contrast the behavior with that of the new
24514 Ada 2005 AI-368 restriction No_Obsolescent_Features.
24515 Preliminary rewriting of GNAT & libraries chapter in order to take
24516 into account default project locations & new project manager
24519 2005-01-03 Robert Dewar <dewar@adacore.com>
24521 * cstand.adb (Create_Operators): Clean up format and documentation of
24522 unary and binary operator result tables. No change in code, just
24523 reformatting and addition of comments.
24525 * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
24526 sem_ch2.adb: Minor reformatting
24528 * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
24529 sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
24530 comments for Tree_Read and Tree_Write.
24532 2005-01-03 Pascal Obry <obry@adacore.com>
24534 * exp_attr.ads: Minor reformatting.
24536 2005-01-03 Romain Berrendonner <berrendo@adacore.com>
24538 * comperr.adb (Compiler_Abort): Add specialized message for GAP
24541 2005-01-03 Ed Schonberg <schonberg@adacore.com>
24543 * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
24544 whether the ancestor type is private, as may be the case with nested
24547 2004-12-30 Sohail Somani <sohail@sohailsomani.com>
24550 * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
24552 2004-12-23 Eric Botcazou <ebotcazou@libertysurf.fr>
24554 * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
24555 * utils2.c (build_unary_op): Likewise.
24557 2004-12-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
24559 * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
24561 2004-12-19 Richard Henderson <rth@redhat.com>
24563 * trans.c (gigi): Update gimplify_body call.
24565 2004-12-09 Nathan Sidwell <nathan@codesourcery.com>
24567 * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
24569 2004-12-07 Ed Falis <falis@adacore.com>
24571 * s-intman-vxworks.adb (Notify_Exception): removed useless check for
24572 current task being suspended.
24574 * init.c (__gnat_clear_exception): added to reset VxWorks exception
24576 (__gnat_map_signal): removed test for current task being suspended.
24578 2004-12-07 Gary Dismukes <dismukes@adacore.com>
24580 * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
24581 from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
24582 targets (such as AAMP).
24584 2004-12-07 Ed Schonberg <schonberg@adacore.com>
24586 * atree.adb (Visit_Itype): Create a new name for the generated itype,
24587 because the back-end may otherwise treat it as a redefinition of the
24590 2004-12-07 Eric Botcazou <ebotcazou@adacore.com>
24592 * back_end.adb (Scan_Back_End_Switches): Accept --param.
24594 * lang-specs.h: Accept --param.
24596 2004-12-07 Vincent Celier <celier@adacore.com>
24598 * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
24599 package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
24600 Current_Body_Suffix => Ada_Body_Suffix).
24601 Take into account Externally_Built attribute.
24603 * clean.adb (In_Extension_Chain): Always return False when one of the
24604 parameter is No_Project.
24605 (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
24606 Ada_Language_Index).
24607 (Gnatclean): Adapt to change in package Prj.Pars (no parameter
24608 Process_Languages for procedure Parse).
24610 * gnatcmd.adb (Carg_Switches): New table.
24611 (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
24612 Adapt to name changes in package Prj (Current_Spec_Suffix =>
24613 Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
24615 * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
24616 Header_Num and function Hash are now declared in package Prj,
24619 * prj.adb (Suffix_Of): New function.
24620 (Set (Suffix)): New procedure.
24621 (Hash): One function moved from Prj.Com
24622 (Is_Present, Language_Processing_Data_Of): New functions
24623 (Set): Two new procedures
24624 (Add_Language_Name, Display_Language_Name): New procedures
24626 * prj.ads: (Suffix_Of): New function
24627 (Set (Suffix)): New procedure
24628 Add several types and tables for multi-language support.
24629 (Header_Num): Type moved from Prj.Com
24630 (Hash): Two functions moved from Prj.Com
24631 (Is_Present, Language_Processing_Data_Of): New functions
24632 (Set): Two new procedures
24633 (Add_Language_Name, Display_Language_Name): New procedures
24634 (Naming): Component name changes:
24635 Current_Spec_Suffix => Ada_Spec_Suffix,
24636 Current_Body_Suffix => Ada_Body_Suffix. Add new components:
24637 Impl_Suffixes, Supp_Suffixes.
24638 (Project_Data): New components: Externally_Built, Supp_Languages,
24639 First_Language_Processing, Supp_Language_Processing, Default_Linker,
24640 Default_Linker_Path.
24642 * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
24643 new package Language_Processing with its attributes (Compiler_Driver,
24644 Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
24645 Binder_Driver, Default_Linker).
24647 * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
24648 (Header_Num): Type moved to package Prj
24650 * prj-env.adb: Adapt to name changes in package Prj
24651 (Current_Spec_Suffix => Ada_Spec_Suffix,
24652 Current_Body_Suffix => Ada_Body_Suffix).
24654 * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
24655 default to the project path, except the "-" is one of the directories
24656 in env var ADA_PROJECT_PATH.
24657 (Current_Project_Path): Global variable, replacing Project_Path
24658 that was in the body of Prj.Part.
24659 (Project_Path): New function
24660 (Set_Project_Path): New procedure
24661 Initialize Current_Project_Path during elaboration of the package
24662 Remove dependency on Prj.Com, no longer needed
24664 * prj-ext.ads (Project_Path): New function
24665 (Set_Project_Path): New procedure
24667 * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
24668 suffix is defined for language <lang>.
24669 (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
24670 accessing directly the components of Naming.
24671 (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
24672 Reorganise of this package.
24673 Break procedure Check in several procedures.
24675 * prj-nmsc.ads: Replace all procedures (Ada_Check,
24676 Other_Languages_Check and Language_Independent_Check) with a single
24679 * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
24680 Process_Languages, no longer needed.
24682 * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
24683 Current_Project_Path.
24684 Remove elaboration code, moved to the body of Prj.Ext
24685 Use new function Prj.Ext.Project_Path instead of old variable
24687 (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
24688 When comparing with project paths on the stack, first put the resolved
24689 path in canonical case.
24690 (Parse_Single_Project): Set the path name of the project file in the
24691 tree to the normalized path.
24693 * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
24694 parameter Process_Languages, no longer needed.
24695 (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
24696 Other_Languages_Check.
24698 * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
24699 to store the resolved canonical path of the project file.
24700 Remove dependency to Prj.Com, no longer needed
24702 * prj-util.adb: Adapt to name changes in package Prj
24703 (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
24706 * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
24707 Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
24708 Externally_Built, Include_Option, Language_Processing.
24710 * makegpr.adb: Numerous changes due to changes in packages
24713 * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
24714 default to the project path, except whe "-" is one of the directories
24715 in env var ADA_PROJECT_PATH.
24716 (Gnatls): In verbose mode, add the new section "Project Search Path:"
24718 2004-12-07 Robert Dewar <dewar@adacore.com>
24720 * debug.adb: Document that -gnatdA automatically sets -gnatR3m
24722 * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
24725 * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
24726 flag. No longer needed now that we handle this in gnat1drv.adb.
24728 * repinfo.ads: Minor reformatting
24730 2004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
24731 Olivier Hainque <hainque@adacore.com>
24732 Eric Botcazou <ebotcazou@adacore.com>
24734 * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
24735 TYPE_SIZE_UNIT of result type if SIZE is not specified.
24736 (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
24737 of a bitfield, which we know is useless and causes trouble because of
24738 alignment implications.
24740 * utils.c (create_var_decl): Set DECL_COMMON again on targets without
24742 (process_attributes): Clear DECL_COMMON again when a section attribute
24744 (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
24745 SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
24746 (create_field_decl): Special case ADDRESSABLE negative to mean
24747 "no bitfield creation", to be used by make_aligning_type. Don't
24748 restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
24749 fields claimed addressable still have to be bitfields. Use
24750 value_factor_p instead of a raw binop construction to check for the
24751 position's alignment.
24753 2004-12-07 Geert Bosch <bosch@adacore.com>
24755 * eval_fat.adb: Revert previous change.
24757 2004-12-07 Thomas Quinot <quinot@adacore.com>
24758 Ed Schonberg <schonberg@adacore.com>
24760 * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
24761 with an implicit dereference as its prefix, use
24762 Insert_Explicit_Dereference instead of merely rewriting the prefix into
24763 an explicit dereference. This ensures that a reference to the original
24764 prefix is generated, if appropriate.
24766 * sem_util.adb (Insert_Explicit_Dereference): When an implicit
24767 dereference is rewritten to an explicit one, generate a reference to
24768 the entity denoted by its prefix using the original prefix node, so
24769 the dereference can be properly recorded as a read of the denoted
24770 access value, if appropriate.
24772 * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
24773 emitting 'assigned but never read' warning on a variable on the basis
24774 that it has an access type.
24775 (Check_References): Emit unreferenced warning when the scope is a
24778 2004-12-07 Robert Dewar <dewar@adacore.com>
24779 Ed Schonberg <schonberg@adacore.com>
24781 * exp_ch6.adb (Expand_Call): Add comment on handling of back end
24784 * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
24785 leaving call unchanged.
24786 This deals with the case where the pragma Import specified
24787 an external name, to be handled by the back end.
24789 * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
24790 subprogram which is Imported with convention Intrinsic if an
24791 External_Name argument is specified.
24792 (Process_Import_Or_Interface): Properly diagnose link name argument.
24793 (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
24794 with Sem_Ch6.Cannot_Inline.
24795 (Process_Inline): Provide separate warning for inapplicable inline
24797 (Cannot_Inline): Reject subprograms that have an at_end handler, so that
24798 treatment is uniform on different targets.
24800 2004-12-07 Ed Schonberg <schonberg@adacore.com>
24802 * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
24803 construct is rewritten, preserve end label to permit source navigation.
24805 2004-12-07 Thomas Quinot <quinot@adacore.com>
24807 * exp_dist.adb (Specific_Build_General_Calling_Stubs,
24808 Specific_Build_Stub_Target): New subprograms.
24809 (Build_Subprogram_Calling_Stubs): Make this procedure independent from
24810 the PCS implementation used, using the above PCS-customized subprograms.
24811 Minor reformatting.
24812 (PolyORB_Support.Helpers): New subunit containing supporting subprograms
24813 for generation of DSA code targeted to the PolyORB PCS.
24814 (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
24815 implementation of the partition communication subsystem in ancillary
24817 (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
24818 PolyORB_Support.Build_Stub_Type): New subrograms containing the
24819 PCS-specific part of Add_Stub_Type.
24820 (Insert_Partition_Check): Use runtime library function to perform
24823 * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
24824 (RE_Same_Partition): New entity, from s-parint.
24826 * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
24828 2004-12-07 Gary Dismukes <dismukes@adacore.com>
24830 * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
24831 Output the copyright message on a separate line from the version
24834 2004-12-07 Joel Brobecker <brobecker@adacore.com>
24836 * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
24837 compile-time warning.
24839 2004-12-07 Robert Dewar <dewar@adacore.com>
24841 * g-regpat.adb: (Match): Change a misuse of or to or else
24843 2004-12-07 Ed Schonberg <schonberg@adacore.com>
24846 (Generate_Reference): Handle properly a reference to an entry formal,
24847 when an accept statement has a pragma Unreferenced for it.
24849 * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
24850 and the Has_Pragma_Unreferenced flag for each formal before analyzing
24851 the body, to ensure that warnings are properly emitted for each accept
24852 statement of a given task entry.
24854 2004-12-07 Vasiliy Fofanov <fofanov@adacore.com>
24856 * Makefile.in: Add support for foreign threads on VMS.
24858 2004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
24860 * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
24862 (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
24864 * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
24866 * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
24868 (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
24870 2004-12-07 Robert Dewar <dewar@adacore.com>
24872 * nlists.adb (Prepend_Debug): Remove parameters and nest within
24874 (Remove_Next_Debug): Same fix
24876 * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
24877 maintain back pointers now, though we did not used to, and comments
24879 (Prepend): Remove pragma Inline.
24880 (Remove_Next): Same cleanup
24882 2004-12-07 Thomas Quinot <quinot@adacore.com>
24884 * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
24885 used to record an implicit dereference as a read operation on its
24886 prefix when operating under -gnatc. Necessary to avoid spurious
24887 'variable assigned but never read' warnings in that mode.
24888 (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
24889 is a non-overloaded implicit dereference, call the above subprogram to
24890 ensure proper recording of references.
24892 2004-12-07 Gary Dismukes <dismukes@adacore.com>
24894 * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
24895 to be resolved later as part of Analyze_Iteration_Scheme's call to
24898 2004-12-07 Ed Schonberg <schonberg@adacore.com>
24900 * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
24901 prefix is not a scalar type, place error message on prefix, not on
24904 2004-12-07 Bernard Banner <banner@adacore.com>
24906 * vxaddr2line.adb: Add support for x86 vxworks
24908 2004-12-07 Thomas Quinot <quinot@adacore.com>
24910 * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
24911 documentation of the behaviour of these functions when passed an IP
24912 address that has no record in the system hosts database and no reverse
24915 * cstand.adb, a-tags.ads: Fix typos in comment.
24917 2004-12-07 Robert Dewar <dewar@adacore.com>
24919 * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
24920 exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
24921 sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
24922 s-poosiz.ads: Minor reformatting
24924 * make.adb: Minor reformatting
24925 Add some ??? comments asking for more comments
24927 * s-poosiz.adb: Minor reformatting
24928 Add comments on alignment requirement
24930 * sinfo.ads: Remove obsolete comment and fix typo.
24932 2004-12-07 Vincent Celier <celier@adacore.com>
24933 Sergey Rybin <rybin@adacore.com>
24935 * gnat_ugn.texi: Update the section "The GNAT Driver and Project
24936 Files" with the new tool and package names.
24937 Reformatting to suppress most of the warnings for line too long
24938 Document the new section "Project Search Path:" in the output of
24940 Add gnatmetric section
24942 2004-12-07 Vincent Celier <celier@adacore.com>
24944 * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
24945 -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
24946 and -eit to -ept. Added qualifier
24947 /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
24949 2004-11-27 Andreas Schwab <schwab@suse.de>
24951 * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
24953 2004-11-25 Arnaud Charlet <charlet@adacore.com>
24955 * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
24956 internal implementation unit GNAT.Sockets.Thin,
24957 as their usage for sockets is non-portable (using the read and write
24958 functions from the system runtime library is fine on UNIX but won't
24959 work under Windows).
24961 * mingw32.h: Update copyright notice.
24963 2004-11-25 Arnaud Charlet <charlet@adacore.com>
24965 * ada-tree.h: Minor reformatting of previous change to avoid lines
24966 longer than 79 characters.
24968 2004-11-25 Olivier Hainque <hainque@adacore.com>
24970 * tb-gcc.c: GCC infrastructure based implementation of
24973 2004-11-24 Steven Bosscher <stevenb@suse.de>
24975 * misc.c (gnat_post_options): Don't clear
24976 flag_inline_functions.
24978 2004-11-22 Andrew Pinski <pinskia@physics.uc.edu>
24981 * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
24984 2004-11-21 Andreas Jaeger <aj@suse.de>
24986 * stylesw.adb: Change Style_Check_Subprogram_Order to
24987 Style_Check_Order_Subprograms.
24989 2004-11-18 Arnaud Charlet <charlet@adacore.com>
24991 * adaint.h, adaint.c
24992 (__gnat_portable_spawn): Fix cast of spawnvp third parameter
24994 Add also a cast to kill another warning.
24995 (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
24996 parameter with the priority class of the parent process instead of
24997 always using the NORMAL_PRIORITY_CLASS.
24998 (__gnat_dup): New function.
24999 (__gnat_dup2): New function.
25000 (__gnat_is_symbolic_link): Enable the effective body of this
25001 function when __APPLE__ is defined.
25003 * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
25006 2004-11-18 Olivier Hainque <hainque@adacore.com>
25008 * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
25009 address of which may be used to represent "others" and "all others"
25010 choices in exception tables, instead of the current harcoded
25011 (void *)0 and (void *)1.
25012 (Setup_Exception): Do nothing in the GNAT SJLJ case.
25014 * gigi.h (others_decl, all_others_decl): New decls representing the
25015 new Others_Value and All_Others_Value objects.
25016 (struct attrib): Rename "arg" component as "args", since GCC expects a
25017 list of arguments in there.
25019 * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
25020 corresponding objects exported by a-exexpr, instead of hardcoded dummy
25023 * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
25024 others_decl and all_others_decl instead of hardcoded dummy addresses
25025 to represent "others" and "all others" choices, which is cleaner and
25026 more flexible with respect to the possible eh pointer encoding policies.
25028 * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
25029 (process_attributes): Account for the naming change of the "args"
25030 attribute list entry component.
25032 * decl.c (build_attr_list): Rename into prepend_attributes to allow
25033 cumulating attributes for different entities into a single list.
25034 (gnat_to_gnu_entity): Use prepend_attributes to build the list of
25035 attributes for the current entity and propagate first subtype
25036 attributes to other subtypes.
25037 <E_Procedure>: Attribute arguments are attr->args and not
25038 attr->arg any more.
25039 (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
25040 argument provided, as this is what GCC expects. Use NULL_TREE instead
25043 2004-11-18 Robert Dewar <dewar@adacore.com>
25045 * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
25046 Minor reformatting througout (including new function specs)
25047 Add ??? comments asking for clarification.
25049 2004-11-18 Thomas Quinot <quinot@adacore.com>
25051 * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
25052 incomplete duplicate implementation of this subprogram from butil.
25054 2004-11-18 Thomas Quinot <quinot@adacore.com>
25056 * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
25057 procedures factors the common processing for building an RPC receiver
25058 for an RCI package or an RACW type.
25059 Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
25060 Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
25061 (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
25063 (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
25065 (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
25067 (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
25068 distribution subprogram identifiers that are either subprogram numbers
25070 (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
25071 string distribution identifiers assigned to a given subprogram.
25072 (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
25073 (Add_RAS_Dereference_TSS): Add comments.
25074 (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
25075 is not referenced yet because it will be used by the PolyORB DSA
25077 (Insert_Partition_Check): Remove fossile code.
25078 (First_RCI_Subprogram_Id): Document this constant.
25079 (Add_RAS_Access_TSS): Correct the setting of the Etype of the
25081 (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
25082 replaced with calls to Get_Library_Unit_Name_String. Previously there
25083 were several instances of the same code in different locations in the
25084 compiler; this checkin completes the replacement of all of these
25085 instances with calls to a common subprogram.
25086 Minor reformatting.
25088 * sem_dist.adb: Remove comment noting that RPC receiver generation
25089 should be disabled for RACWs that implement RASs.
25090 (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
25092 * sem_util.ads, sem_util.adb (Has_Stream): New function
25093 (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
25094 qualified name of a library unit into the name buffer.
25095 (Note_Possible_Modification): Generate a reference only
25096 if the context comes from source.
25098 * snames.ads (PCS_Names): New subtype corresponding to names of
25099 supported implementations of the Partition Communication Subsystem
25100 (PCS) (i.e. the runtime library support modules for the distributed
25103 2004-11-18 Robert Dewar <dewar@adacore.com>
25104 Ed Schonberg <schonberg@adacore.com>
25106 * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
25107 (Has_Rep_Pragma): New function
25108 (Has_Attribute_Definition_Clause): New function
25109 (Record_Rep_Pragma): Moved here from sem_ch13.adb
25110 (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
25112 * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
25114 * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
25115 (Expand_Pragma_Psect_Object): New procedure
25116 These procedures contain the revised and cleaned up processing for
25117 these two pragmas. This processing was formerly in Sem_Prag, but
25118 is more appropriately moved here. The cleanup involves making sure
25119 that the pragmas are properly attached to the tree, and that no
25120 nodes are improperly shared.
25122 * sem_prag.adb: Move expansion of Common_Object and Psect_Object
25123 pragmas to Exp_Prag, which is more appropriate.
25124 Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
25125 check for duplicates Remove use of Is_Psected flag, no longer needed.
25126 Use new Make_String_Literal function with string.
25128 * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
25129 that are functions return universal values, that have to be converted
25130 to the context type.
25131 Use new Make_String_Literal function with string.
25132 (Get_Stream_Convert_Pragma): New function, replaces the use of
25133 Get_Rep_Pragma, which had to be kludged to work in this case.
25135 * freeze.adb: Use new Has_Rep_Pragma function
25137 * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
25138 function with string.
25139 Use new Has_Rep_Pragma function.
25141 * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
25144 2004-11-18 Robert Dewar <dewar@adacore.com>
25146 * errout.ads, errout.adb: (First_Sloc): New function
25148 * par-ch5.adb (P_Condition): Check for redundant parens is now a style
25149 check (-gnatyx) instead of being included as a redundant construct
25152 * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
25153 Style_Check_Order_Subprograms.
25155 * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
25156 stylesw.adb: Add Style_Check_Xtra_Parens
25158 * usage.adb: Add line for -gnatyx (check extra parens)
25160 * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
25162 2004-11-18 Ed Schonberg <schonberg@adacore.com>
25163 Robert Dewar <dewar@adacore.com>
25165 * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
25166 discriminant of a constrained subtype, analyze the copy of the
25167 corresponding constraint, because in some cases it may be only
25168 partially analyzed.
25169 Removes long-lived ??? comments.
25171 * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
25172 handled controlled or secondary-stack expressions within the
25173 iteration_scheme of a loop.
25175 * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
25176 bounds that may contain functions calls, to prevent memory leaks when
25177 the bound contains a call to a function that uses the secondary stack.
25178 (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
25179 generate temporaries for loop bounds that might contain function calls
25180 that require secondary stack and/or finalization actions.
25182 * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
25183 selected component and the selector is overloadable (not just a
25184 function) treat as function call, Analyze_Call will disambiguate if
25186 (Analyze_Selected_Component): Do not generate an actual subtype for the
25187 selected component if expansion is disabled. The actual subtype is only
25188 needed for constraint checks.
25189 (Analyze_Allocator): If restriction No_Streams is set, then do
25190 not permit objects to be declared of a stream type, or of a
25191 composite type containing a stream.
25193 * restrict.ads: Remove the a-stream entry from Unit_Array, since
25194 No_Streams no longer prohibits with'ing this package.
25196 * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
25197 discriminants, but the parent base has unknown discriminants, there is
25198 no discriminant constraint to inherit. Such a discrepancy can arise
25199 when the actual for a formal type with unknown discriminants is a
25200 similar private type whose full view has discriminants.
25201 (Analyze_Object_Declaration): If restriction No_Streams is set, then
25202 do not permit objects to be declared of a stream type, or of a
25203 composite type containing a stream.
25205 2004-11-18 Ed Schonberg <schonberg@adacore.com>
25207 * exp_dbug.ads: Update documentation to reflect simpler encoding for
25208 protected operations.
25210 * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
25211 generated name, it complicates decoding in gdb and hinders debugging
25212 of protected operations.
25213 (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
25214 flag for the protected entry barrier function.
25215 (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
25216 flag for the protected entry function.
25218 2004-11-18 Nicolas Setton <setton@adacore.com>
25220 * expect.c: Define __unix__ when __APPLE__ is defined.
25222 * Makefile.in: Inform the value of the variable GMEM_LIB in the
25223 Darwin-specific section.
25225 * lang-specs.h: Change the placement of the %1 marker.
25226 Works around the fact that gcc adds -fPIC by default under Darwin.
25228 2004-11-18 Ed Schonberg <schonberg@adacore.com>
25230 * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
25231 type of the object with the packed array type, set the Analyzed flag
25232 on the object if it is an entity or simple indexed component, to avoid
25233 spurious type errors.
25235 2004-11-18 Gary Dismukes <dismukes@adacore.com>
25237 * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
25238 gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
25239 separate line from the version message.
25241 2004-11-18 Ed Falis <falis@adacore.com>
25243 * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
25245 (init_float): Eliminate initialization of floating point status for
25246 AE653. The instructions have no effect for vThreads.
25248 2004-11-18 Vincent Celier <celier@adacore.com>
25250 * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
25251 gnatbind is invoked with -shared.
25253 2004-11-18 Jose Ruiz <ruiz@adacore.com>
25255 * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
25256 for Detect_Blocking which is redundant with the check done within the
25257 procedure Protected_Single_Entry_Call.
25258 (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
25259 Detect_Blocking which is redundant with the check done within the
25260 procedure Protected_Single_Entry_Call.
25262 2004-11-18 Vincent Celier <celier@adacore.com>
25264 * makegpr.adb (Compile): Put the compiling switches (in package
25265 Compiler and on the command line) immediately after "-c", instead of
25266 at the end of the command line invocation of the compiler, when
25267 compiling a non-Ada file.
25268 (Build_Global_Archive): When there is no need to rebuild the archive,
25269 set Global_Archive_Exists, so that the archive is passed to the linker
25272 2004-11-18 Robert Dewar <dewar@adacore.com>
25273 Sergey Rybin <rybin@adacore.com>
25276 Remove extra paren check from list of checks for redundant constructs
25277 Add documentation of new -gnatyx style check (check extra parens)
25278 Remove paragraph about gnatelim debug options.
25280 * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
25281 objects rather than forbidding dependencies on the package Ada.Streams.
25283 * sinfo.ads: Add ??? note that we should document pragmas passed to
25286 * g-expect.ads: Fix a few typos in the comments.
25288 2004-11-09 Joseph S. Myers <joseph@codesourcery.com>
25290 * misc.c (gnat_handle_option): Use %< and %> for quoting in
25293 2004-11-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
25295 * a-numaux-x86.adb (Tan): Fix fdivp syntax.
25297 2004-11-07 Andreas Schwab <schwab@suse.de>
25299 * Makefile.in (install-gnatlib): Remove spurious hyphen.
25301 2004-11-02 Andrew Pinski <pinskia@physics.uc.edu>
25304 * Makefile.in (darwin): Set soext to .dylib.
25306 2004-10-26 Vincent Celier <celier@gnat.com>
25307 Thomas Quinot <quinot@act-europe.fr>
25309 * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
25310 (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
25311 there is no use of GNAT.Sockets.Constants.
25312 Remove remaining pragma Import for C_Write
25313 Remove C_Read and C_Write from internal implementation unit
25314 GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
25315 the read and write functions from the system runtime library is fine
25316 on UNIX but won't work under Windows).
25318 * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
25319 (Check_Selector): Use C_Recv instead of C_Read.
25320 Selectors are the GNAT.Sockets abstraction to perform a select()
25321 call on a set of descriptors. To allow abortion of an ongoing
25322 select operation, some data is written to a dedicated socket that
25323 is always monitored.
25324 Under Windows, the write and read library functions cannot operate
25325 on sockets, so we need to use send and recv instead, which is portable
25326 across all supported platforms.
25328 * g-socthi.ads: Remove C_Read and C_Write from internal implementation
25329 unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
25330 (using the read and write functions from the system runtime library is
25331 fine on UNIX but won't work under Windows).
25333 2004-10-26 Nicolas Setton <setton@act-europe.fr>
25335 * mlib-tgt-darwin.adb: New file.
25337 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25338 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
25339 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
25340 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
25343 * Makefile.in: Add support for building shared libraries under Darwin.
25344 (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
25345 the low level EH init subprogram to be called from __gnat_initialize.
25347 * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
25348 indicates which options to pass to the archive indexer.
25350 * mlib-utl.adb: Add support for calling ranlib with additional
25351 options. This is needed for instance under Mac OS X.
25352 (Ranlib_Options): New global variable, used to store the potential
25353 options to pass to ranlib.
25354 (Ar): Use Ranlib_Options when spawning ranlib.
25355 (Initialize): Set the value of ranlib option.
25357 2004-10-26 Olivier Hainque <hainque@act-europe.fr>
25359 * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
25360 instead of 8K, to reflect the real potential needs for stack-checking
25363 2004-10-26 Pascal Obry <obry@gnat.com>
25365 * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
25367 * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
25368 Windows only the initial thread stack size can be set so it is good to
25369 start we a low stack size.
25370 The OS will adjust the size as needed.
25372 2004-10-26 Olivier Hainque <hainque@act-europe.fr>
25373 Nicolas Setton <setton@act-europe.fr>
25375 * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
25376 "__unix__" instead of "unix".
25377 The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
25378 sections were just mistakenly ignored. The former is
25379 implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
25380 Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
25381 of hpux. This prevents an unwanted definition of the symbol
25382 convert_addresses in adaint.o.
25384 2004-10-26 Gary Dismukes <dismukes@gnat.com>
25386 * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
25387 compatibility with type Unwind_Word on 16-bit targets such as AAMP.
25389 2004-10-26 Cyrille Comar <comar@act-europe.fr>
25391 * a-filico.ads, a-filico.adb: fix incorrect header.
25393 2004-10-26 Javier Miranda <miranda@gnat.com>
25395 * a-ststio.ads: Fix typo in identifier
25397 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
25399 * sem_ch4.adb: Minor reformatting.
25401 2004-10-26 Ed Schonberg <schonberg@gnat.com>
25403 * checks.adb (Expr_Known_Valid): If floating-point validity checks are
25404 enabled, check the result of unary and binary operations when the
25405 expression is the right-hand side of an assignment.
25407 2004-10-26 Vincent Celier <celier@gnat.com>
25409 * clean.adb (Delete): Do not output warnings when in quiet output and
25410 not in verbose mode.
25411 (Force_Deletions): New Boolean flag, defaulted to False
25412 (Delete): Only delete a file if it is writable, and when
25413 Force_Deletions is True.
25414 (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
25415 (Usage): Line for new switch -f
25416 (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
25419 2004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
25421 * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
25422 JM type only if its size matches that of the wrapper. When a size is
25423 prescribed and the field is not aliased, remove the wrapper of a JM
25424 type only if the size is not greater than that of the packed array.
25425 (gnat_to_gnu_entity): Change the extension of packed array wrappers
25428 2004-10-26 Geert Bosch <bosch@gnat.com>
25430 * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
25431 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
25432 (Pred): Implement in terms of Succ.
25434 2004-10-26 Ed Schonberg <schonberg@gnat.com>
25436 * exp_aggr.adb (Safe_Component): An aggregate component that is an
25437 unchecked conversion is safe for in-place use if the expression of the
25438 conversion is safe.
25439 (Expand_Array_Aggregate): An aggregate that initializes an allocator may
25440 be expandable in place even if the aggregate does not come from source.
25441 (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
25442 designated object of an allocator in place, rather than building it
25443 first on the stack. The previous scheme forces a full copy of the array,
25444 and may be altogether unsusable if the size of the array is too large
25445 for stack allocation.
25447 2004-10-26 Robert Dewar <dewar@gnat.com>
25449 * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
25450 compares if the component is atomic.
25452 * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
25453 array assignment if the component type is atomic.
25455 2004-10-26 Ed Schonberg <schonberg@gnat.com>
25456 Eric Botcazou <ebotcazou@act-europe.fr>
25458 * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
25459 is aliased and is a by_reference type, do not pass by copy.
25460 (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
25461 detect whether the call is in the right side of an assignment or
25462 the expression of an object declaration. Recurse on component
25463 association within aggregates.
25464 Call it in the condition that determines whether the temporary is
25465 necessary for correct stack-checking.
25467 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
25469 * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
25470 RACW_Type, used in the PolyORB version.
25471 Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
25472 version and the GARLIC version.
25474 * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
25475 Rename RCI_Info to RCI_Locator for better consistency between the
25476 GARLIC and PolyORB versions of the distributed systems annex.
25477 (DSA_Implementation_Name): This enumeration lists the possible
25478 implementations of the Partition Communication Subsystem for the
25479 Distributed Systems Annex (DSA). The three available implementations
25480 are the dummy stub implementation (No_DSA), and two versions based on
25481 two different distribution runtime libraries: GARLIC and PolyORB. Both
25482 the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
25484 Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
25487 * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
25488 between the GARLIC and PolyORB versions of the distributed systems
25490 Remove RE_Unbounded_Reclaim_Pool since it is unused.
25492 2004-10-26 Gary Dismukes <dismukes@gnat.com>
25494 * gnat1drv.adb: Suppress calling the back end when
25495 Frontend_Layout_On_Target is true.
25497 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
25499 * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
25500 Set_Read_Only): New subprograms.
25501 These new routines allow the user to set or unset the Owner execute
25502 and Owner write permission flags on a file.
25504 * makegpr.adb, mlib.adb, mlib-prj.adb: Use
25505 GNAT.OS_Lib.Set_Executable instead of rolling our own.
25507 2004-10-26 Matthew Gingell <gingell@gnat.com>
25509 * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
25511 2004-10-26 Pascal Obry <obry@gnat.com>
25513 * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
25514 memory before the faulting page we properly test the process read
25515 access for this address using appropriate Win32 routine.
25516 (HPUX sections): guard with "__hpux__" instead of "hpux".
25518 2004-10-26 Robert Dewar <dewar@gnat.com>
25520 * lib-xref.adb (Generate_Reference): Don't complain about reference to
25521 entry parameter if pragma Unreferenced set, since we do not properly
25522 handle the case of multiple parameters.
25524 2004-10-26 Vincent Celier <celier@gnat.com>
25526 * prj-env.adb: (Contains_ALI_Files): New Boolean function
25527 (Ada_Objects_Path.Add): For a library project, add to the object path
25528 the library directory only if there is no object directory or if the
25529 library directory contains ALI files.
25530 (Set_Ada_Paths.Add.Recursive_Add): Ditto
25532 2004-10-26 Vincent Celier <celier@gnat.com>
25534 * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
25535 extension of library projects.
25537 * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
25538 path defaults to ".:<prefix>/lib/gnat".
25539 (Parse): For an extending all project, allow direct import of a project
25540 that is virtually extended.
25542 * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
25543 the specified name is directly imported, return its ID. Otherwise, if
25544 an extension of this project is imported, return the ID of the
25547 2004-10-26 Robert Dewar <dewar@gnat.com>
25549 * s-arit64.adb: (Le3): New function, used by Scaled_Divide
25550 (Sub3): New procedure, used by Scaled_Divide
25551 (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
25552 correct more than one instance of failure to propagate carries
25554 (Double_Divide): Handle overflow case of largest negative number
25555 divided by minus one.
25557 * s-arit64.ads (Double_Divide): Document that overflow can occur in
25558 the case of a quotient value out of range.
25561 2004-10-26 Robert Dewar <dewar@gnat.com>
25563 * s-bitops.adb (Bit_Eq): Remove redundant check.
25565 * s-bitops.ads: Minor comment updates
25566 Change some occurrences of Address to System.Address
25568 * s-carsi8.ads: Fix minor cut-and-paste error in comments
25570 2004-10-26 Ed Schonberg <schonberg@gnat.com>
25572 * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
25573 accessibility check to prefix that is a protected operation.
25575 2004-10-26 Ed Schonberg <schonberg@gnat.com>
25577 * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
25578 empty, post message on stub.
25580 2004-10-26 Ed Schonberg <schonberg@gnat.com>
25581 Javier Miranda <miranda@gnat.com>
25583 * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
25584 current instance appears within a unit that is directly in the context
25586 Used to determine whether the body of the instance should be analyzed
25587 immediately after its spec, to make its subprogram bodies available
25588 for front-end inlining.
25589 (Analyze_Formal_Array_Type): Cleanup condition that checks that range
25590 constraint is not allowed on the component type (AARM 12.5.3(3))
25592 2004-10-26 Cyrille Comar <comar@act-europe.fr>
25594 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
25595 'Storage_Pool): enhance, document & limit detection of non-sharable
25598 * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
25600 * s-pooglo.ads: Add more documentation now that this pool is properly
25603 2004-10-26 Ed Schonberg <schonberg@gnat.com>
25605 * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
25606 or protected type with discriminants, do not constrain the
25607 corresponding record type if the subtype declaration has no
25608 discriminant constraints. This can be the case in source code, or in
25609 the subtype declaration created to rename an actual type within an
25612 2004-10-26 Ed Schonberg <schonberg@gnat.com>
25614 * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
25615 different kind of stub (possibly wrong name for file), do not check
25617 (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
25618 includes call to some function that returns an unconstrained type, do
25621 2004-10-26 Ed Schonberg <schonberg@gnat.com>
25623 * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
25624 appear in the code for the main unit. Dependencies among units in the
25625 context of the main unit are established when those other units are
25626 compiled. Otherwise spurious elaboration constraints can generate
25627 incorrect elaboration circularities.
25629 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
25630 Ed Schonberg <schonberg@gnat.com>
25632 * sem_util.adb (Is_Aliased_View): Defend against the case where this
25633 subprogram is called with a parameter that is not an object name. This
25634 situation arises for some cases of illegal code, which is diagnosed
25635 later, and in this case it is wrong to call Is_Aliased, as that might
25636 cause a compiler crash.
25637 (Explain_Limited_Type): Refine previous fix to include
25638 inherited components of derived types, to provide complete information.
25640 * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
25641 is the prival for a protected object.
25642 It is necessary to mark this entity as a variable, in addition to
25643 flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
25644 modified to avoid checking the Aliased flag on entities that are not
25645 objects. (Checking that flag for non-objects is erroneous and could
25646 lead to a compiler crash).
25648 2004-10-26 Robert Dewar <dewar@gnat.com>
25650 * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
25651 X_Frac = 0.5, then we know that the number X must be positive.
25652 (Succ): Remove the same redundant test, and also fix the primary test
25653 to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
25655 (Decompose): Add fuller comments to spec
25657 2004-10-26 Pascal Obry <obry@gnat.com>
25659 * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
25660 validity (process must have read access). Set to 0 in all other cases.
25661 (STOP_FRAME): Now check for ptr validity to avoid a segmentation
25662 violation on Win32.
25663 (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
25664 segmentation violation.
25666 2004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
25668 * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
25669 whose type is a constructed subtype of an aliased object with an
25670 unconstrained nominal subtype, convert the actual to the constructed
25671 subtype before taking its address.
25673 2004-10-26 Vincent Celier <celier@gnat.com>
25675 * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
25676 (Is_Path_Name_Case_Sensitive): New function
25678 * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
25679 (Base_Name, Simple_Name, Current_Directory, Compose,
25680 Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
25683 2004-10-26 Cyrille Comar <comar@act-europe.fr>
25684 Vasiliy Fofanov <fofanov@act-europe.fr>
25685 Vincent Celier <celier@gnat.com>
25687 * gnat_ugn.texi: Generalize "finding memory problems" section into a
25688 "memory management issues" section and document some of the useful
25689 memory pools provided as part of the GNAT library.
25690 Remove "virtual" from declaration of A::method2 in
25691 the simple example of Ada/C++ mixed system.
25692 Library Projects may be virtually extended: their virtual extensions
25693 are not Library Projects.
25694 Added section on extending project hierarchies.
25696 2004-10-19 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
25698 * adaint.c (__gnat_get_libraries_from_registry): Cast value
25700 (__gnat_portable_spawn): Remove const.
25702 * mingw32.h (MAXPATHLEN): Check for previous definition.
25704 2004-10-17 Matthias Klose <doko@debian.org>
25706 * gnatvsn.ads: Set gnat library version to 4.0.
25708 2004-10-05 Vincent Celier <celier@gnat.com>
25710 * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
25712 2004-10-04 Laurent Guerby <laurent@guerby.net>
25715 * Makefile.in: Define and use RANLIB_FLAGS.
25717 2004-10-04 Pascal Obry <obry@gnat.com>
25719 * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
25720 other x86 platforms).
25722 2004-10-04 Olivier Hainque <hainque@act-europe.fr>
25724 * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
25725 in general and triggers stack alignment adjustment for thread entry
25726 points on targets where this is necessary.
25728 2004-10-04 Bernard Banner <banner@gnat.com>
25731 * Makefile.in: Add section for powerpc linux
25732 Add variant i-vxwork-x86.ads
25734 * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
25736 2004-10-04 Olivier Hainque <hainque@act-europe.fr>
25738 * init.c (__gnat_initialize): Call an Ada subprogram to perform the
25739 table registration calls when need be. Ensures no reference to the crt
25740 ctors symbol are issued in the SJLJ case, which avoids possible
25741 undefined symbol errors in the case of modules to be statically linked
25744 2004-10-04 Javier Miranda <miranda@gnat.com>
25746 * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
25747 in-line the code corresponding to subprogram Analyze_Actuals. In
25748 addition, analyze the actuals only in case of subprogram call.
25750 2004-10-04 Ed Falis <falis@gnat.com>
25752 * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
25754 2004-10-04 Sergey Rybin <rybin@act-europe.fr>
25756 * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
25757 in the documentation.
25759 2004-10-04 Robert Dewar <dewar@gnat.com>
25761 * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
25763 (Analyze_Block_Statement): Add circuitry to detect following dead code
25764 (Check_Unreachable_Code): Handle case of block exit
25766 2004-10-04 Robert Dewar <dewar@gnat.com>
25768 * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
25769 (XMatchD): Avoid warning for Logic_Error call
25771 2004-10-04 Robert Dewar <dewar@gnat.com>
25773 * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
25774 consider expressions buried within a procedure actual to be an actual.
25775 This caused some blowups with uses of packed slices within a procedure
25778 2004-10-04 Robert Dewar <dewar@gnat.com>
25780 * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
25781 longer need to be initialized to zero.
25782 (Get_Simple_Init_Val): Modular packed arrays no longer need to be
25783 initialized to zero.
25785 * checks.adb (Expr_Known_Valid): Packed arrays are now always
25786 considered valid, even if the representation is modular. That's correct
25787 now that we no longer initialize packed modular arrays to zero.
25789 * exp_dbug.ads: Clarify documentation on handling of PAD and JM
25790 suffixes. These are now documented as the only cases in which the
25791 debugger ignores outer records.
25792 Previously, the spec allowed arbitrary suffixes for this purpose.
25793 Change name of LJM to JM for packed array pad records
25794 Create separate section on packed array handling, and add a whole new
25795 set of comments to this section describing the situation with packed
25796 modular types and justification requirements depending on endianness.
25798 2004-10-04 Robert Dewar <dewar@gnat.com>
25800 * a-except.adb: Add a comment for last change
25802 * einfo.ads: Minor spelling correction in comment
25804 * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
25806 * sem_ch11.adb: Fix a case of using | instead of \ for continuation
25809 * sem_util.ads: Minor comment update
25811 2004-10-04 Ed Schonberg <schonberg@gnat.com>
25813 * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
25814 Inline_Always when in Configurable_Run_Time mode.
25816 * sem_prag.adb (Process_Convention): If entity is an inherited
25817 subprogram, apply convention to parent subprogram if in same scope.
25818 (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
25819 when in Configurable_Run_Time mode.
25821 2004-10-04 Ed Schonberg <schonberg@gnat.com>
25823 * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
25824 class_wide type after component list has been inherited.
25826 2004-10-04 Ed Schonberg <schonberg@gnat.com>
25828 * sem_ch12.adb (Check_Generic_Actuals): New predicate
25829 Denotes_Previous_Actual, to handle properly the case of a private
25830 actual that is also the component type of a subsequent array actual.
25831 The visibility status of the first actual is not affected when the
25832 second is installed.
25833 (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
25834 make fully recursive the treatment of formals of packages declared
25836 (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
25837 the above on exit from an instantiation.
25838 (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
25839 current instantiation which is now complete.
25840 (Analyze_Package_Instantiation): No instantiated body is needed if the
25841 main unit is generic. Efficient, and avoid anomalies when a instance
25842 appears in a package accessed through rtsfind.
25844 2004-10-04 Ed Schonberg <schonberg@gnat.com>
25846 * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
25847 do not generate a declaration for a temporary if the call is part of a
25848 library-level instantiation.
25850 2004-10-04 Ed Schonberg <schonberg@gnat.com>
25852 * sem_util.adb (Explain_Limited_Type): Ignore internal components when
25853 searching for a limited component to flag.
25855 * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
25856 expansion of Input, to account for the fact that the implicit call
25857 generated by the attribute reference must freeze the user-defined
25858 stream subprogram. This is only relevant to 'Input, because it can
25859 appear in an object declaration, prior to the body of the subprogram.
25861 * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
25862 expansion can proceed and further errors uncovered.
25863 (Minor clean up): Fix cases of using | instead of \ for continuation
25866 2004-10-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25868 * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
25870 * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
25871 (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
25872 Use gcc_assert and gcc_unreachable.
25874 * decl.c (gnat_to_gnu_entity, case object): Check and process a
25875 specified alignment before validating size.
25876 (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
25877 stripped-down declaration for the type of the inner field when making
25880 * utils.c (finish_record_type): Do not compute the size in units
25881 incrementally. Instead compute it once for the rep clause case.
25882 Use gcc_assert and gcc_unreachable.
25884 2004-10-04 Vincent Celier <celier@gnat.com>
25886 * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
25888 (Is_Valid_Path_Name): Take '/' as a directory separator.
25890 2004-10-04 Vincent Celier <celier@gnat.com>
25892 * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
25893 (Extended_Project) only if Extended_Project is defined, to avoid
25895 (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
25897 (Parse_Single_Project): Ditto.
25899 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
25900 Add_To_Project_Path for virtual projects.
25902 2004-10-04 Vincent Celier <celier@gnat.com>
25904 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25905 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
25906 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
25907 mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
25908 parameter Options_2.
25910 * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
25911 Build_Dynamic_Library with an empty Options_2.
25913 * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
25916 * makegpr.adb (Get_Imported_Directories.add): Remove trailing
25917 directory separator, if any.
25918 (Gprmake): Do not allow mains on the command line for library projects.
25919 Do not attempt to link when the project is a library project.
25920 (Library_Opts): New table to store Library_Options.
25921 (Build_Library): If Library_Options is specified, pass these options
25922 when building a shared library.
25924 2004-10-04 Jose Ruiz <ruiz@act-europe.fr>
25926 * s-tposen.adb (Service_Entry): The object must be always unlocked at
25927 the end of this procedure now that the unlock operation was inserted
25930 2004-10-04 Jose Ruiz <ruiz@act-europe.fr>
25932 * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
25933 corresponding to the Preallocated_Stacks flags in System.
25934 (Get_Target_Parameters): Including the processing for
25935 Preallocated_Stacks.
25937 * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
25938 system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
25939 system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
25940 system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
25941 system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
25942 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
25943 system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
25944 system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
25945 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
25946 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
25947 system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
25948 used to signal whether the compiler creates the required stacks and
25949 descriptors for the different tasks (when True) or it is done by the
25950 underlying operating system at run time (when False).
25951 It is initially set to False in all targets.
25953 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
25954 if it is supported by the target.
25955 (Make_Task_Create_Call): Pass the stack address if it has been
25956 previously created. Otherwise pass a Null_Address.
25958 * snames.adb: Add _stack.
25960 * snames.ads: Add Name_uStack. Required to allow the expander to
25961 statically allocated task stacks.
25963 * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
25964 Stack_Address argument.
25965 Check that its value is equal to Null_Address because this target does
25966 not support the static stack allocation.
25968 2004-10-04 Thomas Quinot <quinot@act-europe.fr>
25970 * usage.adb: Change "pragma inline" to "pragma Inline" in information
25973 2004-10-04 Thomas Quinot <quinot@act-europe.fr>
25975 * exp_dist.adb: Split declaration of asynchronous flag out of
25976 Add_RACW_Read_Attribute.
25977 Minor reformatting for better alignment with PolyORB version.
25978 Store the entity for the asynchronous flag of an RACW, rather than the
25979 expression, in the asynchronous flags table. This will allow this flag
25980 to be used in other subprograms beside Add_RACW_Read_Attribute.
25982 2004-10-04 Thomas Quinot <quinot@act-europe.fr>
25984 * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
25985 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
25986 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
25987 g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
25988 g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads: Add new
25989 sockets constant MSG_NOSIGNAL (Linux-specific).
25990 Add new sockets constant MSG_Forced_Flags, list of flags to be set on
25991 all Send operations.
25992 For Linux, set MSG_NOSIGNAL on all send operations to prevent them
25993 from trigerring SIGPIPE.
25994 Rename components to avoid clash with Ada 2005 possible reserved
25996 (Check_Selector): When the select system call returns with an error
25997 condition, propagate Socket_Error to the caller.
25999 2004-10-01 Jan Hubicka <jh@suse.cz>
26001 * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
26003 2004-09-23 Robert Dewar <dewar@gnat.com>
26006 * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
26007 instead do this at freeze time (we won't do it if there is an address
26009 Change "pragma inline" to "pragma Inline" in information and error
26011 Minor reformatting.
26013 * freeze.adb (Check_Address_Clause): Remove previous change, not the
26014 right way of doing things after all.
26015 (Freeze_Entity): For object, set Is_Public for imported entities
26016 unless there is an address clause present.
26018 2004-09-21 Olivier Hainque <hainque@act-europe.fr>
26020 * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
26021 dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
26022 ensures proper handling of types with rep clauses, which might have
26023 their TYPE_SIZE set already.
26025 2004-09-21 Robert Dewar <dewar@gnat.com>
26027 * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
26028 packed array types in both little- and big-endian cases. This change
26029 ensures that we no longer count on the unused bits being initialized
26030 for such types (and in particular ensures that equality testing will
26031 only read the relevant bits).
26032 Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
26033 These changes mean that we no longer need to initialize small packed
26035 (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
26036 optimization to an LJM field as to its parent field.
26038 * ada-tree.h, trans.c, utils.c, utils2.c:
26039 Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
26041 2004-09-20 Jan Hubicka <jh@suse.cz>
26043 * utils.c (gnat_finalize): Remove.
26044 (end_subprog_body): Directly call cgraph_finalize_function;
26045 do not lower the nested functions.
26047 2004-09-20 Robert Dewar <dewar@gnat.com>
26050 * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
26051 if an address clause is present, since that means that the Import
26054 2004-09-20 Arnaud Charlet <charlet@act-europe.fr>
26056 * 5tsystem.ads: Removed, no longer used.
26058 2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
26059 Zack Weinberg <zack@codesourcery.com>
26061 * ada-tree.def: Use tree_code_class enumeration constants
26062 instead of code letters.
26063 * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
26064 Update for new tree-class enumeration constants.
26066 2004-09-17 Vincent Celier <celier@gnat.com>
26068 * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
26069 capabilities of the general project manager.
26071 2004-09-09 Vincent Celier <celier@gnat.com>
26073 * a-direct.ads: Add pragma Ada_05
26074 (Directory_Entry_Type): Give default value to component Kind to avoid
26075 not initialized warnings.
26077 * a-direct.adb (Current_Directory): Remove directory separator at the
26079 (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
26080 an existing directory.
26081 (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
26082 (Size (String)): Function C_Size returns Long_Integer, not File_Size.
26083 Convert the result to File_Size.
26085 * prj.ads: (Project_Error): New exception
26087 * prj-attr.adb: Except in procedure Initialize, Fail comes from
26088 Prj.Com, not from Osint.
26089 (Attrs, Package_Attributes): Tables moved to private part of spec
26090 (Add_Attribute, Add_Unknown_Package): Moved to new child package
26092 (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
26093 Prj.Project_Error after call to Fail.
26094 (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
26095 Fail. Check that package name is not already in use.
26097 * prj-attr.ads: Comment updates to indicate that all subprograms may be
26098 used by tools, not only by the project manager, and to indicate that
26099 exception Prj.Prj_Error may be raised in case of problem.
26100 (Add_Unknown_Package, Add_Attribute): Moved to new child package
26102 (Attrs, Package_Attributes): Table instantiations moved from the body to
26103 the private part to be accessible from Prj.Attr.PM body.
26105 * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
26106 from new package Prj.Attr.PM.
26107 (Parse_Attribute_Declaration): Call Add_Attribute from new package
26110 * Makefile.in: Add prj-attr-pm.o to gnatmake object list
26112 * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
26113 instead of Elaboration_Checks).
26115 * a-calend.adb: Minor reformatting
26117 2004-09-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26119 * gigi.h (maybe_pad_type): New declaration.
26120 (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
26122 * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
26124 * cuintp.c: Convert to use buildN.
26126 * decl.c (maybe_pad_type): No longer static.
26127 (gnat_to_gnu_entity, case E_Function): Handle case of returning by
26129 Convert to use buildN.
26131 * trans.c (call_to_gnu): Add arg GNU_TARGET; support
26132 TYPE_RETURNS_BY_TARGET_PTR_P. All callers changed.
26133 (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
26135 (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
26136 (gnat_gimplify_expr, case ADDR_EXPR): New case.
26137 Convert to use buildN.
26139 * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
26140 TREE_READONLY for const.
26141 Convert to use buildN.
26143 * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
26144 (create_var_decl): Refine when TREE_STATIC is set.
26145 Convert to use buildN.
26147 2004-09-09 Gary Dismukes <dismukes@gnat.com>
26149 * gnat_ugn.texi: Delete text relating to checking of ali and object
26152 * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
26155 2004-09-09 Jose Ruiz <ruiz@act-europe.fr>
26157 * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
26158 pragmas recognized by GNAT.
26160 * gnat_rm.texi: Document pragma Detect_Blocking.
26162 * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
26163 raise Program_Error if called from a protected operation.
26165 * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
26166 the protected action nesting level.
26167 (Lock_Read_Only): When pragma Detect_Blocking is active increase the
26168 protected action nesting level.
26169 (Unlock): When pragma Detect_Blocking is active decrease the protected
26170 action nesting level.
26172 * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
26173 Protected_Action_Nesting.
26175 * s-taskin.ads: Adding the field Protected_Action_Nesting to the
26176 Common_ATCB record. It contains the dynamic level of protected action
26177 nesting for each task. It is needed for checking whether potentially
26178 blocking operations are called from protected operations.
26179 (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
26180 Detect_Blocking is active or not in the partition.
26182 * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
26183 raise Program_Error if called from a protected operation.
26184 (Task_Entry_Call): When pragma Detect_Blocking is active, raise
26185 Program_Error if called from a protected operation.
26186 (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
26187 Program_Error if called from a protected operation.
26189 * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
26190 raise Program_Error if called from a protected operation.
26192 * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
26193 raise Program_Error if called from a protected operation, and increase
26194 the protected action nesting level.
26195 (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
26196 Program_Error if called from a protected operation, and increase the
26197 protected action nesting level.
26198 (Unlock_Entries): When pragma Detect_Blocking is active decrease the
26199 protected action nesting level.
26201 * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
26202 raise Program_Error if called from a protected operation, and increase
26203 the protected action nesting level.
26204 (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
26205 Program_Error if called from a protected operation, and increase the
26206 protected action nesting level.
26207 (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
26208 raise Program_Error if called from a protected operation.
26209 (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
26210 active, raise Program_Error if called from a protected operation.
26211 (Unlock_Entry): When pragma Detect_Blocking is active decrease the
26212 protected action nesting level.
26214 * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
26215 insertion of the statement raising Program_Error. The run time
26216 contains the required machinery for handling that.
26218 * sem_util.ads: Change comment associated to procedure
26219 Check_Potentially_Blocking_Operation.
26220 This procedure does not insert a call for raising the exception because
26221 that is currently done by the run time.
26223 * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
26225 * init.c: Add the global variable __gl_detect_blocking that indicates
26226 whether pragma Detect_Blocking is active (1) or not (0). Needed for
26227 making the pragma available at run time.
26228 (__gnat_set_globals): Pass and update the detect_blocking parameter.
26230 * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
26231 pragma Detect_Blocking is active.
26233 * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
26235 * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
26236 DB is found in the ali file. Any unit compiled with pragma
26237 Detect_Blocking active forces its effect in the whole partition.
26239 * a-retide.adb (Delay_Until): Raise Program_Error if pragma
26240 Detect_Blocking is active and delay is called from a protected
26243 * bindgen.adb (Gen_Adainit_Ada): When generating the call to
26244 __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
26245 Detect_Blocking is active (0 otherwise).
26246 (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
26247 as Detect_Blocking parameter if pragma Detect_Blocking is active (0
26250 2004-09-09 Thomas Quinot <quinot@act-europe.fr>
26252 * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
26253 GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
26256 * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
26257 (Register_Receiving_Stub): Add Subp_Info formal parameter.
26258 Update API in placeholder implemetation of s-parint to reflect changes
26259 in distribution runtime library.
26261 * sem_ch3.adb (Expand_Derived_Record): Rename to
26262 Expand_Record_Extension.
26264 * sem_disp.adb (Check_Controlling_Formals): Improve error message for
26265 primitive operations of potentially distributed object types that have
26266 non-controlling anonymous access formals.
26268 * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
26270 New implementation of expansion for remote access-to-subprogram types,
26271 based on the RACW infrastructure.
26272 This version of sem_dist is compatible with PolyORB/DSA as well as
26275 * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
26276 Asynchrronous that applies to a remote access-to-subprogram type, mark
26277 the underlying RACW type as asynchronous.
26279 * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
26280 __gnat_using_gnu_linker to 1.
26282 * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
26283 g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
26284 GNAT.Perfect_Hash_Generators, and remove the empty
26285 GNAT.Perfect_Hash package.
26287 * atree.adb: Minor reformatting
26289 * exp_ch3.adb (Expand_Derived_Record): Rename to
26290 Expand_Record_Extension.
26291 (Build_Record_Init_Proc.Build_Assignment): The default expression in
26292 a component declaration must remain attached at that point in the
26293 tree so New_Copy_Tree copies it if the enclosing record type is derived.
26294 It is therefore necessary to take a copy of the expression when building
26295 the corresponding assignment statement in the init proc.
26296 As a side effect, in the case of a derived record type, we now see the
26297 original expression, without any rewriting that could have occurred
26298 during expansion of the ancestor type's init proc, and we do not need
26299 to go back to Original_Node.
26301 * exp_ch3.ads (Expand_Derived_Record): Rename to
26302 Expand_Record_Extension.
26304 * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
26305 Returns the RACW type used to implement a remote access-to-subprogram
26307 (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
26308 New subprograms. Used to create a proxy tagged object for a remote
26309 subprogram. The proxy object is used as the designated object
26310 for RAS values on the same partition (unless All_Calls_Remote applies).
26311 (Build_Get_Unique_RP_Call): New subprogram. Build a call to
26312 System.Partition_Interface.Get_Unique_Remote_Pointer.
26313 (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
26314 Renamed from Add_RAS_*_Attribute.
26315 (Add_Receiving_Stubs_To_Declarations): Generate a table of local
26317 New implementation of expansion for remote access-to-subprogram types,
26318 based on the RACW infrastructure.
26320 * exp_dist.ads (Copy_Specification): Update comment to note that this
26321 function can copy the specification from either a subprogram
26322 specification or an access-to-subprogram type definition.
26324 2004-09-09 Ed Schonberg <schonberg@gnat.com>
26326 * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
26327 in an instance, between an explicit subprogram an one inherited from a
26328 type derived from an actual.
26330 * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
26331 add a polling call if the subprogram is to be inlined by the back-end,
26332 to avoid repeated calls with multiple inlinings.
26334 * checks.adb (Apply_Alignment_Check): If the expression in the address
26335 clause is a call whose name is not a static entity (e.g. a dispatching
26336 call), treat as dynamic.
26338 2004-09-09 Robert Dewar <dewar@gnat.com>
26340 * g-trasym.ads: Minor reformatting
26342 * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
26343 packed arrays, since unused bits are expected to be zero for a
26346 2004-09-09 Eric Botcazou <ebotcazou@act-europe.fr>
26348 * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
26351 2004-09-09 Pascal Obry <obry@gnat.com>
26353 * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
26354 enable map file generation. Add the right option to generate the map
26355 file if Map_File is set to True.
26357 * gnatdll.adb (Gen_Map_File): New variable.
26358 (Syntax): Add info about new -m (Map_File) option.
26359 (Parse_Command_Line): Add support for -m option.
26360 (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
26361 Minor reformatting.
26363 2004-09-09 Laurent Pautet <pautet@act-europe.fr>
26365 * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
26366 new gnatdist implementation.
26367 Define a subpackage isolating the output routines specific to this
26370 2004-09-09 Joel Brobecker <brobecker@gnat.com>
26372 * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
26374 * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
26376 2004-09-09 Cyrille Comar <comar@act-europe.fr>
26378 * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
26381 * opt.ads: Add Ada_Version_Runtime constant used to decide which
26382 version of the language is used to compile the run time.
26384 2004-09-09 Arnaud Charlet <charlet@act-europe.fr>
26386 * sem_util.adb (Requires_Transient_Scope): Re-enable handling
26387 of variable length temporaries for function return now that the
26388 back-end and gigi support it.
26390 2004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26392 * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
26394 * trans.c (struct stmt_group): Delete field GLOBAL.
26395 (gnat_init_stmt_group): Do not initialize it.
26396 (call_to_gnu): Use save_expr, not protect_multiple_eval.
26397 (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
26398 (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
26399 (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
26400 (start_stmt_group): Likewise.
26401 (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
26403 * utils2.c (ggc.h): Include.
26404 (build_call_raise): Call build_int_cst, not build_int_2.
26406 * utils.c (gnat_init_decl_processing): Fix arg to
26407 build_common_tree_nodes.
26408 (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
26409 (gnat_define_builtin): Set built_in_decls.
26410 (init_gigi_decls): Call build_int_cst, not build_int_2.
26412 * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
26413 (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
26414 (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
26415 (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
26416 SET_TYPE_MODULE): Use them.
26417 (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
26418 (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
26419 (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
26420 SET_TYPE_ADA_SIZE): Likewise.
26421 (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
26422 (DECL_CONST_CORRESPONDING_VAR,
26423 SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
26424 (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
26425 (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
26426 (TYPE_RM_SIZE_NUM): New macro.
26427 (TYPE_RM_SIZE): Modified to use above.
26429 * cuintp.c: (build_cst_from_int): New function.
26430 (UI_To_gnu): Use it.
26432 * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
26433 (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
26434 (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
26435 MIN_EXPR for the size, copy it into new.
26437 2004-09-01 Robert Dewar <dewar@gnat.com>
26439 * exp_ch6.adb (Expand_Call): Properly handle validity checks for
26440 packed indexed component where array is an IN OUT formal. This
26441 generated garbage code previously.
26443 * gnat_ugn.texi: Document -fverbose-asm
26445 * gnat-style.texi: Minor updates (note that boolean constants and
26446 variables are joined with AND/OR rather than short circuit forms).
26448 2004-09-01 Ed Schonberg <schonberg@gnat.com>
26450 * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
26451 it is an upward conversion of an untagged type with no representation
26454 2004-09-01 Thomas Quinot <quinot@act-europe.fr>
26456 * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
26457 System.Partition_Interface.
26459 * checks.adb (Apply_Access_Checks): Do not generate checks when
26460 expander is not active (but check for unset reference to prefix of
26463 * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
26464 pragma Debug as an if statement with a constant condition, for
26465 consistent treatment of entity references contained within the
26466 enclosed procedure call.
26468 2004-09-01 Vincent Celier <celier@gnat.com>
26470 * bindgen.adb: (Set_EA_Last): New procedure
26471 (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
26473 (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
26474 (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
26475 linked without errors.
26476 (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
26478 (Gen_Exception_Table_C): Correct same bugs
26480 * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
26482 * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
26483 on Windows, make sure that the drive letter is in upper case.
26485 * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
26486 Windows, when the drive letter is added and Case_Sensitive is True, the
26487 drive letter is forced to upper case.
26489 * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
26490 to Options_2 for the call to MLib.Utl.Gcc.
26492 * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
26493 directory separator when defining BASE_DIR.
26495 2004-09-01 Pascal Obry <obry@gnat.com>
26497 * gprcmd.adb (Extend): Do not output trailing directory separator. This
26498 is not needed and it confuses Windows GNU/make which does not report
26499 directory terminated by a slash as a directory.
26500 (gprcmd): Idem for "pwd" internal command.
26502 * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
26503 target names rewrite to fix regressions with recent version of
26504 GNU/make. Starting with GNU/make 3.80 the pipe character was not
26505 handled properly anymore.
26507 2004-09-01 Andreas Schwab <schwab@suse.de>
26509 * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
26510 * raise.c [!IN_RTS]: Undef abort.
26512 2004-08-27 Nathan Sidwell <nathan@codesourcery.com>
26514 * utils2.c (build_allocator): Use ssize_int.
26516 * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
26518 2004-08-27 Andreas Schwab <schwab@suse.de>
26520 * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
26522 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
26523 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26525 * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
26527 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
26529 * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
26530 * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
26531 * utils.c (init_gigi_decls): Likewise.
26532 * utils2.c (build_call_raise, build_allocator): Likewise.
26534 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
26536 * utils.c (gnat_init_decl_processing): Adjust
26537 build_common_tree_nodes call.
26539 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
26541 * utils2.c (build_allocator): Use build_int_cst for negative
26544 2004-08-18 Richard Henderson <rth@redhat.com>
26546 * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
26548 2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
26550 * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
26552 * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
26553 (gnat_to_gnu): Likewise.
26555 2004-08-16 Pascal Obry <obry@gnat.com>
26557 * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
26558 backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
26559 option and not mdll anymore. Update comment.
26561 2004-08-16 Pascal Obry <obry@gnat.com>
26563 * bld.adb (Put_Include_Project): Properly handle directory separators
26566 2004-08-16 Ed Schonberg <schonberg@gnat.com>
26568 * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
26569 decreasing the number of allocated junk nodes while searching for the
26570 appropriate subprogram.
26572 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
26574 * cuintp.c (UI_To_gnu): Use build_int_cst..
26575 * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
26576 * utils.c (init_gigi_decls): Likewise.
26577 * utils2.c (build_call_raise): Likewise.
26579 2004-08-13 Olivier Hainque <hainque@act-europe.fr>
26581 * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
26582 for a global aliased object with a variable size and an unconstrained
26583 nominal subtype, pretend there is no initializer if the one we have is
26584 incomplete, and avoid referencing an inexistant component in there. The
26585 part we have will be rebuilt anyway and the reference may confuse
26586 further operations.
26588 2004-08-13 Thomas Quinot <quinot@act-europe.fr>
26590 * einfo.ads: Minor reformatting
26592 * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
26593 restrictions in the ALI if we only want to warn about violations.
26595 2004-08-13 Vincent Celier <celier@gnat.com>
26597 * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
26598 when creating a new Unit_Record in table Units.
26600 * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
26601 that are violated, if any.
26603 * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
26604 add directory separator if path already ends with a directory separator.
26606 2004-08-13 Ed Schonberg <schonberg@gnat.com>
26608 * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
26609 unit, this is an attempt to inline a construct that is not available in
26610 the current restricted mode, so abort rather than trying to continue.
26612 * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
26613 discriminants that rename those of the parent, recover names of
26614 original discriminants for the constraint on the full view of the
26616 (Complete_Private_Subtype): Do not create a subtype declaration if the
26617 subtype is an itype.
26619 * gnat_rm.texi: Added section on implementation of discriminated
26620 records with default values for discriminants.
26622 2004-08-13 Ed Schonberg <schonberg@gnat.com>
26625 * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
26626 the second operand is overloaded.
26628 2004-08-10 Richard Henderson <rth@redhat.com>
26630 * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
26631 add __builtin_alloca.
26633 2004-08-10 Richard Henderson <rth@redhat.com>
26635 * config-lang.in (boot_language): Yes.
26637 2004-08-09 Thomas Quinot <quinot@act-europe.fr>
26639 * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
26640 from complaining on potential uninitialized reference.
26641 Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
26642 new specification and test explicitly for non-zero return value.
26644 * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
26645 returning C.int, to avoid using a derived boolean type.
26647 * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
26648 Duplicate_Subexpr_No_Checks in preference to direct use of
26649 Remove_Side_Effects and New_Copy_Tree.
26650 Clear Comes_From_Source on prefix of 'Size attribute reference.
26652 * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
26653 g-socthi-vxworks.adb: Change calls to
26654 GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
26655 and test explicitly for non-zero return value.
26657 * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
26658 (Is_Socket_In_Set): Declare imported function as returning C.int, to
26659 avoid using a derived boolean type.
26661 2004-08-09 Albert Lee <lee@gnat.com>
26663 * system-irix-n32.ads: Refine tasking priority constants for IRIX.
26665 2004-08-09 Pascal Obry <obry@gnat.com>
26667 * gnat_ugn.texi: Document new way to build DLLs on Windows using
26668 GCC's -shared option.
26670 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
26671 Options_2 parameter (options put after object files).
26673 2004-08-09 Olivier Hainque <hainque@act-europe.fr>
26675 * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
26676 ignore overflows on low and high bounds of an index to also account for
26677 differences in signedness between sizetype and gnu_index_subtype.
26678 These are as legitimate as the ones caused by a lower TYPE_PRECISION
26681 2004-08-09 Robert Dewar <dewar@gnat.com>
26683 * s-solita.ads, s-solita.adb: Minor reformatting
26685 * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
26686 Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
26687 obsolescent section
26688 Add note that No_Implicit_Conditionals does not suppress
26689 run time constraint checks.
26691 * vms_conv.ads: Minor reformatting
26693 * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
26694 and necessary for following change).
26695 (Mark): Return new format Mark_Id containing sec stack address
26696 (Release): Use sec stack address from Mark_Id avoiding Self call
26698 * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
26699 pointer (cleanup and necessary for following change).
26700 Define Mark_Id as record containing address of secondary stack, that way
26701 Release does not need to find the stack again, decreasing the number of
26702 calls to Self and improving efficiency.
26704 * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
26706 * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
26707 case variable into the individual case branches when possible.
26709 * sem_ch11.adb: Minor reformatting
26711 * prj.ads: Correct spelling of suffixs
26713 * prj-nmsc.adb: Minor reformatting
26714 Correct spelling suffixs throughout (also in identifiers)
26716 * freeze.adb: Minor spelling correction
26718 * exp_ch2.adb: Cleanups to handling of Current_Value
26719 (no functional effect).
26721 * bld.adb: Correct spelling of suffixs
26723 * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
26725 2004-08-09 Ed Schonberg <schonberg@gnat.com>
26728 * sem_ch7.adb (Install_Private_Declarations): In the body of the
26729 package or of a child, private entities are both immediately_visible
26732 2004-08-09 Ed Schonberg <schonberg@gnat.com>
26734 * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
26735 there are no range checks on the value of the literal.
26737 * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
26738 wrapped is the triggering alternative of an asynchronous select, action
26739 statements mustbe inserted before the select itself.
26741 * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
26742 case where the prefix is a protected function call.
26743 (Resolve_Attribute, case 'Access): The attribute reference on a
26744 subprogram is legal in a generic body if the subprogram is declared
26747 2004-08-09 Vincent Celier <celier@gnat.com>
26749 * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
26750 languages, otherwise building the library may fail with unresolved
26752 (Compile_Sources): Do not build libraries if -c switch is used
26754 * gnatlink.adb (Process_Args): New switches -M and -Mmap
26755 (Write_Usage): If map file creation is supported, output new switches
26757 (Gnatlink): When -M is specified, add the necessary switch(es) to the
26758 gcc call, when supported.
26760 * Makefile.in: Added indepsw.o to the object list for gnatlink
26761 Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
26763 * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
26764 indepsw.adb, indepsw.ads: New files.
26766 2004-08-09 Bernard Banner <banner@gnat.com>
26768 * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
26770 * Makefile.in: add section for vxworks x86
26772 2004-08-09 Hristian Kirtchev <kirtchev@gnat.com>
26774 * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
26775 per-object constrained components where the discriminant is of an
26777 (Build_Record_Init_Proc): Add condition to prevent the inheritance of
26778 the parent initialization procedure for derived Unchecked_Unions.
26779 Instead, derived Unchecked_Unions build their own initialization
26781 (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
26782 Check the body of the subprogram for details.
26783 (Freeze_Record_Type): Prevent the inheritance of discriminant checking
26784 functions for derived Unchecked_Union types by introducing a condition.
26785 Allow the creation of TSS equality functions for Unchecked_Unions.
26786 (Make_Eq_Case): Rename formal parameter Node to E in function signature.
26787 Add formal parameter Discr to function signature. Discr is used to
26788 control the generated case statement for Unchecked_Union types.
26789 (Make_Eq_If): Rename formal parameter Node to E in function signature.
26791 * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
26793 Check the body of the subprogram for details.
26794 (Expand_Composite_Equality): Augment composite type equality to include
26795 correct handling of Unchecked_Union components.
26796 (Expand_N_In): Add condition to detect illegal membership tests when the
26797 subtype mark is a constrained Unchecked_Union and the expression lacks
26798 inferable discriminants, and build a Raise_Program_Error node.
26799 (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
26800 to detect types that contain components of unconstrained Unchecked_Union
26801 subtype. Add condition to detect equality between types that have an
26802 unconstrained Unchecked_Union component, and build a Raise_Program_Error
26803 node. Add condition to detect equality between Unchecked_Union types
26804 that lack inferable discriminants, and build a Raise_Program_Error node.
26805 Otherwise build a TSS equality function call.
26806 (Expand_N_Type_Conversion): Add condition to detect illegal conversions
26807 from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
26808 with the operand lacking inferable discriminants, and build a Raise_
26809 Program_Error node.
26810 (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
26811 composite equality.
26812 (Has_Inferable_Discriminants): Implement new predicate for objects and
26813 expressions of Unchecked_Union type. Check the body of subprogram for
26815 (Has_Unconstrained_UU_Components): Add function
26816 Component_Is_Unconstrained_UU. It is used to detect whether a single
26817 component is of an unconstrained Unchecked_Union subtype. Add function
26818 Variant_Is_Unconstrained_UU. It is used to detect whether a single
26819 component inside a variant is of an unconstrained Unchecked_Union type.
26821 * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
26822 inferred discriminant values. Add condition to generate a case
26823 statement with an inferred discriminant as the switch.
26824 (Make_Component_List_Assign): Introduce a Boolean flag that determines
26825 the behaviour of the subprogram in the presence of an Unchecked_Union.
26826 Add condition to trigger the usage of the inferred discriminant value
26827 as the generated case statement switch.
26828 (Make_Field_Assign): Introduce a Boolean flag that determines the
26829 behaviour of the subprogram in the presence of an Unchecked_Union. Add
26830 condition to trigger the usage of the inferred discriminant value as
26831 the right-hand side of the generated assignment.
26833 * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
26834 parameter generation when dealing with Unchecked_Unions.
26836 * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
26837 checks for Unchecked_Unions.
26839 * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
26841 * exp_attr.adb (Expand_N_Attribute_Reference): Produce
26842 Raise_Program_Error nodes for the execution of Read and Write
26843 attributes of Unchecked_Union types and the execution of Input and
26844 Output attributes of Unchecked_Union types that lack default
26845 discriminant values.
26847 * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
26848 Unchecked_Union. Add procedure Check_Component. It is used to inspect
26849 per-object constrained components of Unchecked_Unions for being
26850 Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
26851 check individual components withing a variant.
26853 * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
26854 comparison of Unchecked_Unions.
26855 (Resolve_Equality_OP): Remove guard that prevents equality between
26858 * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
26859 of component subtypes for Unchecked_Union components.
26860 (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
26861 since it is the actual subtype.
26863 * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
26864 pass of Unchecked_Union subtypes as generic actuals to formal types
26865 that lack known_discriminant_parts or that are derived Unchecked_Union
26866 types, and do nothing. In any other case, produce an error message.
26868 * sem_ch3.adb (Analyze_Component_Declaration): Add function
26869 Contains_POC. It determines whether a constraint uses the discriminant
26870 of an enclosing record type.
26871 Add condition to detect per-object constrained component and set the
26873 (Derived_Type_Declaration): Remove guard that prevents derivation from
26874 Unchecked_Union types.
26875 (Process_Subtype): Remove quard that prevents the creation of Unchecked_
26878 * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
26879 references to Unchecked_Union discriminants.
26881 * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
26882 formal generation when dealing with Unchecked_Unions.
26883 (Set_Actual_Subtypes): Add condition to prevent generation of actual
26884 subtypes for Unchecked_Unions.
26886 * sem_ch7.adb (Analyze_Package_Specification): Add procedure
26887 Inspect_Unchecked_Union_Completion. It is used to detect incorrect
26888 completions of discriminated partial views by Unchecked_Unions and
26889 produce an error message.
26891 2004-08-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26893 * trans.c (struct stmt_group): New field, GLOBAL.
26894 (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
26895 (struct elab_info): New struct.
26896 (elab_info_list, gnu_elab_proc_stack): New variables.
26897 (Compilation_Unit_to_gnu): New procedure.
26898 (gigi): Call it and also handle elaboration procs we've saved.
26899 (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
26900 global field from parent.
26901 (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
26902 (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
26903 (start_stmt_group): Initialize global field from parent.
26904 (add_decl_expr): Set to global for current statement group.
26905 (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
26908 * utils.c (global_bindings_p): True when no current_function_decl; no
26909 longer check current_binding_level.
26911 2004-08-09 Ben Brosgol <brosgol@gnat.com>
26913 * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
26916 * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
26918 2004-08-06 Andreas Schwab <schwab@suse.de>
26920 * utils.c (gnat_define_builtin): Remove second parameter of
26922 (begin_subprog_body): Likewise.
26924 2004-07-26 Arnaud Charlet <charlet@act-europe.fr>
26926 * sem_util.adb (Requires_Transient_Scope): Temporarily disable
26927 optimization, not supported by the tree-ssa back-end.
26929 2004-07-26 Olivier Hainque <hainque@act-europe.fr>
26931 * s-mastop-irix.adb: Update comments.
26933 * a-except.adb (Exception_Information): Raise Constraint_Error if
26934 exception Id is Null_Id.
26935 This is required behavior, which is more reliably and clearly checked
26936 at the top level interface level.
26938 2004-07-26 Javier Miranda <miranda@gnat.com>
26940 * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
26941 call if a component has no default_expression and the box is used.
26943 * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
26944 default_expression and you use box, it behaves as if you had declared a
26945 stand-alone object.
26946 (Resolve_Record_Aggregate): If a component has no default_expression and
26947 you use box, it behaves as if you had declared a stand-alone object.
26949 * sem_ch10.adb (Install_Siblings): Do not make visible the private
26950 entities of private-with siblings.
26952 2004-07-26 Ed Schonberg <schonberg@gnat.com>
26954 * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
26955 for a component of an itype, set the parent pointer for analysis,
26956 there is no list in which to insert it.
26958 * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
26959 bona-fide renamings, not for inherited operations.
26961 * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
26962 actual for a formal that is an access parameter, create local
26963 finalization list even if the expression is not an aggregate.
26965 2004-07-26 Ed Schonberg <schonberg@gnat.com>
26968 * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
26969 Diagnose properly illegal subprogram renamings that are library units.
26971 2004-07-26 Ed Schonberg <schonberg@gnat.com>
26974 * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
26975 conversion rewritten as an unchecked conversion, check that original
26976 expression is a variable.
26978 * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
26979 unchecked_conversion, create new node rather than rewriting in place,
26980 to preserve original construct.
26982 2004-07-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26984 * gigi.h (gnat_expand_body): Deleted.
26986 * Make-lang.in: (trans.o): Depends on function.h.
26988 * misc.c: (gnat_expand_body): Moved to here.
26990 * trans.c (gnat_expand_body_1): Deleted.
26991 (gnat_expand_body): Moved from here.
26992 (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
26993 (add_stmt): Check for marked visited with global_bindings_p.
26994 (gnat_gimplify_expr, case COMPONENT_REF): New case.
26995 (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
26997 * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
26998 VIEW_CONVERT_EXPR if not operation type.
27000 * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
27003 * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
27004 changes: reformatting of negation operators, removing unneeded
27005 inequality comparison with zero, converting equality comparisons with
27006 zero to negations, changing int/0/1 to bool/false/true, replace calls
27007 to gigi_abort with abort, and various other similar changes.
27009 2004-07-26 Vincent Celier <celier@gnat.com>
27011 * gnatcmd.adb (GNATCmd): Add processing for new built-in command
27014 * make.adb (Gnatmake): Fail when a library is not present and there is
27015 no object directory.
27017 * mlib-prj.adb (Check_Library): No need to check if the library needs
27018 to be rebuilt if there is no object directory, hence no object files
27019 to build the library.
27021 * opt.ads (Setup_Projects): New Boolean flag.
27023 * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
27025 Create directory when Kind /= "" and in "gnat setup". Report error if
27026 directory cannot be created.
27027 (Ada_Check): Create library interface copy dir if it does not exist
27028 and we are in "gnat setup".
27029 (Find_Sources): No error if in "gnat setup" and no Ada sources were
27031 (Language_Independent_Check): Create object directory, exec directory
27032 and/or library directory if they do not exist and we are in
27035 * vms_conv.ads: (Command_Type): New command Setup.
27037 * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
27039 * vms_data.ads: Add qualifiers/switches for new built-in command
27042 2004-07-25 Richard Henderson <rth@redhat.com>
27044 * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
27045 DECL_IGNORED_P on RESULT_DECL.
27047 2004-07-20 Olivier Hainque <hainque@act-europe.fr>
27049 * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
27050 allocation and potentially overflowing update with
27051 Tailored_Exception_Information. Use the sec-stack free procedural
27052 interface to output Exception_Information instead.
27054 * a-except.adb (To_Stderr): New subprogram for character, and string
27055 version moved from a-exextr to be visible from other separate units.
27056 (Tailored_Exception_Information): Remove the procedural version,
27057 previously used by the default Last_Chance_Handler and not any more.
27058 Adjust various comments.
27060 * a-exexda.adb: Generalize the exception information procedural
27061 interface, to minimize the use of secondary stack and the need for
27062 local buffers when the info is to be output to stderr:
27063 (Address_Image): Removed.
27064 (Append_Info_Character): New subprogram, checking for overflows and
27065 outputing to stderr if buffer to fill is of length 0.
27066 (Append_Info_String): Output to stderr if buffer to fill is of length 0.
27067 (Append_Info_Address, Append_Info_Exception_Name,
27068 Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
27069 Append_Info_Basic_Exception_Traceback,
27070 Append_Info_Exception_Information): New subprograms.
27071 (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
27072 (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
27073 Exception_Info_Maxlength, Exception_Name_Length,
27074 Exception_Message_Length): New subprograms.
27075 (Exception_Information): Use Append_Info_Exception_Information.
27076 (Tailored_Exception_Information): Use
27077 Append_Info_Basic_Exception_Information.
27078 Export services for the default Last_Chance_Handler.
27080 * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
27081 other separate units.
27083 2004-07-20 Vincent Celier <celier@gnat.com>
27085 * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
27087 2004-07-20 Ed Schonberg <schonberg@gnat.com>
27089 * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
27090 emit itype references for the designated types of component types that
27091 are declared outside of the full record declaration, and that may
27092 denote a partial view of that record type.
27094 2004-07-20 Ed Schonberg <schonberg@gnat.com>
27097 * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
27098 which is the designated type in an access component declaration, to the
27099 list of incomplete dependents of the parent type, to avoid elaboration
27100 issues with out-of-scope subtypes.
27101 (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
27102 full view of the parent.
27104 2004-07-20 Ed Schonberg <schonberg@gnat.com>
27107 * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
27108 entities that are hidden, such as references to generic actuals
27109 outside an instance.
27111 2004-07-20 Javier Miranda <miranda@gnat.com>
27113 * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
27114 support to the new notation.
27115 (Analyze_Selected_Component): Add call to Try_Object_Operation.
27117 2004-07-20 Jose Ruiz <ruiz@act-europe.fr>
27119 * s-taprob.adb: Adding the elaboration code required for initializing
27120 the tasking soft links that are common to the full and the restricted
27123 * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
27124 restricted run time has been moved to the package
27125 System.Soft_Links.Tasking.
27127 * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
27128 restricted run time has been moved to the package
27129 System.Soft_Links.Tasking.
27131 * Makefile.rtl: Add entry for s-solita.o in run-time library list.
27133 * s-solita.ads, s-solita.adb: New files.
27135 2004-07-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27137 * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
27138 Case_Statement_to_gnu): Split off from gnat_to_gnu.
27139 (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
27140 Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
27141 Exception_Handler_to_gnu_zcx): Likewise.
27143 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
27145 * gigi.h (builtin_function): Declare.
27147 2004-07-15 Robert Dewar <dewar@gnat.com>
27149 * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
27152 * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
27153 access values as an example of a warning.
27155 * gnat_rm.texi: Document new attribute Has_Access_Values
27157 * gnat-style.texi: Document that box comments belong on nested
27160 * sem_util.ads (Has_Access_Values): Improved documentation
27162 * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
27164 * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
27165 (Process_Interface_Name): Call to this new procedure
27166 (Set_Extended_Import_Export_External_Name): Call to this new procedure
27168 * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
27170 * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
27172 * einfo.ads: Minor comment typo fixed
27174 2004-07-15 Jose Ruiz <ruiz@act-europe.fr>
27176 * snames.adb: Add _atcb.
27178 * snames.ads: Add Name_uATCB.
27180 * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
27181 (in the expanded code) when using the restricted run time.
27183 * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
27184 a in parameter in order to allow ATCBs to be preallocated (in the
27187 * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
27188 order to allow ATCBs to be preallocated. In case of error, the ATCB is
27189 deallocated in System.Tasking.Stages.
27191 * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
27192 order to allow ATCBs to be preallocated.
27194 * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
27195 here. It was previously done in Initialize_ATCB.
27197 * rtsfind.ads: Make the Ada_Task_Control_Block visible.
27199 * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
27200 Restricted run time.
27202 * exp_ch3.adb: When using the Restricted run time, pass the
27203 preallocated Ada_Task_Control_Block when creating a task.
27205 2004-07-15 Ed Schonberg <schonberg@gnat.com>
27207 * sem_util.adb (Normalize_Actuals): If there are no actuals on a
27208 function call that is itself an actual in an enclosing call, diagnose
27209 problem here rather than assuming that resolution will catch it.
27211 * sem_ch7.adb (Analyze_Package_Specification): If the specification is
27212 the local copy of a generic unit for a formal package, and the generic
27213 is a child unit, install private part of ancestors before compiling
27214 private part of spec.
27216 * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
27217 use scope entities rather than tree structures, to handle properly
27218 parent units that are instances rewritten as bodies for inlining
27221 * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
27222 Remove_Parents): Handle properly a parent unit that is an
27223 instantiation, when the unit has been rewritten as a body for inlining
27226 * par.adb (Goto_List): Global variable to collect goto statements in a
27227 given unit, for use in detecting natural loops.
27229 * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
27230 use in detecting natural loops.
27232 * par-labl.adb (Find_Natural_Loops): Recognize loops create by
27233 backwards goto's, and rewrite as a infinite loop, to improve locality
27236 * exp_util.adb (Force_Evaluation): Recognize a left-hand side
27237 subcomponent that includes an indexed reference, to prevent the
27238 generation of copies that would miscompile the desired assignment
27240 (Build_Task_Image_Decls): Add a numeric suffix to
27241 generated name for string variable, to avoid spurious conflicts with
27242 the name of the type of a single protected object.
27244 * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
27245 loop with an explicit exit statement, to avoid generating an
27246 out-of-range value with 'Succ leading to spurious constraint_errors
27247 when compiling with -gnatVo.
27249 2004-07-15 Thomas Quinot <quinot@act-europe.fr>
27251 * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
27252 might not be analyzed yet, even if its Etype is already set (case of an
27253 unchecked conversion built using Unchecked_Convert_To, for example).
27254 If the prefix has already been analyzed, this will be a nop anyway.
27256 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
27257 controller type, or an assignment of a record type with controlled
27258 components, copy only user data, and leave the finalization chain
27259 pointers untouched.
27261 2004-07-15 Vincent Celier <celier@gnat.com>
27263 * make.adb (Collect_Arguments): Improve error message when attempting
27264 to compile a source not part of any project, when -x is not used.
27266 * prj.ads: (Defined_Variable_Kind): New subtype
27268 * prj-attr.adb (Register_New_Package): Two new procedures to register
27269 a package with or without its attributes.
27270 (Register_New_Attribute): Mew procedure to register a new attribute in a
27272 New attribute oriented subprograms: Attribute_Node_Id_Of,
27273 Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
27274 Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
27276 New package oriented subprograms: Package_Node_Id_Of,
27277 Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
27279 * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
27281 (Package_Node_Id): Now a private, self initialized type
27282 (Register_New_Package): New procedure to register a package with its
27284 New attribute oriented subprograms: Attribute_Node_Id_Of,
27285 Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
27286 Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
27288 New package oriented subprograms: Package_Node_Id_Of,
27289 Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
27291 * prj-dect.adb (Parse_Attribute_Declaration,
27292 Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
27294 * prj-makr.adb (Make): Parse existing project file before creating
27295 other files. Fail if there was an error during parsing.
27297 * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
27298 new spec of Prj.Attr.
27300 * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
27301 to new spec of Prj.Attr.
27303 2004-07-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27305 * utils2.c: Fix typo in comment.
27307 2004-07-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27309 * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
27310 * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
27312 2004-07-14 Andreas Schwab <schwab@suse.de>
27314 * trans.c (gnat_init_stmt_group): Remove duplicate definition.
27316 2004-07-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27318 * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
27320 (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
27323 * misc.c (gnat_types_compatible_p): New function.
27324 (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
27325 (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
27327 * trans.c (gigi): Move processing of main N_Compilation_Unit here.
27328 (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
27329 (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
27330 (mark_visited): Don't mark dummy type.
27331 (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
27332 parameter, we must remove any LJM building from GNU_NAME.
27333 (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
27334 (pos_to_constructor): Use int_const_binop.
27335 (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
27338 * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
27339 (gnat_pushlevel): Set TREE_USE on BLOCK node.
27340 (gnat_install_builtins): Add __builtin_memset.
27342 2004-07-13 Olivier Hainque <hainque@act-europe.fr>
27344 * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
27345 for a renaming, stabilize the initialization expression if we are at a
27346 local level. At the local level, uses of the renaming may be performed
27347 by a direct dereference of the initializing expression, and we don't
27348 want possible variables there to be evaluated for every use.
27350 * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
27351 Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
27352 them on the way. Account for the fact that we may introduce side
27353 effects in the process.
27355 2004-07-13 Richard Henderson <rth@redhat.com>
27357 * misc.c (default_pass_by_ref): Use pass_by_reference.
27359 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
27361 * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
27362 LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
27364 2004-07-08 Richard Henderson <rth@redhat.com>
27366 * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
27369 2004-07-06 Vincent Celier <celier@gnat.com>
27371 * vms_conv.ads: Minor reformatting.
27372 Alphabetical order for enumerated values of type Command_Type, to have
27373 the command in alphabetical order for the usage.
27375 * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
27376 the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
27378 * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
27380 * makegpr.adb (Global_Archive_Exists): New global Boolean variable
27381 (Add_Archive_Path): Only add the global archive if there is one.
27382 (Build_Global_Archive): Set Global_Archive_Exists depending if there is
27383 or not any object file to put in the global archive, and don't build
27384 a global archive if there is none.
27385 (X_Switches): New table
27386 (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
27387 in the X_Switches table, if any.
27388 (Initialize): Make sure the X_Switches table is empty
27389 (Scan_Arg): Record -X switches in table X_Switches
27391 * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
27393 * make.adb: Minor comment fix
27395 * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
27396 invoked with directory information, add the directory in front of the
27399 * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
27400 invoked with directory information, add the directory in front of the
27403 * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
27404 when Keep_Temporary_Files is False.
27405 (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
27406 directory information, add the directory in front of the path.
27407 When not on VMS, handle new switch -dn before the command to set
27408 Keep_Temporary_Files to True.
27409 (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
27412 * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
27413 invoked with directory information, add the directory in front of the
27416 2004-07-06 Thomas Quinot <quinot@act-europe.fr>
27418 * snames.ads, snames.adb (Name_Stub): New name for the distributed
27421 * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
27422 New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
27424 * g-socket.adb (To_Timeval): Fix incorrect conversion of
27425 Selector_Duration to Timeval for the case of 0.0.
27427 * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
27428 documentation from Evolve_And_Then.
27430 2004-07-06 Jose Ruiz <ruiz@act-europe.fr>
27432 * s-taprop-tru64.adb, s-taprop-os2.adb,
27433 s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
27435 2004-07-06 Robert Dewar <dewar@gnat.com>
27437 * s-osinte-hpux.ads, s-osinte-freebsd.ads,
27438 s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
27439 s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
27440 s-interr-sigaction.adb, s-taprop-irix-athread.adb,
27441 s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
27442 s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
27443 s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
27444 s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
27445 a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
27446 a-tags.ads, bindgen.ads, checks.adb, checks.adb,
27447 csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
27448 exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
27449 g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
27450 i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
27451 sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
27452 sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
27453 sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
27454 s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
27455 s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
27456 s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
27457 vms_data.ads: Minor reformatting,
27458 Fix bad box comment format.
27460 * gnat_rm.texi: Fix minor grammatical error
27462 * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
27464 * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
27465 more cases of discriminated records to be recognized as not needing a
27467 (Has_Access_Values): New function.
27469 * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
27471 * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
27472 Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
27473 with LRM terminology).
27474 Change terminology in comments primitive type => elementary type.
27476 2004-07-06 Ed Schonberg <schonberg@gnat.com>
27479 * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
27480 parameters do not impose any requirements on the presence of a body.
27482 2004-07-06 Ed Schonberg <schonberg@gnat.com>
27485 * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
27486 compilation unit and is in an open scope at the point of instantiation,
27487 assume that a body may be present later.
27489 2004-07-06 Ed Schonberg <schonberg@gnat.com>
27491 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
27492 Improve error message when specified size is not supported.
27494 * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
27495 is never a primitive operation.
27497 2004-07-05 Andreas Schwab <schwab@suse.de>
27499 * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
27500 RECORD_OR_UNION_CHECK.
27501 (TYPE_CONTAINS_TEMPLATE_P): Likewise.
27503 2004-07-04 Kelley Cook <kcook@gcc.gnu.org>
27505 * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
27506 dependency on xgnatugn, instead build it via a submake.
27507 (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
27509 2004-07-04 Richard Henderson <rth@redhat.com>
27511 * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
27513 2004-07-01 Richard Henderson <rth@redhat.com>
27515 * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
27516 * utils.c (max_size): Likewise.
27518 2004-06-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27520 * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
27521 and rest_of_type_compilation; add arg to create_*_decl.
27522 (annotate_decl_with_node): Deleted.
27523 (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
27524 * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
27525 (get_current_block_context, gnat_pushdecl): New declarations.
27526 (gnat_init_stmt_group): Likewise.
27527 (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
27528 * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
27529 (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
27530 (gnat_init): Call gnat_init_stmt_group.
27531 * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
27532 (gnu_pending_elaboration_list): Deleted.
27533 (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
27534 (gigi): Rearrange initialization calls and move some to last above.
27535 (gnat_to_gnu): If statement and not in procedure, go into elab proc.
27536 Delete calls to add_decl_expr; add arg to create_*_decl.
27537 (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
27538 (gnat_to_gnu, case N_Subprogram_Body): Move some code to
27539 begin_subprog_body and call it.
27540 Don't push and pop ggc context.
27541 (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
27542 (add_stmt): Remove handling of DECL_EXPR from here.
27543 If not in function, mark visited.
27544 (add_decl_expr): Put global at top level.
27545 Check for cases of DECL_INITIAL we have to handle here.
27546 (process_type): Add extra arg to create_type_decl.
27547 (build_unit_elab): Rework to just gimplify.
27548 * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
27549 (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
27550 (get_pending_elaborations, pending_elaborations_p): Likewise.
27551 (push_pending_elaborations, pop_pending_elaborations): Likewise.
27552 (get_elaboration_location, insert_elaboration_list): Likewise.
27553 (gnat_binding_level): Renamed from ada_binding_level.
27554 (init_gnat_to_gnu): Don't clear pending_elaborations.
27555 (global_bindings_p): Treat as global if no current_binding_level.
27556 (set_current_block_context): New function.
27557 (gnat_pushdecl): Renamed from pushdecl; major rework.
27558 All callers changed.
27559 (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
27560 (finish_record_type): Call call pushdecl for stub decl.
27561 (function_nesting_depth): Deleted.
27562 (begin_subprog_body): Delete obsolete code.
27563 * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
27565 2004-06-28 Robert Dewar <dewar@gnat.com>
27567 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
27568 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
27569 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
27570 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
27571 a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
27573 * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
27574 deal with problem of inefficient slices on machines with strict
27575 alignment, when the slice is a component of a composite.
27577 * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
27578 machines, we need the check there as well.
27580 2004-06-28 Ed Schonberg <schonberg@gnat.com>
27582 * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
27583 determine safe copying direction for overlapping slice assignments
27584 when component is controlled.
27586 * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
27587 formal derived type in the actual for a formal package are visible in
27588 the enclosing instance.
27590 2004-06-28 Ed Schonberg <schonberg@gnat.com>
27593 * sem_util.adb (Trace_Components): Diagnose properly an illegal
27594 circularity involving a private type whose completion includes a
27595 self-referential component.
27596 (Enter_Name): Use Is_Inherited_Operation to distinguish a source
27597 renaming or an instantiation from an implicit derived operation.
27599 2004-06-28 Pascal Obry <obry@gnat.com>
27601 * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
27603 (Library_File_Name_For): Idem.
27605 2004-06-28 Matthew Gingell <gingell@gnat.com>
27607 * g-traceb.ads: Add explanatory note on the format of addresses
27608 expected by addr2line.
27610 2004-06-28 Jerome Guitton <guitton@act-europe.fr>
27612 * Makefile.in: Force debugging information on s-tasdeb.adb,
27613 a-except.adb and s-assert.adb needed by the debugger.
27615 2004-06-28 Vincent Celier <celier@gnat.com>
27617 * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
27621 * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
27623 * prj.adb: Minor reformatting
27624 (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
27626 * prj.ads: Comment updates
27628 (Project_Data): Change Flag1 to Need_To_Build_Lib.
27629 Remove Flag2: not used.
27631 * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
27634 * gnat_ugn.texi: Put a "null;" declaration in one project file example
27636 * gnat_rm.texi: Document Empty declarations "null;".
27638 * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
27639 front of the linker options.
27640 (Link_Foreign): Put the global archives and the libraries in front of
27641 the linker options.
27643 2004-06-28 Javier Miranda <miranda@gnat.com>
27645 * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
27646 (RTU_Loaded): Code cleanup
27647 (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
27648 withed predefined units.
27650 * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
27651 explicitly withed predefined units.
27652 Fix typo in comment
27654 * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
27655 explicitly withed predefined units.
27657 2004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27659 * ada-tree.def (DECL_STMT): Deleted.
27660 * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
27661 (DECL_STMT_VAR): Deleted.
27662 * decl.c: add_decl_stmt now add_decl_expr.
27663 * gigi.h: Likewise.
27664 * trans.c: Likewise.
27665 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
27666 (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
27667 (add_stmt): Only handle padded type here.
27668 (add_stmt_with_node): Allow gnat_node to not be present.
27669 (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
27670 (gnat_gimplify_stmt, case DECL_STMT): Deleted.
27671 (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
27672 make a SAVE_EXPR for the entire fat pointer.
27673 * utils.c (pushdecl): Walk a DECL_EXPR in global case.
27674 (create_index_type): Make a DECL_EXPR.
27675 (end_subprog_body): Don't call allocate_struct_function here but
27678 2004-06-25 Pascal Obry <obry@gnat.com>
27680 * makegpr.adb (Build_Library): Remove parameter Lib_Address and
27681 Relocatable from Build_Dynamic_Library call.
27683 * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
27684 Relocatable are now synonym.
27686 * Makefile.in: Use s-parame-mingw.adb on MingW platform.
27688 * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
27689 Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
27692 * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
27693 Lib_Address and Relocatable.
27694 (Default_DLL_Address): Removed.
27696 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
27697 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
27698 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
27699 (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
27700 (Default_DLL_Address): Removed.
27702 * mlib-tgt-mingw.adb: Ditto.
27703 (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
27705 * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
27706 the initial thread stack size.
27708 * a-strmap.ads: Move package L to private part as it is not used in
27709 the spec. Found while reading code.
27711 2004-06-25 Olivier Hainque <hainque@act-europe.fr>
27713 * tracebak.c: Introduce support for a GCC infrastructure based
27714 implementation of __gnat_backtrace.
27716 * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
27717 any more. Use accessors instead. This eases maintenance and relaxes
27718 some alignment constraints.
27719 (_GNAT_Exception structure): Remove the Ada specific fields
27720 (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
27722 (is_handled_by, __gnat_eh_personality): Replace component references to
27723 exception structure by use of the new accessors.
27725 * init.c (__gnat_initialize): Adjust comments to match the just
27726 reverted meaning of the -static link-time option.
27728 * adaint.c (convert_addresses): Arrange not to define a stub for
27729 mips-irix any more, as we now want to rely on a real version from a
27730 recent libaddr2line.
27732 * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
27733 the personality routine can use them and not have to rely on a C
27734 counterpart of the record anymore. This simplifies maintenance and
27735 relaxes the constraint of having Standard'Maximum_Alignment match
27737 Update comments, and add a section on the common header alignment issue.
27739 2004-06-25 Geert Bosch <bosch@gnat.com>
27741 * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
27742 polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
27744 2004-06-25 Robert Dewar <dewar@gnat.com>
27746 * gnat_rm.texi: Fix section on component clauses to indicate that the
27747 restriction on byte boundary placement still applies for bit packed
27749 Add comment on stack usage from Initialize_Scalars
27751 * gnat_ugn.texi: Add documentation for -gnatyLnnn
27753 * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
27754 limiting nesting level.
27756 * usage.adb: Add line for -gnatyLnnn switch
27758 * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
27759 sem_ch13.adb, exp_aggr.adb: Minor reformatting
27761 * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
27762 type as well as on the subtype. This corrects a problem in freeze in
27763 setting alignments of atomic types.
27765 * sem_eval.ads: Minor comment typo fixed
27767 * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
27768 level. Minor reformatting.
27770 * fname.adb (Is_Predefined_File_Name): Require a letter after the
27771 minus sign. This means that file names like a--b.adb will not be
27772 considered predefined.
27774 * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
27775 record Test new flag and give diagnostic for bad component clause.
27776 (Freeze_Entity): Set alignment of array from component alignment in
27777 cases where this is safe to do.
27779 * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
27782 * cstand.adb: (Create_Standard): Set alignment of String to 1
27784 * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
27786 * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
27787 code in the common constrained array cases.
27789 * a-storio.adb: Change implementation to avoid possible alignment
27790 problems on machines requiring strict alignment (data should be moved
27791 as type Buffer, not type Elmt).
27793 * checks.adb (Apply_Array_Size_Check): Improve these checks by
27794 killing the overflow checks which we really do not need (64-bits is
27797 2004-06-25 Vincent Celier <celier@gnat.com>
27799 * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
27800 (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
27801 inconditionally for the main project.
27802 (Recursive_Add_Archives.Add_Archive_Path): New procedure
27803 (Link_Executables.Check_Time_Stamps): New procedure
27804 (Link_Executables.Link_Foreign): New procedure
27805 Changes made to reduce nesting level of this package
27806 (Check): New procedure
27807 (Add_Switches): When not in quiet output, check that a switch is not
27808 the concatenation of several valid switches. If it is, issue a warning.
27809 (Build_Global_Archive): If the global archive is rebuilt, linking need
27811 (Compile_Sources): Rebuilding a library archive does not imply
27812 rebuilding the global archive.
27813 (Build_Global_Archive): New procedure
27814 (Build_Library): New name for Build_Archive, now only for library
27816 (Check_Archive_Builder): New procedure
27817 (Create_Global_Archive_Dependency_File): New procedure
27818 (Gprmake): Call Build_Global_Archive before linking
27819 * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
27821 (Scan_Arg): Display the Copyright notice when -v is used
27823 * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
27826 * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
27828 Add new GNAT LIST qualifier /FILES=
27829 Added qualifier /DIRECTORY= to GNAT METRIC
27830 Added qualifier /FILES= to GNAT METRIC
27831 Added qualifier /FILES to GNAT PRETTY
27833 * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
27834 to take into account both versions of the switch.
27836 * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
27837 always be the last switch to the gcc driver. Disable switch storing so
27838 that switches automatically added by the gcc driver are not put in the
27841 * prj.adb (Project_Empty): Take into account changes in components of
27844 * prj.ads (Languages_Processed): New enumaration value All_Languages.
27846 * prj.ads (Project_Data): Remove component Lib_Elaboration: never
27847 used. Split Boolean component Ada_Sources_Present in two Boolean
27848 components Ada_Sources_Present and Other_Sources_Present.
27851 * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
27852 instead of Sources_Present.
27853 (Set_Ada_Paths.Add.Recursive_Add): Ditto
27855 * prj-nmsc.adb: Minor reformatting
27856 (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
27857 (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
27858 Check_Ada_Naming_Scheme.
27859 Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
27862 * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
27864 Make sure that all cycles where there is at least one "limited with"
27866 (Parse_Single_Project): New Boolean parameter In_Limited
27868 * prj-proc.adb (Recursive_Check): When Process_Languages is
27869 All_Languages, call first Prj.Nmsc.Ada_Check, then
27870 Prj.Nmsc.Other_Languages_Check.
27872 * prj-proc.adb (Process): Use Ada_Sources_Present or
27873 Other_Sources_Present (instead of Sources_Present) depending on
27876 * lang-specs.h: Keep -g and -m switches in the same order, and as the
27879 * lib.adb (Switch_Storing_Enabled): New global Boolean flag
27880 (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
27882 (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
27885 * lib.ads (Disable_Switch_Storing): New procedure.
27887 * make.adb: Modifications to reduce nesting level of this package.
27888 (Check_Standard_Library): New procedure
27889 (Gnatmake.Check_Mains): New procedure
27890 (Gnatmake.Create_Binder_Mapping_File): New procedure
27891 (Compile_Sources.Compile): Add switch -gnatez as the last option
27892 (Display): Never display -gnatez
27894 * Makefile.generic:
27895 When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
27897 * gnatcmd.adb (Check_Project): New function
27898 (Process_Link): New procedure to reduce nesting depth
27899 (Check_Files): New procedure to reduce the nesting depth.
27900 For GNAT METRIC, include the inherited sources in extending projects.
27901 (GNATCmd): When GNAT LS is invoked with a project file and no files,
27902 add the list of files from the sources of the project file. If this list
27903 is too long, put it in a temp text files and use switch -files=
27904 (Delete_Temp_Config_Files): Delete the temp text file that contains
27905 a list of source for gnatpp or gnatmetric, if one has been created.
27906 (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
27907 in the project file is too large, create a temporary text file that
27908 list them and pass it to the tool with "-files=<temp text file>".
27909 (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
27911 * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
27912 generated file is in not in Ada.
27914 * gnatls.adb: Remove all parameters And_Save that are no longer used.
27915 (Scan_Ls_Arg): Add processing for -files=
27916 (Usage): Add line for -files=
27918 * g-os_lib.adb (On_Windows): New global constant Boolean flag
27919 (Normalize_Pathname): When on Windows and the path starts with a
27920 directory separator, make sure that the resulting path will start with
27923 * clean.adb (Clean_Archive): New procedure
27924 (Clean_Project): When there is non-Ada code, delete the global archive,
27925 the archive dependency files, the object files and their dependency
27926 files, if they exist.
27927 (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
27929 2004-06-25 Thomas Quinot <quinot@act-europe.fr>
27931 * sinfo.ads: Fix typo in comment.
27933 * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
27934 the TSS for remote access-to-subprogram types, since these TSS are
27935 always present once the type has been analyzed.
27936 (RAS_E_Dereference): Same.
27938 * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
27939 reference raises Bad_Attribute, mark the reference as analyzed so the
27940 node (and any children resulting from rewrites that could have occurred
27941 during the analysis that ultimately failed) is not analyzed again.
27943 * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
27945 * exp_dist.adb: Minor comment fix.
27947 * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
27948 type is an anonymous access type, no unchecked deallocation of the
27949 allocated object can occur. If the object is controlled, attach it with
27950 a count of 1. This allows attachment to the Global_Final_List, if
27951 no other relevant list is available.
27952 (Get_Allocator_Final_List): For an anonymous access type that is
27953 the type of a discriminant or record component, the corresponding
27954 finalisation list is the one of the scope of the type.
27956 2004-06-25 Ed Schonberg <schonberg@gnat.com>
27958 * sem_ch3.adb (Replace_Type): When computing the signature of an
27959 inherited subprogram, use the first subtype if the derived type
27960 declaration has no constraint.
27962 * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
27963 before applying previous optimization. Minor code cleanup.
27965 * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
27966 placed at the beginning of an unpacked record without explicit
27967 alignment, a slice of it will be aligned and does not need a copy when
27970 2004-06-25 Ed Schonberg <schonberg@gnat.com>
27974 * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
27975 reference is written with expressions mimicking parameters.
27977 2004-06-25 Hristian Kirtchev <kirtchev@gnat.com>
27980 * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
27981 STEP 2a. The constraints of a full type declaration of a derived record
27982 type are checked for conformance with those declared in the
27983 corresponding private extension declaration. The message
27984 "not conformant with previous declaration" is emitted if an error is
27987 2004-06-25 Vasiliy Fofanov <fofanov@act-europe.fr>
27989 * g-traceb.ads: Document the need for -E binder switch in the spec.
27991 * g-trasym.ads: Document the need for -E binder switch in the spec.
27993 2004-06-25 Jose Ruiz <ruiz@act-europe.fr>
27995 * sem_prag.adb: Add handling of pragma Detect_Blocking.
27997 * snames.h, snames.ads, snames.adb: Add entry for pragma
28000 * s-rident.ads: Change reference to pragma Detect_Blocking.
28002 * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
28005 * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
28006 to indicate whether pragma Detect_Blocking is active.
28008 * par-prag.adb: Add entry for pragma Detect_Blocking.
28010 * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
28011 of not handling WITH.
28012 Note that this replaces the previous update which was incorrect.
28014 2004-06-25 Javier Miranda <miranda@gnat.com>
28016 * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
28017 use-clauses to have a clean environment.
28019 * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
28020 the installation of the use-clauses to stablish a clean environment in
28021 case of compilation of a separate unit; otherwise the call to
28022 use_one_package is protected by the barrier Applicable_Use.
28024 * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
28025 the installation of the use-clauses to stablish a clean environment in
28026 case of compilation of a separate unit.
28027 (End_Use_Clauses): Minor comment cleanup.
28029 2004-06-25 Sergey Rybin <rybin@act-europe.fr>
28031 * gnat_ugn.texi: Add description of the gnatpp 'files' switch
28033 2004-06-23 Richard Henderson <rth@redhat.com>
28035 * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
28037 2004-06-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28039 * decl.c (elaborate_expression, elaborate_expression_1): Arguments
28040 now bool instead of int.
28041 (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
28042 * trans.c (gnu_switch_label_stack): New function.
28043 (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
28044 elaboration of renamed entity returns.
28045 (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
28046 (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
28047 (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
28048 (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
28049 DECL_SIZE_UNIT and simplify variable-sized case.
28050 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
28051 Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
28052 (gnat_stabilize_reference): Add arg to COMPONENT_REF.
28053 (build_unit_elab): Disable for now.
28054 * utils.c (mark_visited): New function.
28055 (pushdecl): Walk tree to call it for global decl.
28056 (update_pointer_to): Update all variants of pointer and ref types.
28057 Add arg to COMPONENT_REF.
28058 (convert): Likewise.
28059 Move check for converting between variants lower down.
28060 * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
28061 (build_allocator): Don't force type of MODIFY_EXPR.
28062 (gnat_mark_addressable, case VAR_DECL): Unconditionally call
28063 put_var_into_stack.
28065 2004-06-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28067 * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
28068 * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
28069 * decl.c (gnat_to_gnu_entity): Also set force_global for imported
28071 * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
28072 all callers changed.
28073 (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
28074 the way that EXIT_STMT finds the loop label.
28075 (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
28076 (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
28077 (add_stmt): Use annotate_with_locus insted of setting directly.
28078 (pos_to_construct): Set TREE_PURPOSE of each entry to index.
28079 (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
28080 * utils.c (gnat_install_builtins): Install __builtin_memcmp.
28081 (build_vms_descriptor): Add extra args to ARRAY_REF.
28082 (convert): Use VIEW_CONVERT_EXPR between aggregate types.
28083 * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
28085 (build_binary_op): Don't make explicit CONVERT_EXPR.
28086 Add extra rgs to ARRAY_REF.
28088 2004-06-14 Pascal Obry <obry@gnat.com>
28090 * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
28091 Windows. Fix minor typo.
28093 * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
28094 which is now supported on Windows. With this implementation using the
28095 Library Project feature is no different on Windows than on UNIX.
28097 2004-06-14 Vincent Celier <celier@gnat.com>
28099 * makegpr.adb (Compile_Sources): Nothing to do when there are no
28102 * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
28104 * prj-part.adb (Parse_Single_Project): When a duplicate project name is
28105 found, show the project name and the path of the previously parsed
28108 2004-06-14 Ed Schonberg <schonberg@gnat.com>
28110 * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
28111 array, avoid copying the actual before the call.
28113 2004-06-14 Thomas Quinot <quinot@act-europe.fr>
28115 * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
28116 Instead, allocate memory on worst-case alignment assumptions, and then
28117 return an aligned address within the allocated zone.
28119 2004-06-14 Robert Dewar <dewar@gnat.com>
28121 * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
28122 elab entities in predefined units in No_Run_Time_Mode.
28123 (Gen_Adainit_C): Same fix
28124 (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
28125 units in No_Run_Time_Mode
28126 (Gen_Elab_Calls_C): Same fix
28128 * symbols-vms-alpha.adb: Minor reformatting
28130 * g-debpoo.ads: Minor reformatting
28132 * lib.adb (In_Same_Extended_Unit): Version working on node id's
28134 * lib.ads (In_Same_Extended_Unit): Version working on node id's
28136 * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
28139 * make.adb: Minor reformatting
28141 * par-ch12.adb: Minor reformatting
28143 * par-prag.adb: Add dummy entry for pragma Profile_Warnings
28145 * prj-strt.adb: Minor reformatting
28147 * restrict.ads, restrict.adb: Redo handling of profile restrictions to
28150 * sem_attr.adb: Minor reformatting
28152 * sem_ch7.adb: Minor reformatting
28154 * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
28155 for type in the same unit as the object declaration.
28157 * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
28158 static string expressions and not just string literals.
28160 (Set_Warning): Reset restriction warning flag for restriction pragma
28161 Implement pragma Profile_Warnings
28162 Implement pragma Profile (Restricted)
28163 Give obolescent messages for old restrictions and pragmas
28165 * snames.h, snames.ads, snames.adb: Add new entry for pragma
28168 * s-rident.ads: Add declarations for restrictions required by profile
28169 Restricted and profile Ravenscar.
28171 * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
28173 * gnat_ugn.texi: Correct some missing entries in the list of GNAT
28174 configuration pragmas.
28176 2004-06-11 Vincent Celier <celier@gnat.com>
28178 * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
28179 gnatsym, when symbol policy is Restricted.
28181 * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
28182 gnatsym, when symbol policy is Restricted.
28184 * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
28185 read the symbol file.
28186 (Finalize): Fail in symbol policy Restricted if a symbol in the original
28187 symbol file is not in the object files. Do not create a new symbol file
28188 when symbol policy is Restricted.
28190 * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
28193 * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
28195 (Usage): Line for new switch -R
28197 * make.adb (Initialize): When the platform is not VMS, add the
28198 directory where gnatmake is invoked in the front of the path, if
28199 gnatmake is invoked with directory information. Change the Scan_Args
28200 while loop to a for loop.
28201 (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
28202 if Depth is equal or greater than the proposed depth, there is nothing
28204 (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
28207 * prj.ads: Add new symbol policy Restricted.
28209 * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
28210 with the new parameters Check_All_Labels and Case_Location.
28212 * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
28213 (Library_Symbol_File needs to be defined).
28215 * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
28216 and Case_Location If Check_All_Labels is True, check that all values of
28217 the string type are used, and output warning(s) if they are not.
28219 * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
28222 * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
28224 * gnat_ugn.texi: Update documentation about the library directory in
28227 * makegpr.adb (Display_Command): In verbose mode, also display the
28228 value of the CPATH env var, when the compiler is gcc.
28229 (Initialize): Change the Scan_Args while loop to a for loop
28230 (Compile_Individual_Sources): Change directory to object directory
28231 before compilations.
28233 * symbols.ads: New symbol policy Restricted.
28235 2004-06-11 Olivier Hainque <hainque@act-europe.fr>
28237 * a-except.adb (Raise_After_Setup family): Remove. The responsibility
28238 is now taken care of internally in the Exception_Propagation package
28239 and does not require clients assistance any more.
28241 * a-exexpr.adb (Is_Setup_And_Not_Propagated,
28242 Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
28243 functions. Helpers to maintain a predicate required in the handling of
28244 occurrence transfer between tasks.
28245 This is now handled internally and does not require clients assistance
28246 for the setup/propagate separation anymore.
28247 (Setup_Exception, Propagate_Exception): Simplify the Private_Data
28248 allocation strategy, handle the Setup_And_Not_Propagated predicate and
28251 * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
28252 raise_after_setup, now that everything is handled internally within the
28253 setup/propagation engine.
28255 2004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
28257 * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
28258 Add additional conditions for the case of an actual being a simple
28259 name or literal. Improve inlining by preventing the generation
28260 of temporaries with a short lifetime (one use).
28262 2004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
28265 * einfo.ads: Minor comment updates for Has_Completion and
28266 E_Constant list of flags.
28268 * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
28269 and constant redeclarations now set the Has_Completion flag of their
28270 defining identifiers.
28272 * sem_ch7.adb (Analyze_Package_Spec): Add procedure
28273 Inspect_Deferred_Constant_Completion.
28274 Used to detect private deferred constants that have not been completed
28275 either by a constant redeclaration or pragma Import. Emits error message
28276 "constant declaration requires initialization expression".
28278 * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
28279 completes a deferred constant.
28281 2004-06-11 Geert Bosch <bosch@gnat.com>
28283 * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
28285 * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
28286 calculating exponent for scaling denormal numbers.
28287 (Leading_Part): Properly raise Constraint_Error for zero or negative
28289 (Remainder): Properly raise Constraint_Error for zero divisor.
28291 2004-06-11 Thomas Quinot <quinot@act-europe.fr>
28293 * sem_util.adb: Minor reformatting.
28295 * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
28296 dereference when accessing the entry parameter record.
28297 (Check_Array_Type): Always check for possible implicit dereference.
28298 (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
28299 Abort if a pointer is still present (denoting that an implicit
28300 dereference was left in the tree by the front-end).
28302 * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
28303 dereference when accessing the entry parameter record.
28304 (Check_Array_Type): Always check for possible implicit dereference.
28305 (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
28306 Abort if a pointer is still present (denoting that an implicit
28307 dereference was left in the tree by the front-end).
28309 2004-06-11 Emmanuel Briot <briot@act-europe.fr>
28311 * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
28312 message, like the compiler itself does. Easier to parse the output.
28314 * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
28316 * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
28317 be base names, and not includes directories.
28319 2004-06-11 Arnaud Charlet <charlet@act-europe.fr>
28321 * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
28322 so that dependencies are properly taken into account by make.
28324 2004-06-11 Arnaud Charlet <charlet@act-europe.fr>
28327 * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
28328 exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
28330 2004-06-11 Jerome Guitton <guitton@act-europe.fr>
28332 * Makefile.in (install-gnatlib): install target-specific run-time files.
28334 * Make-lang.in: Remove obsolete targets.
28336 2004-06-11 Ed Schonberg <schonberg@gnat.com>
28338 * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
28339 specification, to catch misuses of program unit names.
28341 * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
28342 superfluous conversions in an instance.
28344 2004-06-11 Ed Schonberg <schonberg@gnat.com>
28347 * sem_ch12.adb (Save_References): If operator node has been folded to
28348 enumeration literal, associated_node must be discarded.
28350 2004-06-11 Jose Ruiz <ruiz@act-europe.fr>
28352 * s-stchop-vxworks.adb: Add required pragma Convention to
28353 Task_Descriptor because it is updated by a C function.
28355 2004-06-08 Arnaud Charlet <charlet@act-europe.fr>
28358 * Makefile.in: Remove target specific SO_OPT on IRIX
28360 2004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28362 * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
28363 (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
28364 (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
28365 (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
28366 (STMT_STMT, USE_STMT): New statement codes.
28367 (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
28368 * ada-tree.h: Reflect above changes.
28369 (struct tree_loop_id): Deleted.
28370 (union lang_tree_node, struct lang_decl, struct lang_type):
28371 Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
28372 and DECL_LANGUAGE_SPECIFIC to reflect these changes.
28373 (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
28374 (IS_ADA_STMT): New macro.
28375 * decl.c (annotate_decl_with_node): New function.
28376 (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
28377 (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
28378 Call add_stmt_with_node to do needed assignments.
28379 Add call to update setjmp buffer directly, not via EXPR_STMT.
28380 (maybe_variable): Argment GNAT_NODE deleted.
28381 * gigi.h (maybe_variable): Likewise.
28382 (make_transform, add_stmt_with_node, set_block_for_group): New.
28383 (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
28384 (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
28385 (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
28386 (set_lineno, set_lineno_from_sloc): Likewise.
28387 (record_code_position, insert_code_for): Likewise.
28388 (gnat_poplevel): Now returns void.
28389 (end_subprog_body): Now takes argument.
28390 * misc.c (cgraph.h, tree-inline.h): New includes.
28391 (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
28392 (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
28393 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
28394 (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
28395 (gnat_parse_file): Don't set immediate_size_expand.
28396 Call cgraph functions.
28397 (gnat_expand_expr): Remove most cases.
28398 (record_code_position, insert_code_for): Remove from here.
28399 * trans.c (toplev.h, tree-gimple.h): Now included.
28400 (discard_file_names): Deleted.
28401 (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
28402 (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
28403 (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
28404 (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
28405 (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
28406 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
28407 (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
28408 (set_block_for_group, add_stmt_list): Likewise.
28409 (start_stmt_group): Renamed from start_block_stmt.
28410 (end_stmt_group): Likewise, from end_block_stmt.
28411 (build_stmt_group): Likewise, from build_block_stmt, also add arg.
28412 (gigi): Don't set discard_file_names or call set_lineno.
28413 Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
28414 (tree_transform): Deleted, now renamed to be gnat_to_gnu.
28415 Numerous changes throughout to reflect new names and complete
28416 function-at-a-time implementation.
28417 (gnat_expand_stmt): Delete or comment out all cases.
28418 (process_inlined_subprograms): Use add_stmt.
28419 (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
28420 call set_lineno; also remove unneeded block handling.
28421 (process_type): Remove unneeded block handling.
28422 (build_unit_elab): Remove calls to deleted functions.
28423 * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
28424 (tree-dump.h): Likewise.
28425 (struct ada_binding_level): Add field jmpbuf_decl.
28426 (gnat_define_builtin, gnat_install_builtins): New.
28427 (gnat_gimplify_function, gnat_finalize): Likewise.
28428 (gnat_poplevel): No longer return BLOCK, set it instead.
28429 Remove code dealing with nested functions.
28430 (gnat_init_decl_processing): Also set size_type_node.
28431 Call gnat_install_builtins.
28432 (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
28433 (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
28434 Remove special-case for "main".
28435 (end_subprog_body): Add arg and rework for tree-ssa.
28436 (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
28437 Add case for BOOLEAN_TYPE.
28438 * utils2.c (rtl.h): Now include.
28439 (build_call_raise): Test Debug_Flag_NN directly.
28440 (build_call_alloc_dealloc): Don't use local stack allocation for now.
28441 (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
28442 (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
28444 2004-06-07 Robert Dewar <dewar@gnat.com>
28446 * a-direct.ads, einfo.ads: Minor comment updates
28448 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
28449 s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
28450 s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
28451 s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
28452 s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
28454 * s-interr-sigaction.adb: Remove unreferenced variable
28455 (Attached_Interrupts). Minor reformatting.
28456 Avoid use of variable I (replace by J).
28458 * par-ch10.adb: Fix text of one error message
28460 * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
28461 exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
28462 exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
28463 opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
28464 par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
28465 par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
28466 sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
28467 sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
28468 sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
28469 sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
28470 snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
28473 2004-06-07 Doug Rupp <rupp@gnat.com>
28475 * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
28477 * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
28479 * mlib-tgt-vms-ia64.adb: New file.
28481 * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
28482 Add mlib-tgt-vms-ia64.adb
28483 Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
28484 Move to alpha specific ifeq section.
28485 Add VMS specific versions of symbols.adb
28486 Renaming of 5q vms files.
28488 * 5qsystem.ads renamed to system-vms_64.ads.
28490 2004-06-07 Vincent Celier <celier@gnat.com>
28492 * a-calend.ads: Add a GNAT Note comment after function Time_Of to
28493 explain that when a time of day corresponding to the non existing hour
28494 on the day switching to DST is specified, Split may return a different
28497 * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
28500 * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
28501 (Normalize_Pathname): Only resolve VMS logical names when on VMS.
28503 * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
28505 If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
28506 the linking options.
28507 (Build_Library.Check_Libs): On VMS, if there is a dependency on
28508 g-trasym.ads, set Gtrasymobj_Needed to True.
28510 * prj-attr.adb: Add new package Metrics for gnatmetric
28512 * prj-nmsc.adb (Record_Other_Sources): Put source file names in
28513 canonical case to take into account files with upper case characters on
28515 (Ada_Check): Load the reference symbol file name in the name buffer to
28516 check it, not the symbol file name.
28518 * snames.ads, snames.adb: Add standard name Metrics (name of project
28519 file package for gnatmetric).
28521 * vms_conv.ads: Add Metric to Comment_Type
28523 * vms_conv.adb (Initialize): Add component dor Metric in Command_List
28525 * vms_data.ads: Add qualifiers for GNAT METRIC
28527 * makegpr.adb (Link_Executables): Take into account the switches
28528 specified in package Linker of the main project.
28530 2004-06-07 Thomas Quinot <quinot@act-europe.fr>
28532 * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
28533 the index of the last element is Units.Last, not Units.Table'Last
28534 (which is usually not a valid index within the actually allocated
28535 storage for the table).
28537 * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
28538 determines whether to generate a call to a checked storage pool
28539 Dereference action.
28540 Generate such a call only for a dereference that either comes from
28541 source, or is the result of rewriting a dereference that comes from
28544 2004-06-07 Romain Berrendonner <berrendo@act-europe.fr>
28546 * bindgen.adb (Gen_Output_File): Add support for GAP builds.
28548 2004-06-07 Eric Botcazou <ebotcazou@act-europe.fr>
28550 (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
28551 file level, elaborate the stride for inner dimensions in alignment
28554 * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
28557 2004-06-07 Javier Miranda <miranda@gnat.com>
28559 * exp_ch6.adb: Correct wrong modification in previous patch
28561 2004-06-07 Vasiliy Fofanov <fofanov@act-europe.fr>
28563 * g-trasym.ads: Corrected comment to properly reflect level of support
28566 2004-06-07 Hristian Kirtchev <kirtchev@gnat.com>
28568 * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
28569 includes case of a variable referenced on the left hand side of an
28570 assignment, therefore remove redundant code. Variables and prefixes of
28571 indexed or selected components are now marked as referenced on left
28572 hand side. Warnings are now properly emitted when variables or prefixes
28573 are assigned but not read.
28575 * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
28576 left hand side referenced variables. Private access types do not
28577 produce the warning "variable ... is assigned but never read".
28578 Add also additional checks to left hand side referenced variables.
28579 Aliased, renamed objects and access types do not produce the warning
28580 "variable ... is assigned but never read" since other entities may read
28581 the memory location.
28583 2004-06-07 Jerome Guitton <guitton@act-europe.fr>
28585 * Makefile.in: In the powerpc/vxworks-specific section, restore
28586 EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
28589 2004-06-07 Ed Schonberg <schonberg@gnat.com>
28591 * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
28592 predefined operators.
28593 Removes spurious type errors from g-trasym-vms.adb.
28595 * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
28596 distinct from the operator appearing in the source, call appropriate
28597 routine to insert conversions when needed, and complete resolution of
28599 (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
28600 interpretations for rewritten right operand.
28601 (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
28602 the other operand is overloaded and the context is a type conversion.
28604 2004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28606 * ada-tree.def (BLOCK_STMT): Now has two operands.
28609 * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
28611 * gigi.h: (gnat_poplevel): Now returns a tree.
28613 * trans.c (end_block_stmt): Add arg; all callers changed.
28614 (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
28615 (start_block_stmt): Clear BLOCK_STMT_BLOCK.
28616 (add_stmt): Set TREE_TYPE.
28617 (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
28618 (gnat_expand_stmt, case BREAK_STMT): New case.
28620 * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
28622 2004-06-07 Jose Ruiz <ruiz@act-europe.fr>
28624 * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
28625 procedure Set_Stack_Size that is not needed.
28627 2004-06-07 Sergey Rybin <rybin@act-europe.fr>
28629 * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
28630 used for gnatpp input file and for the files upon which it depends
28632 2004-06-07 Ben Brosgol <brosgol@gnat.com>
28634 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
28636 2004-06-07 Arnaud Charlet <charlet@act-europe.fr>
28638 * gnatvsn.ads: Bump version numbers appropriately.
28639 Add new build type.
28641 2004-06-07 Pascal Obry <obry@gnat.com>
28643 * gnat_ugn.texi: Improve comments about imported names and link names
28644 on Windows. Add a note about the requirement to use -k gnatdll's option
28645 when working with a DLL which has stripped stdcall symbols (no @nn
28648 2004-05-27 Vincent Celier <celier@gnat.com>
28650 * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
28651 COMMENTS_LAYOUT=UNTOUCHED
28653 * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
28654 symbols-vms-alpha.adb
28656 2004-05-27 Thomas Quinot <quinot@act-europe.fr>
28658 * sem.ads: Clarify documentation on checks suppression.
28660 * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
28662 2004-05-27 Ed Schonberg <schonberg@gnat.com>
28664 * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
28665 the case of multiple derivations.
28666 (Is_Object_Reference): For a selected component, verify that the prefix
28667 is itself an object and not a value.
28669 * sem_ch12.adb (Same_Instantiated_Constant): New name for
28670 Same_Instantiated_Entity.
28671 (Same_Instantiated_Variable): Subsidiary to
28672 Check_Formal_Package_Instance, to recognize actuals for in-out generic
28673 formals that are obtained from a previous formal package.
28674 (Instantiate_Subprogram_Body): Emit proper error when
28675 generating code and the proper body of a stub is missing.
28677 * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
28678 has a universal interpretation, do the disambiguation here.
28680 * exp_ch4.adb (Expand_N_Type_Conversion,
28681 Expand_N_Unchecked_Type_Conversion): Special handling when target type
28682 is Address, to avoid typing anomalies when Address is a visible integer
28685 * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
28686 to determine whether a subprogram should not be marked Pure, even when
28687 declared in a pure package.
28689 2004-05-27 Jose Ruiz <ruiz@act-europe.fr>
28691 * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
28693 * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
28694 Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
28695 Update the documentation about the Ravenscar profile, following the
28696 definition found in AI-249.
28698 * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
28699 setting the Profile (Ravenscar). This must be done in addition to
28700 setting the required restrictions.
28702 * rtsfind.ads: Add the set of operations defined in package
28705 * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
28708 2004-05-27 Eric Botcazou <ebotcazou@act-europe.fr>
28710 lang-specs.h: Always require -c or -S and always redirect to /dev/null
28711 if -gnatc or -gnats is passed.
28713 2004-05-27 Hristian Kirtchev <kirtchev@gnat.com>
28715 * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
28716 a significant reference. Warnings are now properly emitted when a
28717 discriminated type is not referenced.
28719 * lib-xref.adb (Generate_Reference): A deferred constant completion,
28720 record representation clause or record type discriminant does not
28721 produce a reference to its corresponding entity. Warnings are now
28722 properly emitted when deferred constants and record types are not
28725 2004-05-27 Geert Bosch <bosch@gnat.com>
28727 * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
28728 Fixes ACATS Annex G tests.
28730 2004-05-27 Robert Dewar <dewar@gnat.com>
28732 * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
28735 2004-05-27 Arnaud Charlet <charlet@act-europe.fr>
28737 * s-interr.adb (Server_Task): Take into account case of early return
28738 from sigwait under e.g. linux.
28740 2004-05-27 Sergey Rybin <rybin@act-europe.fr>
28742 * gnat_ugn.texi: Add description for the new gnatpp options:
28743 -rnb - replace the original source without creating its backup copy
28744 -c0 - do not format comments
28746 2004-05-24 Geert Bosch <bosch@gnat.com>
28748 * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
28749 with 192 bits of precision, sufficient to reduce a double-extended
28750 arguments X with a maximum relative error of T'Machine_Epsilon, for X
28751 in -2.0**32 .. 2.0**32.
28752 (Cos, Sin): Always reduce arguments of 1/4 Pi or larger, to prevent
28753 reduction by the processor, which only uses a 68-bit approximation of
28755 (Tan): Always reduce arguments and compute function either using
28756 the processor's fptan instruction, or by dividing sin and cos as needed.
28758 2004-05-24 Doug Rupp <rupp@gnat.com>
28760 * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
28761 gcc error on 32/64 bit VMS.
28763 2004-05-24 Olivier Hainque <hainque@act-europe.fr>
28765 * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
28766 since this is what we get for stack overflows although not documented
28768 Document the issues which may require adjustments to our signal
28771 2004-05-24 Ed Schonberg <schonberg@gnat.com>
28773 * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
28774 enclosing dynamic scope if the instantiation is within a generic unit.
28776 2004-05-24 Arnaud Charlet <charlet@act-europe.fr>
28778 * exp_dbug.ads: Fix typo.
28780 * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
28781 Rename it to its proper name: system-linux-ia64.ads
28782 (stamp-gnatlib1): Remove extra target specific run time files when
28783 setting up the rts directory.
28785 2004-05-24 Javier Miranda <miranda@gnat.com>
28787 * einfo.ads, einfo.adb (Limited_Views): Removed.
28788 (Limited_View): New attribute that replaces the previous one. It is
28789 now a bona fide package with the limited-view list through the
28790 first_entity and first_private attributes.
28792 * sem_ch10.adb (Install_Private_With_Clauses): Give support to
28793 limited-private-with clause.
28794 (Install_Limited_Withed_Unit): Install the private declarations of a
28795 limited-private-withed package. Update the installation of the shadow
28796 entities according to the new structure (see Build_Limited_Views)
28797 (Build_Limited_Views): Replace the previous implementation of the
28798 limited view by a package entity that references the first shadow
28799 entity plus the first shadow private entity (required for limited-
28800 private-with clause)
28801 (New_Internal_Shadow_Entity): Code cleanup.
28802 (Remove_Limited_With_Clause): Update the implementation to undo the
28803 new work carried out by Build_Limited_Views.
28804 (Build_Chain): Complete documentation.
28805 Replace Ada0Y by Ada 0Y in comments
28808 * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
28809 types the level of accessibility depends on the enclosing type
28812 * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
28813 entities. Complete documentation of previous change.
28815 2004-05-24 Robert Dewar <dewar@gnat.com>
28817 * namet.adb: Minor reformatting
28818 Avoid use of name I (replace by J)
28819 Minor code restructuring
28821 * sem_ch6.adb: Minor reformatting
28823 * lib-writ.adb: Do not set restriction as active if this is a
28824 Restriction_Warning case.
28826 * sem_prag.adb: Reset restriction warning flag if real pragma
28827 restriction encountered.
28829 * s-htable.adb: Minor reformatting
28830 Change rotate count to 3 in Hash (improves hash for small strings)
28832 * 5qsystem.ads: Add comments for type Address (no literals allowed).
28834 * gnat_ugn.texi: Add new section of documentation "Code Generation
28835 Control", which describes the use of -m switches.
28837 2004-05-24 Eric Botcazou <ebotcazou@act-europe.fr>
28839 trans.c (tree_transform) <N_Identifier>: Do the dereference directly
28840 through the DECL_INITIAL for renamed variables.
28842 2004-05-24 Arnaud Charlet <charlet@act-europe.fr>
28844 * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
28846 2004-05-19 Joel Brobecker <brobecker@gnat.com>
28848 * exp_dbug.ads: Correct comments concerning handling of overloading,
28849 since we no longer use $ anymore.
28851 2004-05-19 Sergey Rybin <rybin@act-europe.fr>
28853 * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
28854 ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
28855 with illegal subunits.
28857 2004-05-19 Ed Schonberg <schonberg@gnat.com>
28859 * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
28860 body with front-end inlining enabled, check whether an inline pragma
28861 appears immediately after the body and applies to it.
28863 * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
28864 enabled and the pragma appears after the body of the subprogram.
28866 2004-05-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28868 Part of function-at-a-time conversion
28870 * misc.c (adjust_decl_rtl): Deleted.
28871 (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
28874 * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
28875 (add_decl_stmt, add_stmt, block_has_vars): New functions.
28876 (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
28878 * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
28879 when making a decl.
28880 (gnat_to_gnu_entity): Likewise.
28881 Use add_stmt to update setjmp buffer.
28882 Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
28884 No longer call adjust_decl_rtl.
28885 (DECL_INIT_BY_ASSIGN_P): New macro.
28886 (DECL_STMT_VAR): Likewise.
28888 * trans.c (gigi): Call start_block_stmt to make the outermost
28890 (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
28891 Call start_block_stmt and end_block_stmt temporarily.
28892 Use gnat_expand_stmt instead of expand_expr_stmt.
28893 (add_decl_stmt): New function.
28894 (tree_transform): Call it.
28895 (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
28896 (end_block_stmt): Set type and NULL_STMT.
28897 (gnat_expand_stmt): Make recursize call instead of calling
28899 (gnat_expand_stmt, case DECL_STMT): New case.
28900 (set_lineno_from_sloc): Do nothing if global.
28901 (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
28902 (start_block_stmt, add_stmt, end_block_stmt): New functions.
28903 (build_block_stmt): Call them.
28904 (gnat_to_code): Don't expand NULL_STMT.
28905 (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
28907 (tree_transform): Likewise.
28908 (tree_transform, case N_Null_Statement): Return NULL_STMT.
28909 (gnat_expand_stmt, case NULL_STMT): New case.
28910 (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
28913 * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
28916 * utils.c (create_var_decl): Do not call expand_decl or
28918 Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
28919 Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
28921 (struct e_stack): Add chain_next to GTY.
28922 (struct binding_level): Deleted.
28923 (struct ada_binding_level): New struct.
28924 (free_block_chain): New.
28925 (global_binding_level, clear_binding_level): Deleted.
28926 (global_bindings_p): Rework to see if no chain.
28927 (kept_level_p, set_block): Deleted.
28928 (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
28929 new data structure and work directly on BLOCK node.
28930 (gnat_poplevel): Similarly.
28931 (get_decls): Look at BLOCK_VARS.
28932 (insert_block): Work directly on BLOCK node.
28933 (block_has_var): New function.
28934 (pushdecl): Rework for new binding structures.
28935 (gnat_init_decl_processing): Rename and rework calls to pushlevel and
28937 (build_subprog_body): Likewise.
28938 (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
28940 * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
28942 * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
28943 (DECL_STMT_VAR): Likewise.
28945 2004-05-17 Robert Dewar <dewar@gnat.com>
28947 * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
28950 * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
28951 of restriction synonyums by using
28952 Restrict.Process_Restriction_Synonyms.
28954 * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
28956 * s-restri.ads (Tasking_Allowed): Correct missing comment
28958 * s-rident.ads: Add entries for restriction synonyms
28960 * ali.adb: Fix some problems with badly formatted ALI files that can
28961 result in infinite loops.
28963 * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
28964 s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
28965 s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
28966 s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
28967 s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
28968 s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
28969 s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
28970 s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
28971 s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
28972 a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
28973 exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
28974 s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
28975 s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
28976 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
28977 s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
28978 s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
28979 s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
28980 s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
28981 s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
28982 s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
28983 to Task_Id (minor cleanup).
28985 2004-05-17 Vincent Celier <celier@gnat.com>
28987 * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
28988 directory separator.
28990 * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
28991 project being extended, if Languages is not declared in extending
28994 2004-05-17 Javier Miranda <miranda@gnat.com>
28996 * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
28997 limited view of a visible sibling.
28999 2004-05-14 Robert Dewar <dewar@gnat.com>
29001 * gnat_ugn.texi: Minor change to -gnatS documentation
29003 * sprint.adb: Remove some instances of Assert (False) and for this
29004 purpose replace them by output of a ??? string.
29006 * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
29009 * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
29010 flag processing. This was suppressing required dependencies in
29011 No_Run_Time mode and is not needed since the binder does not generate
29012 references for things in libgnat anyway.
29014 * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
29017 2004-05-14 Thomas Quinot <quinot@act-europe.fr>
29019 * gnat_ugn.texi: Document AIX-specific issue with initialization of
29022 * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
29023 action for the case of an actual parameter in an init proc call.
29025 2004-05-14 Ed Schonberg <schonberg@gnat.com>
29027 * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
29028 subtype, check visible entities in base type.
29030 * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
29031 actions if the object is a renaming.
29033 * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
29034 Check_Formal_Package_Instance, to determine more precisely when the
29035 formal and the actual denote the same entity.
29037 2004-05-14 Javier Miranda <miranda@gnat.com>
29039 * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
29041 * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
29042 corresponding to a private_with must be removed from visibility; it
29043 will be made visible later, just before we analyze the private part of
29045 (Check_Private_Child_Unit): Allow private_with clauses in public
29047 (Install_Siblings): Make visible the private entities of private-withed
29049 (Install_Withed_Unit): Do not install the private withed unit if we
29050 are compiling a package declaration and the Private_With_OK flag was
29051 not set by the caller. These declarations will be installed later,
29052 just before we analyze the private part of the package.
29054 * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
29055 during the evaluation of the expression that initializes the object,
29056 decorate it with the expected type to avoid cascade errors.
29059 * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
29060 subprogram we have to install the private_with clauses after its
29061 specification has been analyzed (as documented in AI-262.TXT).
29063 * sem_ch8.adb (Has_Private_With): New function. Determines if the
29064 current compilation unit has a private with on a given entity.
29065 (Find_Direct_Name): Detect the Beaujolais problem described in
29068 * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
29069 provides the functionality of the function Is_Ancestor that was
29070 previously available in sem_ch10. It has been renamed to avoid
29073 * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
29075 2004-05-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29077 * utils.c (build_vms_descriptor): Use SImode pointers.
29079 2004-05-14 Vasiliy Fofanov <fofanov@act-europe.fr>
29081 * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
29083 2004-05-14 GNAT Script <nobody@gnat.com>
29085 * Make-lang.in: Makefile automatically updated
29087 2004-05-14 Arnaud Charlet <charlet@act-europe.fr>
29089 Renaming of target specific files for clarity
29091 * Makefile.in: Rename GNAT target specific files.
29093 * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
29094 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
29095 3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
29096 3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
29097 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
29098 3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
29099 42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
29100 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
29101 4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
29102 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
29103 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
29104 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
29105 51osinte.adb, 51osinte.ads, 51system.ads,
29106 52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
29107 55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
29108 56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
29109 56tpopsp.adb, 57system.ads, 58system.ads,
29110 5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
29111 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
29112 5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
29113 5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
29114 5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
29115 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
29116 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
29117 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
29118 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
29119 5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
29120 5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
29121 5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
29122 5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
29123 5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
29124 5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
29125 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
29126 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
29127 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
29128 5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
29129 5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
29130 5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
29131 5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
29132 5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
29133 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
29134 5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
29135 5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
29136 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
29137 5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
29138 5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
29139 5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
29140 5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
29141 5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
29142 5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
29143 5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
29144 5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
29145 5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
29146 7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
29147 7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
29148 7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
29149 7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
29151 * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
29152 a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
29153 a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
29154 a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
29155 a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
29156 a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
29157 a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
29158 a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
29159 a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
29160 a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
29161 g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
29162 g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
29163 g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
29164 g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
29165 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
29166 g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
29167 g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
29168 g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
29169 interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
29170 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
29171 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
29172 mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
29173 s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
29174 s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
29175 s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
29176 s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
29177 s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
29178 s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
29179 s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
29180 s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
29181 s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
29182 s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
29183 s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
29184 s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
29185 s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
29186 s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
29187 s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
29188 s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
29189 s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
29190 s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
29191 s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
29192 s-osinte-vms.ads, s-osinte-vxworks.adb,
29193 s-osinte-vxworks.ads, s-osprim-mingw.adb,
29194 s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
29195 s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
29196 s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
29197 s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
29198 s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
29199 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
29200 s-stchop-vxworks.adb, s-taprop-dummy.adb,
29201 s-taprop-hpux-dce.adb, s-taprop-irix.adb,
29202 s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
29203 s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
29204 s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
29205 s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
29206 s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
29207 s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
29208 s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
29209 s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
29210 s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
29211 s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
29212 s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
29213 s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
29214 s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
29215 s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
29216 s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
29217 s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
29218 s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
29219 symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
29220 system-hpux.ads, system-interix.ads, system-irix-n32.ads,
29221 system-irix-o32.ads, system-linux-x86_64.ads,
29222 system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
29223 system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
29224 system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
29225 system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
29226 system-vxworks-alpha.ads, system-vxworks-m68k.ads,
29227 system-vxworks-mips.ads, system-vxworks-ppc.ads,
29228 system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
29231 2004-05-13 Zack Weinberg <zack@codesourcery.com>
29233 * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
29235 2004-05-13 Diego Novillo <dnovillo@redhat.com>
29237 Merge from tree-ssa-20020619-branch.
29239 * config-lang.in (boot_language, build_by_default): Set
29241 * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
29242 (max_size): Add static chain op for call_expr.
29244 2004-05-12 Richard Sandiford <rsandifo@redhat.com>
29247 * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
29249 2004-05-11 Roger Sayle <roger@eyesopen.com>
29251 * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
29254 2004-05-10 Doug Rupp <rupp@gnat.com>
29256 * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
29259 * s-auxdec.ads: Add Short_Address subtype (moved here from System).
29261 * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
29263 * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
29264 Fixes undefined symbols in IA64 gnatlib.
29266 * 5vinmaop.adb: Reference s-auxdec for Short_Address.
29268 * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
29269 Short_Address). This will be moved to system.auxdec.
29271 2004-05-10 Thomas Quinot <quinot@act-europe.fr>
29273 * sem_util.adb: Replace test for presence of a node that is always
29274 present with a call to Discard_Node.
29276 * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
29277 Analyze on the library unit node after generation of distribution stub
29278 constructs. The call was a no-op because Unit_Node has already been
29279 Analyzed, and the tree fragments for the distribution stubs are
29280 analyzed as they are inserted in Exp_Dist.
29281 Update comment regarding to distribution stubs to reflect that we
29282 do not generate stub in separate files anymore.
29284 * einfo.ads: Clarify the fact that a tagged private type has the
29285 E_Record_Type_With_Private Ekind.
29287 * erroutc.adb: Minor reformatting
29289 * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
29290 values if line length is increased using -gnatyM (noticed during code
29293 * eval_fat.adb: Minor reformatting
29294 Put spaces around exponentiation operator
29296 2004-05-10 Ed Schonberg <schonberg@gnat.com>
29299 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
29300 has been rewritten as an explicit dereference, retrieve type of
29301 original node to check for possibly unconstrained record type.
29303 2004-05-10 Ed Schonberg <schonberg@gnat.com>
29305 * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
29306 overriding, use the operation of the parent unconditionally.
29308 * sem_ch4.adb (Remove_Address_Interpretations): Remove address
29309 operation when either operand is a literal, to avoid further
29312 * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
29313 overridden by a previous explicit declaration, mark the previous entity
29316 * sem_disp.adb (Check_Dispatching_Operation): New predicate
29317 Is_Visibly_Controlled, to determine whether a declaration of a
29318 primitive control operation for a derived type overrides an inherited
29319 one. Add warning if the explicit declaration does not override.
29321 2004-05-10 Vincent Celier <celier@gnat.com>
29323 * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
29324 some cases when the sources are no longer present.
29326 * make.adb (Collect_Arguments): Fail if an external source, not part
29327 of any project need to be compiled, when switch -x has not been
29330 * makeusg.adb: Document new switch -x
29332 * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
29333 defaulted to False.
29335 * switch-m.adb (Scan_Make_Switches): New switch -x
29337 * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
29338 gnatmake switch -x.
29340 * gnat_ugn.texi: Document new gnatmake switch -x
29342 2004-05-10 Eric Botcazou <ebotcazou@act-europe.fr>
29344 * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
29346 * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
29347 (process_attributes): Likewise.
29349 2004-05-10 Joel Brobecker <brobecker@gnat.com>
29351 * s-inmaop.ads: Fix spelling mistake in one of the comments.
29353 2004-05-10 Robert Dewar <dewar@gnat.com>
29355 * gnat_ugn.texi: Document that for config pragma files, the maximum
29356 line length is always 32767.
29358 * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
29359 literals is now allowed.
29361 * gnat-style.texi: Remove statement about splitting long lines before
29362 an operator rather than after, since we do not follow this rule at all.
29363 Clarify rule (really lack of rule) for spaces around exponentiation
29365 * sem_elim.adb: Allow concatenation of string literals as well as a
29366 single string literal for pragma arguments.
29368 * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
29370 * a-textio.adb (Terminate_Line): Do not add line feed if nothing
29371 written for append case.
29373 * frontend.adb: Changes to avoid checking max line length in config
29376 * g-os_lib.ads: Minor reformatting
29378 * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
29379 wrong in any case. Instead use standard value. Noticed during code
29382 * opt.ads (Max_Line_Length): New field, used to implement removal of
29383 limitation on length of lines when scanning config pragma files.
29385 * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
29386 makeutl.ads, makeutl.adb: Minor reformatting
29388 * scn.adb: Do not check line length while scanning config pragma files
29389 Do not check line length while scanning out license information
29391 * scng.adb: Changes to avoid line length checks while parsing config
29394 2004-05-10 GNAT Script <nobody@gnat.com>
29396 * Make-lang.in: Makefile automatically updated
29398 2004-05-05 Arnaud Charlet <charlet@act-europe.fr>
29400 * osint.adb (Find_Program_Name): Fix handling of VMS version
29403 2004-05-05 Emmanuel Briot <briot@act-europe.fr>
29405 * g-os_lib.ads (Invalid_Time): New constant
29407 * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
29408 return OS_Time instead of time_t to match what is imported by Ada.
29409 Now return -1 if the file doesn't exist, instead of a random value
29411 2004-05-05 Robert Dewar <dewar@gnat.com>
29413 * usage.adb: Add line for -gnatR?s switch
29415 * sem_ch13.adb, exp_ch2.adb: Minor reformatting
29417 * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
29418 and for Match (Data_First, Data_last)
29420 * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
29421 written when we are dealing with multi-unit files.
29423 2004-05-05 Jerome Guitton <guitton@act-europe.fr>
29425 * Makefile.in: Remove unused targets and variables.
29427 2004-05-05 Vincent Celier <celier@gnat.com>
29429 * switch-m.adb: New gnatmake switch -eI
29431 * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
29432 of new gnatmake switch -eInnn.
29434 * makegpr.adb: Take into account new parameters Index and Src_Index in
29437 * clean.adb: Implement support for multi-unit sources, including new
29440 * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
29443 * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
29444 (Extract_From_Q): New out parameter Index
29445 (Mark, Is_Marked): Subprograms moved to Makeutl
29446 (Switches_Of): New parameter Source_Index
29447 (Add_Switch): New parameter Index
29448 (Check): New parameter Source_Index
29449 (Collect_Arguments): New parameter Source_Index
29450 (Collect_Arguments_And_Compile): New parameter Source_Index
29451 (Compile): New parameter Source_Index
29452 Put subprograms in alphabetical order
29453 Add support for multi-source sources, including in project files.
29455 * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
29456 (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
29459 * makeusg.adb: New gnatmake switch -eInnn
29461 * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
29464 * opt.ads (Main_Index): New variable, defaulted to 0.
29466 * osint.ads, osinte.adb (Add_File): New parameter Index
29467 (Current_Source_Index): New function
29469 * prj.adb: Take into account new components Index and Src_Index
29471 * prj.ads (String_Element): New component Index
29472 (Variable_Value): New component Index
29473 (Array_Element): New component Src_Index
29475 * prj-attr.adb: Indicate that optional index may be specified for
29476 attributes Main, Executable, Spec, Body and some of Switches.
29478 * prj-attr.ads (Attribute_Kind): New values for optional indexes
29479 (Attribute_Record): New component Optional_Index
29481 * prj-com.ads (File_Name_Data): New component Index
29483 * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
29485 * prj-env.adb (Put): Output optional index
29487 * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
29488 attributes Spec and Body.
29490 * prj-nmsc.adb: Process optional indexes
29492 * prj-pp.adb: Ouput "at" for optional indexes
29494 * prj-proc.adb: Take into account optional indexes
29496 * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
29497 Optional_Index. For string literal,
29498 process optional index when Optional_Index is True.
29499 (Parse_Expresion): New Boolean parameter Optional_Index
29501 * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
29502 (Set_Source_Index_Of): New procedure
29504 * prj-util.adb (Executable_Of, Value_Of): Take into account optional
29507 * prj-util.ads (Executable_Of): New parameter Index
29508 (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
29509 New parameter Src_Index, defaulted to 0.
29511 2004-05-05 Ed Schonberg <schonberg@gnat.com>
29514 * sem_ch3.adb (Access_Definition): If this is an access parameter
29515 whose designated type is imported through a limited_with clause, do
29516 not add the enclosing subprogram to the list of private dependents of
29519 2004-05-05 Ed Schonberg <schonberg@gnat.com>
29522 * sem_ch6.adb (Base_Types_Match): True if one type is imported through
29523 a limited_with clause, and the other is its non-limited view.
29525 2004-05-05 Thomas Quinot <quinot@act-europe.fr>
29527 * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
29529 * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
29530 exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
29531 Stand.Boolean_Literals to produce references to entities
29532 Standard_False and Standard_True from compile-time computed boolean
29535 * stand.ads (Boolean_Literals): New variable, provides the entity
29536 values for False and True, for use by the expander.
29538 2004-05-05 Doug Rupp <rupp@gnat.com>
29540 * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
29541 5vinmaop.adb: Unchecked convert Short_Address vice Address
29543 * adaint.c, raise.c: Caste CRTL function return value
29544 to avoid gcc error on 32/64 bit IVMS.
29546 * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
29549 * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
29551 * 5qsystem.ads (Address): Declare as Long_Integer
29552 (Short_Address): Declare as 32 bit subtype of Address
29553 Declare abstract address operations to avoid gratuitous ambiguities.
29555 2004-05-05 Jose Ruiz <ruiz@act-europe.fr>
29557 * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
29558 instead of the old Boolean_Entry_Barriers.
29559 Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
29561 2004-05-05 GNAT Script <nobody@gnat.com>
29563 * Make-lang.in: Makefile automatically updated
29565 2004-05-03 Arnaud Charlet <charlet@act-europe.fr>
29567 * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
29569 2004-05-03 Olivier Hainque <hainque@act-europe.fr>
29572 * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
29573 alone. Replacing object references by literals is inappropriate in a
29574 so low level context.
29576 2004-05-03 Arnaud Charlet <charlet@act-europe.fr>
29578 * a-exexpr.adb: Add comments
29580 2004-05-03 Joel Brobecker <brobecker@gnat.com>
29582 * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
29583 declare the Ancestor_Tags array in Type_Specific_Data with a small size
29584 without risking a bounds check error when accessing one of its
29586 (Type_Specific_Data): Define Ancestor_Tags as a small array.
29587 This prevents us from hitting a limitation during the debug info
29588 generation when using stabs.
29590 * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
29592 This prevents us from hitting a limitation during the debug info
29593 generation when using stabs.
29595 2004-05-03 Eric Botcazou <ebotcazou@act-europe.fr>
29597 lang-specs.h: Remove -gnatz* from specs.
29599 2004-05-03 Vincent Celier <celier@gnat.com>
29601 * gprmake.adb, makegpr.ads, makegpr.adb: New files.
29603 * Make-lang.in, Makefile.in: Add gprmake
29605 2004-05-03 Thomas Quinot <quinot@act-europe.fr>
29607 * sem_aggr.adb: Fix typo in comment.
29609 2004-05-03 Robert Dewar <dewar@gnat.com>
29611 * make.adb: Minor reformatting
29613 * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
29615 * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
29616 so that it works when address is not a private type.
29618 * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
29619 properly with rewritten unchecked conversions. This prevents
29620 order-of-elaboration issues that can otherwise arise.
29621 (Minimum_Size): Don't check size of access types under VMS
29623 * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
29624 interpretations of integer literals as type System.Address.
29626 * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
29627 (Is_Descendent_Of): New function
29629 2004-05-03 Jose Ruiz <ruiz@act-europe.fr>
29631 * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
29632 Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
29633 No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
29635 * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
29636 of the old Max_Entry_Queue_Depth.
29638 * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
29639 Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
29640 No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
29642 * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
29643 New entry for proper handling of Max_Entry_Queue_Depth.
29644 New entry for proper handling of No_Dynamic_Interrupts.
29646 * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
29647 supersedes the GNAT specific restriction Boolean_Entry_Barriers.
29648 Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
29649 the GNAT specific restriction Max_Entry_Queue_Depth.
29650 Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
29651 the GNAT specific restriction No_Dynamic_Interrupts.
29653 * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
29654 instead of the old Boolean_Entry_Barriers.
29655 Use the new restriction No_Dynamic_Attachment instead of the old
29656 No_Dynamic_Interrupts.
29658 * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
29659 supersedes the GNAT specific restriction Boolean_Entry_Barriers.
29661 * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
29662 of the old Max_Entry_Queue_Depth.
29664 2004-05-03 GNAT Script <nobody@gnat.com>
29666 * Make-lang.in: Makefile automatically updated
29668 2004-04-29 Ed Schonberg <schonberg@gnat.com>
29670 * checks.adb (Enable_Range_Check): If the prefix of an index component
29671 is an access to an unconstrained array, perform check unconditionally.
29673 2004-04-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29675 * decl.c (gnat_to_gnu_field): Also call make_packable_type if
29678 2004-04-29 Olivier Hainque <hainque@act-europe.fr>
29680 * init.c (__gnat_install_handler, __gnat_error_handler): Remove
29681 alternate stack setting. There was no support for the tasking cases
29682 and the changes eventually caused a number of side-effect failures in
29683 the non-tasking case too.
29685 2004-04-29 Eric Botcazou <ebotcazou@act-europe.fr>
29687 lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
29690 2004-04-29 Vincent Celier <celier@gnat.com>
29692 * make.adb (Gnatmake): Increase max size of argument array for
29693 gnatbind for the potential addition of -F.
29694 If there are Stand-Alone Library projects, invoke gnatbind with -F to
29695 be sure that elaboration flags will be checked.
29697 * switch-c.adb: Correct call to Scan_Pos for -gnateI
29699 2004-04-29 Thomas Quinot <quinot@act-europe.fr>
29701 * sem_warn.adb (Check_References): Move '<access-variable> may be
29702 null' warning out of under Warn_On_No_Value_Assigned.
29704 2004-04-29 Ed Falis <falis@gnat.com>
29706 * gnat_ugn.texi: Fixed texi error
29708 2004-04-29 Robert Dewar <dewar@gnat.com>
29710 * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
29711 abstract operations if they come from predefined files.
29713 * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
29716 * s-addope.adb: Correct obvious error in mod function
29718 2004-04-28 Andrew W. Reynolds <awreynolds@mac.com>
29720 * Makefile.in: Add target pairs for powerpc darwin*
29723 * a-intnam-darwin.ads, s-osinte-darwin.adb,
29724 s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
29726 2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
29728 * Makefile.in: Add target macro definitions for s390*-linux*.
29729 * system-linux-s390.ads: New file.
29730 * system-linux-s390x.ads: New file.
29732 2004-04-28 Joseph S. Myers <jsm@polyomino.org.uk>
29734 * gnat_ugn.texi: Correct argument to @setfilename.
29736 2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
29738 * a-exexpr.adb (Unwind_Word): New data type.
29739 (Unwind_Exception): Use it as type of Private1 and Private2.
29741 * raise.c (db_action_for): Fix debug printf.
29743 2004-04-27 Ed Schonberg <schonberg@gnat.com>
29745 * a-wtmoio.ads: Formal type must be a modular type, not a signed
29748 2004-04-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29750 * decl.c (gnat_to_gnu_entity, case object): Call
29751 __builtin_update_setjmp_buf.
29753 * gigi.h (update_setjmp_buf): Deleted.
29754 (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
29756 * misc.c: (update_setjmp_buf): Deleted.
29758 * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
29759 around block of RTL.
29761 * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
29763 2004-04-26 Thomas Quinot <quinot@act-europe.fr>
29765 * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
29766 subprogram for which no pragma All_Calls_Remote applies, store the
29767 address of the real subprogram in the underlying record type, so local
29768 dereferences do not go through the PCS.
29770 2004-04-26 Robert Dewar <dewar@gnat.com>
29772 * i-c.ads: Add some type qualifications to avoid ambiguities when
29773 compiling with s-auxdec.ads and a non-private address type.
29775 2004-04-26 Arnaud Charlet <charlet@act-europe.fr>
29777 * Makefile.rtl: Fix error in previous check-in:
29778 Add s-addope.o to non tasking object list (rather than tasking object
29781 2004-04-26 Javier Miranda <miranda@gnat.com>
29783 * sem_aggr.adb: Fix typo in comments
29784 (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
29785 Required to check the null-exclusion attribute.
29787 * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
29788 case of anonymous access types in record and array components. For a
29789 component definition the level is the same of the enclosing composite
29792 * sem_ch3.adb (Analyze_Component_Declaration): In case of components
29793 that are anonymous access types the level of accessibility depends on
29794 the enclosing type declaration. In order to have this information, set
29795 the scope of the anonymous access type to the enclosing record type
29797 (Array_Type_Declaration): In case of components that are anonymous
29798 access types the level of accessibility depends on the enclosing type
29799 declaration. In order to have this information, set the scope of the
29800 anonymous access type to the enclosing array type declaration.
29802 * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
29805 * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
29806 renaming of anonymous access-to-constant types allowed if and only if
29807 the renamed object is access-to-constant.
29809 * sem_util.adb (Type_Access_Level): In case of anonymous access types
29810 that are component_definition or discriminants of a nonlimited type,
29811 the level is the same as that of the enclosing component type.
29813 2004-04-26 Sergey Rybin <rybin@act-europe.fr>
29815 * sem_elim.adb: Some minor code reorganization from code reading. Fix
29816 misprint in the function name (File_Name_Match).
29818 2004-04-23 Laurent Guerby <laurent@guerby.net>
29820 * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
29823 2004-04-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
29825 * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
29827 2004-04-23 Emmanuel Briot <briot@act-europe.fr>
29829 * adaint.c (__gnat_try_lock): No longer requires that the parent
29830 directory be writable, the directory itself is enough.
29831 (gnat_is_absolute_path): Change profile, so that the call from
29832 GNAT.OS_Lib can be made more efficient.
29834 * adaint.h (gnat_is_absolute_path): Change profile, so that the call
29835 from GNAT.OS_Lib can be made more efficient.
29837 * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
29838 one copy of the file name. Found by code reading.
29840 2004-04-23 Vincent Celier <celier@gnat.com>
29842 * gnat_ugn.texi: Add documentation for gnatmake switch -eL
29843 Correct documentation on gnatmake switches transmitted to the compiler
29845 * ali.ads: Minor comment fix
29847 2004-04-23 Javier Miranda <miranda@gnat.com>
29849 * sem_ch6.adb: (Confirming Types): Code cleanup
29851 * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
29852 subprogram types: E_Anonymous_Access_Subprogram_Type and
29853 E_Anonymous_Access_Protected_Subprogram_Type.
29855 2004-04-23 Thomas Quinot <quinot@act-europe.fr>
29857 * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
29858 whether a pragma All_Calls_Remote applies to the subprogram on which
29860 No functional change is introduced by this revision; the new parameter
29861 will be used to allow calls to local RCI subprograms to be optimized
29862 to not use the PCS in the case where no pragma All_Calls_Remote applies,
29863 as is already done in the PolyORB implementation of the DSA.
29865 * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
29866 whether a pragma All_Calls_Remote applies to the subprogram on which
29868 No functional change is introduced by this revision; the new parameter
29869 will be used to allow calls to local RCI subprograms to be optimized
29870 to not use the PCS in the case where no pragma All_Calls_Remote applies,
29871 as is already done in the PolyORB implementation of the DSA.
29873 2004-04-23 Robert Dewar <dewar@gnat.com>
29875 * Makefile.rtl: Add entry for s-addope.o in run time library list
29876 * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
29877 * s-addope.ads, s-addope.adb: New files.
29879 * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
29880 s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
29881 s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
29882 System.Address to be non-private and signed.
29884 * sem_elim.adb: Minor reformatting (fairly extensive)
29885 Some minor code reorganization from code reading
29886 Add a couple of ??? comments
29888 2004-04-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29890 * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
29891 (tree_transform, case N_If_Statement): Remove non-determinism.
29893 * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
29895 2004-04-23 Sergey Rybin <rybin@act-europe.fr>
29897 * gnat_rm.texi: Small fixes in the changes made in the 'pragma
29898 Eliminate' section.
29900 * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
29901 no longer used as a parameter name for Eliminate pragma).
29903 2004-04-22 Laurent Guerby <laurent@guerby.net>
29905 PR optimization/14984
29906 PR optimization/14985
29907 * trans.c (gigi): Fix non determinism leading to bootstrap
29908 comparison failures.
29910 2004-04-21 Pascal Obry <obry@gnat.com>
29912 * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
29913 passed to spawnvp() to properly handle program pathname with spaces on
29916 2004-04-21 Emmanuel Briot <briot@act-europe.fr>
29918 * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
29919 (Allocate, Deallocate, Free_Physically): Make sure the tasks are
29920 unlocked in case of exceptions.
29922 2004-04-21 Joel Brobecker <brobecker@gnat.com>
29924 * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
29925 This function does not exist anymore.
29927 2004-04-21 Thomas Quinot <quinot@act-europe.fr>
29929 * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
29931 * link.c: Move variables to the __gnat name space.
29933 * Makefile.in: list link.o explicitly when needed.
29935 * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
29937 2004-04-21 Javier Miranda <miranda@gnat.com>
29939 * einfo.adb (Original_Access_Type): New subprogram
29940 (Set_Original_Access_Type): New subprogram
29941 (Write_Field21_Name): Write the name of the new field
29943 * einfo.ads (Original_Access_Type): New field present in access to
29945 Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
29946 E_Anonymous_Access_Protected_Subprogram_Type.
29948 * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
29951 * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
29952 to anonymous access to subprogram types.
29954 * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
29955 to subprogram types.
29957 * sem_ch3.adb (Access_Definition): Complete decoration of entities
29958 corresponding to anonymous access to subprogram types.
29959 (Analyze_Component_Declaration): Add new actual to the call to
29960 subprogram replace_anonymous_access_to_protected_subprogram.
29961 (Array_Type_Declaration): Add new actual to the call to subprogram
29962 replace_anonymous_access_to_protected_subprogram.
29963 (Process_Discriminants): Add new actual to the call to subprogram
29964 replace_anonymous_access_to_protected_subprogram.
29965 (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
29967 * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
29970 * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
29971 access to subprogram types.
29973 * sem_util.adb (Has_Declarations): Addition of package_specification
29976 2004-04-21 Ed Schonberg <schonberg@gnat.com>
29978 * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
29979 inlined flags to renamed entity only if in current unit.
29981 2004-04-21 Thomas Quinot <quinot@act-europe.fr>
29983 * s-parint.ads: Add DSA implementation marker.
29985 * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
29986 value of System.Partition_Interface.DSA_Implementation to determine
29987 what version of the distributed systems annex is available (no
29988 implementation, GLADE, or PolyORB).
29990 2004-04-21 Joel Brobecker <brobecker@gnat.com>
29992 * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
29994 2004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29996 * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
29997 with new type if alias sets differ.
29998 Fixes ACATS c41103b.
30000 2004-04-21 Vincent Celier <celier@gnat.com>
30002 * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
30003 Add array Lang_Args for the language specific compiling argument
30006 * gnat_ugn.texi: Explain in more details when a library is rebuilt.
30008 2004-04-21 Sergey Rybin <rybin@act-europe.fr>
30010 * gnat_rm.texi: Update the descripton of the Eliminate pragma
30011 according to the recent changes in the format of the parameters of the
30012 pragma (replacing Homonym_Number with Source_Location).
30014 2004-04-19 Arnaud Charlet <charlet@act-europe.fr>
30016 * 5isystem.ads: Removed, unused.
30018 * gnat_rm.texi: Redo 1.13 change.
30020 2004-04-19 Robert Dewar <dewar@gnat.com>
30022 * s-stoele.ads: Clean up definition of Storage_Offset (the new
30023 definition is cleaner, avoids the kludge of explicit Standard operator
30024 references, and also is consistent with a visible System.Address with
30025 no visible operations.
30027 * s-geveop.adb: Add declarations to avoid assumption of visible
30028 operations on type System.Address (since these might not be available
30029 if Address is a non-private type for which the operations
30030 are made abstract).
30032 * sem_eval.adb: Minor reformatting
30034 * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
30035 s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
30036 reformatting (new function spec format).
30038 * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
30039 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
30040 s-caun64.adb: Add declarations to avoid assumption of visible
30041 operations on type System.Address (since these might not be available
30042 if Address is a non-private type for which the operations are made
30045 * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
30047 * exp_intr.adb: Minor comment update
30049 * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
30051 * 5omastop.adb: Add declarations to avoid assumption of visible
30052 operations on type System.Address (since these might not be available
30053 if Address is a non-private type for which the operations
30054 are made abstract).
30056 2004-04-19 Vincent Celier <celier@gnat.com>
30058 * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
30060 * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
30063 * prj-proc.adb (Process): New Boolean parameter Process_Languages,
30065 Call Check with Process_Languages.
30066 (Check): New Boolean parameter Process_Languages. Call Recursive_Check
30067 with Process_Languages.
30068 (Recursive_Check): New Boolean parameter Process_Languages. Call
30069 Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
30072 * prj-proc.ads (Process): New Boolean parameter Process_Languages,
30074 * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
30075 parameter Ada_Main, defaulted to True.
30076 Check for Ada specific characteristics only when Ada_Main is True.
30078 * opt.ads: (Follow_Links): New Boolean flag for gnatmake
30080 * prj.adb: (Project_Empty): Add new Project_Data components.
30082 * prj.ads: New types and tables for non Ada languages.
30083 (Project_Data): New components Languages, Impl_Suffixes,
30084 First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
30085 Include_Path, Include_Data_Set.
30087 * prj-env.ads, prj-env.adb: Minor reformatting
30089 * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
30090 Put subprograms in alphabetical order
30092 * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
30093 defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
30096 * mlib-prj.adb: Back out modification in last version, as they are
30098 (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
30100 * make.adb: (Mains): Moved to package Makeutl
30101 (Linker_Opts): Moved to package Makeutl
30102 (Is_External_Assignment): Moved to package Makeutl
30103 (Test_If_Relative_Path): Moved to package Makeutl
30104 (Gnatmake): Move sorting of linker options to function
30105 Makeutl.Linker_Options_Switches.
30107 * makeutl.ads, makeutl.adb: New files.
30109 * Makefile.in: Add makeutl.o to the object files for gnatmake
30111 * makeusg.adb: Add line for new switch -eL.
30113 * gnatls.adb (Image): New function.
30114 (Output_Unit): If in verbose mode, output the list of restrictions
30115 specified by pragmas Restrictions.
30117 * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
30120 * a-calend.adb (Split): Shift the date by multiple of 56 years, if
30121 needed, to put it in the range 1970 (included) - 2026 (excluded).
30122 (Time_Of): Do not shift Unix_Min_Year (1970).
30123 Shift the date by multiple of 56 years, if needed, to put it in the
30124 range 1970 (included) - 2026 (excluded).
30126 * adaint.h, adaint.c (__gnat_set_executable): New function.
30128 2004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30130 * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
30131 and pop GC context.
30132 (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
30133 (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
30134 (tree_transform, case N_Procedure_Call_Statement): Build a tree.
30135 (tree_transform, case N_Code_Statement): Likewise.
30136 (gnat_expand_stmt, case LABEL_STMT): Don't look at
30137 LABEL_STMT_FIRST_IN_EH.
30138 (gnat_expand_stmt, case ASM_STMT): New case.
30140 * utils2.c (build_unary_op): Properly set TREE_READONLY of
30141 UNCONSTRAINED_ARRAY_REF.
30143 * utils.c (poplevel): Temporarily push/pop GC context around inline
30144 function expansion.
30146 * decl.c (maybe_variable): Properly set TREE_READONLY of
30147 UNCONSTRAINED_ARRAY_REF.
30148 (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
30150 * ada-tree.def: (ASM_STMT): New.
30152 * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
30153 (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
30154 ASM_STMT_INPUT): New.
30155 (ASM_STMT_CLOBBER): Likewise.
30157 2004-04-19 Thomas Quinot <quinot@act-europe.fr>
30159 * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
30160 general rcheck mechanism to raise Program_Error for E.4(18), instead
30161 of a custom raiser in System.Partition_Interface.
30162 Part of general cleanup work before PolyORB integration.
30164 * snames.ads, snames.adb: Add new runtime library entities and names
30167 * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
30169 (Build_Subprogram_Id): New subprogram provided by exp_dist
30170 Code reorganisation in preparation for PolyORB integration.
30172 * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
30174 (Build_Subprogram_Id): New subprogram provided by exp_dist
30176 * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
30177 actual parameter types for call to dereference of an
30178 access-to-subprogram type.
30180 * rtsfind.ads: Add new runtime library entities and names for PolyORB
30183 * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
30184 instead, which has the same behaviour here since we never pass it a
30187 * link.c (run_path_option, Solaris case): Use -Wl, as for other
30190 * Makefile.in: adjust object file lists for gnatlink and gnatmake
30191 to account for new dependency upon Interfaces.C.Strings + link.o
30192 For x86 FreeBSD, use 86numaux.
30194 * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
30195 from Mlib.Tgt to Mlib.
30197 * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
30198 target-independent.
30200 * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
30201 target-specific versions of this subprogram, now implemented as a
30202 target-independent function in Mlib.
30204 * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
30205 5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
30206 (Linker_Library_Path_Option): Remove target-specific versions of this
30207 subprogram, now implemented as a target-independent function in Mlib.
30209 * atree.adb: (Allocate_Initialize_Node): New subprogram.
30210 Factors out node table slots allocation.
30211 (Fix_Parents): New subprogram.
30212 Encapsulate the pattern of fixing up parent pointers for syntactic
30213 children of a rewritten node.
30214 (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
30215 (Rewrite): Use New_Copy when creating saved copy of original node.
30216 (Replace): Use Copy_Node to copy nodes.
30218 2004-04-19 Javier Miranda <miranda@gnat.com>
30220 * sprint.adb (Sprint_Node_Actual): Give support to the new
30221 Access_To_Subprogram node available in Access_Definition nodes. In
30222 addition, give support to the AI-231 node fields: null-exclusion,
30223 all-present, constant-present.
30225 * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
30227 * sinfo.ads, sinfo.adb:
30228 New field Access_To_Subprogram_Definition in Access_Definition nodes
30230 * sem_ch6.adb (Process_Formals): Move here the code that creates and
30231 decorates internal subtype declaration corresponding to the
30232 null-excluding formal. This code was previously in Set_Actual_Subtypes.
30233 In addition, carry out some code cleanup on this code. In case of
30234 access to protected subprogram call
30235 Replace_Anonymous_Access_To_Protected_Subprogram.
30236 (Set_Actual_Subtypes): Code cleanup.
30238 * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
30239 Find_Type in case of anonymous access renamings. Add warning in case of
30240 null-excluding attribute used in anonymous access renaming.
30242 * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
30245 * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
30247 (Access_Definition): In case of anonymous access to subprograms call
30248 the corresponding semantic routine to decorate the node.
30249 (Access_Subprogram_Declaration): Addition of some comments indicating
30250 some code that probably should be added here. Detected by comparison
30251 with the access_definition subprogram.
30252 (Analyze_Component_Declaration): In case of access to protected
30253 subprogram call Replace_Anonymous_Access_To_Protected.
30254 (Array_Type_Declaration): In case of access to protected subprogram call
30255 Replace_Anonymous_Access_To_Protected_Subprogram.
30256 (Process_Discriminants): In case of access to protected subprogram call
30257 Replace_Anonymous_Access_To_Protected_Subprogram.
30259 * par.adb (P_Access_Definition): New formal that indicates if the
30260 null-exclusion part was present.
30261 (P_Access_Type_Definition): New formal that indicates if the caller has
30262 already parsed the null-excluding part.
30264 * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
30265 (P_Identifier_Declarations): Code cleanup and give support to renamings
30266 of anonymous access to subprogram types.
30267 (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
30268 (P_Array_Type_Definition): Give support to AI-254.
30269 (P_Component_Items): Give support to AI-254.
30270 (P_Access_Definition): New formal that indicates if the header was
30271 already parsed by the caller.
30272 (P_Access_Type_Definition): New formal that indicates if the caller has
30273 already parsed the null-excluding part.
30275 * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
30276 call to P_Access_Definition.
30278 2004-04-19 Geert Bosch <bosch@gnat.com>
30280 * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
30281 the delicate semantics of floating-point to integer conversion.
30282 (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
30284 * eval_fat.adb (Machine_Mantissa): Moved to spec.
30285 (Machine_Radix): New function.
30287 * eval_fat.ads (Machine_Mantissa): Moved from body for use in
30289 (Machine_Radix): New function also for use in conversion checks.
30291 2004-04-19 Ed Schonberg <schonberg@gnat.com>
30293 * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
30295 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
30296 to decorate the access-to-protected subprogram and the equivalent type.
30298 * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
30299 to anonymous access to subprogram types.
30301 * exp_ch4.adb (Expand_N_In): Preserve Static flag before
30302 constant-folding, for legality checks in contexts that require an RM
30305 * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
30306 temporary but stack checking is not enabled, increment serial number
30307 to so that symbol generation is consistent with and without stack
30310 * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
30311 independent on whether stack checking is enabled, caller must check
30312 the corresponding flag.
30314 * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
30316 (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
30317 parent if it has discriminants.
30318 (Build_Derived_Private_Type): Constructed full view does
30319 not come from source.
30320 (Process_Discriminants): Default discriminants on a tagged type are
30321 legal if this is the internal completion of a private untagged
30324 * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
30325 no constraint checks, because it corresponds to an existing object.
30327 * sem_prag.adb (Process_Convention): Pragma applies
30328 only to subprograms in the same declarative part, i.e. the same unit,
30329 not the same scope.
30331 * sem_res.adb (Valid_Conversion): In an instance or inlined body,
30332 ignore type mismatch on a numeric conversion if expression comes from
30335 2004-04-19 Sergey Rybin <rybin@act-europe.fr>
30337 * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
30338 Homonym_Number parameter, add processing for Source_Location parameter
30340 (Check_Eliminated): Remove the check for homonym numbers, add the check
30341 for source location traces.
30343 * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
30344 with Arg_Source_Location corresponding to the changes in the format of
30347 * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
30348 Eliminate pragma corresponding to the changes in the format of the
30349 pragma: Homonym_Number is replaced with Source_Location, two ways of
30350 distinguishing homonyms are mutially-exclusive.
30352 2004-04-19 Joel Brobecker <brobecker@gnat.com>
30354 * get_targ.ads (Get_No_Dollar_In_Label): Remove.
30356 * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
30357 No_Dollar_In_Label, no longer necessary, as it is always True.
30358 (Strip_Suffixes): Likewise.
30360 2004-04-19 Gary Dismukes <dismukes@gnat.com>
30362 * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
30363 modulus for compatibility with size clause on targets with 16-bit
30366 * layout.adb (Discrimify): In the case of private types, set Vtyp to
30367 full type to fix type mismatches on calls to size functions for
30368 discriminant-dependent array components.
30370 2004-04-19 Jerome Guitton <guitton@act-europe.fr>
30372 * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
30375 2004-04-19 Pascal Obry <obry@gnat.com>
30377 * mdll-utl.adb (Locate): New version is idempotent.
30379 2004-04-17 Laurent Guerby <laurent@guerby.net>
30381 PR ada/14988 (partial)
30382 * impunit.adb: Fix typo.
30384 2004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
30386 * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
30387 and install-rts-cert targets. Remove all gnatlib and gnattools
30388 targets and all other rts-* targets (moved to libada). Remove (now)
30389 unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
30390 TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
30392 2004-04-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30394 * trans.c (tree_transform): Shortcut returning error_mark_node for
30395 statements in annotate_only_mode.
30396 (tree_transform, case N_Label, case N_Return_Statement,
30397 N_Goto_Statement): Make statement tree instead of generating code.
30398 (tree_transform, case N_Assignment_Statement): No longer check
30399 type_annotate_only.
30400 (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
30402 (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
30404 (gnat_to_gnu): Collect any RTL generated and deal with it.
30405 (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
30406 (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
30407 (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
30409 * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
30411 * ada-tree.def (EXPR_STMT): Fix typo in name.
30412 (BLOCK_STMT, IF_STMT): New nodes.
30414 * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
30415 LABEL_STMT_FIRST_IN_EH): New macros.
30416 (RETURN_STMT_EXPR): Likewise.
30418 * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
30419 IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
30421 2004-04-08 Thomas Quinot <quinot@act-europe.fr>
30423 * atree.ads: Correct documentation on extended nodes.
30425 * link.c: Set run_path_option for FreeBSD.
30427 2004-04-08 Vincent Celier <celier@gnat.com>
30429 * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
30430 one of the ALI file, do not link with DEC lib.
30432 * par.adb Remove the last two characters ("%s" or "%b") when checking
30433 if a language defined unit may be recompiled.
30435 2004-04-08 Ed Schonberg <schonberg@gnat.com>
30437 * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
30438 removal of abstract operation leaves no possible interpretation for
30441 * sem_eval.adb (Eval_Qualified_Expression): Use
30442 Set_Raises_Constraint_Error on node when needed, so that it does not
30443 get optimized away by subsequent optimizations.
30445 * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
30446 operands even when they are not wrapped in a type conversion.
30448 2004-04-08 Olivier Hainque <hainque@act-europe.fr>
30450 * sem_prag.adb (Set_Exported): Warn about making static as result of
30451 export only when the export is coming from source. This may be not
30452 be true e.g. on VMS where we expand export pragmas for exception codes
30453 together with imported or exported exceptions, and we don't want the
30454 user to be warned about something he didn't write.
30456 2004-04-08 Thomas Quinot <quinot@act-europe.fr>
30458 * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
30459 duplication between normal entities and those declared as renamings.
30460 No functional change.
30462 * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
30463 inline functions returning an unconstrained result.
30465 2004-04-08 Eric Botcazou <ebotcazou@act-europe.fr>
30467 * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
30468 conform to what other front-ends do.
30470 2004-04-08 Doug Rupp <rupp@gnat.com>
30472 * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
30475 2004-04-06 Pascal Obry <obry@gnat.com>
30477 * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
30479 * osint.adb (Program_Name): Do not look past a directory separator.
30481 2004-04-06 Thomas Quinot <quinot@act-europe.fr>
30483 * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
30485 * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
30486 requirement for preserving a copy of the original assignment node.
30488 * sinfo.ads: Update comment (Original_Tree -> Original_Node).
30490 2004-04-06 Olivier Hainque <hainque@act-europe.fr>
30492 (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
30495 2004-04-06 Ed Schonberg <schonberg@gnat.com>
30497 * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
30498 operator calls in functional notation, and apply
30499 Universal_Interpretation to operands, not to their type.
30501 2004-04-06 Robert Dewar <dewar@gnat.com>
30503 * 5wdirval.adb: Minor reformatting
30505 2004-04-06 Ed Falis <falis@gnat.com>
30507 * gnat_rm.texi: Improve a reference to the GCC manual
30509 2004-04-05 Vincent Celier <celier@gnat.com>
30511 * adaint.h, adaint.c: Add function __gnat_named_file_length
30513 * impunit.adb: Add Ada.Directories to the list
30515 * Makefile.in: Add VMS and Windows versions of
30516 Ada.Directories.Validity package body.
30518 * Makefile.rtl: Add a-direct and a-dirval
30520 * mlib-tgt.ads: Minor comment update.
30522 * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
30523 a-direct.ads, a-direct.adb: New files.
30525 2004-04-05 Vincent Celier <celier@gnat.com>
30528 * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
30529 just to the compiler.
30531 2004-04-05 Robert Dewar <dewar@gnat.com>
30533 * a-except.adb (Exception_Name_Simple): Make sure lower bound of
30534 returned string is 1.
30536 * ali-util.adb: Use proper specific form for Warnings (Off, entity)
30538 * eval_fat.ads: Minor reformatting
30540 * g-curexc.ads: Document that lower bound of returned string values
30543 * gnatlink.adb: Add ??? comment for previous change
30544 (need to document why this is VMS specific)
30546 * s-stoele.ads: Minor reformatting
30548 * tbuild.ads: Minor reformatting throughout (new function specs)
30550 * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
30553 * scng.adb: Minor reformatting
30555 2004-04-05 Geert Bosch <bosch@gnat.com>
30557 * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
30558 (Leading_Part): Still perform truncation to machine number if the
30559 specified radix_digits is greater or equal to machine_mantissa.
30561 2004-04-05 Javier Miranda <miranda@gnat.com>
30563 * par-ch3.adb: Complete documentation of previous change
30564 Correct wrong syntax documentation of the OBJECT_DECLARATION rule
30565 (aliased must appear before constant).
30567 * par-ch4.adb: Complete documentation of previous change.
30569 * par-ch6.adb: Complete documentation of previous change.
30571 * sinfo.ads: Fix typo in commment.
30573 2004-04-05 Ed Schonberg <schonberg@gnat.com>
30575 * sem_ch3.adb (Inherit_Components): If derived type is private and has
30576 stored discriminants, use its discriminants to constrain parent type,
30577 as is done for non-private derived record types.
30579 * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
30580 Ada 2005 AI-310: an abstract non-dispatching operation is not a
30581 candidate interpretation in an overloaded call.
30583 * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
30584 expression is Null and target type is not an access type (e.g. a
30585 non-private address type).
30587 2004-04-05 Thomas Quinot <quinot@act-europe.fr>
30589 * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
30590 statement whose right-hand side is an inlined call, save a copy of the
30591 original assignment subtree to preserve enough consistency for
30592 Analyze_Assignment to proceed.
30594 * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
30595 complete assignment subtree which is now unnecessary, as the expansion
30596 of inlined call has been improved to preserve a consistent assignment
30597 tree. Note_Possible_Modification must be called only
30598 after checks have been applied, or else unnecessary checks will
30601 * sem_util.adb (Note_Possible_Modification): Reorganise the handling
30602 of explicit dereferences that do not Come_From_Source:
30603 - be selective on cases where we must go back to the dereferenced
30604 pointer (an assignment to an implicit dereference must not be
30605 recorded as modifying the pointer);
30606 - do not rely on Original_Node being present (Analyze_Assignment
30607 calls Note_Possible_Modification on a copied tree).
30609 * sem_warn.adb (Check_References): When an unset reference to a pointer
30610 that is never assigned is encountered, prefer '<pointer> may be null'
30611 warning over '<pointer> is never assigned a value'.
30613 2004-04-05 Ramon Fernandez <fernandez@gnat.com>
30615 * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
30618 2004-04-05 Olivier Hainque <hainque@act-europe.fr>
30620 * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
30621 libexc. We currently don't reference anything in this library and
30622 linking it in triggers linker warnings we don't want to see.
30624 * init.c: Update comments.
30626 2004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30628 * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
30629 * utils.c (create_field_decl): Likewise.
30630 * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
30632 2004-04-02 Arnaud Charlet <charlet@act-europe.fr>
30634 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
30635 Replace ifinfo by ifnottex, to make makeinfo --html happy again.
30636 Add info directory entry and category.
30638 2004-04-02 Jan Hubicka <jh@suse.cz>
30640 * utils.c: Include function.h
30641 (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
30643 2004-04-01 Arnaud Charlet <charlet@act-europe.fr>
30646 * Make-lang.in: Clean up generation of documentation
30648 * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
30650 * xgnatug.adb: Removed, replaced by xgnatugn.adb
30652 * xgnatugn.adb: Replaces xgnatug.adb
30654 * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
30656 * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
30658 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
30659 gnat_ug_wnt.texi: Removed.
30661 2004-04-01 Arnaud Charlet <charlet@act-europe.fr>
30663 * utils2.c: Update copyright notice.
30665 2004-04-01 Robert Dewar <dewar@gnat.com>
30667 * checks.adb: Minor reformatting throughout
30668 Note that prev checkin added RM reference to alignment warning
30670 2004-04-01 Ed Schonberg <schonberg@gnat.com>
30672 * exp_aggr.adb (Get_Component_Val): Treat a string literal as
30673 non-static when building aggregate for bit-packed array.
30675 * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
30676 function call that is itself the actual in a procedure call, build
30679 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
30680 a string literal, create a temporary for it, constant folding only
30681 handles scalars here.
30683 2004-04-01 Vincent Celier <celier@gnat.com>
30685 * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
30686 Error_Msg_SP): New empty procedures to instantiate the Scanner.
30687 (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
30689 (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
30690 (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
30691 and get the checksum.
30693 * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
30695 Increase the Marking_Label at the end of the Multiple_Main_Loop,
30696 instead of at the beginning.
30698 * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
30700 (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
30703 * osint.ads (Multi_Unit_Index_Character): New Character global variable
30705 * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
30708 * par.adb: Remove test on file name to detect language defined units.
30709 Add test on unit name, after parsing, to detect language defined units
30710 that are not compiled with -gnatg (except System.RPC and its children)
30712 * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
30713 following units without style checking.
30715 * switch-c.adb: Change -gnatC to -gnateI
30717 * usage.adb: Document new switch -gnateInnn
30719 * scng.adb (Accumulate_Token_Checksum): New procedure
30720 (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
30721 word or literal number.
30722 (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
30725 2004-04-01 Thomas Quinot <quinot@act-europe.fr>
30728 g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
30729 switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
30730 5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
30731 5vtpopde.adb: Add missing 'constant' keywords.
30733 2004-04-01 Javier Miranda <miranda@gnat.com>
30735 * par-ch4.adb: (P_Allocator): Code cleanup
30737 * sem_ch3.adb (Access_Definition): Properly set the null-excluding
30740 * sinfo.ads: Complete documentation of previous change
30742 2004-04-01 Pascal Obry <obry@gnat.com>
30744 * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
30745 only on VMS. This special handling was done because an old GNU/ld bug
30746 on Windows which has been fixed.
30748 2004-04-01 GNAT Script <nobody@gnat.com>
30750 * Make-lang.in: Makefile automatically updated
30752 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30754 * decl.c (gnat_to_gnu_entity, make_type_from_size):
30755 Use TYPE_UNSIGNED, not TREE_UNSIGNED.
30756 * trans.c (tree_transform, convert_with_check): Likewise.
30757 * utils.c (gnat_signed_or_unsigned_type): Likewise.
30758 (build_vms_descriptor, unchecked_convert): Likewise.
30759 * utils2.c (nonbinary_modular_operation): Likewise.
30761 2004-03-29 Javier Miranda <miranda@gnat.com>
30763 * checks.adb (Null_Exclusion_Static_Checks): New subprogram
30764 (Install_Null_Excluding_Check): Local subprogram that determines whether
30765 an access node requires a runtime access check and if so inserts the
30766 appropriate run-time check.
30767 (Apply_Access_Check): Call Install_Null_Excluding check if required
30768 (Apply_Constraint_Check): Call Install_Null_Excluding check if required
30770 * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
30772 * einfo.ads: Fix typo in comment
30774 * exp_ch3.adb (Build_Assignment): Generate conversion to the
30775 null-excluding type to force the corresponding run-time check.
30776 (Expand_N_Object_Declaration): Generate conversion to the null-excluding
30777 type to force the corresponding run-time check.
30779 * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
30780 the null-excluding type to force the corresponding run-time check.
30782 * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
30783 case of access types unless they have the null-excluding attribute.
30785 * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
30788 * exp_util.ads: Fix typo in comment
30790 * par.adb (P_Null_Exclusion): New subprogram
30791 (P_Subtype_Indication): New formal that indicates if the null-excluding
30792 part has been scanned-out and it was present
30794 * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
30796 * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
30797 (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
30798 type to force the corresponding run-time check
30799 (Resolve_Aggregate): Propagate the null-excluding attribute to the array
30801 (Resolve_Array_Aggregate): Carry out some static checks
30802 (Resolve_Record_Aggregate.Get_Value): Carry out some static check
30804 * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
30805 attribute must be set only if specified by means of the null-excluding
30806 part. In addition, we must also propagate the access-constant attribute
30808 (Access_Subprogram_Declaration, Access_Type_Declaration,
30809 Analyze_Component_Declaration, Analyze_Object_Declaration,
30810 Array_Type_Declaration, Process_Discriminants,
30811 Analyze_Subtype_Declaration): Propagate the null-excluding attribute
30812 and carry out some static checks.
30813 (Build_Derived_Access_Type): Set the null-excluding attribute
30814 (Derived_Type_Declaration, Process_Subtype): Carry out some static
30817 * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
30819 * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
30821 * sem_ch6.adb (Process_Formals): Carry out some static checks.
30822 (Set_Actual_Subtypes): Generate null-excluding subtype if the
30823 null-excluding part was present; it is not required to be done here in
30824 case of anonymous access types.
30825 (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
30828 * sem_res.adb (Resolve_Actuals): Carry out some static check
30829 (Resolve_Null): Allow null in anonymous access
30831 * sinfo.adb: New subprogram Null_Exclusion_Present
30832 All_Present and Constant_Present available on access_definition nodes
30834 * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
30835 object_declaration, derived_type_definition, component_definition,
30836 discriminant_specification, access_to_object_definition,
30837 access_function_definition, allocator, access_procedure_definition,
30838 access_definition, parameter_specification, All_Present and
30839 Constant_Present flags available on access_definition nodes.
30841 2004-03-29 Robert Dewar <dewar@gnat.com>
30843 * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
30844 gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
30845 opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
30846 par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
30847 sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
30848 sem_prag.adb: Updates to handle multiple units/file
30850 * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
30852 * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
30853 sem_util.adb: Minor reformatting
30855 * sem_ch12.adb: Add comment for previous change
30857 2004-03-29 Laurent Pautet <pautet@act-europe.fr>
30859 * osint.adb (Executable_Prefix): Set Exec_Name to the current
30860 executable name when not initialized. Otherwise, use its current value.
30862 * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
30863 initialize it to another executable name than the current one. This
30864 allows to configure paths for an executable name (gnatmake) different
30865 from the current one (gnatdist).
30867 2004-03-29 Ed Schonberg <schonberg@gnat.com>
30869 * exp_ch6.adb (Expand_Call): A call to a function declared in the
30870 current unit cannot be inlined if it appears in the body of a withed
30871 unit, to avoid order of elaboration problems in gigi.
30873 * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
30874 information for protected (wrapper) operation as well, to simplify gdb
30877 * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
30878 protected body, indicate that the entity for the generated spec comes
30879 from source, to ensure that references are properly generated for it.
30880 (Build_Body_To_Inline): Do not inline a function that returns a
30883 * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
30884 apply convention to homonyms that are declared explicitly.
30886 * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
30887 that renames an equality operator and the operands are overloaded,
30888 resolve them with the declared formal types, before rewriting as an
30891 2004-03-29 GNAT Script <nobody@gnat.com>
30893 * Make-lang.in: Makefile automatically updated
30895 2004-03-25 Vasiliy Fofanov <fofanov@act-europe.fr>
30897 * memtrack.adb: Log realloc calls, which are treated as free followed
30900 2004-03-25 Vincent Celier <celier@gnat.com>
30902 * prj-makr.adb (Process_Directories): Detect when a file contains
30903 several units. Do not include such files in the config pragmas or
30904 in the naming scheme.
30906 * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
30907 Resolve links only when not in Trusted_Mode.
30908 (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
30909 Do not resolve links for the display names.
30911 * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
30912 resolve links when computing the display names.
30914 2004-03-25 Thomas Quinot <quinot@act-europe.fr>
30916 * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
30917 attribute reference does not denote a subtype, it can be any
30918 expression that has a classwide type, potentially after an implicit
30919 dereference. In particular, the prefix can be a view conversion for
30920 a classwide type (for which Is_Object_Reference holds), but it can
30921 also be a value conversion for an access-to-classwide type. In the
30922 latter case, there is an implicit dereference, and the original node
30923 for the prefix does not verify Is_Object_Reference.
30925 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
30926 conversion of a discriminant-dependent component of a mutable object
30929 2004-03-25 Ed Schonberg <schonberg@gnat.com>
30931 * freeze.adb (Freeze_Entity): When an inherited subprogram is
30932 inherited, has convention C, and has unconstrained array parameters,
30933 place the corresponding warning on the derived type declaration rather
30934 than the original subprogram.
30936 * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
30937 indication on renaming declaration, if formal has a box and actual
30940 * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
30941 determine whether to generate an implicit or explicit reference to
30942 the renamed entity.
30944 * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
30945 subprogram renaming comes from a defaulted formal subprogram in an
30948 2004-03-25 Gary Dismukes <dismukes@gnat.com>
30950 * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
30951 value expressions to ensure that calls within a component definition
30952 will be checked (since those are evaluated during the record type's
30955 2004-03-25 Arnaud Charlet <charlet@act-europe.fr>
30957 * s-tpobop.adb: Code clean up:
30958 (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
30960 (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
30962 2004-03-25 Jose Ruiz <ruiz@act-europe.fr>
30964 * Makefile.in: Clean up in the ravenscar run time.
30966 2004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30968 * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
30969 of No_Strict_Aliasing to build_pointer_type_for_mode.
30970 * utils.c (update_pointer_to): Walk pointer and ref chains.
30972 2004-03-22 Cyrille Comar <comar@act-europe.fr>
30974 * ali.ads: Fix Comment about Dynamic_Elab.
30976 * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
30977 Has_RACW, Is_Generic, etc.)
30978 (Output_Object, Gnatls): Take into account ALI files not attached to
30981 2004-03-22 Vincent Celier <celier@gnat.com>
30983 * gprep.adb: Change all String_Access to Name_Id
30984 (Is_ASCII_Letter): new function
30985 (Double_File_Name_Buffer): New procedure
30986 (Preprocess_Infile_Name): New procedure
30987 (Process_Files): New procedure
30988 (Gnatprep): Check if output and input are existing directories.
30989 Call Process_Files to do the real job.
30991 2004-03-22 Robert Dewar <dewar@gnat.com>
30993 * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
30994 s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
30996 2004-03-22 Sergey Rybin <rybin@act-europe.fr>
30998 * scn.adb (Contains): Add check for EOF, is needed for a degenerated
30999 case when the source contains only comments.
31001 2004-03-22 Ed Schonberg <schonberg@gnat.com>
31003 * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
31004 declaration for a child subprogram body that acts as a spec, indicate
31005 that the entity in the declaration needs debugging information.
31007 * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
31008 full view if the subtype is created for a constrained record component;
31009 gigi has enough information to construct the record, and there is no
31010 place in the tree for the declaration.
31012 * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
31013 serial number for the dummy body that is built for analysis, to avoid
31014 inconsistencies in the generation of internal names when compiling
31017 2004-03-22 Thomas Quinot <quinot@act-europe.fr>
31019 * sem_util.adb (Is_Object_Reference): A view conversion denotes an
31022 2004-03-22 GNAT Script <nobody@gnat.com>
31024 * Make-lang.in: Makefile automatically updated
31026 2004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31028 * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
31029 * trans.c (tree_transform, emit_index_check): Likewise.
31030 * utils.c (build_template): Likewise.
31031 (max_size, convert): Remove handling of WITH_RECORD_EXPR.
31032 (maybe_unconstrained_array, unchecked_convert): Likewise.
31033 * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
31034 (build_unary_op): Likewise.
31035 (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
31036 (fill_vms_descriptor): Likewise.
31037 (build_call_alloc_dealloc): Likewise.
31039 * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
31041 2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
31044 * gnat_ug.texi: Add info directory category and entry.
31045 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
31046 gnat_ug_wnt.texi: Regenerate.
31048 2004-03-19 Arnaud Charlet <charlet@act-europe.fr>
31050 * ada-tree.h: Update copyright notice.
31051 Minor reformatting.
31053 2004-03-19 Olivier Hainque <hainque@act-europe.fr>
31055 * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
31056 as regular exception objects and not as mere integers representing the
31057 condition code. The latter approach required some dynamics to mask off
31058 severity bits, which did not fit well into the GCC table based model.
31059 (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
31060 exception data objects. We don't it and it would conflict with the other
31061 external symbol we have to generate for such exceptions.
31063 * trans.c (tree_transform, case N_Exception_Handler): Remove part of
31064 the special code for VMS exceptions, since these are now represented
31065 as regular exceptions objects.
31067 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31069 * decl.c (debug_no_type_hash): Remove.
31070 (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
31071 * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
31073 2004-03-19 Laurent Guerby <laurent@guerby.net>
31075 * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
31076 aggregate, allows bootstrap from 3.3 on powerpc-darwin.
31078 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31080 * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
31081 (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
31082 (TYPE_RM_SIZE_INT): Directly use type.values.
31083 (TREE_LOOP_ID): Clean up check.
31084 * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
31085 TYPE_VALUES, not TYPE_FIELDS.
31086 * trans.c (convert_with_check): Delay access of bounds of basetype
31087 until sure is numeric.
31089 2004-03-18 Arnaud Charlet <charlet@act-europe.fr>
31091 * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
31094 * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
31095 5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
31096 Specific.Set instead of direct call to e.g pthread_setspecific.
31098 2004-03-18 Thomas Quinot <quinot@act-europe.fr>
31100 * adaint.c: Update comments.
31102 * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
31103 GNATLIB_SHARED for FreeBSD.
31105 2004-03-18 Jose Ruiz <ruiz@act-europe.fr>
31107 * init.c [VxWorks]: Do not fix the stack size for the environment task.
31108 When needed (stack checking) the stack size is retrieved
31109 from the VxWorks kernel.
31111 * Makefile.in: Flag -nostdinc is required when building the run time
31112 for avoiding looking for files in the base compiler.
31113 Add the VxWorks specific version of the package body for
31114 System.Stack_checking.Operations (5zstchop.adb).
31116 * Make-lang.in: Add the object file for
31117 System.Stack_Checking.Operations.
31119 * Makefile.rtl: Add object file for the package
31120 System.Stack_Checking.Operations.
31122 * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
31124 * s-stache.ads, s-stache.adb: Move the operations related to stack
31125 checking from this package to package System.Stack_Checking.Operations.
31126 This way, stack checking operations are only linked in the final
31127 executable when using the -fstack-check flag.
31129 2004-03-18 Doug Rupp <rupp@gnat.com>
31131 * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
31134 * 5qsystem.ads, 5xcrtl.ads: New files.
31136 2004-03-18 Vincent Celier <celier@gnat.com>
31138 * prj.adb (Reset): Reset hash table Files_Htable
31140 * prj-env.adb (Source_Paths, Object_Paths): New tables.
31141 (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
31142 the procedures Add_To_Path_File.
31143 (Set_Ada_Paths): Accumulate source and object dirs in the tables,
31144 making sure that each directory is present only once and, for object
31145 dirs, when a directory already present is added, the duplicate is
31146 removed and the directory is always put as the last in the table.
31147 Write the path files at the end of these accumulations.
31149 * prj-nmsc.adb (Record_Source): Add source file name in hash table
31150 Files_Htable for all sources.
31152 * prj-proc.adb (Process): Remove restrictions between not directly
31153 related extending projects.
31155 2004-03-18 Emmanuel Briot <briot@act-europe.fr>
31157 * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
31158 (Find_Sources): Minor speed optimization.
31160 * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
31161 parameter Trusted_Mode.
31163 2004-03-18 Sergey Rybin <rybin@act-europe.fr>
31165 * scn.adb (Determine_License): Take into account a degenerated case
31166 when the source contains only comments.
31168 2004-03-18 Ed Schonberg <schonberg@gnat.com>
31170 * sem_warn.adb (Check_References): For a warning on a selected
31171 component that does not come from source, locate an uninitialized
31172 component of the record type to produce a more precise error message.
31174 2004-03-15 Jerome Guitton <guitton@act-europe.fr>
31176 * 3zsoccon.ads: Fix multicast options.
31178 * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
31181 2004-03-15 Robert Dewar <dewar@gnat.com>
31183 * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
31184 pragma used for a private type.
31186 * lib-xref.adb (Generate_Reference): Do not generate warning if
31187 reference is in a different unit from the pragma Unreferenced.
31189 * 5vtpopde.adb: Minor reformatting
31190 Fix casing of To_Task_ID
31192 * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
31193 flag if we have an unchecked conversion to an access type in the same
31196 2004-03-15 Geert Bosch <bosch@gnat.com>
31198 * a-ngcoty.adb (Modulus): In alternate formula for large real or
31199 imaginary parts, use Double precision throughout.
31201 * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
31202 we want to be able to compile run-time with -gnata for testing, but
31203 this may also be instantiated in user code that is compiled with -gnata.
31205 2004-03-15 Olivier Hainque <hainque@act-europe.fr>
31207 * s-stalib.ads (Exception_Code): New type, to represent Import/Export
31208 codes. Having a separate type for this is useful to enforce consistency
31209 throughout the various run-time units.
31210 (Exception_Data): Use Exception_Code for Import_Code.
31212 * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
31213 Natural and Integer in various places.
31214 (Register_VMS_Exception): Use Base_Code_In to compute the exception code
31215 with the severity bits masked off.
31216 (Register_VMS_Exception): Handle the additional exception data pointer
31219 * raise.c (_GNAT_Exception structure): Remove the handled_by_others
31220 component, now reflected by an exported accessor.
31221 (is_handled_by): New routine to compute whether the propagated
31222 occurrence matches some handler choice specification. Extracted out of
31223 get_action_description_for, and expanded to take care of the VMS
31225 (get_action_description_for): Use is_handled_by instead of an explicit
31226 complex condition to decide if the current choice at hand catches the
31227 propagated occurrence.
31229 * raise.h (Exception_Code): New type for C.
31231 * rtsfind.ads (RE_Id, RE_Unit_Table): Add
31232 System.Standard_Library.Exception_Code, to allow references from the
31233 pragma import/export expander.
31235 * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
31236 New accessors to allow easy access to GNAT exception data
31238 (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
31239 redundant Handled_By_Others component, helper for the personality
31240 routine which will now be able to call the appropriate exception data
31243 * cstand.adb (Create_Standard): Adjust the type of the Import_Code
31244 component of Standard_Exception_Type to be the closest possible to
31245 Exception_Code in System.Standard_Library, that we cannot get at this
31246 point. Expand a ??? comment to notify that this type node should
31247 probably be rewritten later on.
31249 * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
31250 registration call to include a pointer to the exception object in the
31253 * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
31254 instead of int and explicit bitmasks.
31256 2004-03-15 Vincent Celier <celier@gnat.com>
31258 * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
31259 equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
31261 * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
31262 longer needed now that it is in the spec of
31263 System.Tasking.Task_Attributes.
31265 * adaint.h, adaint.c: (__gnat_create_output_file): New function
31267 * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
31269 * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
31271 * make.adb (Gnatmake): Do not check the executable suffix; it is being
31272 taken care of in Scan_Make_Arg.
31273 (Scan_Make_Arg): Add the executable suffix only if the argument
31274 following -o, in canonical case, does not end with the executable
31275 suffix. When in verbose mode and executable file name does not end
31276 with executable suffix, output the executable name, in canonical case.
31278 * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
31279 to avoid warnings when instantiating Ada.Task_Attributes.
31282 * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
31283 in the correct order.
31285 * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
31286 redirect standard output and error to a file for the invocation of the
31287 compiler, then read the file.
31289 * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
31290 directory, instead of the Value.
31291 (Find_Source_Dirs): Remove useless code & comments.
31293 2004-03-15 Ed Schonberg <schonberg@gnat.com>
31295 * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
31296 tagged type is inherited, and the parent operation is not frozen yet,
31297 force generation of a freeze node for the inherited operation, so the
31298 corresponding dispatch entry is properly initialized.
31299 (Make_Predefined_Primitive_Specs): Check that return type is Boolean
31300 when looking for user-defined equality operation.
31302 * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
31303 boolean when locating primitive equality of tagged component.
31305 * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
31306 bit-aligned field and the right-hand side a string literal, introduce
31307 a temporary before expanding assignment into a loop.
31309 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
31310 priority in full, to ensure that any expanded subepxressions of it are
31311 elaborated in the scope of the init_proc.
31313 * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
31314 after object declaration, skipping over code that may have been
31315 generated for validity checks.
31317 * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
31318 discriminants, ignore the known discriminants of its full view, if
31319 any, to check legality.
31321 * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
31322 component if type has unknown discriminants.
31323 (Analyze_Private_Extension_Declaration): Discriminant constraint is
31324 null if type has unknown discriminants.
31326 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
31327 for end label when present.
31329 * s-fileio.adb (Open): When called with a C_Stream, use given name for
31330 temporary file, rather than an empty string.
31332 2004-03-15 Ed Falis <falis@gnat.com>
31334 * s-thread.adb: Removed, no longer used.
31336 2004-03-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31338 * decl.c (target.h): Now include.
31339 (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
31340 in new build_pointer_from_mode calls for non-fat/non-thin pointer.
31341 (validate_size): For POINTER_TYPE, get smallest size permitted on
31344 * fe.h: Sort Einfo decls and add Set_Mechanism.
31346 * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
31347 (ada/decl.o): Depends on target.h.
31349 * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
31350 FUNCTION_BOUNDARY; always use TYPE_ALIGN.
31352 2004-03-15 Thomas Quinot <quinot@act-europe.fr>
31354 * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
31356 * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
31357 Insert_Dereference_Action when rewriting an implicit dereference into
31358 an explicit one, this will be taken care of during expansion of the
31359 explicit dereference.
31360 (Expand_N_Slice): Same. Always do the rewriting, even for the case
31361 of non-packed slices, since the dereference action generated by
31362 expansion of the explicit dereference is needed in any case.
31363 (Expand_N_Selected_Component): When rewriting an implicit dereference,
31364 analyze and resolve the rewritten explicit dereference so it is seen
31366 (Insert_Dereference_Action): This procedure is now called only for the
31367 expansion of an N_Explcit_Dereference_Node. Do insert a check even for
31368 dereferences that do not come from source (including explicit
31369 dereferences resulting from rewriting implicit ones), but do not
31370 recursively insert a check for the dereference nodes contained within
31372 (Insert_Dereference_Action): Clarify and correct comment.
31374 2004-03-08 Paolo Bonzini <bonzini@gnu.org>
31377 Move language detection to the top level.
31378 * config-lang.in: Build by default.
31380 2004-03-05 Robert Dewar <dewar@gnat.com>
31382 * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
31384 * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
31385 i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
31386 5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
31387 5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
31388 unchecked conversion to spec to avoid warnings.
31390 * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
31393 * 7stpopsp.adb: Correct casing in To_Task_ID call
31395 * a-strsea.ads, a-strsea.adb: Minor reformatting
31397 * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
31399 * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
31400 Adjust Max_Msg_Length to be clearly large enough.
31402 * fe.h: Define In_Same_Source_Unit
31404 * osint.adb: Add pragma Warnings Off to suppress warnings
31405 * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
31408 * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
31410 * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
31412 * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
31414 * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
31416 * sem_prag.adb: Implement pragma No_Strict_Aliasing.
31418 * sinfo.ads: Remove obsolete comment on validate unchecked conversion
31419 node. We now do generate them for gcc back end.
31421 * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
31424 * sinput-c.adb: Fix bad name in header.
31425 Add pragma Warnings Off to suppress aliasing warning.
31427 * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
31429 * snames.h, snames.ads, snames.adb: Add entry for pragma
31430 No_Strict_Aliasing.
31432 2004-03-05 Vincent Celier <celier@gnat.com>
31434 * prj-com.ads: Add hash table Files_Htable to check when a file name
31435 is already a source of another project.
31437 * prj-nmsc.adb (Record_Source): Before recording a new source, check
31438 if its file name is not already a source of another project. Report an
31441 * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
31442 source file name, call gnatpp with all the sources of the main project.
31444 * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
31447 * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
31448 NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
31449 /RUNTIME_SYSTEM=, converted to --RTS=
31450 /NOTABS, converted to -notabs
31452 2004-03-05 Pascal Obry <obry@gnat.com>
31454 * make.adb: Minor reformatting.
31456 2004-03-05 Ed Schonberg <schonberg@gnat.com>
31458 Part of implemention of AI-262.
31459 * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
31461 * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
31464 * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
31465 when component type is a partially constrained class-wide subtype.
31466 (Constrain_Discriminated_Type): If parent type has unknown
31467 discriminants, a constraint is illegal, even if full view has
31469 (Build_Derived_Record_Type): Inherit discriminants when deriving a type
31470 with unknown discriminants whose full view is a discriminated record.
31472 * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
31473 flag, to handle properly derivations of tagged types with unknown
31475 (Analyze_Package_Spec, Analyze_Package_Body): Install
31476 Private_With_Clauses before analyzing private part or body.
31478 * einfo.ads: Indicate that both Has_Unknown_Discriminants and
31479 Has_Discriminants can be true for a given type (documentation).
31481 2004-03-05 Arnaud Charlet <charlet@act-europe.fr>
31483 * s-restri.ads: Fix license (GPL->GMGPL).
31485 * s-tassta.adb: Minor reformatting.
31487 * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
31488 by calls to Exit_One_ATC_Level, since additional clean up is performed
31491 * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
31492 by calls to Exit_One_ATC_Level, since additional clean up is performed
31495 2004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31497 * trans.c: Reflect GCC changes to fix bootstrap problem.
31498 Add warning for suspicious aliasing unchecked conversion.
31500 2004-03-05 GNAT Script <nobody@gnat.com>
31502 * Make-lang.in: Makefile automatically updated
31504 2004-03-02 Emmanuel Briot <briot@act-europe.fr>
31506 * ali.adb (Read_Instantiation_Instance): Do not modify the
31507 current_file_num when reading information about instantiations, since
31508 this corrupts files in later references.
31510 2004-03-02 Vincent Celier <celier@gnat.com>
31512 * bcheck.adb (Check_Consistency): Get the full path of an ALI file
31513 before checking if it is read-only.
31515 * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
31516 of SRC_DIRS and eliminate duplicates.
31518 * gprcmd.adb: Replace command "path" with command "path_sep" to return
31519 the path separator.
31520 (Usage): Document path_sep
31522 * Makefile.generic: For Ada and GNU C++ cases, link directly with the
31523 C++ compiler. No need for a script.
31524 Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
31525 Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
31528 * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
31529 where there are Ada sources.
31530 (Set_Ada_Paths): Only add to the include path the source dirs of project
31532 (Add_To_Path): Add the Display_Values of the directories, not their
31535 * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
31538 * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
31540 (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
31541 Value is canonicalized.
31542 (Language_Independent_Check): Do not copy Value to Display_Value when
31543 canonicalizing Value.
31545 * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
31546 path to find limited with cycles.
31547 (Parse_Single_Project): Use canonical cased path to find the end of a
31550 2004-03-02 Ed Schonberg <schonberg@gnat.com>
31552 * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
31553 and not a child unit.
31555 * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
31556 appear in a with_clause.
31558 * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
31559 only happen in type_annotate mode, do not try to elaborate it.
31561 * exp_util.adb (Force_Evaluation): If expression is a selected
31562 component on the left of an assignment, use a renaming rather than a
31563 temporary to remove side effects.
31565 * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
31566 inlined instance body, which is analyzed before the end of the
31569 2004-03-02 Robert Dewar <dewar@gnat.com>
31571 * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
31572 sem_ch4.adb: Use new feature for substitution of keywords in VMS
31574 * errout.ads, errout.adb: Implement new circuit for substitution of
31577 * sem_case.adb (Analyze_Choices): Place message properly when case is
31578 a subtype reference rather than an explicit range.
31580 * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
31582 2004-03-02 Doug Rupp <rupp@gnat.com>
31584 * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
31586 2004-03-02 Thomas Quinot <quinot@act-europe.fr>
31588 * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
31590 2004-03-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31592 * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
31595 2004-02-25 Robert Dewar <dewar@gnat.com>
31597 * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
31598 55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
31599 5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
31600 5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
31601 5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
31602 5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
31603 the defining instance of the type to avoid aliasing problems.
31604 Fix copyright header. Fix bad comments in package header.
31606 * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
31608 2004-02-25 Ed Schonberg <schonberg@gnat.com>
31610 * exp_ch2.adb (Param_Entity): Handle properly formals that have been
31611 rewritten as references when aliased through an address clause.
31613 * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
31614 whether call can be interpreted as an indirect call to the result of a
31615 parameterless function call returning an access subprogram.
31617 2004-02-25 Arnaud Charlet <charlet@act-europe.fr>
31620 * exp_ch7.adb (Make_Clean): Remove generation of calls to
31621 Unlock[_Entries], since this is now done by Service_Entries directly.
31623 * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
31625 * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
31626 Requeue_Call for better code readability. Change spec and update calls:
31627 PO_Service_Entries now unlock the PO on exit.
31628 (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
31629 PO_Service_Entries.
31631 * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
31633 * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
31635 2004-02-25 Sergey Rybin <rybin@act-europe.fr>
31637 * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
31638 protected subprogram call and analyzing the result of such expanding
31639 in case when the called protected subprogram is eliminated.
31641 * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
31644 2004-02-25 Jerome Guitton <guitton@act-europe.fr>
31646 * Makefile.in: Clean ups.
31648 2004-02-23 Ed Schonberg <schonberg@gnat.com>
31650 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
31651 protected operations if original subprogram is flagged as eliminated.
31652 (Expand_N_Subprogram_Body): For a protected operation, create
31653 discriminals for next operation before checking whether the operation
31656 * exp_ch9.adb (Expand_N_Protected_Body,
31657 Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
31658 for internal protected operations if the original subprogram is
31661 * sem_elim.adb (Check_Eliminated): Handle properly protected operations
31662 declared in a single protected object.
31664 2004-02-23 Vincent Celier <celier@gnat.com>
31666 * prj-attr.adb: Make attribute Builder'Executable an associative array,
31667 case insensitive if file names are case insensitive, instead of a
31668 standard associative array.
31670 * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
31671 them as case insensitive on platforms where the file names are case
31674 * prj-part.adb (Parse_Single_Project): Make sure, when checking if
31675 project file has already been parsed that canonical path are compared.
31677 2004-02-23 Robert Dewar <dewar@gnat.com>
31679 * sinput-c.ads: Correct bad unit title in header
31681 * freeze.adb: Minor reformatting
31683 2004-02-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31685 * trans.c (tree_transform, case N_Procedure_Call_Statement): For
31686 nonaddressable COMPONENT_REF that is removing padding that we are
31687 taking the address of, take the address of the padded record instead
31688 if item is variable size.
31690 2004-02-20 Robert Dewar <dewar@gnat.com>
31692 * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
31694 2004-02-20 Ed Schonberg <schonberg@gnat.com>
31696 * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
31697 itype references for the constrained designated type of a component
31698 whose base type is already frozen.
31700 2004-02-20 Arnaud Charlet <charlet@act-europe.fr>
31702 * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
31703 avoid GCC warnings.
31705 2004-02-20 Sergey Rybin <rybin@act-europe.fr>
31707 * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
31708 identifier for a phantom package that rewrites the formal package
31709 declaration with a box. The Add semantic decorations for the defining
31710 identifier from the original node (that represents the formal package).
31712 2004-02-19 Matt Kraai <kraai@alumni.cmu.edu>
31714 * Make-lang.in (ada/stamp-sdefault): Use the top level
31717 2004-02-19 Richard Henderson <rth@redhat.com>
31719 * misc.c (record_code_position): Add third build arg for RTL_EXPR.
31721 2004-02-18 Emmanuel Briot <briot@act-europe.fr>
31723 * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
31724 Scan_ALI can be used for multiple ALI files without reinitializing
31727 2004-02-18 Robert Dewar <dewar@gnat.com>
31729 * debug.adb: Minor reformatting.
31731 2004-02-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
31733 * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
31734 to zero if there is an address clause.
31736 2004-02-18 Thomas Quinot <quinot@act-europe.fr>
31738 * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
31740 2004-02-18 Gary Dismukes <dismukes@gnat.com>
31742 * layout.adb (Layout_Component_List): Revise generation of call to
31743 discriminant-checking function to pass selections of all of the type's
31744 discriminants rather than just the variant-controlling discriminant.
31746 2004-02-18 Olivier Hainque <hainque@act-europe.fr>
31748 * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
31749 fail in the current setup and triggers spurious system error messages.
31750 Pretend it occurred and failed instead.
31752 2004-02-18 Vincent Celier <celier@gnat.com>
31754 * bld.adb: Mark FLDFLAGS as saved
31755 (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
31756 it is not the root project. Put each directory to be
31757 extended between double quotes to prevent it to be expanded on Windows.
31758 (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
31759 the project file. Set them back to their initial values if they have not
31760 been set in the project file.
31762 * gprcmd.adb: (Gprdebug, Debug): New global variables
31763 (Display_Command): New procedure
31764 (Usage): Document new command "linkopts"
31765 Call Display_Command when env var GPRDEBUG has the value "TRUE"
31766 Implement new command "linkopts"
31767 Remove quotes that may be around arguments for "extend"
31768 Always call Normalize_Pathname with arguments formatted for the platform
31770 * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
31771 Change @echo to @$(display) in target clean to be able to clean silently
31773 * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
31775 * prj-part.adb (Project_Path_Name_Of): Do not put final result in
31778 * prj-part.adb (Parse_Single_Project): Always call with From_Extended
31779 = Extending_All when current project is an extending all project.
31781 * vms_conv.adb (Output_File_Expected): New Boolean global variable,
31782 set to True only for LINK command, after Unix switch -o.
31783 (Process_Arguments): Set Output_File_Expected to True for LINK command
31784 after Unix switch -o. When Output_File_Expected is True, never add an
31785 extension to a file name.
31787 * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
31788 option file name, only to the --for-linker= switch.
31789 (Option_File_Name): If option file name do not end with ".opt", append
31792 2004-02-18 GNAT Script <nobody@gnat.com>
31794 * Make-lang.in: Makefile automatically updated
31796 2004-02-17 Matt Kraai <kraai@alumni.cmu.edu>
31798 * Make-lang.in (stamp-sdefault): Do not depend on
31801 2004-02-12 Zack Weinberg <zack@codesourcery.com>
31803 * config-lang.in: Disable Ada by default until probe logic for
31804 a bootstrap Ada compiler can be moved to the top level configure
31807 2004-02-12 Olivier Hainque <hainque@act-europe.fr>
31809 * decl.c (components_to_record): Don't claim that the internal fields
31810 we make to hold the variant parts are semantically addressable, because
31813 * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
31814 adjust the comment describing the modular type form when we can use it.
31815 (Install_PAT): Account for the Esiz renaming.
31817 * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
31818 sc_onstack context indication before raising the exception to which
31819 the signal is mapped. Allows better handling of later signals possibly
31820 triggered by the resumed user code if the exception is handled.
31822 2004-02-12 Arnaud Charlet <charlet@act-europe.fr>
31824 * 5zinit.adb: Removed, no longer used.
31826 2004-02-12 Robert Dewar <dewar@gnat.com>
31828 * ali.adb: Remove separating space between parameters on R line. Makes
31829 format consistent with format used by the binder for Set_Globals call.
31831 * atree.ads, atree.adb: Minor reformatting (new function header format)
31833 * bindgen.adb: Add Run-Time Globals documentation section containing
31834 detailed documentation of the globals passed from the binder file to
31837 * gnatls.adb: Minor reformatting
31839 * init.c (__gnat_set_globals): Add note pointing to documentation in
31842 * lib-writ.ads, lib-writ.adb: Remove separating space between
31843 parameters on R line.
31844 Makes format consistent with format used by the binder for Set_Globals
31847 * osint.ads: Add 2004 to copyright notice
31850 * snames.ads: Correct capitalization of FIFO_Within_Priorities
31851 Noticed during code reading, documentation issue only
31853 * usage.adb: Remove junk line for obsolete C switch
31854 Noticed during code reading
31856 2004-02-12 Vincent Celier <celier@gnat.com>
31858 * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
31859 extend for each directory, so that multiple /** directories are
31860 extended individually.
31861 (Recursive_Process): Set the default for LANGUAGES to ada
31863 * gprcmd.adb: Define new command "ignore", to do nothing.
31864 Implement new comment "path".
31866 * Makefile.generic: Suppress output when SILENT is set
31867 Make sure that when compiler for C/C++ is gcc, the correct -x switch is
31868 used, so that the correct compiler is invoked.
31869 When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
31870 CXX_INCLUDE_PATH, to avoid failure with too long command lines.
31872 2004-02-12 Jerome Guitton <guitton@act-europe.fr>
31874 * Makefile.in: Clean ups and remove obsolete targets.
31876 2004-02-12 Ed Schonberg <schonberg@gnat.com>
31878 * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
31879 predicate declared in exp_util.
31881 * exp_util.adb: Add comments.
31883 * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
31884 visibility before compiling context of the subunit.
31886 * sem_res.adb (Check_Parameterless_Call): If the context expects a
31887 value but the name is a procedure, do not attempt to analyze as a call,
31888 in order to obtain more telling diagnostics.
31890 * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
31891 'Access on parameterless function calls.
31892 (Normalize_Actuals): For a parameterless function call with missing
31893 actuals, defer diagnostic until resolution of enclosing call.
31895 * sem_util.adb (Wrong_Type): If the context type is an access to
31896 subprogram and the expression is a procedure name, suggest a missing
31899 2004-02-10 Arnaud Charlet <charlet@act-europe.fr>,
31900 Nathanael Nerode <neroden@gcc.gnu.org>
31904 Merge with libada-branch:
31905 * config-lang.in: Build libada only when ada is built.
31907 2004-02-09 Ed Schonberg <schonberg@gnat.com>
31909 * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
31910 for a tagged type, verify that both formals have the same type.
31912 * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
31913 temporary when the formal is an in-parameter and the actual a possibly
31916 * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
31917 when expansion is disabled, to ensure proper name capture with
31918 overloaded literals. Condition can be of any boolean type, resolve
31921 * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
31922 renaming is for a formal subprogram with a default operator name, and
31923 there is a usable operator that is visible at the point of
31926 2004-02-09 Robert Dewar <dewar@gnat.com>
31928 * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
31929 rewrite to ignore errors in ali files, intended to allow tools downward
31930 compatibility with new versions of ali files.
31932 * ali.ads: Add new parameter Ignore_Errors
31934 * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
31935 duplicating the error message giving the file with restrictions.
31937 * debug.adb: Add debug flag I for gnatbind
31939 * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
31940 operators for the case where the operator is a defining operator.
31942 * exp_ch3.adb: Minor reformatting (new function spec format).
31944 * exp_ch4.adb: Add comment for previous change, and make minor
31945 adjustment to loop to always check for improper loop termination.
31946 Minor reformatting throughout (new function spec format).
31948 * gnatbind.adb: Implement -di debug flag for gnatbind
31950 * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
31952 * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
31954 * lib-load.adb: Fix bad assertion.
31955 Found by testing and code reading.
31956 Minor reformatting.
31958 * lib-load.ads: Minor reformatting.
31960 * lib-writ.adb: There is only one R line now.
31962 * lib-writ.ads: Add documentation on making downward compatible changes
31963 to ali files so old tools work with new ali files.
31964 There is only one R line now.
31965 Add documentation on format incompatibilities (with special GPS note)
31967 * namet.ads, namet.adb: (Is_Operator_Name): New procedure
31969 * par-load.adb: Minor reformatting
31971 * sem_ch8.adb: Fix to error message from last update
31972 Minor reformatting and restructuring of code from last update
31974 * par-prag.adb, snames.adb, snames.ads, snames.h,
31975 sem_prag.adb: Implement pragma Profile.
31977 * stylesw.adb: Implement -gnatyN switch to turn off all style check
31980 * usage.adb: Add line for -gnatyN switch
31982 * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
31984 2004-02-09 Albert Lee <lee@gnat.com>
31986 * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
31988 2004-02-09 Ed Schonberg <schonberg@gnat.com>
31990 * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
31993 * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
31994 is nested in an instance that is not frozen yet, to avoid
31995 order-of-elaboration problems in gigi.
31997 * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
31998 body the attribute is legal.
32000 2004-02-09 Robert Dewar <dewar@gnat.com>
32002 * s-rident.ads: Minor comment correction
32004 * targparm.adb: Remove dependence on uintp completely. There was
32005 always a bug in Make in that it called Targparm before initializing
32006 the Uint package. The old code appeared to get away with this, but
32007 the new code did not! This caused an assertion error in gnatmake.
32009 * targparm.ads: Fix bad comment, restriction pragmas with parameters
32010 are indeed fully supported.
32012 2004-02-06 Alan Modra <amodra@bigpond.net.au>
32014 * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
32016 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
32018 * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
32019 with targetm.calls.promote_prototypes.
32021 2004-02-04 Robert Dewar <dewar@gnat.com>
32023 * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
32024 ali.ads, gprcmd.adb: Minor reformatting
32026 * bindgen.adb: Output restrictions string for new style restrictions
32029 * impunit.adb: Add s-rident.ads (System.Rident) and
32030 s-restri (System.Restrictions)
32032 * lib-writ.adb: Fix bug in writing restrictions string (last few
32035 * s-restri.ads, s-restri.adb: Change name Restrictions to
32036 Run_Time_Restrictions to avoid conflict with package name.
32037 Add circuit to read and acquire run time restrictions.
32039 2004-02-04 Jose Ruiz <ruiz@act-europe.fr>
32041 * restrict.ads, restrict.adb: Use the new restriction
32042 No_Task_Attributes_Package instead of the old No_Task_Attributes.
32044 * sem_prag.adb: No_Task_Attributes is a synonym of
32045 No_Task_Attributes_Package.
32047 * snames.ads, snames.adb: New entry for proper handling of
32048 No_Task_Attributes.
32050 * s-rident.ads: Adding restriction No_Task_Attributes_Package
32051 (AI-00249) that supersedes the GNAT specific restriction
32052 No_Task_Attributes.
32054 2004-02-04 Ed Schonberg <schonberg@gnat.com>
32057 (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
32058 body, an identifier may be wrapped in an unchecked conversion.
32060 2004-02-04 Vincent Celier <celier@gnat.com>
32062 * lib-writ.ads: Comment update for the W lines
32064 * bld.adb: (Expression): An empty string list is static
32066 * fname-uf.adb: Minor comment update
32068 * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
32070 * gnatbind.adb: Initialize Cumulative_Restrictions with the
32071 restrictions on the target.
32073 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
32075 * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
32078 2004-02-02 Arnaud Charlet <charlet@gnat.com>
32080 * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
32082 2004-02-02 Vincent Celier <celier@gnat.com>
32084 * gprcmd.adb (Check_Args): If condition is false, print the invoked
32085 comment before the usage.
32086 Gprcmd: Fail when command is not recognized.
32087 (Usage): Document command "prefix"
32089 * g-md5.adb (Digest): Process last block.
32090 (Update): Do not process last block. Store remaining characters and
32093 * g-md5.ads (Update): Document that several call to update are
32094 equivalent to one call with the concatenated string.
32095 (Context): Add fields to allow new Update behaviour.
32097 * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
32098 defaulted to False.
32099 When May_Fail is True and no existing file can be found, return No_File.
32101 * 6vcstrea.adb: Inlined functions are now wrappers to implementation
32104 * lib-writ.adb (Write_With_Lines): When body file does not exist, use
32105 spec file name instead on the W line.
32107 2004-02-02 Robert Dewar <dewar@gnat.com>
32109 * ali.adb: Read and acquire info from new format restrictions lines
32111 * bcheck.adb: Add circuits for checking restrictions with parameters
32113 * bindgen.adb: Output dummy restrictions data
32114 To be changed later
32116 * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
32117 exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
32118 freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
32119 sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
32120 sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
32122 * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
32123 the warning message on access to possibly uninitialized variable S)
32124 Minor changes for new restrictions handling.
32126 * gnatbind.adb: Minor reformatting
32127 Minor changes for new restrictions handling
32128 Move circuit for -r processing here from bcheck (cleaner)
32130 * gnatcmd.adb, gnatlink.adb: Minor reformatting
32132 * lib-writ.adb: Output new format restrictions lines
32134 * lib-writ.ads: Document new R format lines for new restrictions
32137 * s-restri.ads/adb: New files
32139 * Makefile.rtl: Add entry for s-restri.ads/adb
32141 * par-ch3.adb: Fix bad error messages starting with upper case letter
32144 * restrict.adb: Major rewrite throughout for new restrictions handling
32145 Major point is to handle restrictions with parameters
32147 * restrict.ads: Major changes in interface to handle restrictions with
32148 parameters. Also generally simplifies setting of restrictions.
32150 * snames.ads/adb: New entry for proper handling of No_Requeue
32152 * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
32153 restriction counting.
32154 Other minor changes for new restrictions handling
32156 * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
32157 Restriction_Warnings now allows full parameter notation
32158 Major rewrite of Restrictions for new restrictions handling
32160 2004-02-02 Javier Miranda <miranda@gnat.com>
32162 * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
32163 syntax rule for object renaming declarations.
32164 (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
32165 component definitions.
32167 * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
32169 (Array_Type_Declaration): Give support to access components. In addition
32170 it was also modified to reflect the name of the object in anonymous
32171 array types. The old code did not take into account that it is possible
32172 to have an unconstrained anonymous array with an initial value.
32173 (Check_Or_Process_Discriminants): Allow access discriminant in
32175 (Process_Discriminants): Allow access discriminant in non-limited types
32176 Initialize the new Access_Definition field in N_Object_Renaming_Decl
32177 node. Change Ada0Y to Ada 0Y in comments
32179 * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
32180 equality operators.
32181 Change Ada0Y to Ada 0Y in comments
32183 * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
32184 renamings Change Ada0Y to Ada 0Y in comments
32186 * sem_type.adb (Find_Unique_Type): Give support to the equality
32187 operators for universal access types
32188 Change Ada0Y to Ada 0Y in comments
32190 * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
32192 * sinfo.ads (N_Component_Definition): Addition of Access_Definition
32194 (N_Object_Renaming_Declaration): Addition of Access_Definition field
32195 Change Ada0Y to Ada 0Y in comments
32197 * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
32198 component definition and object renaming nodes
32199 Change Ada0Y to Ada 0Y in comments
32201 2004-02-02 Jose Ruiz <ruiz@act-europe.fr>
32203 * restrict.adb: Use the new restriction identifier
32204 No_Requeue_Statements instead of the old No_Requeue for defining the
32205 restricted profile.
32207 * sem_ch9.adb (Analyze_Requeue): Check the new restriction
32208 No_Requeue_Statements.
32210 * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
32211 that supersedes the GNAT specific restriction No_Requeue. The later is
32212 kept for backward compatibility.
32214 2004-02-02 Ed Schonberg <schonberg@gnat.com>
32216 * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
32217 5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
32218 pragma and fix incorrect ones.
32220 * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
32221 warning if the pragma is redundant.
32223 2004-02-02 Thomas Quinot <quinot@act-europe.fr>
32225 * 5staprop.adb: Add missing 'constant' keywords.
32227 * Makefile.in: use consistent value for SYMLIB on
32228 platforms where libaddr2line is supported.
32230 2004-02-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32232 * utils.c (end_subprog_body): Do not call rest_of_compilation if just
32235 2004-02-02 Olivier Hainque <hainque@act-europe.fr>
32237 * init.c (__gnat_install_handler): Setup an alternate stack for signal
32238 handlers in the environment thread. This allows proper propagation of
32239 an exception on stack overflows in this thread even when the builtin
32240 ABI stack-checking scheme is used without support for a stack reserve
32243 * utils.c (create_field_decl): Augment the head comment about bitfield
32244 creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
32245 here, because the former is not accurate enough at this point.
32246 Let finish_record_type decide instead.
32247 Don't make a bitfield if the field is to be addressable.
32248 Always set a size for the field if the record is packed, to ensure the
32249 checks for bitfield creation are triggered.
32250 (finish_record_type): During last pass over the fields, clear
32251 DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
32252 not covered by the calls to layout_decl. Adjust DECL_NONADDRESSABLE_P
32253 from DECL_BIT_FIELD.
32255 2004-01-30 Kelley Cook <kcook@gcc.gnu.org>
32257 * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
32258 (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
32259 (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
32261 2004-01-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
32263 * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
32265 * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
32266 (ZCX_By_Default): Likewise.
32267 (Front_End_ZCX_Support): Likewise.
32269 * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
32270 (Initialize_Lock): Mark Level unreferenced.
32271 (Sleep): Mark Reason unreferenced.
32272 (Timed_Sleep): Likewise.
32273 (Wakeup): Likewise.
32274 (Exit_Task): Use Result.
32275 (Check_No_Locks): Mark Self_ID unreferenced.
32277 * 5gtasinf.adb (New_Sproc): Make Attr constant.
32278 (Bound_Thread_Attributes): Make Sproc constant.
32279 (New_Bound_Thread_Attributes): Likewise.
32281 2004-01-26 Ed Schonberg <schonberg@gnat.com>
32283 * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
32284 one-dimensional array an slice assignments, when component type is
32287 * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
32288 component type is controlled, and control_actions are in effect, use
32289 TSS procedure rather than generating inline code.
32291 * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
32292 arrays with controlled components.
32294 2004-01-26 Vincent Celier <celier@gnat.com>
32296 * gnatcmd.adb (GNATCmd): Add specification of argument file on the
32297 command line for the non VMS case.
32299 * gnatlink.adb (Process_Binder_File): When building object file, if
32300 GNU linker is used, put all object paths between quotes, to prevent ld
32301 error when there are unusual characters (such as '!') in the paths.
32303 * Makefile.generic: When there are sources in Ada and the main is in
32304 C/C++, invoke gnatmake with -B, instead of -z.
32306 * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
32307 from VMS_Conversion.
32308 (Process_Argument): New procedure, extracted from VMS_Conversion. Add
32309 specification of argument file on the command line.
32311 2004-01-26 Bernard Banner <banner@gnat.com>
32313 * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
32315 2004-01-26 Ed Schonberg <schonberg@gnat.com>
32317 * snames.adb: Update copyright notice.
32318 Add info on slice assignment for controlled arrays.
32320 2004-01-23 Robert Dewar <dewar@gnat.com>
32322 * exp_aggr.adb: Minor reformatting
32324 * exp_ch9.adb: Minor code clean up
32326 Fix bad character in comment
32329 * targparm.adb (Get_Target_Parameters): Give clean abort error on
32330 unexpected end of file, along with more detailed message.
32332 2004-01-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32334 * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
32337 * decl.c (copy_alias_set): New function.
32338 (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
32340 2004-01-23 Doug Rupp <rupp@gnat.com>
32342 * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
32343 lib$${file} in case subsequent character is not a separator.
32345 2004-01-23 Vincent Celier <celier@gnat.com>
32347 * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
32348 when the GCC version is at least 3.
32350 * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
32351 Remove all "Opt.", to prepare for opt split
32353 * prj-part.adb (Parse_Single_Project): New Boolean out parameter
32354 Extends_All. Set to True when the project parsed is an extending all
32355 project. Fails for importing an extending all project only when the
32356 imported project is an extending all project.
32357 (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
32358 depending on the value of Extends_All returned.
32360 * prj-proc.adb (Process): Check that no project shares its object
32361 directory with a project that extends it, directly or indirectly,
32362 including a virtual project.
32363 Check that no project extended by another project shares its object
32364 directory with another also extended project.
32366 * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
32367 Kind = N_With_Clause
32369 * prj-tree.ads: Minor reformatting
32370 Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
32372 2004-01-23 Ed Schonberg <schonberg@gnat.com>
32374 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
32375 applies to a type with an incomplete view, use full view in Name of
32376 clause, for consistency with uses of Get_Attribute_Definition_Clause.
32378 2004-01-23 Arnaud Charlet <charlet@act-europe.fr>
32380 * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
32381 SCHED_RR, since other values are not supported by this policy.
32382 (Initialize): Move initialization of mutex attribute to package
32383 elaboration, to prevent early access to this variable.
32385 * Makefile.in: Remove mention of Makefile.adalib, unused.
32387 * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
32388 1ssecsta.ads: Removed, unused.
32390 2004-01-21 Javier Miranda <miranda@gnat.com>
32392 * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
32393 entity if already built in the current scope.
32395 * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
32396 reminder in internal scopes. Required for nested limited aggregates.
32398 2004-01-21 Doug Rupp <rupp@gnat.com>
32400 * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
32401 VMS. Replace all occurences of libgnat- and libgnarl- with
32402 libgnat$(hyphen) and libgnarl$(hyphen).
32403 Fixed shared library build problem on VMS.
32405 2004-01-21 Robert Dewar <dewar@gnat.com>
32407 * mlib-prj.adb: Minor reformatting
32409 2004-01-21 Thomas Quinot <quinot@act-europe.fr>
32411 * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
32412 'constant' keywords for declaration of pointers that are not modified.
32414 * exp_pakd.adb: Fix English in comment.
32416 2004-01-21 Ed Schonberg <schonberg@gnat.com>
32419 * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
32420 copy all attributes of the parent, including the foreign language
32423 2004-01-21 Sergey Rybin <rybin@act-europe.fr>
32426 * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
32427 for 'delay until' statement.
32429 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
32431 * Make-lang.in: Replace $(docdir) with doc.
32432 (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
32433 doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
32434 to use consistent MAKEINFO rule.
32435 (ada.man, ada.srcman): Dummy entry.
32436 (ADA_INFOFILES): Define.
32437 (ada.info, ada.srcinfo): New rules.
32439 2004-01-19 Arnaud Charlet <charlet@act-europe.fr>
32441 * utils.c: Update copyright notice, missed in previous change.
32443 2004-01-19 Vincent Celier <celier@gnat.com>
32445 * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
32446 args if Bind is True. Set First_ALI, if not already done.
32447 (Build_Library): For Stand Alone Libraries, extract from one ALI file
32448 an eventual --RTS switch, for gnatbind, and all backend switches +
32449 --RTS, for linking.
32451 2004-01-19 Robert Dewar <dewar@gnat.com>
32453 * sem_attr.adb, memtrack.adb: Minor reformatting
32455 2004-01-19 Ed Schonberg <schonberg@gnat.com>
32457 * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
32458 that rename enumeration literals. This is properly done in sem_eval.
32460 * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
32461 to functions that rename enumeration literals.
32463 * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
32464 functions that rename enumeration literals.
32466 2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
32468 * Make-lang.in (utils.o): Depend on target.h.
32469 * utils.c: Include target.h.
32470 (process_attributes): Use targetm.have_named_sections instead
32471 of ASM_OUTPUT_SECTION_NAME.
32473 2004-01-16 Andreas Jaeger <aj@suse.de>
32475 * Makefile.in: Add $(DESTDIR).
32477 2004-01-15 Olivier Hainque <hainque@act-europe.fr>
32479 * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
32480 also when not defining if a Size clause applies. That information is
32483 2004-01-15 Arnaud Charlet <charlet@act-europe.fr>
32485 * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
32486 symbolic links for the shared gnat run time when needed.
32488 2004-01-15 Vasiliy Fofanov <fofanov@act-europe.fr>
32490 * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
32491 for writing, and terminate with an error message if not.
32493 2004-01-15 Ed Schonberg <schonberg@gnat.com>
32495 * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
32496 warning on an access to subprogram in an instance, when the target
32497 type is declared in the same generic unit.
32498 (Eval_Attribute): If 'access is known to fail accessibility check,
32499 rewrite as a raise statement.
32501 2004-01-15 GNAT Script <nobody@gnat.com>
32503 * Make-lang.in: Makefile automatically updated
32505 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
32507 * Make-lang.in (ada.srcextra): Dummy entry.
32509 2004-01-14 Kelley Cook <kcook@gcc.gnu.org>
32511 * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
32513 2004-01-13 Ed Schonberg <schonberg@gnat.com>
32515 * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
32516 components that are initialized with aggregates.
32518 2004-01-13 Vincent Celier <celier@gnat.com>
32520 * gnatlink.adb (Process_Binder_File): To find directory of shared
32521 libgcc, if "gcc-lib" is not a subdirectory, look for the last
32522 subdirectory "lib" in the path of the shared libgnat or libgnarl.
32524 * make.adb (Gnatmake): If GCC version is at least 3, link with
32525 -shared-libgcc, when there is at least one shared library project.
32527 * opt.ads (GCC_Version): New integer constant.
32529 * adaint.c (get_gcc_version): New function.
32531 2004-01-13 Robert Dewar <dewar@gnat.com>
32533 * sem_dist.adb, sem_res.adb, sem_util.adb,
32534 sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
32535 exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
32537 2004-01-13 Thomas Quinot <quinot@act-europe.fr>
32539 * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
32540 g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
32543 2004-01-12 Arnaud Charlet <charlet@act-europe.fr>
32545 * misc.c: Remove trailing spaces.
32546 Update copyright notice missed in previous change.
32549 * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
32552 * Makefile.generic: Update copyright.
32553 Add license notice.
32555 * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
32556 of prefix/share/make.
32558 * Makefile.prolog: Update copyright.
32559 Add license notice.
32561 2004-01-12 Laurent Pautet <pautet@act-europe.fr>
32563 * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
32564 3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
32565 g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
32568 * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
32571 2004-01-12 Javier Miranda <miranda@gnat.com>
32573 * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
32574 exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
32575 sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
32576 sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
32577 Component_Definition node.
32579 2004-01-12 Ed Falis <falis@gnat.com>
32581 * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
32583 2004-01-12 Thomas Quinot <quinot@act-europe.fr>
32585 * link.c: Change default libgnat kind to STATIC for FreeBSD.
32587 2004-01-12 Bernard Banner <banner@gnat.com>
32589 * Makefile.in: map 86numaux to a-numaux for x86_64
32591 2004-01-12 Ed Schonberg <schonberg@gnat.com>
32593 * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
32594 generated to rename a generic actual, go to the actual itself, the
32595 subtype is not a user-visible entity.
32597 * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
32598 part is a private subtype, reset the visibility of its full view, if
32599 any, to be consistent.
32602 * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
32603 to use a generic package G as a formal package for another generic
32606 2004-01-12 Robert Dewar <dewar@gnat.com>
32608 * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
32610 * usage.adb: Remove mention of obsolete -gnatwb switch
32611 Noticed during code reading
32613 2004-01-12 Jerome Guitton <guitton@act-europe.fr>
32615 * 1ssecsta.adb: Minor changes for -gnatwa warnings
32617 2004-01-12 GNAT Script <nobody@gnat.com>
32619 * Make-lang.in: Makefile automatically updated
32621 2004-01-09 Mark Mitchell <mark@codesourcery.com>
32623 * misc.c (gnat_expand_expr): Add alt_rtl parameter.
32625 2004-01-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
32627 * link.c [sgi] (shared_libgnat_default): Change to STATIC.
32629 2004-01-05 Kelley Cook <kcook@gcc.gnu.org>
32631 * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
32632 Update comment and copyright date.
32633 * stamp-xgnatug: Delete.
32635 2004-01-05 Robert Dewar <dewar@gnat.com>
32637 * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
32638 be modified by the binder generated main program if the -D switch is
32641 * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
32642 imported functions (since now we expect this to be done for imported
32645 * 5vtaprop.adb: Add several ??? for sections requiring more comments
32646 Minor reformatting throughout
32648 * 5zinit.adb: Minor reformatting
32649 Add 2004 to copyright date
32650 Minor changes to avoid -gnatwa warnings
32651 Correct some instances of using OR instead of OR ELSE (noted while
32652 doing reformatting)
32654 * sprint.adb: Minor updates to avoid -gnatwa warnings
32656 * s-secsta.ads, s-secsta.adb:
32657 (SS_Get_Max): New function to obtain high water mark for ss stack
32658 Default_Secondary_Stack is not a constant since it may be modified by
32659 the binder generated main program if the -D switch is used.
32661 * switch-b.adb: New -Dnnn switch for binder
32664 Make -gnatg imply all warnings currently in -gnatwa
32666 * vms_conv.adb: Minor reformatting
32667 Add 2004 to copyright notice
32668 Add 2004 to printed copyright notice
32670 * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
32671 3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
32672 5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
32673 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
32674 5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
32675 5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
32676 5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
32677 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
32678 5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
32679 5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
32680 6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
32681 vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
32682 xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
32683 sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
32684 checks.adb, clean.adb, cstand.adb, einfo.ads,
32685 einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
32686 exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
32687 prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
32688 sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
32689 g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
32690 lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
32691 Minor reformatting and code clean ups.
32692 Minor changes to prevent -gnatwa warnings
32694 * ali.adb: Minor reformatting and cleanup of code
32695 Acquire new SS indication of secondary stack use from ali files
32697 * a-numaux.ads: Add Pure_Function pragmas for all imported functions
32698 (since now we expect this to be done for imported functions)
32700 * bindgen.adb: Generate call to modify default secondary stack size if
32703 * bindusg.adb: Add line for new -D switch
32705 * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
32706 replacement name for Type_May_Have_Non_Bit_Aligned_Components!
32707 Add circuitry for both records and arrays to avoid gigi
32708 processing if the type involved has non-bit-aligned components
32710 * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
32711 N_String_Literal node always references an E_String_Literal_Subtype
32712 entity. This may not be true in the future.
32713 (Possible_Bit_Aligned_Component): Move processing of
32714 Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
32716 * exp_ch6.adb (Expand_Thread_Body): Pick up
32717 Default_Secondary_Stack_Size as variable so that we get value modified
32718 by possible -Dnnn binder parameter.
32720 * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
32721 (Type_May_Have_Bit_Aligned_Components): New function.
32723 * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
32724 (Type_May_Have_Bit_Aligned_Components): New function.
32726 * fe.h: (Set_Identifier_Casing): Fix prototype.
32727 Add declaration for Sem_Elim.Eliminate_Error_Msg.
32728 Minor reformatting.
32730 * freeze.adb (Freeze_Entity): Add RM reference to error message about
32731 importing constant atomic/volatile objects.
32732 (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
32733 unless explicit Pure_Function pragma given, to avoid insidious bug of
32734 call to non-pure imported function getting eliminated.
32736 * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
32737 gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
32738 gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
32739 Add 2004 to printed copyright notice
32741 * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
32744 * Makefile.rtl: Add entry for g-sestin.o
32745 g-sestin.ads: New file.
32747 * mdll.adb: Minor changes to avoid -gnatwa warnings
32749 * mlib-tgt.adb: Minor reformatting
32751 * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
32752 New switch Sec_Stack_Used (GNAT, GNATBIND)
32753 Make Default_Secondary_Stack_Size a variable instead of a constant,
32754 so that it can be modified by the new -Dnnn bind switch.
32756 * rtsfind.adb (Load_Fail): Give full error message in configurable
32757 run-time mode if all_errors mode is set. This was not done in the case
32758 of a file not found, which was an oversight.
32759 Note if secondary stack unit is used by compiler.
32761 * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
32762 ineffective elaborate all pragmas on non-visible packages (this
32763 happened when a renamed subprogram was called). Now the elaborate all
32764 always goes on the package containing the renaming rather than the one
32765 containing the renamed subprogram.
32767 * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
32768 (Process_Eliminate_Pragma): Add parameter to capture pragma location.
32770 * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
32771 has an Etype that references an E_String_Literal.
32772 (Eval_String_Literal): Avoid assumption that N_String_Literal node
32773 always references an E_String_Literal_Subtype entity. This may not
32774 be true in the future.
32776 * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
32779 * sem_res.adb (Resolve): Specialize msg for function name used in proc
32782 2004-01-05 Ed Falis <falis@gnat.com>
32784 * g-debuti.adb: Replaced direct boolean operator with short-circuit
32787 2004-01-05 Vincent Celier <celier@gnat.com>
32789 * bld.adb: Minor comment updates
32790 (Process_Declarative_Items): Correct incorrect name (Index_Name instead
32793 * make.adb (Gnatmake): Special process for files to compile/check when
32794 -B is specified. Fail when there are only foreign mains in attribute
32795 Main of the project file and -B is not specified. Do not skip bind/link
32796 steps when -B is specified.
32798 * makeusg.adb: Document new switch -B
32800 * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
32802 * switch-m.adb: (Scan_Make_Switches): Process -B switch
32804 * vms_data.ads: Add new GNAT PRETTY qualifier
32805 /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
32807 2004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
32809 * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
32812 * misc.c (gnat_printable_name): If VERBOSITY is 2, call
32813 Set_Identifier_Casing.
32815 * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
32816 has size that overflows.
32818 2004-01-05 Gary Dismukes <dismukes@gnat.com>
32820 * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
32821 -gnatwa warning on static condition.
32823 2004-01-05 Doug Rupp <rupp@gnat.com>
32825 * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
32827 2004-01-05 Arnaud Charlet <charlet@act-europe.fr>
32829 * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
32830 all attributes, including read-only attribute.
32832 2004-01-05 Pascal Obry <obry@gnat.com>
32834 * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
32835 library naming scheme.
32837 * mlib-prj.adb (Build_Library): Generate different names for the static
32838 or dynamic version of the GNAT runtime. This is needed to support the
32839 new shared library naming scheme.
32840 (Process_Binder_File): Add detection of shared library in binder file
32841 based on the new naming scheme.
32843 * gnatlink.adb (Process_Binder_File): Properly detect the new naming
32844 scheme for the shared runtime libraries.
32847 (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
32849 (install-gnatlib): Do not create symlinks for shared libraries.
32850 (gnatlib-shared-default): Idem.
32851 (gnatlib-shared-dual-win32): New target. Not used for now as the
32852 auto-import feature does not support arrays/records.
32853 (gnatlib-shared-win32): Do not create copy for the shared libraries.
32854 (gnatlib-shared-vms): Fix shared runtime libraries names.
32856 * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
32857 dependent runtime shared library name.
32859 2004-01-05 Vasiliy Fofanov <fofanov@act-europe.fr>
32861 * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
32864 2004-01-05 Ed Schonberg <schonberg@gnat.com>
32866 * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
32867 protected objects when allocator has a subtype indication, not a
32868 qualified expression. Note that qualified expressions may have to be
32869 checked when limited aggregates are implemented.
32871 * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
32872 pure, emit warning.
32873 (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
32874 subprogram is imported, remove warning.
32876 2004-01-05 Geert Bosch <bosch@gnat.com>
32878 * s-poosiz.adb: Update copyright notice.
32879 (Allocate): Use Task_Lock to protect against concurrent access.
32880 (Deallocate): Likewise.
32882 2004-01-05 Joel Brobecker <brobecker@gnat.com>
32884 * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
32887 2003-12-23 Kelley Cook <kcook@gcc.gnu.org>
32889 * gnat_ug.texi: Force a CVS commit by updating copyright.
32890 * gnat_ug_vxw.texi: Regenerate.
32891 * gnat_ug_wnt.texi: Regenerate.
32892 * gnat_ug_vms.texi: Regenerate.
32893 * gnat_ug_unx.texi: Regenerate.
32895 2003-12-20 Kazu Hirata <kazu@cs.umass.edu>
32897 * trans.c: Remove uses of "register" specifier in
32898 declarations of local variables.
32900 2003-12-18 Kelley Cook <kcook@gcc.gnu.org>
32902 * stamp-xgnatug: New stamp file.
32903 * Make-lang.in (stamp-xgnatug): New stamp file and comment.
32904 (ada/doctools/xgnatug): Add $(build_exeext).
32905 (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
32906 ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
32908 2003-12-17 Ed Falis <falis@gnat.com>
32910 * a-elchha.adb (Tailored_Exception_Information): made Info constant to
32913 * a-exextr.adb: Add context clause for
32914 Ada.Exceptions.Last_Chance_Handler.
32916 2003-12-17 Sergey Rybin <rybin@act-europe.fr>
32918 * cstand.adb (Create_Standard): Change the way how the declaration of
32919 the Duration type is created (making it the same way as it is for all
32920 the other standard types).
32922 2003-12-17 Robert Dewar <dewar@gnat.com>
32924 * s-crtl.ads: Fix header format
32925 Change Pure to Preelaborate
32927 2003-12-17 Ed Schonberg <schonberg@gnat.com>
32929 * checks.adb (Selected_Length_Checks): Generate an Itype reference for
32930 the expression type only if it is declared in the current unit.
32932 * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
32933 are universal and already analyzed, as can occur in constrained
32934 subcomponents that depend on discriminants, when one constraint is a
32937 * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
32938 type Any_Fixed is legal as the argument of a conversion, if only one
32939 fixed-point type is in context.
32941 2003-12-17 GNAT Script <nobody@gnat.com>
32943 * Make-lang.in: Makefile automatically updated
32945 2003-12-15 Robert Dewar <dewar@gnat.com>
32947 * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
32950 2003-12-15 Vincent Celier <celier@gnat.com>
32952 * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
32953 (Gnatchop): Do not set failure status when reporting the number of
32956 2003-12-15 Doug Rupp <rupp@gnat.com>
32958 * s-ctrl.ads: New file.
32960 * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
32962 * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
32963 (GNATBIND_OBJS): Add ada/s-crtl.o.
32965 * Makefile.in [VMS]: Clean up ifeq rules.
32967 * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
32968 a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
32969 g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
32970 s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
32971 s-tasdeb.adb: Update copyright.
32972 Import System.CRTL.
32973 Make minor modifications to use System.CRTL declared functions instead
32974 of importing locally.
32976 2003-12-15 GNAT Script <nobody@gnat.com>
32978 * Make-lang.in: Makefile automatically updated
32980 2003-12-11 Ed Falis <falis@gnat.com>
32982 * 5zinit.adb: Clean up.
32984 * 5zintman.adb (Notify_Exception): replaced case statement with a call
32985 to __gnat_map_signal, imported from init.c to support
32986 signal -> exception mappings that depend on the vxWorks version.
32989 Created and exported __gnat_map_signal to support signal -> exception
32990 mapping that is dependent on the VxWorks version.
32991 Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
32993 2003-12-11 Vasiliy Fofanv <fofanov@act-europe.fr>
32995 * 5wosinte.ads: Link with -mthreads switch.
32997 2003-12-11 Arnaud Charlet <charlet@act-europe.fr>
32999 * init.c (__gnat_install_handler [NetBSD]): Set
33000 __gnat_handler_installed, as done on all other platforms.
33001 Remove duplicated code.
33003 2003-12-11 Jerome Guitton <guitton@act-europe.fr>
33005 * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
33007 2003-12-11 Thomas Quinot <quinot@act-europe.fr>
33009 * sinfo.ads: Fix inconsistent example code in comment.
33011 2003-12-11 Robert Dewar <dewar@gnat.com>
33013 * a-tiinau.adb: Add a couple of comments
33015 * sem_ch3.adb: Minor reformatting
33018 Fix bad prototype of Same_Base_Type in body (code reading cleanup)
33019 Minor reformatting throughout
33021 2003-12-11 Ed Schonberg <schonberg@gnat.com>
33023 * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
33024 bounds of a loop, create a separate block in order to generate proper
33025 cleanup actions to prevent memory leaks.
33027 * sem_res.adb (Resolve_Call): After a call to
33028 Establish_Transient_Scope, the call may be rewritten and relocated, in
33029 which case no further processing is needed.
33031 * sem_util.adb: (Wrong_Type): Refine previous fix.
33032 Fixes ACATS regressions.
33035 * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
33038 2003-12-08 Jerome Guitton <guitton@act-europe.fr>
33040 * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
33041 i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
33044 * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
33047 2003-12-08 Robert Dewar <dewar@gnat.com>
33049 * 7sintman.adb: Minor reformatting
33051 * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
33052 standard linker options to get standard libraries linked. We now plan
33053 to provide dummy versions of these libraries to match the appropriate
33054 configurable run-time (e.g. if a library is not needed at all, provide
33055 a dummy empty library).
33057 * targparm.ads: Configurable_Run_Time mode no longer affects linker
33058 options (-L parameters and standard libraries). What we plan to do is
33059 to provide dummy libraries where the libraries are not required.
33061 * gnatbind.adb: Minor comment improvement
33063 2003-12-08 Javier Miranda <miranda@gnat.com>
33065 * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
33066 aggregate in the parent. Otherwise constants with limited aggregates
33067 are not supported. Add new formal to pass the component type (Ctype).
33068 It is required to call the corresponding IP subprogram in case of
33069 default initialized components.
33070 (Gen_Assign): In case of default-initialized component, generate a
33071 call to the IP subprogram associated with the component.
33072 (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
33073 of aggregate with default initialized components.
33074 (Has_Default_Init_Comps): Improve implementation to recursively check
33075 all the present expressions.
33077 * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
33078 to indicate that the initialization call corresponds to a
33079 default-initialized component of an aggregate.
33080 In case of default initialized aggregate with tasks this parameter is
33081 used to generate a null string (this is just a workaround that must be
33082 improved later). In case of discriminants, this parameter is used to
33083 generate a selected component node that gives access to the discriminant
33086 * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
33087 subprogram, based on Build_Task_Allocate_Block, but adapted to expand
33088 allocated aggregates with default-initialized components.
33090 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
33091 the box notation is used in positional aggregates.
33093 2003-12-08 Samuel Tardieu <tardieu@act-europe.fr>
33095 * lib.ads: Fix typo in comment
33097 2003-12-08 Vincent Celier <celier@gnat.com>
33099 * prj.adb (Project_Empty): New component Unkept_Comments
33100 (Scan): Remove procedure; moved to Prj.Err.
33102 * prj.ads (Project_Data): New Boolean component Unkept_Comments
33103 (Scan): Remove procedure; moved to Prj.Err.
33105 * prj-dect.adb: Manage comments for the different declarations.
33107 * prj-part.adb (With_Record): New component Node
33108 (Parse): New Boolean parameter Store_Comments, defaulted to False.
33109 Set the scanner to return ends of line and comments as tokens, if
33110 Store_Comments is True.
33111 (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
33112 comments are associated with these nodes. Store the node IDs in the
33114 (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
33116 (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
33117 the N_Project node. Call Tree.Save and Tree.Reset before scanning the
33118 current project. Call Tree.Restore afterwards. Set the various nodes
33119 for comment storage (Next_End, End_Of_Line, Previous_Line,
33122 * prj-part.ads (Parse): New Boolean parameter Store_Comments,
33123 defaulted to False.
33125 * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
33126 to False. When Truncated is True, truncate the string, never go to the
33128 (Write_End_Of_Line_Comment): New procedure
33129 (Print): Process comments for nodes N_With_Clause,
33130 N_Package_Declaration, N_String_Type_Declaration,
33131 N_Attribute_Declaration, N_Typed_Variable_Declaration,
33132 N_Variable_Declaration, N_Case_Construction, N_Case_Item.
33133 Process nodes N_Comment.
33135 * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
33136 without comments and there are some comments, set the flag
33137 Unkept_Comments to True.
33138 (Scan): If there are comments, set the flag Unkept_Comments to True and
33139 clear the comments.
33140 (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
33141 (Next_End_Nodes: New table
33142 (Comment_Zones_Of): New function
33143 (Scan): New procedure; moved from Prj. Accumulate comments in the
33144 Comments table and set end of line comments, comments after, after end
33146 (Add_Comments): New procedure
33147 (Save, Restore, Seset_State): New procedures
33148 (There_Are_Unkept_Comments): New function
33149 (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
33150 (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
33152 (First_Comment_After, First_Comment_After_End): New functions
33153 (First_Comment_Before, First_Comment_Before_End): New functions
33154 (Next_Comment): New function
33155 (End_Of_Line_Comment, Follows_Empty_Line,
33156 Is_Followed_By_Empty_Line): New functions
33157 (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
33158 (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
33159 (Set_Next_Comment): New procedure
33160 (Default_Project_Node): Associate comment before if the node can store
33163 * scans.ads (Token_Type): New enumeration value Tok_Comment
33164 (Comment_Id): New global variable
33166 * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
33167 defaulted to False.
33168 (Scan): Store position of start of comment. If comments are tokens, set
33169 Comment_Id and set Token to Tok_Comment when scanning a comment.
33170 (Set_Comment_As_Token): New procedure
33172 * sinput-p.adb: Update Copyright notice
33173 (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
33174 that no longer exists.
33176 2003-12-08 Javier Miranda <miranda@gnat.com>
33178 * sem_aggr.adb: Add dependence on Exp_Tss package
33179 Correct typo in comment
33180 (Resolve_Aggregate): In case of array aggregates set the estimated
33181 type of the aggregate before calling resolve. This is needed to know
33182 the name of the corresponding IP in case of limited array aggregates.
33183 (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
33184 in case of default initialized array components.
33186 * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
33187 types. Required to give support to limited aggregates in generic
33190 2003-12-08 Ed Schonberg <schonberg@gnat.com>
33192 * sem_ch3.adb (Check_Initialization): For legality purposes, an
33193 inlined body functions like an instantiation.
33194 (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
33195 until bounds are analyzed, to diagnose premature use of type.
33197 * sem_util.adb (Wrong_Type): Improve error message when the type of
33198 the expression is used prematurely.
33200 2003-12-08 GNAT Script <nobody@gnat.com>
33202 * Make-lang.in: Makefile automatically updated
33204 2003-12-08 Arnaud Charlet <charlet@act-europe.fr>
33206 * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
33207 they are automatically generated by Make-lang.in and cause nothing but
33208 maintenance troubles.
33210 2003-12-05 Thomas Quinot <quinot@act-europe.fr>
33212 * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
33213 version of this unit).
33215 2003-12-05 Olivier Hainque <hainque@act-europe.fr>
33217 * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
33218 5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
33219 5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
33220 the body of System.Interrupt_Management common to several targets.
33221 Update copyright notice when appropriate.
33223 * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
33226 * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
33227 to ensure that the kernel fills in the interrupted context structure
33228 before calling a signal handler, which is necessary to be able to
33229 unwind past it. Update the copyright notice.
33231 2003-12-05 Jerome Guitton <guitton@act-europe.fr>
33233 * a-elchha.ads: New file.
33235 * a-elchha.adb: New default last chance handler. Contents taken from
33236 Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
33238 * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
33239 is moved to a-elchha.adb to provide a target-independent default last
33242 * Makefile.rtl: Add a-elchha.o
33244 * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
33246 2003-12-05 Ed Schonberg <schonberg@gnat.com>
33248 * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
33249 declared in an instance, do not inline the call if the instance is not
33250 frozen yet, to prevent order of elaboration problems.
33252 * sem_prag.adb: Add comments for previous fix.
33254 2003-12-05 Samuel Tardieu <tardieu@act-europe.fr>
33256 * g-table.adb: Use the right variable in Set_Item.
33257 Update copyright notice.
33259 2003-12-05 Arnaud Charlet <charlet@act-europe.fr>
33261 * Makefile.in: Remove unused rules.
33263 2003-12-05 Vincent Celier <celier@gnat.com>
33265 * switch-c.adb (Scan_Front_End_Switches): Remove processing of
33266 -nostdlib. Not needed here after all.
33268 2003-12-03 Thomas Quinot <quinot@act-europe.fr>
33271 * adaint.h, adaint.c, g-os_lib.ads:
33272 Do not assume that the offset argument to lseek(2) is a 32 bit integer,
33273 on some platforms (including FreeBSD), it is a 64 bit value.
33274 Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
33276 2003-12-03 Arnaud Charlet <charlet@act-europe.fr>
33278 * gnatvsn.ads (Library_Version): Now contain only the relevant
33280 (Verbose_Library_Version): New constant.
33282 * g-spipat.adb, g-awk.adb, g-debpoo.adb,
33283 g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
33284 s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
33286 * gnatlbr.adb: Clean up: replace Library_Version by
33287 Verbose_Library_Version.
33289 * make.adb, lib-writ.adb, exp_attr.adb:
33290 Clean up: replace Library_Version by Verbose_Library_Version.
33292 * 5lintman.adb: Removed.
33295 Update and simplify computation of LIBRARY_VERSION.
33296 Fix computation of GSMATCH_VERSION.
33297 5lintman.adb is no longer used: replaced by 7sintman.adb.
33299 2003-12-03 Robert Dewar <dewar@gnat.com>
33302 (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
33303 name. Modified to consider small non-bit-packed arrays as troublesome
33304 and in need of component-by-component assigment expansion.
33306 2003-12-03 Vincent Celier <celier@gnat.com>
33308 * lang-specs.h: Process nostdlib as nostdinc
33310 * back_end.adb: Update Copyright notice
33311 (Scan_Compiler_Arguments): Process -nostdlib directly.
33313 2003-12-03 Jose Ruiz <ruiz@act-europe.fr>
33316 When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
33317 redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
33318 included in HIE_NONE_TARGET_PAIRS.
33320 2003-12-03 Ed Schonberg <schonberg@gnat.com>
33323 (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
33324 is legal in an instance, because legality is cheched in the template.
33327 (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
33328 appplied to an unchecked conversion of a formal parameter.
33331 (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
33334 2003-12-03 Olivier Hainque <hainque@act-europe.fr>
33336 * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
33337 routines. The second one is new functionality to deal with backtracing
33338 through signal handlers.
33339 (unwind): Split into the two separate subroutines above.
33340 Update the documentation, and deal properly with sizeof (REG) different
33341 from sizeof (void*).
33343 2003-12-01 Nicolas Setton <setton@act-europe.fr>
33345 * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
33346 so that the debugger can reliably access the value of the parameter,
33347 and therefore is able to display the exception name when an exception
33348 breakpoint is reached.
33350 2003-12-01 Thomas Quinot <quinot@act-europe.fr>
33352 * fmap.adb: Fix typo in warning message.
33354 * g-socket.ads, g-socket.adb: Make Free a visible instance of
33355 Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
33357 2003-12-01 Vincent Celier <celier@gnat.com>
33359 * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
33361 (Build_Library): Get the switches only if Default_Switches is declared
33364 2003-12-01 Ed Schonberg <schonberg@gnat.com>
33366 * exp_ch6.adb (Expand_Actuals): When applying validity checks to
33367 actuals that are indexed components, reanalyze actual to ensure that
33368 packed array references are properly expanded.
33370 * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
33371 attempted assignment to a discriminant.
33373 2003-12-01 Robert Dewar <dewar@gnat.com>
33375 * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
33378 * switch-c.adb: Minor reformatting of comments
33380 2003-12-01 Arnaud Charlet <charlet@act-europe.fr>
33382 * Makefile.in: Clean ups.
33384 2003-12-01 GNAT Script <nobody@gnat.com>
33386 * Make-lang.in: Makefile automatically updated
33388 2003-12-01 Arnaud Charlet <charlet@act-europe.fr>
33390 * 5wsystem.ads: Disable zero cost exception, not ready yet.
33392 2003-11-29 Ulrich Weigand <uweigand@de.ibm.com>
33394 * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
33395 to force serialization.
33397 2003-11-26 Thomas Quinot <quinot@act-europe.fr>
33399 * g-socket.ads, g-socket.adb:
33400 Clarify documentation of function Stream. Introduce a Free procedure
33401 to release the returned Stream once it becomes unused.
33403 * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
33405 2003-11-26 Arnaud Charlet <charlet@act-europe.fr>
33407 (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
33408 since NT 4 cannot handle timeout values that are too large,
33409 e.g. DWORD'Last - 1.
33411 2003-11-26 Ed Schonberg <schonberg@gnat.com>
33414 (Expand_N_Slice): Recognize all cases of slices that appear as actuals
33415 in procedure calls and whose expansion must be deferred.
33417 * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
33421 (Build_Derived_Array_Type): Create operator for unconstrained type
33422 if ancestor is unconstrained.
33424 2003-11-26 Vincent Celier <celier@gnat.com>
33426 * make.adb (Project_Object_Directory): New global variable
33427 (Change_To_Object_Directory): New procedure
33428 (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
33429 of Change_Dir directly. Do not change working directory to object
33430 directory of main project after each compilation.
33431 (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
33433 Change to object directory of main project before binding step.
33434 (Initialize): Initialize Project_Object_Directory to No_Project
33437 (Build_Library): Take into account Builder'Default_Switches ("Ada") when
33438 binding a Stand-Alone Library.
33440 * output.adb: Update Copyright notice
33441 (Write_Char): Output buffer when full
33443 2003-11-26 Robert Dewar <dewar@gnat.com>
33445 * sem_ch13.adb: (Check_Size): Reset size if size is too small
33448 (Check_Size): Fix documentation to include bit-packed array case
33450 * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
33452 * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
33454 * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
33456 2003-11-24 Arnaud Charlet <charlet@act-europe.fr>
33459 * utils.c (init_gigi_decls): Change name of built-in setjmp to
33460 __builtin_setjmp, since this is apparently needed by recent
33463 2003-11-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
33465 * adadecode.c: Only include ctype.h if not IN_GCC.
33466 (__gnat_decode): Use ISDIGIT from safe-ctype.h.
33468 2003-11-24 Jose Ruiz <ruiz@act-europe.fr>
33471 Use 5zintman.ads for VxWorks targets. This file avoid confusion between
33472 signals and interrupts.
33474 * 5zintman.ads: New File.
33476 * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
33477 add exception signals to the set of unmasked signals.
33480 Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
33481 between signals and interrupts.
33482 Add to Unblocked_Signal_Mask the set of signals that are in
33486 Adding a check to see whether the Interrupt_ID we want to unmask is in
33487 the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
33488 reason is that the index type of the Keep_Unmasked array is not always
33489 Interrupt_ID; it may be a subtype of Interrupt_ID.
33491 2003-11-24 Gary Dismukes <dismukes@gnat.com>
33494 (Remove_Side_Effects): Condition constantness of object created for a
33495 an unchecked type conversion on the constantness of the expression
33496 to ensure the correct value for 'Constrained when passing components
33497 of view-converted class-wide objects.
33499 2003-11-24 Robert Dewar <dewar@gnat.com>
33501 * par-load.adb (Load): Improve handling of misspelled and missing units
33502 Removes several cases of compilation abandoned messages
33504 * lib.adb: (Remove_Unit): New procedure
33506 * lib.ads: (Remove_Unit): New procedure
33508 * lib-load.adb: Minor reformatting
33510 2003-11-24 Vincent Celier <celier@gnat.com>
33513 (Gnatmake, Initialize): Call Usage instead of Makeusg directly
33514 (Marking_Label): Label to mark processed source files. Incremented for
33516 (Gnatmake): Increase Marking_Labet for each executable
33517 (Is_Marked): Compare against marking label
33518 (Mark): Mark with marking label
33520 2003-11-24 Jerome Guitton <guitton@act-europe.fr>
33523 Move the declaration of the TSD for System.Threads to System.Soft_Links.
33526 * Makefile.in: Added target pair for s-thread.adb for cert runtime.
33527 (rts-cert): build a single relocatable object for the run-time lib.
33530 2003-11-24 Vasiliy Fofanov <fofanov@act-europe.fr>
33533 Use gnatls rather than gcc to obtain the location of GNAT RTL for
33536 2003-11-24 Sergey Rybin <rybin@act-europe.fr>
33538 * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
33539 can not use it as before (that is, as a variable) when dumping it into
33540 the tree file. Add a local variable to store the result of this
33541 function and to be used as the string to be written into the tree.
33543 * scn.adb (Initialize_Scanner): Add comments explaining the recent
33546 * sinput.adb (Source_First, Source_Last): In case of
33547 Internal_Source_File, replace returning attributes of
33548 Internal_Source_Ptr (which is wrong) with returning attributes of
33551 2003-11-24 Ed Schonberg <schonberg@gnat.com>
33554 (New_Concatenation_Op): Proper name for New_Binary_Operator, only
33555 used for implicit concatenation operators.
33559 (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
33560 task bodies that are in the scope of a Suppress pragma.
33561 (Check_A Call): Use the flag to prevent spurious elaboration checks.
33563 * sinfo.ads, sinfo.adb:
33564 New flag No_Elaboration_Check on function/procedure calls, to properly
33565 suppress checks on calls in task bodies that are within a local suppress
33569 (Expand_Concatenate_Other): Use the proper integer type for the
33570 expression for the upper bound, to avoid universal_integer computations
33573 2003-11-21 Kelley Cook <kcook@gcc.gnu.org>
33575 * .cvsignore: Delete.
33577 2003-11-21 Andreas Schwab <schwab@suse.de>
33579 * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
33581 2003-11-21 Vasiliy Fofanov <fofanov@act-europe.fr>
33583 * 5wsystem.ads: Enable zero cost exception.
33585 2003-11-21 Jerome Guitton <guitton@act-europe.fr>
33587 * 5ztiitho.adb: Remove an unreferenced variable.
33589 2003-11-21 Thomas Quinot <quinot@act-europe.fr>
33591 * adaint.c: For FreeBSD, use mkstemp.
33593 2003-11-21 Arnaud Charlet <charlet@act-europe.fr>
33595 * gnatlbr.adb: Now reference Gnat_Static_Version_String.
33597 2003-11-21 Robert Dewar <dewar@gnat.com>
33599 * bld.adb: Remove useless USE of gnatvsn
33601 * gnatchop.adb: Minor reformatting
33602 Clean up version handling to be more consistent
33604 * gnatxref.adb: Minor reformatting
33606 * gprcmd.adb: Minor reformatting
33607 Fix output of copyright to be more consistent with other tools
33609 2003-11-21 Vincent Celier <celier@gnat.com>
33611 * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
33613 2003-11-21 Sergey Rybin <rybin@act-europe.fr>
33615 * atree.adb (Initialize): Add initializations for global variables
33616 used in New_Copy_Tree.
33618 * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
33619 Internal_Source_File as the actual).
33620 Put the set of statements creating Any_Character before the set of
33621 statements creating Any_Array to have Any_Character fully initialized
33622 when it is used in creating Any_Array.
33624 * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
33625 not call Scan in case if the actual is Internal_Source_File
33626 Add 2003 to copyright note.
33628 * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
33629 processing Internal_Source_File.
33631 * types.ads: Add the constant Internal_Source_File representing the
33632 source buffer for artificial source-code-like strings created within
33633 the compiler (the definition of Source_File_Index is changed).
33635 2003-11-20 Arnaud Charlet <charlet@act-europe.fr>
33637 * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
33638 56system.ads: New file, FreeBSD version.
33640 2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
33642 * Make-lang.in (ada.extraclean): Delete.
33644 2003-11-19 Arnaud Charlet <charlet@act-europe.fr>
33646 * gnatmem.adb: Clean up verbose output.
33648 * gprcmd.adb: Change copyright to FSF.
33650 2003-11-19 Vincent Celier <celier@gnat.com>
33652 * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
33653 and Version (ignored).
33655 * symbols.ads: (Policy): New type
33656 (Initialize): New parameter Reference, Symbol_Policy and
33658 Remove parameter Force.
33659 Minor reformatting.
33661 * snames.ads, snames.adbadb: New standard names
33662 Library_Reference_Symbol_File and Library_Symbol_Policy
33665 (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
33669 (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
33671 * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
33673 * prj.adb: (Project_Empty): New component Symbol_Data
33675 * prj.ads: (Policy, Symbol_Record): New types
33676 (Project_Data): New component Symbol_Data
33679 New attributes Library_Symbol_File, Library_Symbol_Policy and
33680 Library_Reference_Symbol_File.
33683 (Ada_Check): When project is a Stand-Alone library project, process
33684 attribute Library_Symbol_File, Library_Symbol_Policy and
33685 Library_Reference_Symbol_File.
33687 * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
33688 5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
33689 5sml-tgt.adb (Build_Dynamic_Library): New parameter
33690 Symbol_Data (ignored).
33692 * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
33693 (Build_Dynamic_Library): New parameter Symbol_Data. New internal
33694 functions Option_File_Name and Version_String. Set new options of
33695 gnatsym related to symbol file, symbol policy and reference symbol
33699 Extensive modifications to take into account the reference symbol file,
33700 the symbol policy, the library version and to put in the symbol file the
33701 minor and major IDs.
33703 * bld.adb (Process_Declarative_Items): Put second argument of
33704 gprcmd to_absolute between single quotes, to avoid problems with
33707 * bld-io.adb: Update Copyright notice.
33708 (Flush): Remove last character of a line, if it is a back slash, to
33709 avoid make problems.
33712 Implement new scheme with reference symbol file and symbol policy.
33714 * g-os_lib.ads: (Is_Directory): Clarify comment
33716 2003-11-19 Robert Dewar <dewar@gnat.com>
33718 * atree.adb: Move New_Copy_Tree global variables to head of package
33720 * errout.adb: Minor reformatting
33722 2003-11-19 Javier Miranda <miranda@gnat.com>
33724 * sem_ch4.adb: (Diagnose_Call): Improve error message.
33725 Add reference to Ada0Y (AI-50217)
33727 * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
33728 sem_util.adb: Add reference to AI-50217
33730 * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
33732 * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
33734 * sem_aggr.adb: Complete documentation of AI-287 changes
33736 * par-ch4.adb: Document previous changes.
33738 * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
33739 sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
33742 * exp_aggr.adb: Add references to AI-287 in previous changes
33744 2003-11-19 Ed Schonberg <schonberg@gnat.com>
33747 (Add_Call_By_Copy_Node): Do not original node of rewritten expression
33748 in the rewriting is the result of an inlined call.
33750 * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
33751 parameter is a type conversion, use original node to construct the
33752 post-call assignment, because expression may have been rewritten, e.g.
33753 if it is a packed array.
33756 (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
33757 body, just as it is in an instance.
33758 Categorization routines
33760 * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
33761 Instantiate_Object): Set proper sloc reference for message on missing
33764 2003-11-19 Thomas Quinot <quinot@act-europe.fr>
33766 * Makefile.in: Add FreeBSD libgnat pairs.
33768 * usage.adb: Fix typo in usage message.
33770 2003-11-19 Jerome Guitton <guitton@act-europe.fr>
33772 * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
33773 s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
33774 pragma Thread_Body.
33775 Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
33777 * s-thread.adb: This file is now a dummy implementation of
33780 2003-11-19 Sergey Rybin <rybin@act-europe.fr>
33782 * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
33784 2003-11-19 Emmanuel Briot <briot@act-europe.fr>
33786 * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
33787 instanciation references in the parent type description.
33789 2003-11-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33791 * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
33793 * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
33794 TYPE_PRECISION directly from esize.
33796 2003-11-18 Thomas Quinot <quinot@act-europe.fr>
33799 Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
33801 * init.c: Initialization routines for FreeBSD
33803 * link.c: Link info for FreeBSD
33805 * sysdep.c: Add the case of FreeBSD
33807 2003-11-17 Jerome Guitton <guitton@act-europe.fr>
33809 * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
33810 already called in System.Threads.
33812 * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
33813 environment task, as it has been moved to System.Threads.Initialization.
33815 2003-11-17 Arnaud Charlet <charlet@act-europe.fr>
33817 * adaint.c (__gnatlib_install_locks): Only reference
33818 __gnat_install_locks on VMS, since other platforms can avoid using
33819 --enable-threads=gnat
33821 2003-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33823 * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
33825 * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
33826 TYPE_PACKED_ARRAY_TYPE_P.
33827 (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
33829 Part of PR ada/12806
33830 * utils.c (float_type_for_precision): Renamed from float_type_for_size.
33831 Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
33833 2003-11-17 Vincent Celier <celier@gnat.com>
33835 * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
33837 Do not set exit status to Failure when Warning is True.
33838 (Gnatchop): Make errors "no compilation units found" and
33839 "no source files written" warnings only.
33841 * make.adb (Gnatmake): When using a project file, set
33842 Look_In_Primary_Dir to False.
33843 (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
33844 and Local_Configuration_Pragmas in the project where they are declared
33845 not an extending project which might have inherited them.
33847 * osint.adb (Locate_File): If Name is already an absolute path, do not
33848 look for a directory.
33850 * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
33851 -gnats (Check_Syntax) is used, issue only a warning, not an error.
33853 * prj.adb (Register_Default_Naming_Scheme): Add new component Project
33854 in objects of type Variable_Value.
33856 * prj.ads: (Variable_Value): New component Project
33858 * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
33859 is in a project extended by Project.
33861 * prj-proc.adb (Add_Attributes): New parameter Project. Set component
33862 Project of Variable_Values to this new parameter value.
33863 (Expression): Set component Project of Variable_Values.
33864 (Process_Declarative_Items): Call Add_Attributes with parameter Project.
33865 Set the component Project in array elements.
33867 2003-11-17 Sergey Rybin <rybin@act-europe.fr>
33869 * errout.adb: (Initialize): Add initialization for error nodes.
33871 * sem_ch12.adb (Initialize): Add missing initializations for
33872 Exchanged_Views and Hidden_Entities.
33874 2003-11-17 Ed Schonberg <schonberg@gnat.com>
33876 * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
33877 already instantiated tree for use in subsequent inlining.
33878 (Analyze_Associations, Instantiate_Formal_Subprogram,
33879 Instantiate_Object): improve error message for mismatch in
33882 * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
33883 instantiations of subprograms declared in instances.
33885 2003-11-17 Javier Miranda <miranda@gnat.com>
33887 * sem_ch4.adb (Analyze_Allocator): Previous modification must be
33888 executed only under the Extensions_Allowed flag.
33890 2003-11-17 Robert Dewar <dewar@gnat.com>
33892 * a-exexda.adb (Address_Image): Fix documentation to indicate leading
33894 (Address_Image): Fix bug of returning 0x instead of 0x0
33895 Minor reformatting (function specs).
33897 * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
33898 (missed case of 33-63)
33900 * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
33902 * s-thread.adb: Add comments for pragma Restriction
33904 * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
33905 sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
33907 2003-11-17 Ed Falis <falis@gnat.com>
33909 * s-thread.adb: Added No_Tasking restriction for this implementation.
33911 2003-11-17 Emmanuel Briot <briot@act-europe.fr>
33913 * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
33914 instanciation references in the parent type description.
33916 2003-11-17 GNAT Script <nobody@gnat.com>
33918 * Make-lang.in: Makefile automatically updated
33920 2003-11-16 Jason Merrill <jason@redhat.com>
33922 * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
33923 and TAGS files that include them for each front end.
33925 2003-11-14 Andreas Jaeger <aj@suse.de>
33927 * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
33928 is the canonical version.
33929 * misc.c (gnat_handle_option): Likewise.
33931 * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
33933 * 5nsystem.ads: New file for x86_64-linux-gnu.
33935 2003-11-14 Arnaud Charlet <charlet@act-europe.fr>
33937 * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
33939 * comperr.adb: Fix logic in previous change.
33941 2003-11-13 Vincent Celier <celier@gnat.com>
33943 * 5bml-tgt.adb (Build_Dynamic_Library): Use
33944 Osint.Include_Dir_Default_Prefix instead of
33945 Sdefault.Include_Dir_Default_Name.
33947 * gnatlbr.adb: Update Copyright notice
33948 (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
33949 Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
33950 instead of Sdefault.Object_Dir_Default_Name
33953 (Process_Binder_File): Never suppress the option following -Xlinker
33956 (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
33957 Sdefault.Object_Dir_Default_Name.
33959 * osint.ads, osint.adb:
33960 (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
33961 Minor reformatting.
33963 * vms_conv.ads: Minor reformating
33964 Remove GNAT STANDARD and GNAT PSTA
33967 Allow GNAT MAKE to have several files on the command line.
33968 (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
33969 Sdefault.Object_Dir_Default_Name.
33971 Remove data for GNAT STANDARD
33974 Add new compiler qualifier /PRINT_STANDARD (-gnatS)
33975 Remove data for GNAT STANDARD
33976 Remove options and documentation for -gnatwb/-gnatwB: these warning
33977 options no longer exist.
33979 2003-11-13 Ed Falis <falis@gnat.com>
33981 * 5zthrini.adb: (Init_RTS): Made visible
33984 (Register): Removed unnecessary call to taskVarGet that checked whether
33985 an ATSD was already set as a task var for the argument thread.
33988 Updated comment to reflect that this is a VxWorks version
33989 Added context clause for System.Threads.Initialization
33990 Added call to System.Threads.Initialization.Init_RTS
33992 2003-11-13 Jerome Guitton <guitton@act-europe.fr>
33995 (Init_RTS): New procedure, for the initialization of the run-time lib.
33998 Remove dependancy on System.Init, so that this file can be used in the
33999 AE653 sequential run-time lib.
34001 2003-11-13 Robert Dewar <dewar@gnat.com>
34003 * bindgen.adb: Minor reformatting
34005 2003-11-13 Ed Schonberg <schonberg@gnat.com>
34008 (Apply_Discriminant_Check): Do no apply check if target type is derived
34009 from source type with no applicable constraint.
34012 (Ensure_System_Dependency): Do not apply the style checks that may have
34013 been specified for the main unit.
34016 (Find_Selected_Component): Further improvement in error message, with
34020 (Resolve): Handle properly the case of an illegal overloaded protected
34023 2003-11-13 Javier Miranda <miranda@gnat.com>
34026 (Has_Default_Init_Comps): New function to check the presence of
34027 default initialization in an aggregate.
34028 (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
34029 extension aggregate of a limited record. In addition, a new formal
34030 was added to do not initialize the record controller (if any) during
34031 this recursive expansion of ancestors.
34032 (Init_Controller): Add support for limited record components.
34033 (Expand_Record_Aggregate): In case of default initialized components
34034 convert the aggregate into a set of assignments.
34036 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
34037 describing the new syntax.
34038 Nothing else needed to be done because this subprogram delegates part of
34039 its work to P_Precord_Or_Array_Component_Association.
34040 (P_Record_Or_Array_Component_Association): Give support to the new
34041 syntax for default initialization of components.
34044 (Resolve_Aggregate): Relax the strictness of the frontend in case of
34045 limited aggregates.
34046 (Resolve_Record_Aggregate): Give support to default initialized
34048 (Get_Value): In case of default initialized components, duplicate
34049 the corresponding default expression (from the record type
34050 declaration). In case of default initialization in the *others*
34051 choice, do not check that all components have the same type.
34052 (Resolve_Extension_Aggregate): Give support to limited extension
34056 (Check_Initialization): Relax the strictness of the front-end in case
34057 of aggregate and extension aggregates. This test is now done in
34058 Get_Value in a per-component manner.
34060 * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
34061 expression corresponds to a limited aggregate. This test is now done
34064 * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
34067 * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
34068 present in an N_Component_Association node
34070 2003-11-13 Thomas Quinot <quinot@act-europe.fr>
34072 * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
34073 type-conformant entry only if they are homographs.
34075 2003-11-13 GNAT Script <nobody@gnat.com>
34077 * Make-lang.in: Makefile automatically updated
34079 2003-11-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
34081 * adadecode.c: Use <> form of include for ctype.h.
34082 * sysdep.c [IN_RTS]: Use <> form of include for time.h.
34084 2003-11-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
34086 * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
34087 Works around PR middle-end/6552.
34089 2003-11-10 Ed Falis <falis@gnat.com>
34091 * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
34093 * 5zinit.adb: (Install_Handler): Moved back to spec
34094 (Install_Signal_Handlers): Deleted
34096 * 5zthrini.adb: Added context clause for System.Storage_Elements
34097 (Register): Only handles creation of taskVar; initialization moved to
34099 (Reset_TSD): Deleted; replaced by Thread_Body_Enter
34100 Added declaration of environment task secondary stack and
34103 * s-thread.adb: Implement bodies for thread body processing
34106 Added comment identifying supported targets for pragma Thread_Body.
34108 2003-11-10 Pascal Obry <obry@gnat.com>
34110 * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
34114 (Open): Properly check for string length before copying into the buffer.
34115 Raises Name_Error if buffer is too small. Note that this was a potential
34118 2003-11-10 Romain Berrendonner <berrendo@act-europe.fr>
34120 * bindgen.adb, comperr.adb: Code clean ups.
34121 * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
34123 2003-11-10 Sergey Rybin <rybin@act-europe.fr>
34125 * gnat1drv.adb: Add call to Sem_Elim.Initialize.
34127 2003-11-10 Vincent Celier <celier@gnat.com>
34130 (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
34133 * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
34135 * prj.adb: (Project_Empty): Add new boolean component Virtual
34137 * prj.ads: (Virtual_Prefix): New constant string
34138 (Project_Data): New boolean component Virtual
34140 * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
34141 a library project is extended by a virtual extending project.
34144 Modifications throughout to implement extending-all project, including:
34145 (Virtual_Hash, Processed_Hash): New hash tables
34146 (Create_Virtual_Extending_Project): New procedure
34147 (Look_For_Virtual_Projects_For): New procedure
34150 (Process): After checking the projects, if main project is an
34151 extending-all project, set the object directory of all virtual extending
34152 project to the object directory of the main project.
34153 Adjust error message when a virtual extending project has the same
34154 object directory as an project being extended.
34155 (Recursive_Process): If name starts with the virtual prefix, set Virtual
34156 to True in the project data.
34159 (Default_Project_Node): Add new boolean component Extending_All
34160 (Is_Extending_All): New function
34161 (Set_Is_Extending_All): New procedure
34163 * prj-tree.ads: (Is_Extending_All): New function
34164 (Set_Is_Extending_All): New procedure
34165 (Project_Node_Record): New boolean component Extending_All
34167 * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
34170 Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
34172 * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
34173 "gprcmd prefix" to define it.
34175 2003-11-10 Thomas Quinot <quinot@act-europe.fr>
34177 * einfo.ads: Fix a typo and remove an extraneous word in comments.
34180 (Create_Dummy_Package_Unit): Set the scope of the entity for the
34181 created dummy package to Standard_Standard, not to itself, to
34182 defend other parts of the front-end against encoutering a cycle in
34186 (Analyze_With_Clause): When setting the entities for the successive
34187 N_Expanded_Names that constitute the name of a child unit, do not
34188 attempt to go further than Standard_Standard in the chain of scopes.
34189 This case arises from the placeholder units created by
34190 Create_Dummy_Package_Unit in the case of a with_clause for a
34191 nonexistent child unit.
34193 2003-11-10 Ed Schonberg <schonberg@gnat.com>
34196 (Expand_Thread_Body): Place subprogram on scope stack, so that new
34197 declarations are given the proper scope.
34200 (Check_Expr_Constants): Reject an expression that contains a constant
34201 created during expansion, and that appears after the object to which
34202 the address clause applies.
34204 * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
34205 Analyze_Iteration_Scheme, to rewrite a loop parameter specification
34206 that uses 'Range of a function call with controlled components, so
34207 that the function result can be finalized before starting the loop.
34210 (Find_Selected_Component): Improve error message when prefix is
34211 an implicit dereference of an incomplete type.
34213 2003-11-10 Robert Dewar <dewar@gnat.com>
34215 * opt.ads: New Print_Standard flag for -gnatS switch
34217 * sem_ch13.adb: Remove some additional checks for unaligned arrays
34219 * cstand.adb (Create_Standard): Print out package standard if -gnatS
34222 * debug.adb: Update doc for -gnatds to discuss relationship with new
34225 * sinfo.adb: Add new field Entity_Or_Associated_Node
34227 * sinfo.ads: Add new field Entity_Or_Associated_Node
34228 Update documentation for Associated_Node and Entity fields to clarify
34229 relationship and usage.
34232 (Write_Id): Properly process Associated_Node field in generic template
34235 Recognize new -gnatS switch for printing package Standard
34236 This replaces gnatpsta
34239 Add line for new -gnatS switch for printing package Standard
34240 This replaces gnatpsta
34242 2003-11-10 Andreas Jaeger <aj@suse.de>
34244 * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
34247 2003-11-10 Arnaud Charlet <charlet@act-europe.fr>
34249 * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
34252 2003-11-10 Arnaud Charlet <charlet@act-europe.fr>
34254 * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
34257 * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
34259 * sysdep.c: Add handling of cygwin.
34261 2003-11-10 GNAT Script <nobody@gnat.com>
34263 * Make-lang.in: Makefile automatically updated
34265 2003-11-10 Arnaud Charlet <charlet@act-europe.fr>
34268 * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
34269 functions. Used to handle dynamic prefix relocation, via set_std_prefix.
34270 Replace GNAT_ROOT by GCC_ROOT.
34272 * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
34274 2003-11-06 Zack Weinberg <zack@codesourcery.com>
34276 * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
34277 and update for changed meaning of GET_MODE_BITSIZE.
34279 2003-11-04 Doug Rupp <rupp@gnat.com>
34281 * sysdep.c: Problem discovered during IA64 VMS port.
34282 [VMS] #include <unixio.h> to get proper prototypes.
34285 Issues discovered/problems fixed during IA64 VMS port.
34286 [VMS] #define _POSIX_EXIT for proper semantics.
34287 [VMS] #include <unixio.h> for proper prototypes.
34288 [VMS] (fork): #define IA64 version.
34289 (__gnat_os_exit): Remove unnecessary VMS specific code.
34291 2003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34293 Part of PR ada/12806
34294 * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
34298 (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
34301 * targtyps.c, decl.c, misc.c,
34302 gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
34303 routines to work around change in FP sizing semantics in GCC.
34306 (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
34308 * gigi.h: (enumerate_modes): New function.
34310 * Make-lang.in: (ada/misc.o): Add real.h.
34312 * misc.c: (enumerate_modes): New function.
34314 2003-11-04 Robert Dewar <dewar@gnat.com>
34316 * 3vtrasym.adb: Minor reformatting
34317 Use terminology encoded/decoded name, rather than C++ specific notion
34318 of mangling (this is the terminology used throughout GNAT).
34320 * einfo.h: Regenerated
34322 * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
34325 (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
34327 * par-prag.adb: Add dummy entry for Thread_Body pragma
34330 Add entries for System.Threads entities for thread body processing
34333 (Analyze_Pragma, Access attributes): Check these are not applied to a
34334 thread body, since this is not permitted
34336 * sem_prag.adb: Add processing for Thread_Body pragma.
34340 (Resolve_Call): Check for incorrect attempt to call a thread body
34341 procedure with a direct call.
34343 * snames.ads, snames.adb: Add entry for Thread_Body pragma
34344 Add names associated with thread body expansion
34346 * snames.h: Add entry for Thread_Body pragma
34348 * s-thread.adb: Add entries for thread body processing
34349 These are dummy bodies so far
34351 * s-thread.ads: Add documentation on thread body handling.
34352 Add entries for thread body processing.
34354 2003-11-04 Javier Miranda <miranda@gnat.com>
34357 (Build_Limited_Views): Return after posting an error in case of limited
34358 with_clause on subprograms, generics, instances or generic renamings
34359 (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
34360 on subprograms, generics, instances or generic renamings
34362 2003-11-04 Arnaud Charlet <charlet@act-europe.fr>
34364 * raise.c (setup_to_install): Correct mistake in last revision; two
34365 arguments out of order.
34367 * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
34368 gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
34369 notice, missed in previous change.
34370 Remove trailing blanks and other style errors introduced in previous
34373 2003-11-04 Olivier Hainque <hainque@act-europe.fr>
34375 * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
34376 rid of the wrapper for a LJM type, ensuring we don't do that if the
34377 field is addressable. This avoids potential low level type view
34378 mismatches later on, for instance in a by-reference argument passing
34381 2003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34383 * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
34384 aligned at byte boundary.
34386 2003-11-04 Joel Brobecker <brobecker@gnat.com>
34388 * decl.c (components_to_record): Do not delete the empty variants from
34389 the end of the union type.
34391 2003-11-04 Ed Schonberg <schonberg@gnat.com>
34393 * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
34394 operation for a derived type, an explicit declaration may use a local
34395 subtype of Boolean.
34397 2003-11-04 Vincent Celier <celier@gnat.com>
34399 * make.adb (Gnatmake): Allow main sources on the command line with a
34400 library project when it is only for compilation (no binding or
34403 2003-11-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
34405 * Makefile.in: Remove many duplicate variables.
34407 2003-11-03 Kelley Cook <kcook@gcc.gnu.org>
34409 * Make-lang.in (dvi): Move targets to $(docobjdir).
34410 (gnat_ug_vms.dvi): Simplify rule and adjust target.
34411 (gnat_ug_wnt.dvi): Likewise.
34412 (gnat_ug_unx.dvi): Likewise.
34413 (gnat_ug_vxw.dvi): Likewise.
34414 (gnat_rm.dvi): Likewise.
34415 (gnat-style.dvi): Likewise.
34417 2003-10-31 Kelley Cook <kcook@gcc.gnu.org>
34419 * gigi.h: Missed commit from update for C90.
34421 2003-10-31 Kelley Cook <kcook@gcc.gnu.org>
34423 * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
34425 2003-10-31 Andreas Schwab <schwab@suse.de>
34427 * raise.c (get_action_description_for): Fix typo in last change.
34429 2003-10-31 Nathanael Nerode <neroden@gcc.gnu.org>
34432 * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
34433 T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
34435 2003-10-30 Kelley Cook <kcook@gcc.gnu.org>
34437 * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
34438 ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
34439 gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
34440 sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
34441 trans.c, utils.c, utils2.c: Convert function prototypes to C90.
34443 2003-10-30 Vasiliy Fofanov <fofanov@act-europe.fr>
34446 Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
34447 numbers when symbol name is too long.
34449 2003-10-30 Ed Falis <falis@gnat.com>
34451 * g-signal.ads, g-signal.adb: New files
34453 * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
34455 * Makefile.rtl: Introduce GNAT.Signals
34457 2003-10-30 Robert Dewar <dewar@gnat.com>
34459 * freeze.adb: Minor reformatting
34461 * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
34463 * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
34464 par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
34465 New handling of Id_Check parameter to improve recognition of keywords
34466 used as identifiers.
34467 Update copyright notice to include 2003
34469 2003-10-29 Robert Dewar <dewar@gnat.com>
34471 * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
34472 sem_ch10.adb: Minor reformatting
34474 * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
34475 (Expand_Assign_Record): Test right hand side for bit unaligned as well
34477 2003-10-29 Vasiliy Fofanov <fofanov@act-europe.fr>
34479 * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
34480 Support for TBK$SYMBOLIZE-based symbolic traceback.
34482 2003-10-29 Jose Ruiz <ruiz@act-europe.fr>
34485 Revert previous change, that did not work well when pragma No_Run_Time
34486 was used in conjunction with a run-time other than ZFP.
34488 2003-10-29 Vincent Celier <celier@gnat.com>
34491 (Gnatmake): When there are no Ada mains in attribute Main, disable the
34492 bind and link steps only is switch -z is not used.
34494 2003-10-29 Arnaud Charlet <charlet@act-europe.fr>
34496 * Makefile.generic: Remove duplicated setting of CC.
34498 * Makefile.prolog: Set CC to gcc by default, to override make's
34501 * einfo.h: Regenerated.
34503 2003-10-29 Ed Schonberg <schonberg@gnat.com>
34505 * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
34506 current body, after compiling subunit.
34508 * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
34509 when in deleted code, because gigi needs properly ordered freeze
34510 actions to annotate types.
34512 * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
34513 prevent the premature freezing of record type that contains
34514 subcomponents with a private type that does not yet have a completion.
34516 2003-10-29 Javier Miranda <miranda@gnat.com>
34519 (Analyze_Package_Instantiation): Check that instances can not be used in
34520 limited with_clauses.
34523 (Analyze_Package_Renaming): Check that limited withed packages cannot
34524 be renamed. Improve text on error messages related to limited
34527 * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
34529 * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
34530 Update copyright notice.
34532 * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
34533 (Install_Limited_Context_Clauses): New subprogram that isolates all the
34534 checks required for limited context_clauses and installs the limited
34536 (Install_Limited_Withed_Unit): Complete its documentation.
34537 (Analyze_Context): Check that limited with_clauses are only allowed in
34539 (Install_Context): Call Install_Limited_Context_Clauses after the
34540 parents have been installed.
34541 (Install_Limited_Withed_Unit): Add documentation. Mark the installed
34542 package as 'From_With_Type'; this mark indicates that the limited view
34543 is installed. Used to check bad usages of limited with_clauses.
34544 (Build_Limited_Views): Do not add shadow entities to the scope's list
34545 of entities. Do not add real entities to the Non_Limited_Views chain.
34546 Improve error notification.
34547 (Remove_Context_Clauses): Remove context clauses in two phases:
34548 limited views first and regular views later (to maintain the
34550 (Remove_Limited_With_Clause): If the package is analyzed then reinstall
34551 its visible entities.
34553 2003-10-29 Thomas Quinot <quinot@act-europe.fr>
34555 * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
34556 with any type that Is_Fixed_Point_Type.
34558 * sinfo.ads: Fix documentation for Associated_Node attribute.
34560 2003-10-29 Sergey Rybin <rybin@act-europe.fr>
34562 * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
34563 both '-gnatc' and '-gnatt' are specified.
34565 * atree.adb (Initialize): Add initialization for Node_Count (set to
34568 2003-10-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34570 * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
34571 do not consider as Pure.
34573 Part of implementation of function-at-a-time:
34575 * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
34576 (tree_transform): Add new argument to build_component_ref.
34577 (tree_transform, case N_Assignment_Statement): Make and return an
34579 (tree_transform): If result IS_STMT, set flags and return it.
34580 (gnat_expand_stmt, set_lineno_from_sloc): New functions.
34582 * utils2.c (build_simple_component_ref, build_component_ref): Add new
34584 (build_binary_op, case EQ_EXPR): Pass additional arg to it.
34585 (build_allocator): Likewise.
34587 * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
34588 Add new arg to build_component_ref.
34589 (maybe_unconstrained_array, unchecked_convert): Likewise.
34591 * ada-tree.def (EXPR_STMT): New code.
34593 * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
34595 * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
34596 build_component_ref calls.
34598 * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
34600 * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
34601 (build_component_ref): Add new argument, NO_FOLD_P.
34603 2003-10-27 Arnaud Charlet <charlet@act-europe.fr>
34605 * Makefile.generic: Add missing substitution on object_deps handling.
34608 * Make-lang.in (check-ada): Enable ACATS test suite.
34610 2003-10-27 Robert Dewar <dewar@gnat.com>
34613 (Freeze_Array_Type): We do not need an initialization routine for types
34614 derived from String or Wide_String. They should be treated the same
34615 as String and Wide_String themselves. This caused problems with the
34616 use of Initialize_Scalars.
34619 (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
34620 composites. This allows use of component clauses that are not byte
34624 (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
34625 is an attempt to pack an array of atomic objects.
34627 * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
34629 2003-10-27 Pascal Obry <obry@gnat.com>
34632 (Basename): Check for drive letters in a pathname only on DOS based OS.
34634 2003-10-27 Vincent Celier <celier@gnat.com>
34637 (Gnatmake): When unable to change dir to the object dir, display the
34638 content of the parent dir of the obj dir, to try to understand why this
34641 2003-10-27 GNAT Script <nobody@gnat.com>
34643 * Make-lang.in: Makefile automatically updated
34645 2003-10-27 Ed Schonberg <schonberg@gnat.com>
34648 (Inline_Instance_Body): Indicate that the save/restore of use_clauses
34649 should not be done in Save/Restore_Scope_Stack, because it is performed
34653 (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
34654 whether use clauses should be removed/restored.
34657 (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
34658 whether use clauses should be removed/restored.
34660 2003-10-26 Andreas Jaeger <aj@suse.de>
34662 * Makefile.in: Remove duplicated lines.
34664 2003-10-24 Arnaud Charlet <charlet@act-europe.fr>
34666 * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
34667 minimize the differences with ACT tree.
34669 * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
34670 gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
34671 Gnatvsn.Gnat_Static_Version_String to reduce differences between
34674 2003-10-24 Pascal Obry <obry@gnat.com>
34677 * adadecode.c (ostrcpy): New function.
34678 (__gnat_decode): Use ostrcpy of strcpy.
34679 (has_prefix): Set first parameter a const.
34680 (has_suffix): Set first parameter a const.
34681 Update copyright notice. Fix source name in header.
34682 Removes a trailing space.
34684 2003-10-24 Jose Ruiz <ruiz@act-europe.fr>
34687 Remove the test against being in No_Run_Time_Mode before generating a
34688 call to Register_Tag. It is redundant with the test against the
34689 availability of the function Register_Tag.
34691 2003-10-24 Vincent Celier <celier@gnat.com>
34693 * g-catiio.adb: (Month_Name): Correct spelling of February
34695 * make.adb: (Mains): New package
34696 (Initialize): Call Mains.Delete
34697 (Gnatmake): Check that each main on the command line is a source of a
34698 project file and, if there are several mains, each of them is a source
34699 of the same project file.
34700 (Gnatmake): When a foreign language is specified in attribute Languages,
34701 no main is specified on the command line and attribute Mains is not
34702 empty, only build the Ada main. If there is no Ada main, just compile
34703 the Ada sources and their closure.
34704 (Gnatmake): If a main is specified on the command line with directory
34705 information, check that the source exists and, if it does, that the path
34706 is the actual path of a source of a project.
34709 (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
34710 Full_Path is True, return the full path instead of the simple file name.
34711 (Project_Of): New function
34714 (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
34715 defaulted to False.
34716 (Project_Of): New function
34718 2003-10-24 Arnaud Charlet <charlet@act-europe.fr>
34720 * Makefile.generic:
34721 Ensure objects of main project are always checked and rebuilt if needed.
34722 Set CC to gcc by default.
34723 Prepare new handling of link by creating a global archive (not activated
34726 * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
34727 stringt.h: Update copyright notice. Remove trailing blanks.
34728 Fix source name in header.
34730 2003-10-24 Robert Dewar <dewar@gnat.com>
34732 * sem_ch12.adb: Minor reformatting
34735 Minor reformatting (including new function return style throughout)
34738 Minor reformatting (including new function return style throughout)
34740 2003-10-24 Arnaud Charlet <charlet@act-europe.fr>
34742 * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
34743 stringt.h: Update copyright notice. Remove trailing blanks.
34744 Fix source name in header.
34746 2003-10-24 GNAT Script <nobody@gnat.com>
34748 * Make-lang.in: Makefile automatically updated
34750 2003-10-23 Nathanael Nerode <neroden@gcc.gnu.org>
34752 * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
34753 stringt.h: Convert to ISO C90 declarations and definitions.
34755 2003-10-23 Thomas Quinot <quinot@act-europe.fr>
34758 * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
34759 External_Tag attribute definition clauses.
34761 2003-10-23 Ed Schonberg <schonberg@gnat.com>
34764 * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
34765 child unit, generate a fully qualified name to avoid spurious errors
34766 when the context contains renamings of different child units with
34767 the same simple name.
34769 * exp_dbug.ads: Add documentation on name qualification for renamings
34772 2003-10-23 Robert Dewar <dewar@gnat.com>
34774 * g-regpat.ads, g-regpat.adb: Minor reformatting
34776 2003-10-23 Jose Ruiz <ruiz@act-europe.fr>
34778 * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
34780 2003-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
34782 * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
34785 * urealp.h: (Machine): Update to proper definition.
34787 2003-10-23 Arnaud Charlet <charlet@act-europe.fr>
34789 * init.c, adaint.c: Minor reformatting.
34791 2003-10-23 Danny Smith <dannysmith@users.sourceforge.net>
34793 * adaint.c (w32_epoch_offset): Define static const at file level.
34794 (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
34795 rather than t_create, t_access in call to GetFileTime. Use union
34796 to convert between FILETIME and unsigned long long.
34797 (__gnat_file_time_name): Test for invalid file handle.
34798 (__gnat_set_filetime_name): Support win32 targets using
34799 w32api SetFileTime.
34801 2003-10-22 Danny Smith <dannysmith@users.sourceforge.net>
34803 * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
34805 * ctrl_c.c (__gnat_int_handler): Remove declaration.
34807 * decl.c (creat_concat_name): Const-ify prefix.
34809 * adaint.c: Include ctype.h if __MINGW32__.
34810 (__gnat_readlink): Mark arguments as possibly unused.
34811 (__gnat_symlink): Likewise.
34812 (__gnat_is_symbolic_link): Likewise.
34813 (__gnat_portable_spawn): Likewise. Cast last arg of spawnvp to match
34815 (__gnat_file_time_name): Don't declare struct stat statbuf when
34817 (__gnat_is_absolute_path): Add parenthesis around condition of
34818 'if' statement to avoid warning.
34819 (__gnat_plist_init): Specify void as parameter.
34820 (plist_enter): Likewise.
34821 (plist_leave): Likewise.
34822 (remove_handle): Make static. Initialize prev.
34824 2003-10-22 Arnaud Charlet <charlet@act-europe.fr>
34827 * Makefile.in: Disable build of gnatpsta.
34828 * cstreams.c (__gnat_full_name): Minor improvements and clean up
34829 of previous change.
34831 2003-10-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
34833 * tracebak.c (MAX): Avoid redefinition warning.
34835 * init.c [sgi] (__gnat_error_handler): Remove i, unused.
34836 Change msg to const char *.
34837 (__gnat_install_handler): Remove ss, unused.
34838 [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
34840 * cstreams.c (__gnat_full_name): Declare p only when used.
34841 (__gnat_full_name) [sgi] Return buffer.
34843 2003-10-22 Arnaud Charlet <charlet@act-europe.fr>
34845 * mingw32.h: New file.
34846 * gnat_wrapper.adb: New file.
34848 2003-10-22 Jerome Roussel <roussel@act-europe.fr>
34850 * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
34851 string match a pre compiled regular expression (the corresponding
34852 version of the function working on a raw regular expression)
34853 Fix typos in various comments
34854 Update copyright notice in spec
34856 2003-10-21 Gary Dismukes <dismukes@gnat.com>
34859 (Component_Needs_Simple_Initialization): Return False when the type is a
34860 packed bit array. Revise spec comments to document this case.
34863 (Expand_Pragma_Import): Set any expression on the imported object to
34864 empty to avoid initializing imported objects (in particular this
34865 covers the case of zero-initialization of bit arrays).
34866 Update copyright notice.
34868 2003-10-21 Ed Schonberg <schonberg@gnat.com>
34871 (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
34872 a subunit is missing.
34873 (Instantiate_Subprogram_Body): If body of function is missing, set type
34874 of return expression explicitly in dummy body, to prevent cascaded
34875 errors when a subunit is missing.
34879 (Access_Subprogram_Declaration): Verify that return type is valid.
34883 (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
34888 (Corresponding_Discriminant): If the scope of the discriminant is a
34889 private type without discriminant, use its full view.
34892 2003-10-21 Arnaud Charlet <charlet@act-europe.fr>
34894 * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
34895 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
34896 3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
34897 55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
34898 56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
34899 59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
34900 5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
34901 5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
34902 5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
34903 5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
34904 5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
34905 5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
34906 5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
34907 5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
34908 7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
34909 a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
34910 a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
34911 a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
34912 bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
34913 erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
34914 err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
34915 g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
34916 g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
34917 g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
34918 g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
34919 g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
34920 g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
34921 gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
34922 g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
34923 g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
34924 i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
34925 prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
34926 prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
34927 s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
34928 s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
34929 s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
34930 s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
34931 s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
34932 s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
34933 s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
34934 s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
34935 socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
34936 s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
34937 s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
34938 s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
34939 styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
34940 s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
34941 tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
34942 vms_conv.ads, vms_conv.adb, vms_data.ads,
34943 vxaddr2line.adb: Files added. Merge with ACT tree.
34945 * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
34946 5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
34947 5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
34948 5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
34949 g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
34950 s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
34951 s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
34952 s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
34953 s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
34954 s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
34956 * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
34957 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
34958 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
34959 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
34960 4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
34961 4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
34962 4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
34963 4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
34964 51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
34965 53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
34966 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
34967 5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
34968 5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
34969 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
34970 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
34971 5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
34972 5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
34973 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
34974 5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
34975 5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
34976 5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
34977 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
34978 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
34979 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
34980 5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
34981 5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
34982 5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
34983 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
34984 5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
34985 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
34986 5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
34987 5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
34988 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
34989 5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
34990 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
34991 7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
34992 7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
34993 a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
34994 a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
34995 a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
34996 a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
34997 a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
34998 ali.adb, ali.ads, ali-util.adb, ali-util.ads,
34999 a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
35000 a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
35001 a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
35002 a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
35003 a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
35004 a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
35005 a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
35006 a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
35007 a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
35008 a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
35009 a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
35010 a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
35011 atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
35012 a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
35013 a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
35014 bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
35015 checks.adb, checks.ads, cio.c, comperr.adb,
35016 comperr.ads, csets.adb, cstand.adb, cstreams.c,
35017 debug_a.adb, debug_a.ads, debug.adb, decl.c,
35018 einfo.adb, einfo.ads, errout.adb, errout.ads,
35019 eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
35020 expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
35021 exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
35022 exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
35023 exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
35024 exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
35025 exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
35026 exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
35027 exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
35028 fe.h, fmap.adb, fmap.ads, fname.adb,
35029 fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
35030 freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
35031 g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
35032 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
35033 g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
35034 g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
35035 g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
35036 g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
35037 g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
35038 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
35039 g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
35040 g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
35041 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
35042 g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
35043 gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
35044 gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
35045 gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
35046 gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
35047 gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
35048 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
35049 g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
35050 g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
35051 g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
35052 g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
35053 g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
35054 g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
35055 g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
35056 i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
35057 i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
35058 inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
35059 itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
35060 layout.adb, lib.adb, lib.ads, lib-list.adb,
35061 lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
35062 lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
35063 link.c, live.adb, make.adb, make.ads,
35064 Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
35065 mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
35066 mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
35067 misc.c, mkdir.c, mlib.adb, mlib.ads,
35068 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
35069 mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
35070 namet.adb, namet.ads, namet.h, nlists.ads,
35071 nlists.h, nmake.adt, opt.adb, opt.ads,
35072 osint.adb, osint.ads, osint-b.adb, osint-c.adb,
35073 par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
35074 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
35075 par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
35076 par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
35077 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
35078 prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
35079 prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
35080 prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
35081 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
35082 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
35083 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
35084 prj-util.adb, prj-util.ads, raise.c, raise.h,
35085 repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
35086 rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
35087 s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
35088 s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
35089 scans.ads, scn.adb, scn.ads, s-crc32.adb,
35090 s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
35091 sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
35092 sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
35093 sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
35094 sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
35095 sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
35096 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
35097 sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
35098 sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
35099 sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
35100 sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
35101 sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
35102 s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
35103 s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
35104 s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
35105 s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
35106 s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
35107 s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
35108 s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
35109 sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
35110 sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
35111 sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
35112 s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
35113 s-memory.adb, s-memory.ads, snames.adb, snames.ads,
35114 snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
35115 s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
35116 s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
35117 s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
35118 s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
35119 s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
35120 s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
35121 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
35122 s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
35123 s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
35124 s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
35125 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
35126 s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
35127 s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
35128 s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
35129 s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
35130 s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
35131 stringt.adb, stringt.ads, stringt.h, style.ads,
35132 stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
35133 s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
35134 s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
35135 switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
35136 s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
35137 table.adb, table.ads, targparm.adb, targparm.ads,
35138 targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
35139 trans.c, tree_io.adb, treepr.adb, treeprs.adt,
35140 ttypes.ads, types.ads, types.h, uintp.adb,
35141 uintp.ads, uintp.h, uname.adb, urealp.adb,
35142 urealp.ads, urealp.h, usage.adb, utils2.c,
35143 utils.c, validsw.adb, validsw.ads, widechar.adb,
35144 xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
35145 xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
35146 einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
35147 gnatvsn.ads: Merge with ACT tree.
35149 * gnatvsn.adb: Rewritten in a simpler and more efficient way.
35151 2003-10-20 Mark Mitchell <mark@codesourcery.com>
35153 * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
35154 (gnat_ug_vmx.info): Likewise.
35155 (gnat_ug_vxw.info): Likewise.
35156 (gnat_ug_wnt.info): Likewise.
35157 (gnat_rm.info): Likewise.
35158 (gnat-style.info): Likewise.
35160 * Make-lang.in (ada.install-info): Remove target.
35161 (info): New target.
35162 (install-info): Likewise.
35163 (gnat_ug_unx.info): Simplify rule.
35164 (gnat_ug_vmx.info): Likewise.
35165 (gnat_ug_vxw.info): Likewise.
35166 (gnat_ug_wnt.info): Likewise.
35167 (gnat_rm.info): Likewise.
35168 (gnat-style.info): Likewise.
35170 2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
35172 * Make-lang.in: Replace uses of $(target_alias) with
35173 $(target_noncanonical).
35174 * ada/Makefile.in: Remove unused mention of $(target_alias).
35176 2003-10-06 Mark Mitchell <mark@codesourcery.com>
35178 * Make-lang.in (ada.info): Replace with ...
35180 (ada.dvi): Replace with ...
35183 2003-09-29 Zack Weinberg <zack@codesourcery.com>
35185 * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
35186 initialize dconstp5 and dconstmp5.
35188 2003-09-28 Richard Henderson <rth@redhat.com>
35190 * trans.c (tree_transform): Update call to expand_asm_operands.
35192 2003-09-21 Richard Henderson <rth@redhat.com>
35194 * trans.c, utils.c: Revert.
35196 2003-09-21 Richard Henderson <rth@redhat.com>
35198 * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
35201 2003-09-04 Michael Matz <matz@suse.de>
35203 * misc.c: Include "target.h".
35204 * Make-lang.in (misc.o): Add dependency on target.h.
35206 2003-09-03 DJ Delorie <dj@redhat.com>
35208 * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
35211 2003-08-30 Zack Weinberg <zack@codesourcery.com>
35213 * Makefile.in: Update substitutions to match changes to
35214 configure. Use include directives instead of @-insertions
35215 to read in host and target fragments. Add a rule to
35216 regenerate ada/Makefile.
35218 2003-07-18 Neil Booth <neil@daikokuya.co.uk>
35220 * lang-options.h: Remove.
35221 * lang.opt: Add help text.
35223 2003-07-07 Nathan Sidwell <nathan@codesourcery.com>
35225 * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
35228 2003-07-06 Neil Booth <neil@daikokuya.co.uk>
35230 * misc.c (gnat_handle_option): Don't handle filenames.
35232 2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
35234 * Make-lang.in: Replace PWD with PWD_COMMAND.
35235 * Makefile.adalib: Likewise.
35236 * Makefile.in: Likewise.
35238 2003-07-04 Matt Kraai <kraai@alumni.cmu.edu>
35240 * misc.c (gnat_argv): Revert last change.
35241 (gnat_handle_option, gnat_init_options): Copy arguments.
35243 2003-07-03 Neil Booth <neil@daikokuya.co.uk>
35245 * misc.c (gnat_argv): Make const.
35247 2003-07-02 Neil Booth <neil@daikokuya.co.uk>
35249 * misc.c (save_argc, save_argv): Keep non-static!
35251 2003-07-02 Neil Booth <neil@daikokuya.co.uk>
35253 * misc.c (save_argc, save_argv): Make static.
35254 (gnat_init_options): New prototype.
35255 (gnat_init_options): Update.
35257 2003-07-01 Matt Kraai <kraai@alumni.cmu.edu>
35259 * gnat_ug.texi: Remove unlikely characters from @vars.
35260 * gnat_ug_vms.texi: Regenerate.
35262 2003-06-27 Nathan Sidwell <nathan@codesourcery.com>
35264 * misc.c (record_code_position): Adjust emit_note call.
35266 2003-06-26 Neil Booth <neil@daikokuya.co.uk>
35268 * misc.c (gnat_handle_option): Don't check for missing arguments.
35270 2003-06-20 Nathan Sidwell <nathan@codesourcery.com>
35272 * utils.c (end_subprog_body): Adjust expand_function_end call.
35274 2003-06-16 Matt Kraai <kraai@alumni.cmu.edu>
35276 * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
35279 2003-06-15 Neil Booth <neil@daikokuya.co.uk>
35281 * lang.opt: Declare Ada.
35282 * misc.c (gnat_init_options): Update.
35284 2003-06-14 Nathan Sidwell <nathan@codesourcery.com>
35286 * utils.c (begin_subprog_body): Adjust init_function_start call.
35288 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
35290 * Make-lang.in: Update to use options.c and options.h.
35291 * misc.c: Include options.h not aoptions.h.
35292 (gnat_handle_option): Abort on unrecognized switch.
35293 (gnat_init_options): Request Ada switches.
35295 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
35297 * lang.opt: Add -Wall.
35298 * misc.c (gnat_handle_option): Handle it.
35300 2003-06-12 Neil Booth <neil@daikokuya.co.uk>
35302 * misc.c (gnat_handle_option): Fix warnings.
35304 2003-06-11 Matt Kraai <kraai@alumni.cmu.edu>
35306 * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
35308 2003-06-11 Neil Booth <neil@daikokuya.co.uk>
35310 * Make-lang.in: Update to handle command-line options.
35311 * lang.opt: New file.
35312 * misc.c: Include aoptions.h.
35313 (cl_options_count, cl_options): Remove.
35314 (gnat_handle_option): New.
35315 (gnat_decode_option): Remove.
35316 (LANG_HOOKS_DECODE_OPTION): Remove.
35317 (LANG_HOOKS_HANDLE_OPTION): Override.
35319 2003-06-10 Nathanael Nerode <neroden@gcc.gnu.org>
35321 * init.c, misc.c, trans.c, utils.c: Remove dead code.
35323 2003-06-09 Nathanael Nerode <neroden@gcc.gnu.org>
35325 * Makefile.in: Replace "host_canonical" with "host" for autoconf
35328 2003-06-08 Neil Booth <neil@daikokuya.co.uk>
35330 * Make-lang.in: Update.
35331 * misc.c: Include opts.h. Define cl_options_count and cl_options.
35333 2003-06-07 Neil Booth <neil@daikokuya.co.uk>
35335 * misc.c (gnat_init_options): Update.
35337 2003-06-05 Matt Kraai <kraai@alumni.cmu.edu>
35339 * Make-lang.in (ada/b_gnatb.o-warn): Remove.
35340 * bindgen.adb (Gen_Main_C): Mark ensure_reference with
35341 __attribute__ ((__unused__)).
35343 2003-06-05 Jan Hubicka <jh@suse.cz>
35345 * Make-lang.in: Add support for stageprofile and stagefeedback
35347 2003-06-05 Matt Kraai <kraai@alumni.cmu.edu>
35349 * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
35350 (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
35352 2003-06-04 Matt Kraai <kraai@alumni.cmu.edu>
35354 * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
35355 Remove non-VMS directive.
35356 (Switches for gnatlbr, Optimization Levels): Remove non-VMS
35358 (Examples of gnatls Usage): Remove VMS alternative.
35360 2003-06-04 Olivier Hainque <hainque@act-europe.fr>
35363 * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
35364 and turn ZCX_By_Default back to False since the underlying support
35365 is not quite there yet.
35367 2003-06-01 Andreas Jaeger <aj@suse.de>
35369 * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
35370 and ROUND_TYPE_SIZE_UNIT.
35372 2003-05-22 Geert Bosch <bosch@gnat.com>
35374 * gnat_rm.texi : Remove reference to Ada Core Technologies.
35376 2003-05-03 Nathan Sidwell <nathan@codesourcery.com>
35378 * trans.c (tree_transform): Use location_t and input_location
35380 (build_unit_elab): Likewise.
35381 * utils.c (create_label_decl): Likewise.
35383 2003-05-01 Nathan Sidwell <nathan@codesourcery.com>
35385 * trans.c (tree_transform, build_unit_elab,
35386 set_lineno): Rename lineno to input_line.
35387 * utils.c (pushdecl, create_label_decl, begin_subprog_body,
35388 end_subprog_body): Likewise.
35389 * utils2.c (build_call_raise): Likewise.
35391 2003-05-01 Laurent Guerby <guerby@acm.org>
35394 * 5iosinte.ads: Increase pthread_cond_t size to match recent
35395 LinuxThread and NPTL version, merge from ACT.
35397 2003-04-28 Zack Weinberg <zack@codesourcery.com>
35399 * utils.c (convert): No need to clear TREE_CST_RTL.
35401 2003-04-23 Geert Bosch <bosch@gnat.com>
35403 * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
35404 1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
35405 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
35406 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
35407 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
35408 4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
35409 4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
35410 4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
35411 4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
35412 4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
35413 4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
35414 4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
35415 52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
35416 5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
35417 5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
35418 5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
35419 5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
35420 5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
35421 5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
35422 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
35423 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
35424 5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
35425 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
35426 5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
35427 5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
35428 5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
35429 5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
35430 5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
35431 5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
35432 5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
35433 5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
35434 5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
35435 5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
35436 5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
35437 5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
35438 5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
35439 5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
35440 5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
35441 5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
35442 5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
35443 5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
35444 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
35445 5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
35446 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
35447 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
35448 7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
35449 7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
35450 9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
35451 a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
35452 a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
35453 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
35454 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
35455 a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
35456 a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
35457 a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
35458 a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
35459 a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
35460 a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
35461 a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
35462 a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
35463 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
35464 a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
35465 a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
35466 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
35467 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
35468 a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
35469 a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
35470 a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
35471 a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
35472 a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
35473 a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
35474 a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
35475 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
35476 a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
35477 a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
35478 a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
35479 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
35480 a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
35481 a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
35482 a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
35483 a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
35484 a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
35485 a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
35486 a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
35487 a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
35488 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
35489 a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
35490 a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
35491 a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
35492 a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
35493 a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
35494 a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
35495 a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
35496 a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
35497 a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
35498 a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
35499 a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
35500 a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
35501 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
35502 a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
35503 a-wttest.ads, ada-tree.h, ada.ads, ada.h,
35504 adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
35505 ali.adb, ali.ads, alloc.ads, argv.c,
35506 atree.adb, atree.ads, atree.h, aux-io.c,
35507 back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
35508 binde.adb, binde.ads, binderr.adb, binderr.ads,
35509 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
35510 butil.adb, butil.ads, cal.c, calendar.ads,
35511 casing.adb, casing.ads, ceinfo.adb, checks.adb,
35512 checks.ads, cio.c, comperr.adb, comperr.ads,
35513 config-lang.in, csets.adb, csets.ads, csinfo.adb,
35514 cstand.adb, cstand.ads, cuintp.c, debug.adb,
35515 debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
35516 dec-io.ads, dec.ads, deftarg.c, directio.ads,
35517 einfo.adb, einfo.ads, elists.adb, elists.ads,
35518 elists.h, errno.c, errout.adb, errout.ads,
35519 eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
35520 exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
35521 exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
35522 exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
35523 exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
35524 exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
35525 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
35526 exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
35527 exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
35528 exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
35529 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
35530 exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
35531 exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
35532 exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
35533 exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
35534 fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
35535 fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
35536 freeze.adb, freeze.ads, frontend.adb, frontend.ads,
35537 g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
35538 g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
35539 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
35540 g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
35541 g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
35542 g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
35543 g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
35544 g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
35545 g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
35546 g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
35547 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
35548 g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
35549 g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
35550 g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
35551 g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
35552 g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
35553 g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
35554 g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
35555 g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
35556 g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
35557 g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
35558 g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
35559 get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
35560 gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
35561 gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
35562 gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
35563 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
35564 gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
35565 gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
35566 gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
35567 hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
35568 i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
35569 i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
35570 i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
35571 i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
35572 i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
35573 i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
35574 inline.adb, inline.ads, interfac.ads, ioexcept.ads,
35575 itypes.adb, itypes.ads, krunch.adb, krunch.ads,
35576 layout.adb, layout.ads, lib-list.adb, lib-load.adb,
35577 lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
35578 lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
35579 lib.adb, lib.ads, live.adb, live.ads,
35580 machcode.ads, make.adb, make.ads, makeusg.adb,
35581 makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
35582 mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
35583 memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
35584 mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
35585 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
35586 mlib.ads, namet.adb, namet.ads, nlists.adb,
35587 nlists.ads, opt.adb, opt.ads, osint-b.adb,
35588 osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
35589 osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
35590 osint.ads, output.adb, output.ads, par-ch10.adb,
35591 par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
35592 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
35593 par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
35594 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
35595 par-tchk.adb, par-util.adb, par.adb, par.ads,
35596 prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
35597 prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
35598 prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
35599 prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
35600 prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
35601 prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
35602 prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
35603 prj.adb, prj.ads, repinfo.adb, repinfo.ads,
35604 restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
35605 rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
35606 s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
35607 s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
35608 s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
35609 s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
35610 s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
35611 s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
35612 s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
35613 s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
35614 s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
35615 s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
35616 s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
35617 s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
35618 s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
35619 s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
35620 s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
35621 s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
35622 s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
35623 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
35624 s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
35625 s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
35626 s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
35627 s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
35628 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
35629 s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
35630 s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
35631 s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
35632 s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
35633 s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
35634 s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
35635 s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
35636 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
35637 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
35638 s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
35639 s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
35640 s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
35641 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
35642 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
35643 s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
35644 s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
35645 s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
35646 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
35647 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
35648 s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
35649 s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
35650 s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
35651 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
35652 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
35653 s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
35654 s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
35655 s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
35656 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
35657 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
35658 s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
35659 s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
35660 s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
35661 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
35662 s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
35663 s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
35664 s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
35665 s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
35666 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
35667 s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
35668 s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
35669 s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
35670 s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
35671 s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
35672 s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
35673 s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
35674 s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
35675 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
35676 s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
35677 s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
35678 s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
35679 s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
35680 s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
35681 s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
35682 s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
35683 s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
35684 s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
35685 s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
35686 s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
35687 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
35688 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
35689 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
35690 s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
35691 s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
35692 s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
35693 s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
35694 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
35695 s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
35696 s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
35697 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
35698 s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
35699 scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
35700 sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
35701 sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
35702 sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
35703 sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
35704 sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
35705 sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
35706 sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
35707 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
35708 sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
35709 sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
35710 sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
35711 sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
35712 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
35713 sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
35714 sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
35715 sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
35716 sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
35717 sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
35718 sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
35719 sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
35720 snames.ads, sprint.adb, sprint.ads, stand.adb,
35721 stand.ads, stringt.adb, stringt.ads, style.adb,
35722 style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
35723 switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
35724 switch-m.ads, switch.adb, switch.ads, system.ads,
35725 table.adb, table.ads, targparm.adb, targparm.ads,
35726 tbuild.adb, tbuild.ads, text_io.ads, trans.c,
35727 tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
35728 tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
35729 ttypef.ads, ttypes.ads, types.adb, types.ads,
35730 uintp.adb, uintp.ads, uname.adb, uname.ads,
35731 unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
35732 usage.adb, usage.ads, validsw.adb, validsw.ads,
35733 widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
35734 xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
35735 xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
35736 formatting and other trivial changes from ACT.
35738 2003-04-12 Zack Weinberg <zack@codesourcery.com>
35740 * gigi.h, utils2.c (build_constructor):
35741 Rename gnat_build_constructor. Use build_constructor.
35742 * decl.c (gnat_to_gnu_entity)
35743 * trans.c (tree_transform, pos_to_constructor, extract_values)
35744 * ada/utils.c (build_template, convert_to_fat_pointer, convert)
35745 (unchecked_convert)
35746 * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
35747 (fill_vms_descriptor):
35750 2003-04-06 Zack Weinberg <zack@codesourcery.com>
35752 * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
35753 * misc.c (gnat_tree_size): New function.
35754 (LANG_HOOKS_TREE_SIZE): Override.
35756 2003-04-03 Jason Merrill <jason@redhat.com>
35758 * misc.c (gnat_adjust_rli): #if 0.
35760 2003-03-31 Geert Bosch <bosch@gnat.com>
35763 * link.c : Fix misspelled "const" keyword
35765 2003-03-23 Mark Mitchell <mark@codesourcery.com>
35768 * utils2.c: Adjust calls to put_var_into_stack.
35770 2003-03-12 Nathanael Nerode <neroden@gcc.gnu.org>
35772 * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
35774 2003-03-08 Neil Booth <neil@daikokuya.co.uk>
35776 * misc.c (gnat_init): Update for new prototype.
35778 2003-03-05 Olivier Hainque <hainque@gnat.com>
35781 * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
35782 warning, and fix return type for the IN_RTS && !SJLJ case.
35784 2003-03-04 Tom Tromey <tromey@redhat.com>
35786 * Make-lang.in (ada.tags): New target.
35788 2003-03-04 Olivier Hainque <hainque@act-europe.fr>
35791 * a-except.adb (Unwind_RaiseException): Import a GNAT specific
35792 wrapper, which name remains constant whatever underlying GCC
35795 * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
35796 the stable interface needed for a-except.
35798 2003-03-02 Andreas Jaeger <aj@suse.de>
35800 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35801 gnat_ug_wnt.texi: Regenerate.
35803 2003-03-02 Laurent Guerby <guerby@acm.org>
35805 * Makefile.in (install-gnatlib): Match previous change there
35808 2003-02-28 Andreas Schwab <schwab@suse.de>
35810 * Make-lang.in (install-gnatlib): Change to ada directory before
35811 running make instead of using ada/Makefile directly.
35813 2003-02-18 Ben Elliston <bje@redhat.com>
35815 Part of PR ada/9406
35816 * gnat_ug.texi (Binder output file): Grammar fix.
35818 2003-02-18 Ben Elliston <bje@redhat.com>
35821 * 5qtaprop.adb (Sleep): Fix typo in comment.
35823 2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
35825 * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
35826 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35827 gnat_ug_wnt.texi: Regenerate.
35829 2003-02-03 Christian Cornelssen <ccorn@cs.tu-berlin.de>
35831 * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
35832 be created if necessary.
35833 (ada.install-common): Let $(DESTDIR)$(bindir) be created
35834 if necessary. Remove erroneous and redundant gnatchop
35835 installation commands. Test for gnatdll before attempting
35837 (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
35838 and gnatdll from all plausible locations.
35840 2003-02-01 Richard Sandiford <rsandifo@redhat.com>
35842 * utils2.c (build_unary_op): Don't check flag_volatile.
35843 * gnat_ug.texi: Remove -fvolatile from example.
35844 * gnat_ug_vxw.texi: Likewise.
35846 2003-01-29 Laurent Guerby <guerby@acm.org>
35849 * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
35850 * Makefile.in: match previous change.
35851 * Make-lang.in: match previous change.
35853 2003-01-29 Joel Sherrill <joel@OARcorp.com>
35855 * 5rosinte.ads: Add SIGXCPU.
35856 * 5rtpopsp.adb: New file.
35857 * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
35858 * Makefile.in: Recognize more RTEMS targets and add the RTEMS
35859 specific file 5rtpopsp.adb.
35860 * adaint.h: Add include of <stdio.h> when target is RTEMS. This
35861 is likely needed for all newlib targets.
35862 * init.c: Add RTEMS specific version of __gnat_initialize().
35864 2003-01-28 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
35866 * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
35868 2003-01-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
35870 * init.c (__gnat_error_handler): Make msg const.
35872 * gmem.c (convert_addresses): Move declaration ...
35873 * adaint.h: ... here.
35874 * adaint.c (convert_addresses): Adapt addrs type to match
35877 * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
35879 2003-01-24 Andreas Schwab <schwab@suse.de>
35881 * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
35882 size_t to avoid warning.
35884 2003-01-21 Zack Weinberg <zack@codesourcery.com>
35886 * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
35888 2003-01-09 Geoffrey Keating <geoffk@apple.com>
35890 * gnat_rm.texi: Remove RCS version number.
35892 * ada-tree.h (union lang_tree_node): Add chain_next option.
35894 2003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
35896 * Make-lang.in (ada.install-info, ada.install-common,
35897 ada.uninstall): Prepend $(DESTDIR) to the destination
35898 directory in all (un)installation commands.
35899 * Makefile.in (install-gnatlib, install-rts): Ditto.
35901 2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
35903 * gnat_rm.texi, gnat_ug.texi: Use @copying.
35904 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35905 gnat_ug_wnt.texi: Regenerate.
35907 2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
35909 * gnat_rm.texi: Include gcc-common.texi. Use GCC version number
35911 * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
35912 $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
35913 $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
35914 ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
35915 ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
35916 $(srcdir)/doc/include/gcc-common.texi.
35918 2002-12-15 Geert Bosch <bosch@gnat.com>
35920 * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
35922 2002-12-14 Geert Bosch <bosch@gnat.com>
35925 * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
35926 case of a body created for a Renaming_As_Body, on which
35927 conformance checks are not performed.
35929 2002-11-30 Zack Weinberg <zack@codesourcery.com>
35931 * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
35932 utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
35933 not already included.
35934 * Make-lang.in: Update dependencies.
35936 2002-11-18 Nathanael Nerode <neroden@gcc.gnu.org>
35937 * adaint.c (__gnat_tmp_name): Better, but good enough for now,
35938 solution to buffer overflow bug on GNU/Linux.
35940 2002-11-14 Nathanael Nerode <neroden@gcc.gnu.org>
35944 * bindgen.adb: Remove all references to Public_Version.
35945 * comperr.adb: Remove all references to Public_Version and
35946 GNATPRO_Version; correct bug reporting instructions.
35947 * comperr.ads: Change to match bug box.
35948 * gnatvsn.ads: Remove all references to Public version and
35951 2002-11-13 Nathanael Nerode <neroden@gcc.gnu.org>
35954 * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
35958 * config-lang.in: Remove diff_excludes.
35960 2002-11-05 Graham Stott <graham.stott@btinternet.com>
35963 * trans.c (gnu_pending_elaboration_lists): New GC root.
35964 (build_unit_elab): Use..
35966 2002-10-30 Geert Bosch <bosch@gnat.com>
35969 * misc.c : Include optabs.h
35971 * Make-lang.in (misc.o): Add dependency on optabs.h
35973 2002-10-29 Geert Bosch <bosch@gnat.com>
35976 * Make-lang.in (gnatbind): Depend on CONFIG_H
35978 2002-10-29 Geert bosch <bosch@gnat.com>
35981 * misc.c: Unrevert misc.c (1.13)
35983 2002-10-28 Nathanael Nerode <neroden@gcc.gnu.org>
35985 * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
35986 maintainership comments.
35988 2002-09-25 Nathanael Nerode <neroden@gcc.gnu.org>
35991 * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
35992 5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
35993 5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
35994 7staprop.adb: Correct statements in comments about
35995 maintainership of GNAT.
35998 * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
35999 gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
36000 osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
36001 osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
36002 s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
36003 s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
36004 sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
36005 switch-c.ads switch-m.adb switch-m.ads: Correct statements in
36006 comments about maintainership of GNAT.
36008 PR ada/6919 (forward port of patch for PR ada/5904)
36009 * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
36010 4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
36011 4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
36012 4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
36013 4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
36014 4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
36015 4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
36016 52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
36017 5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
36018 5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
36019 5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
36020 5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
36021 5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
36022 5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
36023 5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
36024 5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
36025 5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
36026 5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
36027 5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
36028 5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
36029 5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
36030 5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
36031 5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
36032 5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
36033 5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
36034 5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
36035 5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
36036 5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
36037 7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
36038 a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
36039 a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
36040 a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
36041 a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
36042 a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
36043 a-except.adb a-except.ads a-excpol.adb a-exctra.adb
36044 a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
36045 a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
36046 a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
36047 a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
36048 a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
36049 a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
36050 a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
36051 a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
36052 a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
36053 a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
36054 a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
36055 a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
36056 a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
36057 a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
36058 a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
36059 a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
36060 a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
36061 a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
36062 a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
36063 a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
36064 a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
36065 a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
36066 a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
36067 a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
36068 a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
36069 a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
36070 a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
36071 a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
36072 a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
36073 a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
36074 a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
36075 a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
36076 a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
36077 adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
36078 alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
36079 back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
36080 binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
36081 bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
36082 ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
36083 csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
36084 cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
36085 debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
36086 einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
36087 errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
36088 exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
36089 exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
36090 exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
36091 exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
36092 exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
36093 exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
36094 exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
36095 exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
36096 exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
36097 exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
36098 exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
36099 exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
36100 exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
36101 final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
36102 fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
36103 freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
36104 g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
36105 g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
36106 gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
36107 gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
36108 gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
36109 gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
36110 gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
36111 gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
36112 i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
36113 i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
36114 i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
36115 i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
36116 impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
36117 itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
36118 lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
36119 lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
36120 lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
36121 lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
36122 makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
36123 namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
36124 nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
36125 osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
36126 par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
36127 par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
36128 par-endh.adb par-labl.adb par-load.adb par-prag.adb
36129 par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
36130 prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
36131 prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
36132 prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
36133 prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
36134 prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
36135 prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
36136 repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
36137 rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
36138 s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
36139 s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
36140 s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
36141 s-direio.adb s-direio.ads s-except.ads s-exctab.adb
36142 s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
36143 s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
36144 s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
36145 s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
36146 s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
36147 s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
36148 s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
36149 s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
36150 s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
36151 s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
36152 s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
36153 s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
36154 s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
36155 s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
36156 s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
36157 s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
36158 s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
36159 s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
36160 s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
36161 s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
36162 s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
36163 s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
36164 s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
36165 s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
36166 s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
36167 s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
36168 s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
36169 s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
36170 s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
36171 s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
36172 s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
36173 s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
36174 s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
36175 s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
36176 s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
36177 s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
36178 s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
36179 s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
36180 s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
36181 s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
36182 s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
36183 s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
36184 s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
36185 s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
36186 s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
36187 s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
36188 s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
36189 s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
36190 s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
36191 s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
36192 s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
36193 s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
36194 s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
36195 s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
36196 s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
36197 s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
36198 s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
36199 s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
36200 s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
36201 s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
36202 s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
36203 s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
36204 s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
36205 s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
36206 s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
36207 s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
36208 s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
36209 s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
36210 s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
36211 s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
36212 s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
36213 s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
36214 s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
36215 s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
36216 s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
36217 s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
36218 s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
36219 s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
36220 scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
36221 sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
36222 sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
36223 sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
36224 sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
36225 sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
36226 sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
36227 sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
36228 sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
36229 sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
36230 sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
36231 sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
36232 sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
36233 sem_type.adb sem_type.ads sem_util.adb sem_util.ads
36234 sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
36235 sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
36236 sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
36237 sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
36238 snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
36239 stringt.ads stringt.h style.adb style.ads stylesw.adb
36240 stylesw.ads switch.adb switch.ads sysdep.c system.ads
36241 table.adb table.ads targparm.adb targparm.ads targtyps.c
36242 tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
36243 tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
36244 treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
36245 types.adb types.ads types.h uintp.adb uintp.ads uintp.h
36246 uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
36247 usage.ads utils.c utils2.c validsw.adb validsw.ads
36248 widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
36249 xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
36250 xtreeprs.adb: Correct statements in comments about maintainership
36253 2002-09-23 Zack Weinberg <zack@codesourcery.com>
36255 * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
36256 * Makefile.in (TOOLS_LIBS): Add ../../version.o.
36257 * gnatvsn.ads: Gnat_Version_String is now a function.
36258 * gnatvsn.adb: New file. When asked for Gnat_Version_String,
36259 copy the C version_string into a String and return it.
36260 * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
36261 gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
36262 Remove pragma Ident (Gnat_Version_String). If this was the
36263 sole use of package Gnatvsn, remove the with statement too.
36264 * gnat1drv.adb: Tweak -gnatv output.
36266 2002-09-17 Richard Henderson <rth@redhat.com>
36268 * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
36269 * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
36270 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
36271 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
36272 * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
36273 and real_2expN instead of a loop.
36274 * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
36275 (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
36277 2002-08-25 Andre Leis <a.leis@gmx.net>
36278 David Billinghurst <David.Billinghurst@riotinto.com>
36280 * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
36282 2002-08-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
36284 * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
36285 Remove $(CONFIG_H) dependency.
36287 2002-08-08 Nathan Sidwell <nathan@codesourcery.com>
36289 * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
36291 2002-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
36293 * adadecode.c (ada_demangle): Use xstrdup in lieu of
36295 * misc.c (gnat_decode_option): Likewise.
36297 2002-07-15 Florian Weimer <fw@deneb.enyo.de>
36299 * make.adb (Add_Switch): Make Generic_Position a procedure. The
36300 function approach did not work well because of a side effect (the
36301 function call could reallocate the table which was being indexed
36302 using its result). Fixes ada/4851. [RESURRECTED]
36304 2002-07-01 Roger Sayle <roger@eyesopen.com>
36306 * ada/utils.c (builtin_function): Accept an additional parameter.
36308 2002-06-28 Andreas Jaeger <aj@suse.de>
36311 * Makefile.in: Fix typo in comment, patch by Adrian Knoth
36314 2002-06-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
36316 * Makefile.in (SHELL): Set to @SHELL@.
36318 2002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
36320 * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
36321 array size calculation.
36323 2002-06-04 Andreas Jaeger <aj@suse.de>
36325 * Make-lang.in (gnatbind): Readd rule that has been lost in last
36328 2002-06-03 Geoffrey Keating <geoffk@redhat.com>
36330 Merge from pch-branch:
36332 * config-lang.in (gtfiles): Add ada-tree.h.
36333 * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
36334 (SET_TYPE_MODULUS): New.
36335 (SET_TYPE_INDEX): New.
36336 (SET_TYPE_DIGITS_VALUE): New.
36337 (SET_TYPE_RM_SIZE): New.
36338 (SET_TYPE_UNCONSTRAINED_ARRAY): New.
36339 (SET_TYPE_ADA_SIZE): New.
36340 (SET_TYPE_ACTUAL_BOUNDS): New.
36341 (SET_DECL_CONST_CORRESPONDING_VAR): New.
36342 (SET_DECL_ORIGINAL_FIELD): New.
36343 (TREE_LOOP_ID): Correct typo.
36344 * decl.c: Use new macros.
36345 * utils.c: Include debug.h, use new macros.
36346 * utils2.c: Use new macros.
36348 * ada-tree.h: Update all macros for new tree description.
36349 (struct tree_loop_id): New.
36350 (union lang_tree_node): New.
36351 (struct lang_decl): New.
36352 (struct lang_type): New.
36353 * misc.c (gnat_mark_tree): Delete.
36354 (LANG_HOOKS_MARK_TREE): Delete.
36355 * trans.c (tree_transform): No longer any need to cast
36358 * utils.c (struct language_function): New dummy structure.
36360 * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
36361 (misc.o): Likewise.
36362 (utils.o): Likewise; also gtype-ada.h.
36363 * Make-lang.in (gnat1): Add dependency on s-gtype.
36364 (gnatbind): Add dependency on $(CONFIG_H).
36365 * utils.c: Correct last #include.
36366 (stuct e_stack): Remove unnecessary 'static'.
36367 (mark_e_stack): Remove unused prototype.
36369 * scn-nlit.adb: Remove whitespace after version number to
36370 keep lines under 80 chars.
36371 * snames.adb: Likewise.
36372 * treepr.ads: Likewise.
36374 * Makefile.in (decl.o): Include gt-ada-<filename>.h.
36375 (misc.o): Likewise.
36376 (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
36377 * config-lang.in (gtfiles): New.
36378 * decl.c: Use gengtype for roots.
36379 * gigi.h: Use gengtype for roots.
36380 * trans.c: Use gengtype for roots.
36381 * utils.c: Use gengtype for roots, marking. Include gtype-ada.h.
36383 2002-06-02 Gabriel Dos Reis <gdr@codesourcery.com>
36385 * misc.c (gnat_init): Adjust setting of internal_error_function.
36387 2002-06-01 Joseph S. Myers <jsm28@cam.ac.uk>
36389 * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
36390 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
36391 gnat_ug_wnt.texi: Regenerate.
36393 2002-05-31 Florian Weimer <fw@deneb.enyo.de>
36395 * 5ntaprop.adb (with System.OS_Primitives): Remove.
36397 * cstreams.c (max_path_len): Move from here ...
36398 * adaint.c (__gnat_max_path_len): ... to here.
36399 * adaint.c (__gnat_max_path_len): Declare.
36400 * g-dirope.adb (Max_Path): Adjust.
36401 * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
36402 * i-cstrea.ads (max_path_len): Adjust.
36403 * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
36404 * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
36406 * Makefile.in, Make-lang.in: Documentation is now built in
36407 Make-lang.in. Store Info and generated Texinfo files in the
36409 * gnat_ug.texi: Remove CVS keywords, correct version number.
36410 Set file name correctly.
36412 * gnat_ug_*.texi: Add.
36413 * .cvsignore: Ignore generated Texinfo files.
36415 2002-05-30 Zack Weinberg <zack@codesourcery.com>
36417 * ada.h: Add MI guard macro.
36418 (SUBTYPE): Define constants with an anonymous enum, not static
36420 (IN): Cast constants to appropriate type before use.
36422 2002-05-26 Joseph S. Myers <jsm28@cam.ac.uk>
36424 * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
36427 2002-05-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
36429 * Make-lang.in (CP, ECHO): Copy from Makefile.in.
36430 (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
36431 (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
36432 (ALL_ADA_CFLAGS): Likewise.
36433 (ADA_INCLUDES): Likewise.
36434 Adapt for new working dir.
36435 (GNATBIND): Use Makefile.in version.
36436 (.SUFFIXES): Copy from Makefile.in.
36437 (ada-warn): Define.
36438 (.adb.o, .ads.o): Copy from Makefile.in.
36439 Added $(OUTPUT_OPTION).
36440 (GNAT1_C_OBJS): Moved from Makefile.in.
36441 Prefix with ada subdir.
36442 (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
36443 (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
36444 Adapt for new working dir.
36445 (EXTRA_GNATBIND_OBJS): Likewise.
36446 (ADA_BACKEND): Moved from Makefile.in.
36447 Renamed to avoid conflict with global BACKEND.
36449 (TARGET_ADA_SRCS): Moved from Makefile.in.
36450 (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
36452 (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
36453 (ada_extra_files): Moved from Makefile.in.
36454 Prefix with ada subdir.
36455 (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
36456 (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
36457 (ada/nmake.ads): Likewise.
36458 (update-sources): Moved from Makefile.in.
36459 Prefix with ada subdir.
36460 (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
36461 (ADA_TREE_H): Likewise.
36462 (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
36463 (ada/memtrack.o): Likewise.
36464 (ada/adadecode.o): Likewise.
36465 Update dependencies.
36466 (ada/adaint.o): New.
36467 (ada/argv.o): Moved from Makefile.in.
36468 Prefix with ada subdir.
36469 Update dependencies.
36470 (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
36471 (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
36472 (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
36473 Prefix with ada subdir.
36474 (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
36475 (GNAT DEPENDENCIES): Regenerate.
36476 * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
36477 toplevel Makefile.in.
36478 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
36479 (TARGET_ADA_SRCS): Removed.
36480 (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
36481 (GNATBIND_OBJS): Likewise.
36482 (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
36483 (BACKEND): Removed.
36484 (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
36485 (TREE_H): Likewise.
36486 (ada_extra_files): Likewise.
36487 (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
36488 (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
36489 (update-sources): Likewise.
36490 (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
36491 (ADA_TREE_H): Likewise.
36492 (adadecoce.o): Likewise.
36493 (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
36494 (GNAT DEPENDENCIES): Likewise.
36496 2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
36498 * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
36499 * Makefile.in: Likewise.
36501 2002-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
36503 * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
36504 Restore $(CONFIG_H) and prefix.o dependencies.
36505 (ada.stage[1-4]): Depend on stage?-start.
36507 * Makefile.in (b_gnatb.c): Depend on interfac.o.
36509 2002-05-02 Jim Wilson <wilson@redhat.com>
36511 * utils.c (finish_record_type): Change record_size to record_type.
36513 2001-05-02 John David Anglin <dave@hiauly1.hia.nrc.ca>
36515 * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
36516 (ALL_ADA_CFLAGS): Define. Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
36517 ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
36519 2002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
36521 * misc.c (gnat_parse_file): Update.
36523 2002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
36525 * misc.c (gnat_init): Don't set lang_attribute_common.
36527 2002-04-21 Joseph S. Myers <jsm28@cam.ac.uk>
36529 * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
36531 2002-04-21 Florian Weimer <fw@deneb.enyo.de>
36533 * gnat_ug.texi: New file.
36535 * gnat_rm.texi: Do not include texiplus.texi. Include fdl.texi
36536 instead of gfdl.texi
36538 * xgnatug.adb, ug_words: New files.
36540 * Makefile.in (doc, dvi): New targets. Build gnat_ug_*,
36541 gnat_rm and gnat-style manuals.
36543 2002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
36545 * gigi.h (incomplete_type_error): Remove.
36546 * utils.c (incomplete_type_error): Remove.
36548 2002-04-16 Mark Mitchell <mark@codesourcery.com>
36550 * trans.c (tree_transform): Add has_scope argument to
36551 expand_start_stmt_expr.
36553 2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
36555 * gigi.h (truthvalue_conversion): Rename.
36556 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
36557 * trans.c (tree_transform): Update.
36558 * utils2.c (truthvalue_conversion): Rename, update.
36559 (build_binary_op, build_unary_op): Update.
36561 2002-04-04 Laurent Guerby <guerby@acm.org>
36563 * make.adb: Implement -margs, remove restriction about file name placement.
36564 * makeusg.adb: Documentation update.
36565 * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
36566 * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
36568 2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
36570 * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
36571 (builtin_function): Similarly.
36573 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
36575 * decl.c (gnat_to_gnu_entity): Update.
36576 * gigi.h (mark_addressable): Rename.
36577 * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
36578 * trans.c (tree_transform): Update.
36579 * utils.c (create_var_decl): Update.
36580 * util2.c (build_binary_op, build_unary_op,
36581 fill_vms_descriptor): Update.
36582 (mark_addressable): Rename, update.
36584 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
36586 * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
36588 * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
36589 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
36590 * trans.c (tree_transform, convert_with_check): Update.
36591 * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
36594 2002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
36596 * gigi.h (finish_incomplete_decl): Rename.
36597 * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
36598 * utils.c (gnat_init_decl_processing): Don't set hook.
36599 (finish_incomplete_decl): Rename.
36601 2002-03-29 Andreas Schwab <schwab@suse.de>
36603 * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
36606 2001-03-28 Robert Dewar <dewar@gnat.com>
36609 (Remove_Checks): New procedure
36612 (Remove_Checks): New procedure
36615 Use new Duplicate_Subexpr functions
36616 (Duplicate_Subexpr_No_Checks): New procedure
36617 (Duplicate_Subexpr_No_Checks_Orig): New procedure
36618 (Duplicate_Subexpr): Restore original form (checks duplicated)
36619 (Duplicate_Subexpr): Call Remove_Checks
36622 (Duplicate_Subexpr_No_Checks): New procedure
36623 (Duplicate_Subexpr_No_Checks_Orig): New procedure
36624 Add 2002 to copyright notice
36626 * sem_util.adb: Use new Duplicate_Subexpr functions
36629 (Eval_Indexed_Component): This is the place to call
36630 Constant_Array_Ref and to replace the value. We simply merge
36631 the code of this function in here, since it is now no longer
36632 used elsewhere. This fixes the problem of the back end not
36633 realizing we were clever enough to see that this was
36635 (Expr_Val): Remove call to Constant_Array_Ref
36636 (Expr_Rep_Val): Remove call to Constant_Array_Ref
36638 (Constant_Array_Ref): Deal with string literals (patch
36639 suggested by Zack Weinberg on the gcc list)
36641 2001-03-28 Ed Schonberg <schonber@gnat.com>
36643 * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
36644 Duplicate_Subexpr_Move_Checks.
36646 * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
36647 Duplicate_Subexpr_Move_Checks.
36649 * sem_eval.adb: (Constant_Array_Ref): Verify that constant
36650 value of array exists before retrieving it (it may a private
36651 protected component in a function).
36653 2002-03-28 Geert Bosch <bosch@gnat.com>
36655 * prj-pp.adb : New file.
36657 * prj-pp.ads : New file.
36659 2002-03-28 Andreas Jaeger <aj@suse.de>
36661 * Makefile.in (stamp-sdefault): Fix path for Makefile.
36663 2002-03-28 Neil Booth <neil@daikokuya.demon.co.uk>
36665 * misc.c (gnat_expand_expr): Move prototype.
36667 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
36669 * misc.c (insert_default_attributes): Remove.
36671 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
36673 * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
36674 (gnat_init): Don't set hook.
36675 (gnat_expand_expr): Fix prototype.
36677 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
36679 * misc.c (ggc_p): Remove.
36681 2002-03-27 Geert Bosch <bosch@gnat.com>
36683 * prj-makr.ads, prj-makr.adb : New files.
36685 2002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
36687 * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
36688 (lang_mark_tree): Make static, rename.
36690 2002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
36692 * misc.c (maybe_build_cleanup): Remove.
36694 2002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
36696 * gigi.h (yyparse): Remove.
36698 2002-03-23 Florian Weimer <fw@deneb.enyo.de>
36700 From Ben Brosgol <brosgol@gnat.com>
36701 * gnat_rm.texi: Sync with ACT version.
36703 2002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
36705 * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
36706 (gnat_init): Remove old hook.
36708 2002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
36710 * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
36711 (yyparse): Rename gnat_parse_file.
36713 2002-03-14 Geoffrey Keating <geoffk@redhat.com>
36715 Delete all lines containing "$Revision:".
36716 * xeinfo.adb: Don't look for revision numbers.
36717 * xnmake.adb: Likewise.
36718 * xsinfo.adb: Likewise.
36719 * xsnames.adb: Likewise.
36720 * xtreeprs.adb: Likewise.
36722 2002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
36724 * misc.c (gnat_tree_code_type, gnat_tree_code_length,
36725 gnat_tree_code_name): Delete.
36726 (tree_code_type, tree_code_length, tree_code_name): Define.
36727 (gnat_init): Don't try to copy into the various tree_code
36730 2002-03-11 Richard Henderson <rth@redhat.com>
36732 * Makefile.in (.NOTPARALLEL): Add fake tag.
36734 2002-03-07 Geert Bosch <bosch@gnat.com>
36736 * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
36737 s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
36738 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
36739 switch-m.adb, switch-m.ads : New files.
36741 2002-03-07 Geert Bosch <bosch@gnat.com>
36743 * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
36744 4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
36745 4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
36746 4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
36747 5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
36748 5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
36749 5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
36750 5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
36751 5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
36752 5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
36753 5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
36754 5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
36755 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
36756 5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
36757 5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
36758 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
36759 5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
36760 5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
36761 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
36762 5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
36763 7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
36764 Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
36765 a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
36766 a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
36767 a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
36768 a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
36769 a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
36770 a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
36771 a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
36772 adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
36773 atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
36774 bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
36775 csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
36776 einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
36777 eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
36778 exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
36779 exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
36780 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
36781 exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
36782 exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
36783 expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
36784 freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
36785 g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
36786 g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
36787 g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
36788 g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
36789 g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
36790 g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
36791 gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
36792 gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
36793 gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
36794 i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
36795 impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
36796 lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
36797 lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
36798 memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
36799 mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
36800 nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
36801 output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
36802 par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
36803 prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
36804 prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
36805 prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
36806 rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
36807 s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
36808 s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
36809 s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
36810 s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
36811 s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
36812 s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
36813 s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
36814 s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
36815 s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
36816 s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
36817 s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
36818 s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
36819 s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
36820 s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
36821 s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
36822 sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
36823 sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
36824 sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
36825 sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
36826 sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
36827 sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
36828 sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
36829 sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
36830 sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
36831 sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
36832 snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
36833 stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
36834 table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
36835 tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
36836 treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
36837 types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
36838 utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
36839 xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
36841 * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
36842 g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
36843 mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
36844 osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
36846 * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
36847 5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
36849 * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
36850 to mdll-fil.ad[bs] and mdll-util.ad[bs]
36852 * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
36853 from mdllfile.ad[bs] and mdlltool.ad[bs]
36855 2002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
36857 * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
36858 lieu of explicit sizeof/sizeof.
36860 2002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
36862 * misc.c (copy_lang_decl): Remove.
36864 2002-02-27 Zack Weinberg <zack@codesourcery.com>
36866 * misc.c: Delete traditional-mode-related code copied from the
36867 C front end but not used, or used only to permit the compiler
36870 2002-02-07 Richard Henderson <rth@redhat.com>
36872 * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
36873 * adaint.h (__gnat_to_gm_time): Update prototype.
36875 2002-01-30 Richard Henderson <rth@redhat.com>
36877 * trans.c (tree_transform) [N_Loop_Statement]: Use
36878 expand_exit_loop_top_cond.
36880 2001-12-23 Richard Henderson <rth@redhat.com>
36882 * utils.c (end_subprog_body): Push GC context around
36883 rest_of_compilation for nested functions.
36885 2001-12-23 Richard Henderson <rth@redhat.com>
36887 * 5nosinte.ads: Get definition of "int" from Interfaces.C.
36889 2001-12-23 Florian Weimer <fw@deneb.enyo.de>
36891 * gnat-style.texi (Declarations and Types): Remove ancient style
36892 rule which was mandated by code generation issues.
36894 * gnat-style.texi (header): Add @dircategory, @direntry.
36895 (title page): Remove date.
36896 (general) Add @./@: where approriate, and two spaces after the
36897 full stop at the end of a sentence. Use @samp markup when
36898 referring concrete lexical entities (keywords, attribute names
36899 etc.), and @syntax for ARM grammar elements. Use @r for English
36900 text in comments. Use @emph for emphasis. Change "if-statements"
36901 etc. to "if statements" (without @samp). Break long lines. Make
36902 casing of section names consistent.
36903 (Identifiers): Use @samp markup for variable names.
36904 (Comments): Use @samp markup for comment characters. Line-end
36905 comments may follow any Ada code, not just statements. Fix
36906 misspelling of "Integer" as "integer".
36907 (Loop statements): Do not use variable name "I", use "J".
36908 (Subprogram Declarations): Document alignment.
36909 (Subprogram Bodies, Block statements): Document empty line before
36912 2001-12-22 Florian Weimer <fw@deneb.enyo.de>
36914 * make.adb (Add_Switch): Make Generic_Position a procedure. The
36915 function approach did not work well because of a side effect (the
36916 function call could reallocate the table which was being indexed
36917 using its result). Fixes ada/4851.
36919 2001-12-19 Robert Dewar <dewar@gnat.com>
36921 * bindgen.adb: Minor reformatting
36923 * cstand.adb: Minor reformatting
36925 * fmap.adb: Minor reformatting
36926 Change name from Add for Add_To_File_Map (Add is much too generic)
36927 Change Path_Name_Of to Mapped_Path_Name
36928 Change File_Name_Of to Mapped_File_Name
36929 Fix copyright dates in header
36932 Change name from Add for Add_To_File_Map (Add is much too generic)
36933 Change Path_Name_Of to Mapped_Path_Name
36934 Change File_Name_Of to Mapped_File_Name
36935 Fix copyright dates in header
36937 * fname-uf.adb: Minor reformatting. New names of stuff in Fmap.
36938 Add use clause for Fmap.
36940 * make.adb: Minor reformatting
36942 * osint.adb: Minor reformatting. Change of names in Fmap.
36943 Add use clause for Fmap.
36945 * prj-env.adb: Minor reformatting
36947 * prj-env.ads: Minor reformatting
36949 * switch.adb: Minor reformatting. Do proper raise of Bad_Switch if
36950 error found (there were odd exceptions to this general rule in
36951 -gnatec/-gnatem processing)
36953 2001-12-19 Olivier Hainque <hainque@gnat.com>
36955 * raise.c (__gnat_eh_personality): Exception handling personality
36956 routine for Ada. Still in rough state, inspired from the C++ version
36957 and still containing a bunch of debugging artifacts.
36958 (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
36959 inspired from the C++ library.
36961 * raise.c (eh_personality): Add comments. Part of work for the GCC 3
36962 exception handling integration.
36964 2001-12-19 Arnaud Charlet <charlet@gnat.com>
36966 * Makefile.in: Remove use of 5smastop.adb which is obsolete.
36967 (HIE_SOURCES): Add s-secsta.ad{s,b}.
36968 (HIE_OBJS): Add s-fat*.o
36969 (RAVEN_SOURCES): Remove files that are no longer required. Add
36970 interrupt handling files.
36971 (RAVEN_MOD): Removed, no longer needed.
36973 2001-12-19 Robert Dewar <dewar@gnat.com>
36975 * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
36976 Add 2001 to copyright date
36978 * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
36979 need to force universal inlining for these cases.
36981 2001-12-19 Arnaud Charlet <charlet@gnat.com>
36983 * s-taprob.adb: Minor clean ups so that this unit can be used in
36986 * exp_ch7.adb: Allow use of secondary stack in HI mode.
36987 Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
36989 2001-12-19 Vincent Celier <celier@gnat.com>
36991 * prj-tree.ads (Project_Node_Record): Add comments for components
36992 Pkg_Id and Case_Insensitive.
36994 2001-12-19 Pascal Obry <obry@gnat.com>
36996 * g-socket.adb: Minor reformatting. Found while reading code.
36998 2001-12-19 Robert Dewar <dewar@gnat.com>
37000 * prj-tree.ads: Minor reformatting
37002 2001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
37004 * config-lang.in (diff_excludes): Remove.
37006 2001-12-17 Ed Schonberg <schonber@gnat.com>
37008 * sem_res.adb (Resolve_Selected_Component): do not generate a
37009 discriminant check if the selected component is a component of
37010 the argument of an initialization procedure.
37012 * trans.c (tree_transform, case of arithmetic operators): If result
37013 type is private, the gnu_type is the base type of the full view,
37014 given that the full view itself may be a subtype.
37016 2001-12-17 Robert Dewar <dewar@gnat.com>
37018 * sem_res.adb: Minor reformatting
37020 * trans.c (tree_transform, case N_Real_Literal): Add missing third
37021 parameter in call to Machine (unknown horrible effects from this
37024 * urealp.h: Add definition of Round_Even for call to Machine
37025 Add third parameter for Machine
37027 2001-12-17 Ed Schonberg <schonber@gnat.com>
37029 * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
37030 predefined units in No_Run_Time mode.
37032 2001-12-17 Richard Kenner <kenner@gnat.com>
37034 * misc.c (insn-codes.h): Now include.
37036 2001-12-17 Olivier Hainque <hainque@gnat.com>
37038 * a-except.adb: Preparation work for future integration of the GCC 3
37039 exception handling mechanism
37040 (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
37041 to factorize previous code sequences and make them externally callable,
37042 e.g. for the Ada personality routine when the GCC 3 mechanism is used.
37043 (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
37044 Use the new notification routines.
37046 2001-12-17 Emmanuel Briot <briot@gnat.com>
37048 * prj-tree.ads (First_Choice_Of): Document the when others case
37050 2001-12-17 Arnaud Charlet <charlet@gnat.com>
37052 * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
37053 HI-E mode, in order to support Ravenscar profile properly.
37055 * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
37056 mode on 32 bits targets.
37058 2001-12-17 Vincent Celier <celier@gnat.com>
37060 * fmap.adb: Initial version.
37062 * fmap.ads: Initial version.
37064 * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
37065 If search is successfully done, add to mapping.
37067 * frontend.adb: Initialize the mapping if a -gnatem switch was used.
37070 (Gnatmake): Add new local variable Mapping_File_Name.
37071 Create mapping file when using project file(s).
37072 Delete mapping file before exiting.
37074 * opt.ads (Mapping_File_Name): New variable
37076 * osint.adb (Find_File): Use path name found in mapping, if any.
37078 * prj-env.adb (Create_Mapping_File): New procedure
37080 * prj-env.ads (Create_Mapping_File): New procedure.
37082 * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
37085 * usage.adb: Add entry for new switch -gnatem.
37087 * Makefile.in: Add dependencies for fmap.o.
37089 2001-12-17 Ed Schonberg <schonber@gnat.com>
37091 * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
37092 is a package instantiation rewritten as a package body.
37093 (Install_Withed_Unit): Undo previous change, now redundant.
37095 2001-12-17 Gary Dismuke <dismukes@gnat.com>
37098 (Compute_Length): Move conversion to Unsigned to callers.
37099 (Get_Max_Size): Convert Len expression to Unsigned after calls to
37100 Compute_Length and Determine_Range.
37101 (Layout_Array_Type): Convert Len expression to Unsigned after calls to
37102 Compute_Length and Determine_Range.
37103 Above changes fix problem with length computation for supernull arrays
37104 where Max (Len, 0) wasn't getting applied due to the Unsigned
37105 conversion used by Compute_Length.
37107 2001-12-17 Arnaud Charlet <charlet@gnat.com>
37110 (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
37111 System.Secondary_Stack.
37112 (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
37114 Remove unused entity RE_Exception_Data.
37116 * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
37118 * rident.ads (No_Secondary_Stack): New restriction.
37120 2001-12-17 Joel Brobecker <brobecke@gnat.com>
37122 * gnat_rm.texi: Fix minor typos. Found while reading the section
37123 regarding "Bit_Order Clauses" that was sent to a customer.
37124 Very interesting documentation!
37126 2001-12-17 Robert Dewar <dewar@gnat.com>
37128 * sem_case.adb (Choice_Image): Avoid creating improper character
37129 literal names by using the routine Set_Character_Literal_Name. This
37130 fixes bombs in certain error message cases.
37132 2001-12-17 Arnaud Charlet <charlet@gnat.com>
37134 * a-reatim.adb: Minor reformatting.
37136 2001-12-17 Ed Schonberg <schonber@gnat.com>
37138 * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
37139 case where the formal is an extension of another formal in the current
37140 unit or in a parent generic unit.
37142 2001-12-17 Arnaud Charlet <charlet@gnat.com>
37144 * s-tposen.adb: Update comments. Minor reformatting.
37145 Minor code clean up.
37147 * s-tarest.adb: Update comments. Minor code reorganization.
37149 2001-12-17 Gary Dismukes <dismukes@gnat.com>
37151 * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
37154 2001-12-17 Robert Dewa <dewar@gnat.com>
37156 * exp_attr.adb: Minor reformatting
37158 2001-12-17 Ed Schonberg <schonber@gnat.com>
37160 * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
37161 derivations nested within a child unit: verify that the parent
37162 type is declared in an outer scope.
37164 2001-12-17 Robert Dewar <dewar@gnat.com>
37166 * sem_ch12.adb: Minor reformatting
37168 2001-12-17 Ed Schonberg <schonber@gnat.com>
37170 * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
37171 warning if current unit is a predefined one, from which bodies may
37174 2001-12-17 Robert Dewar <dewar@gnat.com>
37176 * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
37177 Fix header format. Add 2001 to copyright date.
37179 * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
37180 which caused CE during compilation if checks were enabled.
37182 2001-12-17 Vincent Celier <celier@gnat.com>
37185 (Switches_Of): New function
37186 (Test_If_Relative_Path): New procedure
37187 (Add_Switches): Use new function Switches_Of
37188 (Collect_Arguments_And_Compile): Use new function Switches_Of.
37189 When using a project file, test if there are any relative
37190 search path. Fail if there are any.
37191 (Gnatmake): Only add switches for the primary directory when not using
37192 a project file. When using a project file, change directory to the
37193 object directory of the main project file. When using a project file,
37194 test if there are any relative search path. Fail if there are any.
37195 When using a project file, fail if specified executable is relative
37196 path with directory information, and prepend executable, if not
37197 specified as an absolute path, with the exec directory. Make sure
37198 that only one -o switch is transmitted to the linker.
37200 * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
37203 (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
37204 when using a non standard naming scheme.
37205 (Check_Ada_Naming_Scheme): Make sure that error messages
37206 do not raise exceptions.
37207 (Is_Illegal_Append): Return True if there is no dot in the suffix.
37208 (Language_Independent_Check): Check the exec directory.
37210 * prj.adb (Project_Empty): Add new component Exec_Directory
37213 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
37214 (Project_Data): Add component Exec_Directory
37216 * snames.adb: Updated to match snames.ads revision 1.215
37218 * snames.ads: Added Exec_Dir
37220 2001-12-17 Robert Dewar <dewar@gnat.com>
37222 * make.adb: Minor reformatting
37224 * prj-nmsc.adb: Minor reformatting
37226 * snames.adb: Updated to match snames.ads
37228 * snames.ads: Alphebetize entries for project file
37230 2001-12-17 Ed Schonberg <schonber@gnat.com>
37232 * trans.c (process_freeze_entity): Do nothing if the entity is a
37233 subprogram that was already elaborated.
37235 2001-12-17 Richard Kenner <kenner@gnat.com>
37237 * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
37238 and Esize if object is referenced via pointer.
37240 2001-12-17 Ed Schonberg <schonber@gnat.com>
37242 * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
37243 is discrete before analyzing choices.
37245 2001-12-17 Joel Brobecker <brobecke@gnat.com>
37247 * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
37248 containing the name of the Ada Main Program. This string is mainly
37249 intended for the debugger.
37250 (Gen_Output_File_C): Do the equivalent change when generating a C file.
37252 2001-12-17 Robert Dewar <dewar@gnat.com>
37254 * ali.adb: Set new Dummy_Entry field in dependency entry
37256 * ali.ads: Add Dummy_Entry field to source dependency table
37258 * bcheck.adb (Check_Consistency): Ignore dummy D lines
37260 * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
37262 * lib-writ.ads: Document dummy D lines for missing files.
37264 * types.ads: (Dummy_Time_Stamp): New value for non-existant files
37266 2001-12-17 Robert Dewar <dewar@gnat.com>
37268 * ali.adb: Type reference does not reset current file.
37270 * ali.adb: Recognize and scan renaming reference
37272 * ali.ads: Add spec for storing renaming references.
37274 * lib-xref.ads: Add documentation for handling of renaming references
37276 * lib-xref.adb: Implement output of renaming reference.
37279 (Determine_Range): Document local variables
37280 (Determine_Range): Make sure Hbound is initialized. It looks as though
37281 there could be a real problem here with an uninitialized reference
37282 to Hbound, but no actual example of failure has been found.
37284 2001-12-17 Laurent Pautet <pautet@gnat.com>
37287 Fix comment of Shutdown_Socket and Close_Socket. These functions
37288 should not fail silently because if they are called twice, this
37289 probably means that there is a race condition in the user program.
37290 Anyway, this behaviour is consistent with the rest of this unit.
37291 When an error occurs, an exception is raised with the error message
37292 as exception message.
37294 2001-12-17 Robert Dewar <dewar@gnat.com>
37296 * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
37297 that it happens before modification of Sloc values for -gnatD.
37299 * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
37300 so that it happens before modification of Sloc values for -gnatD.
37302 * switch.adb: Minor reformatting
37304 2001-12-15 Richard Henderson <rth@redhat.com>
37306 * sem_ch7.adb: Wrap comment.
37308 2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
37310 * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
37311 5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
37312 5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
37313 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
37314 5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
37315 7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
37316 a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
37317 a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
37318 cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
37319 exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
37320 exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
37321 g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
37322 gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
37323 make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
37324 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
37325 repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
37326 s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
37327 s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
37328 s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
37329 s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
37330 sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
37331 sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
37332 sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
37333 sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
37336 2001-12-14 Vincent Celier <celier@gnat.com>
37338 * osint.adb(Create_Debug_File): When an object file is specified,
37339 put the .dg file in the same directory as the object file.
37341 2001-12-14 Robert Dewar <dewar@gnat.com>
37343 * osint.adb: Minor reformatting
37345 * lib-xref.adb (Output_Instantiation): New procedure to generate
37346 instantiation references.
37348 * lib-xref.ads: Add documentation of handling of generic references.
37350 * ali.adb (Read_Instantiation_Ref): New procedure to read
37351 instantiation references
37353 * ali.ads: Add spec for storing instantiation references
37355 * bindusg.adb: Minor reformatting
37357 * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
37359 * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
37361 * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
37363 * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
37367 Add 2001 to copyright date
37368 Add entry for Latin-5 (Cyrillic ISO-8859-5)
37370 2001-12-14 Matt Gingell <gingell@gnat.com>
37372 * adaint.c: mktemp is a macro on Lynx and can not be used as an
37375 2001-12-14 Richard Kenner <kenner@gnat.com>
37377 * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
37378 if operand is CONSTRUCTOR.
37380 2001-12-14 Ed Schonberg <schonber@gnat.com>
37382 * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
37383 before emiting check on right-hand side, so that exception information
37386 2001-12-14 Richard Kenner <kenner@gnat.com>
37388 * utils.c (create_var_decl): Throw away initializing expression
37389 if just annotating types and non-constant.
37391 2001-12-14 Vincent Celier <celier@gnat.com>
37393 * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
37396 * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
37398 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
37400 * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
37402 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
37404 2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
37406 * ChangeLog: Remove piece of diff output.
37408 2001-12-14 Geert Bosch <bosch@gnat.com>
37410 * config-lang.in: Update copyright notice
37412 * layout.adb: Remove commented out code.
37414 * mdllfile.ads: Update copyright notice. Fix header format.
37416 * sem_case.ads: Likewise.
37418 * sem_ch3.adb: Minor reformatting.
37420 2001-12-12 Geert Bosch <bosch@gnat.com>
37422 * freeze.ads: Update copyright date.
37424 * g-comlin.ads: Minor reformatting.
37426 * gnat-style.texi: Fix typo.
37428 2001-12-12 Geert Bosch <bosch@gnat.com>
37430 * einfo.h: Regenerate.
37432 2001-12-12 Ed Schonberg <schonber@gnat.com>
37434 * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
37435 on known node types, rather than untyped fields. Further cleanups.
37437 2001-12-12 Robert Dewar <dewar@gnat.com>
37440 (Save_Entity_Descendant): Minor comment update.
37441 (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
37442 of an N_Attribute_Reference node. As per note below, this does not
37443 eliminate need for Associated_Node in attribute ref nodes.
37444 (Associated_Node): Documentation explicitly mentions attribute
37445 reference nodes, since this field is used in such nodes.
37447 * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
37449 2001-12-12 Robert Dewar <dewar@gnat.com>
37451 * s-stalib.adb: Add more comments on with statements being needed
37453 * par-ch12.adb: Minor reformatting
37455 * prj-dect.ads: Fix copyright header
37457 * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
37458 inputs fit in 32 bits, but the result still overflows.
37460 * s-fatgen.ads: Minor comment improvement
37462 2001-12-12 Ed Schonberg <schonber@gnat.com>
37464 * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
37465 formal derived type, look for an inherited component from the full
37466 view of the parent, if any.
37468 2001-12-12 Robert Dewar <dewar@gnat.com>
37470 * checks.ads (Apply_Alignment_Check): New procedure.
37472 * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
37473 ensure that the alignment of objects with address clauses is
37474 appropriate, and raise PE if not.
37476 * exp_util.ads (Must_Be_Aligned): Removed, replaced by
37477 Exp_Pakd.Known_Aligned_Enough
37479 * mdllfile.ads: Minor reformatting
37481 * mlib-fil.ads: Minor reformatting
37483 2001-12-12 Ed Schonberg <schonber@gnat.com>
37485 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
37486 fix to any component reference if enclosing record has non-standard
37489 2001-12-12 Vincent Celier <celier@gnat.com>
37491 * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
37494 2001-12-12 Ed Schonberg <schonber@gnat.com>
37496 * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
37499 2001-12-12 Robert Dewar <dewar@gnat.com>
37501 * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
37503 2001-12-12 Emmanuel Briot <briot@gnat.com>
37505 * g-regexp.adb: Remove all debug code, since it isn't required anymore,
37506 and it adds dependencies to system.io.
37508 2001-12-12 Pascal Obry <obry@gnat.com>
37510 * g-dirope.adb (Expand_Path.Var): Correctly detect end of
37513 2001-12-11 Ed Schonberg <schonber@gnat.com>
37515 * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
37516 that is the parent of other generics, the instance body replaces the
37517 instance node. Retrieve the instance of the spec, which is the one
37518 that is visible in clients and within the body.
37520 2001-12-11 Vincent Celier <celier@gnat.com>
37522 * gnatmain.adb: Initial version.
37524 * gnatmain.ads: Initial version.
37526 * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
37528 * snames.adb: Updated to match snames.ads.
37530 * snames.ads: Added Gnatstub.
37532 2001-12-11 Vincent Celier <celier@gnat.com>
37534 * prj-attr.adb (Initialization_Data): Change name from
37535 Initialisation_Data.
37537 2001-12-11 Emmanuel Briot <briot@gnat.com>
37539 * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
37540 + and * applied to backslashed expressions like \r.
37542 2001-12-11 Vasiliy Fofanov <fofanov@gnat.com>
37544 * g-os_lib.ads: String_List type added, Argument_List type is now
37545 subtype of String_List.
37547 2001-12-11 Robert Dewar <dewar@gnat.com>
37549 * g-os_lib.ads: Change copyright to FSF
37550 Add comments for String_List type
37552 2001-12-11 Vincent Celier <celier@gnat.com>
37554 * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
37555 string to the buffer).
37557 2001-12-11 Ed Schonberg <schonber@gnat.com>
37559 * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
37562 * sem_attr.adb: Simplify previous fix for Address.
37563 (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
37564 to avoid anomalies where the bound of the type appears to raise
37567 2001-12-11 Robert Dewar <dewar@gnat.com>
37569 * lib-xref.adb (Output_Refs): Make sure pointers are always properly
37572 2001-12-11 Ed Schonber <schonber@gnat.com>
37574 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
37575 renamed unit before checking for recursive instantiations.
37577 2001-12-11 Emmanuel Briot <briot@gnat.com>
37579 * prj.ads: Add comments for some of the fields.
37581 2001-12-11 Robert Dewar <dewar@gnat.com>
37583 * lib-xref.adb (Output_Refs): Don't output type references outside
37584 the main unit if they are not otherwise referenced.
37586 2001-12-11 Ed Schonberg <schonber@gnat.com>
37588 * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
37589 code and diagnose additional illegal uses
37591 * sem_util.adb (Is_Object_Reference): An indexed component is an
37592 object only if the prefix is.
37594 2001-12-11 Vincent Celier <celier@gnat.com>
37596 * g-diopit.adb: Initial version.
37598 * g-diopit.ads: Initial version.
37601 (Expand_Path): Avoid use of Unbounded_String
37602 (Find, Wildcard_Iterator): Moved to child package Iteration
37604 * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
37606 2001-12-11 Robert Dewar <dewar@gnat.com>
37608 * sem_attr.adb: Minor reformatting
37610 2001-12-11 Ed Schonberg <schonber@gnat.com>
37612 * sem_ch3.adb: Clarify some ???.
37614 2001-12-11 Robert Dewar <dewar@gnat.com>
37616 * exp_util.adb (Must_Be_Aligned): Removed, replaced by
37617 Exp_Pakd.Known_Aligned_Enough
37619 * sem_ch13.adb (Check_Address_Alignment): Removed, extended
37620 version is moved to Exp_Ch13.
37622 2001-12-11 Robert Dewar <dewar@gnat.com>
37624 * einfo.ads: Minor reformatting
37626 * exp_ch5.adb: Add comment for previous.change
37628 * ali.adb: New interface for extended typeref stuff.
37630 * ali.ads: New interface for typeref stuff.
37632 * checks.adb (Apply_Alignment_Check): New procedure.
37634 * debug.adb: Add -gnatdM for modified ALI output
37636 * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
37638 * lib-xref.adb: Extend generation of <..> notation to cover
37639 subtype/object types. Note that this is a complete rewrite,
37640 getting rid of the very nasty quadratic algorithm previously
37641 used for derived type output.
37643 * lib-xref.ads: Extend description of <..> notation to cover
37644 subtype/object types. Uses {..} for these other cases.
37645 Also use (..) for pointer types.
37647 * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
37649 * exp_pakd.adb: Minor reformatting. Note that prevous RH should say:
37650 (Known_Aligned_Enough): Replaces Must_Be_Aligned.
37652 2001-12-11 Vincent Celier <celier@gnat.com>
37655 Changed /COMPILE_ONLY to /ACTIONS=COMPILE
37656 Changed /BIND_ONLY to /ACTIONS=BIND
37657 Changed /LINK_ONLY to /ACTIONS=LINK
37659 2001-12-11 Ed Schonberg <schonber@gnat.com>
37661 * sem_ch8.adb (Find_Selected_Component): improved search for a
37662 candidate package in case of error.
37664 * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
37665 chain back on scope stack before reinstalling use clauses.
37667 * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
37668 is enabled, do not kill the code for the condition, to preserve
37671 2001-12-11 Robert Dewar <dewar@gnat.com>
37673 * checks.adb (Insert_Valid_Check): Apply validity check to expression
37674 of conversion, not to result of conversion.
37676 2001-12-11 Ed Schonberg <schonber@gnat.com>
37678 * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
37679 before freezing parent. If the declarations are mutually recursive,
37680 an access to the current record type may be frozen before the
37681 derivation is complete.
37683 2001-12-05 Vincent Celier <celier@gnat.com>
37685 * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
37686 -c /COMPILE_ONLY, -l /LINK_ONLY
37689 (Bind_Only): New Flag
37690 (Link_Only): New flag
37692 * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
37695 * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
37698 (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
37699 (Gnatmake): Set the step flags. Only perform a step if the
37700 corresponding step flag is True.
37701 (Scan_Make_Arg): Reset the bind and link step flags when -u
37702 or -gnatc has been specified.
37704 2001-12-05 Ed Schonberg <schonber@gnat.com>
37706 * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
37707 get bounds from right operand.
37709 * sem_eval.adb: Minor reformatting
37711 * exp_util.adb (Make_Literal_Range): use bound of literal rather
37712 than Index'First, its lower bound may be different from 1.
37714 * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
37717 2001-12-05 Vincent Celier <celier@gnat.com>
37719 * prj-nmsc.adb Minor reformatting
37721 * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
37722 set and libraries are not supported.
37724 2001-12-05 Ed Schonberg <schonber@gnat.com>
37726 * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
37727 private view explicitly, so the back-end can treat as a global
37730 2001-12-05 Ed Schonberg <schonber@gnat.com>
37732 * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
37733 unit, always replace instance node with new body, for ASIS use.
37735 2001-12-05 Vincent Celier <celier@gnat.com>
37737 * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
37738 libraries are not supported and both attributes Library_Name and
37739 Library_Dir are specified.
37741 * prj-proc.adb (Expression): Set location of Result to location of
37744 * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
37745 (prj-nmsc is now importing MLib.Tgt)
37747 * prj-proc.adb: Put the change indicated above that was forgotten.
37749 2001-12-05 Robert Dewar <dewar@gnat.com>
37751 * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
37753 2001-12-05 Ed Schonberg <schonber@gnat.com>
37755 * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
37756 constraint, introduce explicit subtype declaration and derive from it.
37758 * sem_ch3.adb: Minor reformatting
37760 2001-12-05 Robert Dewar <dewar@gnat.com>
37762 * checks.adb (Determine_Range): Increase cache size for checks.
37765 * exp_ch6.adb: Minor reformatting
37766 (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
37767 a parameter whose root type is System.Address, since treating such
37768 subprograms as pure in the code generator is almost surely a mistake
37769 that will lead to unexpected results.
37771 * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
37772 change handling of conversions.
37774 * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
37776 2001-12-05 Ed Schonberg <schonber@gnat.com>
37778 * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
37779 aggregate with static wrong size, attach generated Raise node to
37782 2001-12-05 Robert Dewar <dewar@gnat.com>
37784 * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
37785 Fixes compilation abandoned bomb in B24009B.
37787 2001-12-05 Ed Schonberg <schonber@gnat.com>
37790 Document use of Associated_Node on Selected_Components.
37791 (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
37792 to clarify use of untyped descendant fields.
37794 2001-12-05 Robert Dewar <dewar@gnat.com>
37796 * prj-dect.ads: Add ??? comment
37797 Add 2001 to copyright notice (was not done in after all)
37799 * prj-part.adb: Minor reformatting. Reword one awkward error message.
37801 * prj.ads: Minor reformatting throughout, and add some ??? comments
37803 * snames.ads: Minor reformatting
37805 2001-12-05 Geert Bosch <bosch@gnat.com>
37807 * snames.adb: Autoupdate
37809 2001-12-05 Vincent Celier <celier@gnat.com>
37811 * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
37813 * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
37815 * prj-env.adb: Minor comment changes (modifying -> extends).
37817 * prj-nmsc.adb: Minor comment changes (modifying -> extends).
37819 * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
37822 * prj.adb (Initialize): Change Modifying to Extends.
37824 * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
37826 * prj.ads: Minor comment change (Modifying -> extending).
37828 * snames.ads: Change modifying to extends.
37830 2001-12-05 Robert Dewar <dewar@gnat.com>
37832 * sem_warn.adb: Remove stuff for conditionals, we are not going to
37835 * sem_warn.ads: Remove stuff for conditionals, we are not going to
37836 do this after all. Add 2001 to copyright notice
37838 2001-12-04 Geert Bosch <bosch@gnat.com>
37840 * einfo.h, sinfo.h, treeprs.ads: Regenerate.
37842 2001-12-04 Robert Dewar <dewar@gnat.com>
37844 * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
37845 location if we already have errors. Stops some cases of cascaded
37848 * errout.adb: Improve comment.
37850 2001-12-04 Robert Dewar <dewar@gnat.com>
37853 (Analyze_Formal_Type_Definition): Defend against Error.
37854 (Analyze_Formal_Subprogram): Defend against Error.
37856 * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
37857 remove following semicolon if present. Removes cascaded error.
37859 2001-12-04 Douglas B. Rupp <rupp@gnat.com>
37862 (Gen_Exception_Table_Ada): Write "begin" and then return if Num
37863 exceptions equals 0.
37864 (Gen_Exception_Table_C): Return if Num exceptions equals 0.
37865 Fixes PIWG E tests (which have to be run with -gnatL).
37867 2001-12-04 Robert Dewar <dewar@gnat.com>
37869 * einfo.ads: Minor reformatting
37871 2001-12-04 Ed Schonberg <schonber@gnat.com>
37873 * einfo.ads: Block_Node points to the identifier of the block, not to
37874 the block node itself, to preserve the link when the block is
37875 rewritten, e.g. within an if-statement with a static condition.
37877 * inline.adb (Cleanup_Scopes): recover block statement from block
37878 entity using new meaning of Block_Node.
37880 * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
37881 identifier of block node, rather than to node itself.
37883 2001-12-04 Gary Dismukes <dismukes@gnat.com>
37886 (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
37887 (Discrimify): Go back to setting the Etypes of the selected component
37888 because the Vname component does not exist at this point and will
37889 fail name resolution. Also set Analyzed.
37890 Remove with and use of Sem_Res.
37892 2001-12-04 Arnaud Charlet <charlet@gnat.com>
37894 * Makefile.in: (HIE_SOURCES): add s-fat*.
37896 2001-12-04 Robert Dewar <dewar@gnat.com>
37899 (Compile_Time_Known_Attribute): New procedure.
37900 (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
37901 proper range check.
37903 2001-12-04 Ed Schonberg <schonber@gnat.com>
37905 * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
37906 processing discriminants to diagnose illegal default values.
37908 2001-12-04 Ed Schonberg <schonber@gnat.com>
37910 * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
37911 access discriminant within a type extension that constrains its
37912 parent discriminants.
37914 2001-12-04 Ed Schonberg <schonber@gnat.com>
37916 * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
37917 is malformed, use instance of Any_Id to allow analysis to proceed.
37919 * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
37920 type definition is illegal.
37921 (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
37924 2001-12-04 Ed Schonberg <schonber@gnat.com>
37926 * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
37929 2001-12-04 Robert Dewar <dewar@gnat.com>
37931 * errout.adb: Minor reformatting
37933 2001-12-04 Robert Dewar <dewar@gnat.com>
37935 * exp_util.adb: Minor reformatting from last change
37937 * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
37938 which is a rewriting of an expression, traverse the original
37939 expression to remove warnings that may have been posted on it.
37941 2001-12-04 Ed Schonberg <schonber@gnat.com>
37943 * exp_util.adb (Must_Be_Aligned): Return false for a component of a
37944 record that has other packed components.
37946 2001-12-04 Douglass B. Rupp <rupp@gnat.com>
37948 * adaint.c: Minor cleanups.
37950 2001-12-04 Douglass B. Rupp <rupp@gnat.com>
37952 * adaint.c: Do not use utime.h on vxworks.
37954 2001-12-04 Arnaud Charlet <charlet@gnat.com>
37956 * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
37957 more confusion than it solves.
37959 2001-12-04 Geert bosch <bosch@gnat.com>
37961 * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
37963 2001-12-04 Geert Bosch <bosch@gnat.com>
37965 * Makefile.in (update-sources): New target.
37966 For use by gcc_release script.
37968 2001-12-04 Ed Schonberg <schonber@gnat.com>
37970 * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
37971 a configuration pragma, it is now legal wherever a pragma can appear.
37973 2001-12-04 Zack Weinberg <zack@codesourcery.com>
37975 * Makefile.in: Don't set ALL. Delete @cross_defines@,
37976 @cross_overrides@, @build_overrides@ stanzas. INTERNAL_CFLAGS
37977 is now @CROSS@ -DIN_GCC; update comment.
37979 2001-12-04 Robert Dewar <dewar@gnat.com>
37981 * einfo.adb (Has_Pragma_Pure_Function): New flag.
37982 Fix problem that stopped ceinfo from working
37984 * einfo.ads (Has_Pragma_Pure_Function): New flag.
37986 * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
37988 2001-12-04 Douglas B. Rupp <rupp@gnat.com>
37991 (File_Time_Stamp): New procedure.
37992 (Preserve_Mode): New boolean.
37993 (Write_Unit): Pass time stamp.
37994 Implement -p switch (preserve time stamps).
37996 * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
37998 * gnatchop.adb: Do usage info for -p switch
38000 * adaint.h (__gnat_set_file_time_name): New function
38002 * adaint.c (__gnat_set_file_time_name): Implement
38004 * adaint.h: Fix typo
38006 2001-12-03 Robert Dewar <dewar@gnat.com>
38008 * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
38009 have Associated_Node.
38011 2001-12-03 Robert Dewar <dewar@gnat.com>
38013 * prj-proc.adb: Minor reformatting
38015 * make.adb: Minor reformatting
38017 2001-12-03 Geert Bosch <bosch@gnat.com>
38019 * make.adb: Minor reformatting.
38021 2001-12-03 Robert Dewar <dewar@gnat.com>
38023 * sem_ch12.adb: Minor reformatting
38025 2001-12-03 Ed Schonberg <schonber@gnat.com>
38027 * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
38028 push Standard on the stack before analyzing the instance body,
38029 in order to have a clean visibility environment.
38031 * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
38033 2001-12-03 Ed Schonberg <schonber@gnat.com>
38035 * sem_ch12.adb (Instantiate_Package_Body): Protect against double
38036 instantiation of a body that contains an inlined body.
38038 2001-12-03 Ed Schonberg <schonber@gnat.com>
38041 (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
38042 to prevent freezing within formal packages.
38043 (Freeze_Subprogram_Body): If body comes from another instance that
38044 appeared before its own body, place freeze node at end of current
38045 declarative part, to prevent a back-end crash.
38046 (Inline_Instance_Body): Handle properly a package instance within
38047 a subprogram instance that is a child unit.
38049 2001-12-01 Graham Stott <grahams@redhat.com>
38051 * Makefile.in (misc.o): Add missing $(srcdir) prefix
38052 and add optabs.h dependency.
38054 * misc.c: Include optabs.h
38055 (gnat_tree_code_type): Make static and const.
38056 (gnat_tree_code_length): Likewise.
38057 (gnat_tree_code_name): Likewise.
38058 (update_setjmp_buf): Obtain operands mode from insn_data.
38060 2001-11-29 Richard Henderson <rth@redhat.com>
38062 * init.c: Remove obsolete dwarf2 frame.h section.
38064 2001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
38066 * Make-lang.in (ada.generated-manpages): New dummy target.
38068 2001-11-29 Ed Schonberg <schonber@gnat.com>
38070 * g-os_lib.adb (Add_To_Command): use explicit loop to move string
38071 into Command, an array conversion is illegal here. Uncovered by
38074 2001-11-28 Geert Bosch <bosch@gnat.com>
38076 * init.c: Minor whitespace changes.
38078 2001-11-28 Doug Rupp <rupp@gnat.com>
38080 * init.c: (__gnat_install_handler,VMS): Increase size of alternate
38083 2001-11-28 Zack Weinberg <zack@codesourcery.com>
38085 * misc.c (gnat_expand_constant): Move declaration above
38086 definition of lang_hooks.
38087 (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
38088 (gnat_init): lang_expand_constant no longer exists.
38090 (internal_error_function): Remove #ifdef HAVE_VPRINTF. We
38091 always have vprintf.
38092 (gnat_init): Always call set_internal_error_function.
38094 2001-11-27 Andreas Jaeger <aj@suse.de>
38096 * Makefile.in (stamp-tool_src_dir): Use symbolic link.
38098 2001-11-27 Laurent Guerby <guerby@acm.org>
38100 * Makefile.in: Regenerate Ada dependencies.
38102 2001-11-26 Richard Henderson <rth@redhat.com>
38104 * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
38105 gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
38106 gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
38108 2001-11-25 Laurent Guerby <guerby@acm.org>
38110 * sysdep.c (rts_get_*): Fix style.
38112 2001-11-19 Laurent Guerby <guerby@acm.org>
38114 * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
38115 since it is of no apparent use and cause warnings.
38117 2001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
38119 * misc.c (gnat_decode_option, gnat_init_options): Make definitions
38121 (gnat_init): Don't return NULL.
38122 (finish_parse): Remove.
38124 2001-11-17 Laurent Guerby <guerby@acm.org>
38126 * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
38127 * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
38128 * io-aux.c: Provide K&R prototypes to all functions, reformat code.
38129 * lang-spec.h: Add missing struct field to silence warnings.
38130 * sysdep.c (rts_get_*): Provide K&R prototype.
38131 * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
38132 * traceback.c (Unlock_Task, Lock_Task): Likewise.
38133 * tracebak.c (__gnat_backtrace): Remove unused variable.
38134 * utils.c (end_subprog_body): Move to K&R style.
38136 Thu Nov 15 18:16:17 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
38138 * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
38140 2001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
38142 * misc.c (gnat_init): Change prototype. Include the
38143 functionality of the old init_parse and init_decl_processing.
38144 (gnat_init_decl_processing): New prototype.
38145 (init_parse): Remove.
38146 * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
38148 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
38150 * misc.c (gnat_print_decl, gnat_print_type): Renamed.
38151 (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
38152 (print_lang_statistics, lang_print_xnode, print_lang_identifier,
38153 set_yydebug): Remove.
38155 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
38157 * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
38158 (struct lang_hooks): Constify.
38159 (language_string, lang_identify): Remove.
38160 * utils.c (init_decl_processing): Update.
38162 2001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
38164 * misc.c: Include langhooks-def.h.
38165 * Makefile.in: Update.
38167 2001-10-30 Robert Dewar <dewar@gnat.com>
38170 (Check_Identifier): Rewrite circuit to be compatible with use of letters
38171 in the upper half of ASCII.
38172 (Check_Identifier): Minor reformatting
38174 2001-10-30 Geert Bosch <bosch@gnat.com>
38176 * (Associated_Node, Set_Associated_Node): Do not check for
38179 2001-10-30 Robert Dewar <dewar@gnat.com>
38181 * a-reatim.ads: Minor reformatting
38183 2001-10-30 Robert Dewar <dewar@gnat.com>
38185 * gnatdll.adb: Minor reformatting throughout. Many ??? added for
38186 undocumented declarations.
38188 2001-10-30 Pascal Obry <obry@gnat.com>
38190 * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
38191 to the binder and linker.
38194 * mdll.ads: Fix layout. Update copyright notice.
38196 * mdll.adb: Fix layout. Update copyright notice.
38198 2001-10-30 Robert Dewar <dewar@gnat.com>
38200 * usage.adb: Minor fix to output for -gnaty.
38202 2001-10-30 Ed Schonberg <schonber@gnat.com>
38204 * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
38205 to accommodate all its possible values.
38207 * a-reatim.adb (Split): Special-case handling of Time_Span_First
38208 and of small absolute values of T.
38210 2001-10-30 Richard Kenner <kenner@gnat.com>
38212 * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
38213 set_mem_attributes since not needed and wrong if RESULT if a REG;
38214 fixes ACATS failures.
38216 2001-10-30 Geert Bosch <bosch@gnat.com>
38218 * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
38219 s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
38221 2001-10-30 Robert Dewar <dewar@gnat.com>
38223 * bindusg.adb: Undocument -f switch.
38225 * gnatcmd.adb: Remove /FULL_ELABORATION.
38227 * opt.ads (Force_RM_Elaboration_Order): Document that this is
38230 * gnatbind.adb: Output new warning for use of obsolescent -f switch.
38232 * gnatbind.adb: Minor update of warning msg.
38234 2001-10-30 Vincent Celier <celier@gnat.com>
38236 * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
38237 for project file switches (-P (/PROJECT_FILE=),
38238 -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
38241 2001-10-30 Geert Bosch <bosch@gnat.com>
38243 * decl.c: Minor whitespace fixes.
38245 2001-10-30 Richard Kenner <kenner@gnat.com>
38247 * utils2.c (build_allocator): Test for SIZE overflow in array case too
38249 2001-10-30 Geert Bosch <bosch@gnat.com>
38251 * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
38252 Found due to GCC 3.0 warning of using uninitialized value.
38255 (Get_Max_Size): Use variant record for tracking value/expression.
38256 Makes logic clearer and prevents warnings for uninitialized variables.
38257 (Layout_Array_Type): Use variant record for tracking value/expression.
38258 Makes logic clearer and prevents warnings for uninitialized variables.
38260 2001-10-30 Robert Dewar <dewar@gnat.com>
38262 * lib.adb: Minor reformatting
38264 * s-taprop.ads: Minor reformatting
38266 2001-10-29 Laurent Guerby <guerby@acm.org>
38269 (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
38271 (_gnat_error_handler): Make MSG const.
38273 2001-10-29 Richard Kenner <kenner@gnat.com>
38275 * sysdep.c: Fix localtime_r problem on LynxOS.
38276 Also remove #elif to avoid warnings.
38278 * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
38281 * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
38283 2001-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
38285 * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
38286 exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
38287 g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
38288 g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
38289 layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
38290 s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
38291 sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
38292 sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
38293 sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
38294 types.ads, urealp.adb: Fix spelling errors.
38296 2001-10-27 Laurent Guerby <guerby@acm.org>
38298 * trans.c (gigi): Fix non determinism leading to bootstrap
38299 comparison failures for debugging information.
38301 2001-10-26 Florian Weimer <fw@deneb.enyo.de>
38303 * gnat_rm.texi: Use @./@: where appropriate.
38305 2001-10-26 Robert Dewar <dewar@gnat.com>
38307 * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
38309 2001-10-26 Richard Kenner <kenner@gnat.com>
38311 * gmem.c (__gnat_gmem_read_next): Properly check for EOF
38313 2001-10-26 Richard Kenner <kenner@gnat.com>
38315 * decl.c (validate_size): Modify message for bad size to avoid
38316 implication that compiler is modifying the size.
38318 2001-10-26 Robert Dewar <dewar@gnat.com>
38320 * prj-util.adb: Minor reformatting. Fix bad header format.
38322 2001-10-26 Robert Dewar <dewar@gnat.com>
38324 * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
38326 * sinfo.ads: Clarify use of Associated_Node (documentation only).
38328 * sem_ch12.adb: Change Node4 to Associated_Node. Change
38329 Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
38330 much more narrowly in places where needed. These are cleanups.
38332 2001-10-26 Joel Brobecker <brobecke@gnat.com>
38334 * 5zosinte.ads (null_pthread): new constant.
38337 (Initialize_TCB): Initialize thread ID to null, to be able to verify
38338 later that this field has been set.
38339 (Finalize_TCB): ditto.
38340 (Suspend_Task): Verify that the thread ID is not null before using it.
38341 (Resume_Task): ditto.
38344 (Resume_All_Tasks): Lock the tasks list before using it.
38345 (Suspend_All_Tasks): ditto.
38347 2001-10-26 Richard Kenner <kenner@gnat.com>
38349 * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
38350 Make constant variant of designated type for Is_Access_Constant.
38351 Call update_pointer_to with main variant.
38353 * trans.c (process_freeze_entity, process_type):
38354 Call update_pointer_to on main variant.
38356 * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
38357 If main variant, update all other variants.
38359 * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
38362 2001-10-26 Robert Dewar <dewar@gnat.com>
38364 * prj-util.adb: Minor reformatting
38366 2001-10-26 Robert Dewar <dewar@gnat.com>
38368 * prj-util.adb: Minor reformatting
38370 2001-10-26 Robert Dewar <dewar@gnat.com>
38372 * prj-attr.adb: Minor reformatting throughout
38374 2001-10-26 Robert Dewar <dewar@gnat.com>
38376 * prj-attr.ads: Minor reformatting
38377 Add ??? comment (this whole spec has almost no comments)
38379 2001-10-26 Vincent Celier <celier@gnat.com>
38381 * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
38382 ("//") that precede the drive letter on Interix.
38384 2001-10-26 Geert Bosch <bosch@gnat.com>
38386 * gnat_rm.texi: Add GNAT Reference Manual.
38388 2001-10-25 Robert Dewar <dewar@gnat.com>
38390 * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
38391 is Error. Similar change for other renaming cases.
38393 2001-10-25 Robert Dewar <dewar@gnat.com>
38395 * s-atacco.ads: Add pragma Inline_Always for functions.
38396 Fix header format. Add copyright 2001
38398 2001-10-25 Ed Schonberg <schonber@gnat.com>
38400 * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
38401 return Error rather than Empty so that analysis can proceed.
38403 2001-10-25 Ed Schonberg <schonber@gnat.com>
38405 * sem_util.adb (Enter_Name): better handling of cascaded error
38406 messages when a unit appears in its own context.
38408 2001-10-25 Ed Schonberg <schonber@gnat.com>
38410 * sem_util.adb (Defining_Entity): in case of error, attach created
38411 entity to specification, so that semantic analysis can proceed.
38413 2001-10-25 Robert Dewar <dewar@gnat.com>
38416 (Defining_Entity): Deal with Error.
38417 (Process_End_Label): Deal with bad end label for.
38419 2001-10-25 Ed Schonberg <schonber@gnat.com>
38421 * sem_elab.adb (Check_A_Call): refine message when call is in an
38422 instance but callee is not declared in the generic unit.
38424 2001-10-25 Ed Schonberg <schonber@gnat.com>
38426 * sem_elab.adb (Check_A_Call): check for renaming before finding the
38427 enclosing unit, which may already be different from the calling unit.
38429 2001-10-25 Geert Bosch <bosch@gnat.com>
38431 * 4gintnam.ads: fix header format.
38433 2001-10-25 Ed Schonberg <schonber@gnat.com>
38435 * sem_res.adb (Resolve_Call): if the call is actually an indexing
38436 operation on the result of a parameterless call, perform elaboration
38437 check after the node has been properly rewritten.
38439 * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
38440 inlined within the generic tree, the defining identifier is not a
38443 2001-10-25 Ed Schonberg <schonber@gnat.com>
38445 * sem_res.adb (Resolve): special-case resolution of Null in an
38446 instance or an inlined body to avoid view conflicts.
38448 * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
38449 compatibility by retrieving the access type of the generic copy.
38451 2001-10-25 Robert Dewar <dewar@gnat.com>
38454 (Analyze_Number_Declaration): Handle error expression.
38455 (Signed_Integer_Type_Declaration): Handle error bound.
38456 (Analyze_Subtype_Indication): Handle error range.
38458 * sem_util.adb (Get_Index_Bounds): Check for Error.
38460 2001-10-25 Robert Dewar <dewar@gnat.com>
38462 * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
38463 in no run time mode.
38465 2001-10-25 Pascal Obry <obry@gnat.com>
38467 * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
38468 mode case for ALLOC case.
38470 * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
38471 all platforms. Improvement of last change.
38473 2001-10-25 Robert Dewar <dewar@gnat.com>
38475 * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
38477 2001-10-25 Geert Bosch <bosch@gnat.com>
38479 * osint.adb (Is_Relative): Remove duplicate.
38481 2001-10-25 Pascal Obry <obry@gnat.com>
38483 * osint.adb (Read_Default_Search_Dirs): correctly detect relative
38484 pathnames in UNIX and DOS style with drive letter.
38485 (Is_Relative): new routine.
38487 * osint.adb: Minor reformatting
38489 * osint.adb (Is_Relative): implementation using
38490 GNAT.OS_Lib.Is_Absolute_Path. Better fix.
38492 2001-10-25 Pascal Obry <obry@gnat.com>
38494 * g-dirope.adb (Basename): correctly compute offset between the
38495 original Path and the translated one.
38497 * g-dirope.adb: (Base_Name): add some comments.
38499 2001-10-25 Robert Dewar <dewar@gnat.com>
38501 * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
38502 in HIE mode, avoids compilation abandoned message
38504 * exp_imgv.adb: Correct typo in previous change
38506 * exp_imgv.adb: Correct typo in previous change (not my day!)
38508 2001-10-25 Robert Dewar <dewar@gnat.com>
38510 * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
38512 2001-10-25 Pascal Obry <obry@gnat.com>
38514 * g-awk.ads: Move all pragma inlines next to the routine
38515 declarations. This is more uniform with other GNAT spec.
38517 2001-10-22 Geert Bosch <bosch@gnat.com>
38519 * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
38521 2001-10-19 Geert Bosch <bosch@gnat.com>
38523 * Makefile.in (tools, gnattools): Remove gnatmem.
38525 2001-10-17 Richard Henderson <rth@redhat.com>
38527 * Makefile.in (misc.o): Depend on langhooks.h.
38528 * misc.c: Include it.
38529 (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
38530 (LANG_HOOKS_DECODE_OPTION): New.
38531 (lang_hooks): Use LANG_HOOKS_INITIALIZER.
38533 2001-10-16 Florian Weimer <fw@deneb.enyo.de>
38535 * trans.c (tree_transform): Adjust to recent change in
38536 expand_asm_operands to implement named asm operands.
38538 2001-10-11 Ed Schonberg <schonber@gnat.com>
38540 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
38541 renaming of discriminant for mutable record type.
38543 2001-10-11 Robert Dewar <dewar@gnat.com>
38545 * validsw.adb: Properly save -gnatVn status.
38547 2001-10-11 Robert Dewar <dewar@gnat.com>
38549 * usage.adb: Add lines for V switch.
38551 * gnatcmd.adb (COMPILE): Revise translations for -gnatV
38552 (/VALIDITY_CHECKING).
38554 2001-10-11 Ed Schonberg <schonber@gnat.com>
38556 * sem_type.adb (Add_One_Interp): an operator for a type declared in
38557 an extension of System is known to be visible.
38559 2001-10-11 Ed Schonberg <schonber@gnat.com>
38561 * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
38562 properly. Fixes regression on ACATS C34005G.
38564 2001-10-11 Robert Dewar <dewar@gnat.com>
38566 * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
38567 loop in generic instance, since this is likely not very useful.
38569 2001-10-11 Robert Dewar <dewar@gnat.com>
38571 * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
38572 the error message for high integrity mode.
38574 * rtsfind.adb (RTE): Give message if we try to find an entity that
38575 is not available in high integrity mode.
38578 (OK_To_Use_In_HIE_Mode): New array.
38579 (RTE): May return Empty in high integrity mode.
38581 * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
38582 OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
38584 * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
38585 unit if not inlined always and in no runtime mode. Fixes problem
38586 caused by new Rtsfind changes.
38588 * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
38591 * rtsfind.adb (RTE): Make sure we do not try to load unit after
38592 giving message for entity not available in high integrity mode.
38594 2001-10-11 Pascal Obry <obry@gnat.com>
38596 * impunit.adb: Add GNAT.CRC32.
38598 2001-10-11 Ed Schonberg <schonber@gnat.com>
38600 * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
38601 properly the case where one universal operand in a non-static
38602 exponentiation of a real literal.
38604 2001-10-11 Ed Schonberg <schonber@gnat.com>
38606 * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
38607 clause, return the gobal finalization list, for lack of anthing else.
38609 2001-10-11 Ed Schonberg <schonber@gnat.com>
38611 * exp_ch7.adb (Make_Transient_Block): if statement is within
38612 exception handler, always use new transient scope to place Clean
38615 2001-10-11 Pascal Obry <obry@gnat.com>
38618 (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
38619 (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
38620 (GNATLS_RTL_OBJS): add g-crc32.o
38621 (GNATMAKE_RTL_OBJS): add g-crc32.o
38624 (CRC_Match): new function.
38625 (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
38626 instead of the previous simple checksum algorithm.
38627 (Time_Stamp_Mismatch): use CRC_Match for comparison.
38628 (Set_Source_Table): idem.
38631 (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
38632 instead of simple checksum.
38633 (CRC_Match): new function.
38634 (CRC_Error): new constant.
38636 * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
38637 a CRC now and not a simple checksum. A CRC uses lower-case hex
38638 letters, fixes ambiguity in parsing.
38640 * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
38641 is what this variable will store.
38643 * bcheck.adb: Change reference to chechsum in comments by CRC.
38644 (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
38645 rename All_Checksum_Match to All_CRC_Match. Change due to API
38646 renaming since now GNAT does not use a simple checksum but a
38647 CRC using GNAT.CRC32.
38649 * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
38650 now and not anymore a simple checksum.
38652 * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
38655 * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
38658 (Restore_Scan_State): rename Checksum to CRC.
38659 (Save_Scan_State): idem.
38663 (Checksum): rename to CRC.
38664 (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
38666 * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
38667 GNAT.CRC32). Update copyright notice.
38669 * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
38670 GNAT.CRC32). Update copyright notice.
38673 (Accumulate_Checksum): removed.
38674 (Update): new procedure. Add a wide-character into the CRC.
38677 (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
38678 (Load_File): fix initialization of S (change Source_Checksum to
38681 * sinput-p.adb (Load_Project_File): rename Source_Checksum to
38682 Source_CRC in S initialization.
38684 * sinput.adb (Source_Checksum): renamed to Source_CRC.
38686 * sinput.ads (Source_Checksum): renamed to Source_CRC.
38687 Update comments for the CRC.
38689 * types.adb (Hex): Use lowercase for the letter part.
38691 * types.ads (Get_Hex_String): Returns the hexadecimal representation
38692 for a word. This is currently used only for CRC. In previous version,
38693 the checksum was using a representation with all letter being
38694 upper-case. With the new implementation (using CRC) we do not remove
38695 the 32th bit of the CRC, so we can have an upper-case starting letter
38696 in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
38697 It is ambigous since the CRC was optional and could be followed by
38698 options like EB, EE. So now this routines uses lower-case letter for
38699 the hexadecimal representation. Strange enough only lower case letters
38700 where checked in Scan_ALI (even if this was not a possible case).
38702 * gnatvsn.ads (Library_Version): changed to 3.15a.
38704 * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
38707 * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
38710 * ali-util.adb: Redo previous change to avoid using word CRC everywhere
38711 Add 2001 to copyright notice
38712 (Accumulate_Checksum): Modify to use System.CRC32.
38714 * ali-util.ads: Redo changes of previous revision to continue to use
38715 the word Checksum. Add 2001 to copyright notice.
38717 * ali.adb: Undo some of previous changes, not needed.
38718 Keep the change for lower case letters in the checksum.
38720 * ali.ads: Undo previous change not needed.
38722 * bcheck.adb: Undo most of previous change, not needed.
38723 But do use Checksums_Match for checksum comparison.
38725 * gnatls.adb: Undo most of previous change, not needed.
38726 But do use Checksums_Match for comparing checksums.
38728 * lib-load.adb: Undo previous change, not needed.
38730 * lib-writ.adb: Undo previous change, not needed.
38732 * lib-writ.ads: Document that checksums use lower case,
38733 not upper case letters.
38735 * scans.adb: Undo previous change, not needed
38737 * scans.ads: Undo previous change, not needed.
38739 * scn-nlit.adb: Undo previous changes, not needed.
38741 * scn-slit.adb: Undo previous change, not needed. Fix header format.
38744 (Accumulate_Checksum): Use System.CRC32.
38745 (Initialize_Checksum): New procedure.
38746 Remove other changes of previous revision.
38748 * sinput-p.adb: Undo previous change, not needed.
38750 * sinput.adb: Undo previous change, not needed.
38752 * sinput-l.adb: Undo previous change, not needed.
38754 * sinput.ads: Undo previous change, not needed. Keep only comment
38755 on new checksum algorithm
38757 * Makefile.in: Add s-crc32 as needed, remove g-crc32.
38758 Also remove a-tags and a-stream from GNAT sources.
38760 * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
38762 * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
38764 2001-10-11 Geert Bosch <bosch@gnat.com>
38766 * einfo.h: Regenerate.
38768 * nmake.ads: Regenerate.
38770 * nmake.adb: Regenerate.
38772 * sinfo.h: Regenerate.
38774 * treeprs.adb: Regenerate.
38776 2001-10-10 Geert Bosch <bosch@gnat.com>
38778 * gnat-style.texi: New file describing coding guidelines for Ada.
38780 2001-10-10 Ed Schonberg <schonber@gnat.com>
38782 * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
38785 2001-10-10 Geert Bosch <bosch@gnat.com>
38787 * snames.ads: Add new names for project facility.
38789 * snames.adb: Update to reflect snames.ads changes.
38791 * snames.h: Update to reflect snames.ads changes.
38793 2001-10-10 Vincent Celier <celier@gnat.com>
38796 (Add_Switches): reflect the changes for the switches attributes
38797 Default_Switches indexed by the programming language,
38798 Switches indexed by the file name.
38799 (Collect_Arguments_And_Compile): Idem.
38800 Reflect the attribute name changes.
38803 (Initialisation_Data): Change the names of some packages and
38805 (Initialize): process case insensitive associative arrays.
38808 (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
38811 (Parse_Attribute_Declaration): For case insensitive associative
38812 arrays, set the index string to lower case.
38815 Reflect the changes of the project attributes.
38818 Replace Check_Naming_Scheme by Ada_Check and
38819 Language_Independent_Check.
38822 Replaced Check_Naming_Scheme by 2 procedures:
38823 Ada_Check and Language_Independent_Check.
38826 (Process_Declarative_Items): For case-insensitive associative
38827 arrays, set the index string to lower case.
38828 (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
38829 Prj.Nmsc.Check_Naming_Scheme.
38832 (Case_Insensitive): New function
38833 (Set_Case_Insensitive): New procedure
38836 (Case_Insensitive): New function
38837 (Set_Case_Insensitive): New procedure
38838 (Project_Node_Record): New flag Case_Insensitive.
38841 (Value_Of): new function to get the string value of a single
38842 string variable or attribute.
38845 (Value_Of): new function to get the string value of a single
38846 string variable or attribute.
38849 (Ada_Default_Spec_Suffix): New function
38850 (Ada_Default_Impl_Suffix): New function
38851 Change definitions of several constants to reflect
38852 new components of record types.
38855 (Naming_Data): Change several components to reflect new
38856 elements of naming schemes.
38857 (Project_Data): New flags Sources_Present and
38858 Language_Independent_Checked.
38859 (Ada_Default_Spec_Suffix): New function.
38860 (Ada_Default_Impl_Suffix): New function.
38863 Modification of predefined names for project manager: added
38864 Implementation, Specification_Exceptions, Implementation_Exceptions,
38865 Specification_Suffix, Implementation_Suffix, Separate_Suffix,
38866 Default_Switches, _Languages, Builder, Cross_Reference,
38867 Finder. Removed Body_Part, Specification_Append, Body_Append,
38868 Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
38871 * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
38874 * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
38875 not that it is Nil_Variable_Value.
38877 * prj.ads: Add ??? for uncommented declarations
38879 2001-10-10 Ed Schonberg <schonber@gnat.com>
38881 * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
38882 constant, do not indicate possible modification, so that gigi can
38883 treat it as a bona fide constant.
38885 2001-10-10 Robert Dewar <dewar@gnat.com>
38887 * sem_prag.adb: Add processing for pragma External.
38889 * snames.ads: Add entry for pragma External.
38891 * par-prag.adb: Add pragma External.
38893 * snames.adb: Updated to match snames.ads.
38895 2001-10-10 Ed Schonberg <schonber@gnat.com>
38897 * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
38898 a dynamic task if the allocator appears in an indexed assignment
38899 or selected component assignment.
38901 * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
38902 For a dynamic task in an assignment statement, use target of
38903 assignment to generate meaningful name.
38905 2001-10-10 Ed Schonberg <schonber@gnat.com>
38907 * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
38910 * einfo.ads: Body_Entity is also defined for generic package.
38911 Documentation change only
38913 * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
38914 others_choice for a discriminated component initialization,
38915 convert discriminant references into the corresponding discriminals.
38917 * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
38918 only if original type is private and expression has to be wrapped
38922 (Apply_Constraint_Check): Do not perform length check
38923 if expression is an aggregate with only an others_choice.
38924 (Length_N_Cond): two references to the same in_parameter
38925 (typically the discriminal in an init_proc) denote the same value.
38926 Two useful optimization uncovered by bugfixes above.
38928 2001-10-10 Robert Dewar <dewar@gnat.com>
38930 * xeinfo.adb: Change int to char in translation of enumeration types.
38931 This fixes a problem in the C representation of component alignment.
38932 Add 2001 to copyright notice
38934 2001-10-10 Richard Kenner <kenner@gnat.com>
38936 * decl.c: (validate_size): Do check size of object of integral type
38937 if it is a packed array type.
38939 2001-10-10 Richard Kenner <kenner@gnat.com>
38941 * decl.c: (gnat_to_gnu_entity, case object): Also materialize
38942 VAR_DECL for constant if not Is_Public but -O0.
38944 2001-10-10 Richard Kenner <kenner@gnat.com>
38946 * misc.c (struct lang_hooks): Add new initializer to match GCC change.
38948 2001-10-10 Geert Bosch <bosch@gnat.com>
38950 * xnmake.adb (XNmake): Fix handling of -s/-b options. No longer
38951 use '/' as switch character, allowing for absolute file names.
38953 2001-10-09 Joseph S. Myers <jsm28@cam.ac.uk>
38955 * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
38958 2001-10-08 Geert Bosch <bosch@gnat.com>
38960 * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
38961 Automatically build utilities when files need to be regenerated.
38963 2001-10-08 Geert Bosch <bosch@gnat.com>
38965 * xsnames.adb: New utility for updating snames.ads and snames.adb
38967 2001-10-08 Zack Weinberg <zack@codesourcery.com>
38969 * Make-lang.in (ADAFLAGS): Add -W -Wall.
38970 (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
38971 (gnat1): Also depend on attribs.o.
38972 (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
38973 * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
38974 (ADAC): Set to @ADAC@ in stage1, $(CC) later.
38975 (ADAFLAGS): Add -W -Wall.
38976 (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
38979 (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
38980 s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
38981 s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
38982 Use $(ADAC), not $(CC), as compilation command.
38984 (gnattools): Depend directly on tools to build, don't use
38986 (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
38988 * einfo.h, sinfo.h: New files (autogenerated).
38990 2001-10-08 Richard Henderson <rth@redhat.com>
38992 * comperr.adb (Abort_In_Progress): New.
38993 (Compiler_Abort): Use it to prevent recursion.
38995 2001-10-08 Robert Dewar <dewar@gnat.com>
38997 * atree.adb: Set Error_Posted in Error node, helps error recovery.
38999 * par-endh.adb (Output_End_Expected): We should also not test
39000 Error_Posted on the Error node, since now it is always set.
39002 * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
39003 to help error recovery. Part of general work on 9407-004.
39005 * par.adb: Add ??? for misuse of error
39008 (Resolve): Defend against Error, fixes 9407-003.
39009 (Resolve_Discrete_Subtype_Indication): Defend against Error.
39011 * sinfo.ads (N_Error): Now has Etype field (which will be set
39012 to Any_Type to help error recovery).
39014 2001-10-08 Richard Kenner <kenner@gnat.com>
39016 * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
39017 Consistently set MEM attributes from expression; fixes
39018 bootstrap failure on x86.
39020 2001-10-08 Geert Bosch <bosch@gnat.com>
39022 * 5oosinte.adb: Add 2001 to copyright notice.
39024 2001-10-08 Geert Bosch <bosch@gnat.com>
39026 * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
39028 * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
39030 2001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
39032 * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
39034 2001-10-05 Geert Bosch <bosch@gnat.com>
39036 * adaint.h: Small formatting fix.
39038 2001-10-04 Geert Bosch <bosch@gnat.com>
39040 * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
39041 Arg is int, not FILE *, in dummy version of functions.
39043 * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
39044 Arg is int, not FILE *.
39046 2001-10-04 Geert Bosch <bosch@gnat.com>
39048 * 3lsoccon.ads: Added file, missed with initial check ins.
39050 * 4lintnam.ads: Fix header format.
39051 Change Linux to GNU/Linux.
39053 * 5iosinte.adb: Change Linux to GNU/Linux.
39055 * 5iosinte.ads: Change Linux to GNU/Linux.
39057 * 5itaprop.adb: Change Linux to GNU/Linux.
39059 * 5itaspri.ads: Change Linux to GNU/Linux.
39060 Update copyright notice.
39062 * 5lintman.adb: Change Linux to GNU/Linux.
39064 * 5lml-tgt.adb: Change Linux to GNU/Linux.
39066 * 5losinte.ads: Change Linux to GNU/Linux.
39068 * 5lsystem.ads: Change Linux to GNU/Linux.
39070 * 5qosinte.adb: Change Linux to GNU/Linux.
39072 * 5qosinte.ads: Change Linux to GNU/Linux.
39074 * 5qparame.ads: Change Linux to GNU/Linux.
39076 * 5qtaprop.adb: Change Linux to GNU/Linux.
39078 * 5qtaspri.ads: Change Linux to GNU/Linux.
39079 Add 2001 to copyright notice.
39081 * 5vintman.ads: Change Linux to GNU/Linux.
39082 Fix header format. Add 2001 to copyright notice.
39084 * g-soccon.ads: Change Linux to GNU/Linux.
39086 * g-trasym.ads: Change Linux to GNU/Linux.
39087 Add 2001 to copyright notice.
39089 * memtrack.adb: Change Linux to GNU/Linux.
39091 * s-intman.ads: Change Linux to GNU/Linux.
39092 Add 2001 to copyright notice. Fix header format.
39094 * s-stache.adb: Change Linux to GNU/Linux.
39096 * adaint.c: Change Linux to GNU/Linux.
39098 * cio.c: Change Linux to GNU/Linux.
39100 * cstreams.c: Change Linux to GNU/Linux.
39102 * init.c: Change Linux to GNU/Linux.
39104 * gmem.c: Change Linux to GNU/Linux.
39106 * tracebak.c: Change Linux to GNU/Linux.
39109 2001-10-02 Geert Bosch <bosch@gnat.com>
39111 * misc.c (insert_default_attributes): Add dummy version.