]> gcc.gnu.org Git - gcc.git/blame - gcc/ada/ChangeLog
loop_address2.adb: New test.
[gcc.git] / gcc / ada / ChangeLog
CommitLineData
57f80aa9
RE
12008-04-14 Rolf Ebert <rolf.ebert.gcc@gmx.de>
2
3 PR ada/20822
4 * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
5 line endings even on non-Unix platforms.
6
9ff231e2
ST
72008-04-14 Samuel Tardieu <sam@rfc1149.net>
8
9 PR ada/35050
10 * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
11 renaming information.
12
92d4508a
ST
132008-04-13 Samuel Tardieu <sam@rfc1149.net>
14
15 PR ada/17985
16 * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
17 itself.
18
12a13f01
RW
192008-04-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20
3354f96d
RW
21 * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
22 sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
23 snames.ads, sprint.adb, stand.ads, stringt.ads,
24 styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
25 switch.ads, sysdep.c, table.adb, table.ads,
26 targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
27 trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
28 uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
29 vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
30 widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
31 xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
32 Fix comment typos.
33
f3d57416
RW
34 * sem_ch10.adb, sem_ch10.ads,
35 sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
36 sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
37 sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
38 sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
39 sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
40 sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
41 sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
42 sem_warn.ads: Fix comment typos.
43
12a13f01
RW
44 * s-secsta.adb, s-sequio.ads, s-shasto.ads,
45 s-soflin.ads, s-stalib.ads, s-stausa.adb,
46 s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
47 s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
48 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
49 s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
50 s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
51 s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
52 s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
53 s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
54 s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
55 s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
56 s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
57 s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
58 s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
59 scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
60 sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
61 sem_cat.adb, sem_cat.ads: Fix comment typos.
62
2b699ab1
JS
632008-04-12 Joel Sherrill <joel@oarcorp.com>
64
65 PR ada/35825
66 * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
67
1e273538
AC
682008-04-12 Arnaud Charlet <charlet@adacore.com>
69
70 * s-linux-hppa.ads: Fix syntax errors.
71
276e95ca
RW
722008-04-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
73
74 * gnat_ugn.texi: Fix typos.
75 * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
76 restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
77 s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
78 s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
79 s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
80 s-finimp.adb, s-finroo.ads, s-fishfl.ads,
81 s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
82 s-hibaen.ads, s-htable.ads, s-imgcha.adb,
83 s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
84 s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
85 s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
86 s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
87 s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
88 s-osinte-darwin.ads, s-osinte-freebsd.ads,
89 s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
90 s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
91 s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
92 s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
93 s-parame-hpux.ads, s-parame-vms-alpha.ads,
94 s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
95 s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
96 s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
97 s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
98 s-rident.ads: Fix comment typos.
99
ce4e59c4
ST
1002008-04-09 Samuel Tardieu <sam@rfc1149.net>
101
102 PR ada/28305
103 * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
104 environment if generic instance is a top-level one.
105
6d21c8af
DR
1062008-04-09 Doug Rupp <rupp@adacore.com>
107
108 * decl.c (validate_size): Set minimum size for fat pointers same as
109 access types. Code clean ups.
110
111 * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
112 (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
113
114 * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
115
116 * s-crtl.ads (malloc32) New function, alias for malloc
117 (realloc32) New function, alias for realloc
118
119 * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
120
121 * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
122 allocator size is 32 and default pointer size is 64.
123 (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
124 lhs type if smaller, whatever the modes.
125
126 * gigi.h (malloc32_decl): New macro definition
127
128 * utils.c (init_gigi_decls): New malloc32_decl
129 Various code clean ups.
130
131 * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
132 Task_Address vice System.Address.
133
134 * s-taspri-vms.ads: Import System.Aux_DEC
135 (Task_Address): New subtype of System.Aux_DEC.Short_Address
136 (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
137
138 * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
139 Task_Address vice System.Address.
140
141 * s-inmaop-vms.adb: Import System.Task_Primitives
142 (To_Address): Unchecked convert to Task_Address vice System.Address
143
144 * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
145 expires now.
146 (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
147 (To_Address) Unchecked convert to Task_Address vice System.Address
148
149 * s-tpopde-vms.adb: Remove unnecessary warning pragmas
150
151 * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
152
581edf92
EB
1532008-04-08 Eric Botcazou <ebotcazou@adacore.com>
154
155 * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
156 (fdesc_type_node): Define.
157 (null_fdesc_node): Likewise.
158 * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
159 uses descriptors for vtables and the type comes from a dispatch table,
160 return the descriptor type.
161 * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
162 uses descriptors for vtables and the type comes from a dispatch table,
163 build a descriptor in the static case and copy the existing one in the
164 non-static case.
165 (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
166 the type is a pointer-to-subprogram coming from a dispatch table,
167 return the null descriptor.
168 <N_Unchecked_Type_Conversion>: If the target uses descriptors for
169 vtables, the source type is the descriptor type and the target type
170 is a pointer type, first build the pointer.
171 * utils.c (init_gigi_decls): If the target uses descriptors for vtables
172 build the descriptor type and the null descriptor.
173
e1da2b17
EB
1742008-04-08 Eric Botcazou <ebotcazou@adacore.com>
175
176 * decl.c (prepend_attributes): Fix typo.
177 * trans.c (Pragma_to_gnu): Likewise.
178 * utils.c (gnat_genericize): Likewise.
179
2b3dffa6
EB
1802008-04-08 Eric Botcazou <ebotcazou@adacore.com>
181 Richard Kenner <kenner@adacore.com>
182
183 * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
184 * decl.c (gnat_to_gnu_entity): Adjust for above change.
185 <E_Record_Type>: Try to get a better form of the component for
186 packing, even if it has an integral mode.
187 <E_Record_Subtype>: Likewise.
188 * trans.c (gnat_to_gnu): Do not require BLKmode for the special
189 exception suppressing the final conversion between record types.
190
ba3f46d0
EB
1912008-04-08 Eric Botcazou <ebotcazou@adacore.com>
192
193 * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
194 alignment for space, promote the alignment of non-scalar variables with
195 no size and alignment.
196 * gigi.h (gnat_types_compatible_p): Declare.
197 * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
198 * trans.c (gnat_to_gnu): Revert revision 129339 change. Minor cleanup.
199 * utils.c (gnat_types_compatible_p) : New predicate.
200 (convert): Use it throughout to test for cases where a mere view
201 conversion is sufficient.
202 * utils2.c (build_binary_op): Minor tweaks.
203 (build_unary_op): Likewise.
204
373140ef
EB
2052008-04-08 Eric Botcazou <ebotcazou@adacore.com>
206
207 * decl.c (adjust_packed): Expand comment.
208
ea081ad7
AC
2092008-04-08 Arnaud Charlet <charlet@adacore.com>
210
211 * s-tasuti.ads: Use Task_Address instead of System.Address.
212
213 * makeutl.adb (Path_Or_File_Name): New function
214
215 * nlists.ads, itypes.ads: Update comments.
216
217 * s-crtl.ads (malloc32, realloc32): New functions.
218
219 * s-auxdec.ads (Short_Address_Size): New constant.
220
221 * a-taside.adb, s-tasdeb.adb: Use Task_Address.
222
223 * s-ststop.ads, s-ststop.adb: New file.
224
225 * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
226 Minor reformatting.
227
d563d3f0
AC
2282008-04-08 Pascal Obry <obry@adacore.com>
229
230 * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
231 (Stop_Bits_Number): New type.
232 (Parity_Check): Likewise.
233 (Set): Add parameter to set the number of stop bits and
234 the parity. Parameter timeout is now a duration instead
235 of a plain integer.
236
237 * g-sercom-linux.adb:
238 Implement the stop bits and parity support for GNU/Linux.
239 Fix handling of timeout, it must be given in tenth of seconds.
240
241 * g-sercom-mingw.adb:
242 Implement the stop bits and parity support for Windows.
243 Use new s-win32.ads unit instead of declaring Win32 services
244 directly into this body.
245 Update handling of timeout as now a duration.
246
247 * s-win32.ads, s-winext.ads: New files.
248
2492008-04-08 Eric Botcazou <ebotcazou@adacore.com>
250 Arnaud Charlet <charlet@adacore.com>
251
252 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
253
254 s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
255 s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
256
257 * s-osinte-lynxos-3.ads,
258 (Alternate_Stack): Remove when not needed. Simplify declaration
259 otherwise.
260 (Alternate_Stack_Size): New constant.
261
262 s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
263 'Unrestricted_Access.
264
265 * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
266 s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
267 s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
268 s-osinte-solaris.ads, s-osinte-vms.ads
269 (SA_ONSTACK): New constant.
270 (stack_t): New record type.
271 (sigaltstack): New imported function.
272 (Alternate_Stack): New imported variable.
273 (Alternate_Stack_Size): New constant.
274
275 * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
276
277 * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
ea081ad7
AC
278 s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
279 s-taspri-vms.ads (Task_Address): New subtype of System.Address
d563d3f0
AC
280 (Task_Address_Size): New constant size of System.Address
281 (Alternate_Stack_Size): New constant.
282
283 * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
284 (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
285 Establish the alternate stack if the platform makes use of n alternate
286 signal stack for stack overflows.
287 (Create_Task): Take into account the alternate stack in the stack size.
288 (Initialize): Save the address of the alternate stack into the ATCB for
289 the environment task.
290 (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
291
ea081ad7 292 * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
d563d3f0
AC
293
294 * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
295
296 * s-intman-posix.adb:
297 (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
298 alternate signal stack for stack overflows.
299
300 * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
301 x86-64, adjust the saved value of the stack pointer if the signal was
302 raised by a stack checking probe.
303 (HP-UX section): Use global __gnat_alternate_stack as signal handler
304 stack and only for SIGSEGV.
305 (Linux section): Likewise on x86 and x86-64.
306 [VxWorks section]
307 (__gnat_map_signal): Now static.
308 (__gnat_error_handler): Not static any more.
309 (__gnat_adjust_context_for_raise): New function. Signal context
310 adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
311 propagation circuitry.
312 (__gnat_error_handler): Second argument of a sigaction handler is a
313 pointer, not an int, and is unused.
314 Adjust signal context before mapping to exception.
315 Install signal handlers for LynxOS case.
316
317 * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
318 (Task_Id): Set size to Task_Address_Size
319 (To_Task_id): Unchecked convert from Task_Address vice System.Address
320 (To_Address): Unchecked convert to Task_Address vice System.Address
321
322 * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
323 address into the ATCB if the platform makes use of an alternate signal
324 stack for stack overflows.
325 (Free_Task): Add call to Finalize_Attributes_Link.
326 Add argument Relative_Deadline to pass the value specified for
327 the task. This is not yet used for any target.
328
329 * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
330 the value specified for the task.
331
3322008-04-08 Arnaud Charlet <charlet@adacore.com>
333
334 (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
335 (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
336 s-vxwext-rtp.adb): New files.
337
338 * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
339 Minor updates to accomodate changes above.
340
3412008-04-08 Pascal Obry <obry@adacore.com>
342
343 * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
344 s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
345 Use new s-win32.ads unit instead of declaration
346 from s-osinte-mingw.ads.
347
348 * s-osinte-mingw.ads:
349 Move all non tasking based interface to s-win32.ads.
350
351 * s-osprim-mingw.adb:
352 Remove duplicated declarations and use s-win32.ads
353 unit instead.
354
3552008-04-08 Vincent Celier <celier@adacore.com>
356 Arnaud Charlet <charlet@adacore.com>
357
358 * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
359 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
360 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
361 mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
362 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
363
364 * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
365 mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
366 mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
367 mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
368 mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
369 mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
370 mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
371 mlib-tgt-specific-mingw.adb: New names.
372
373 * Makefile.in:
374 On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
375 Get rid of gnatbl.
376 (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
377 Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
378 Minor updates for VMS
379
ea081ad7
AC
380 * gnatbl.c: Removed.
381
d563d3f0
AC
3822008-04-08 Thomas Quinot <quinot@adacore.com>
383
384 * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
385 g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
386 gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
387 a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
388 s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
389 ASCII.NUL throughout.
390
3912008-04-08 Arnaud Charlet <charlet@adacore.com>
392 Matthew Heaney <heaney@adacore.com>
393
394 * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
395 renaming.
396
397 * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
398 a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
399 to convention for non-RM specs.
400 Add descriptive header, and documented each operation
401 document each operation
402
4032008-04-08 Robert Dewar <dewar@adacore.com>
404 Bob Duff <duff@adacore.com>
405 Gary Dismukes <dismukes@adacore.com>
406 Ed Schonberg <schonberg@adacore.com>
407
408 * alloc.ads: Add entries for Obsolescent_Warnings table
409
410 * einfo.ads, einfo.adb: Minor reformatting.
411 (Is_Discriminal): New subprogram.
412 (Is_Prival): New subprogram.
413 (Is_Protected_Component): New subprogram.
414 (Is_Protected_Private): Removed.
415 (Object_Ref, Set_Object_Ref): Removed.
416 (Prival, Set_Prival): Change assertion.
417 (Privals_Chain, Set_Privals_Chain): Removed.
418 (Prival_Link, Set_Prival_Link): New subprogram.
419 (Protected_Operation, Set_Protected_Operation): Removed.
420 (Protection_Object, Set_Protection_Object): New subprogram.
421 (Write_Field17_Name): Remove case for Object_Ref.
422 (Write_Field20_Name): Add case for Prival_Link.
423 (Write_Field22_Name): Remove case for Protected_Operation,
424 Privals_Chain.
425 Add case for Protection_Object.
426 (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
427 so clients
428 (Overlays_Constant): New flag
429 (Is_Constant_Object): New predicate
430 (Is_Standard_Character_Type): New predicate
431 (Optimize_Alignment_Space): New flag
432 (Optimize_Alignment_Time): New flag
433 (Has_Postconditions): New flag
434 (Obsolescent_Warrning): Field removed
435 (Spec_PPC_List): New field
436 (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
437 subprograms to get and set the relative deadline associated to a task.
438
439 * exp_attr.adb (May_Be_External_Call): Account for the case where the
440 Access attribute is part of a named parameter association.
441 (Expand_Access_To_Protected_Op): Test for the attribute occurring
442 within an init proc and use that directly as the scope rather than
443 traversing up to the protected operation's enclosing scope. Only apply
444 assertion on Is_Open_Scopes in the case the scope traversal is done.
445 For the init proc case use the address of the first formal (_init) as
446 the protected object reference.
447 Implement Invalid_Value attribute
448 (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
449 contents of the dispatch table there is no need to duplicate the
450 itypes associated with record types (i.e. the implicit full view
451 of private types).
452 Implement Enum_Val attribute
453 (Expand_N_Attribute_Reference, case Old): Properly handle appearence
454 within _Postconditions procedure
455 (Expand_N_Attribute_Reference, case Result): Implement new attribute
456
457 * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
458 a return statement calls a function that is not available in
459 configurable runtime.
460 (Analyze_If_Statement): don't optimize simple True/False cases in -O0
461 (Expand_Non_Function_Return): Generate call to _Postconditions proc
462 (Expand_Simple_Function_Return): Ditto
463
464 * frontend.adb: Add call to Sem_Aux.Initialize
465
466 * sem_aux.ads, sem_aux.adb: New file.
467
468 * par-prag.adb: Add entries for pragmas Precondition/Postcondition
469 Add new Pragma_Relative_Deadline.
470 Add support for pragmas Check and Check_Policy
471
472 * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
473 (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
474 (Analyze_Attribute): In case of attributes 'Alignment and 'size add
475 missing check because they are not allowed in CPP tagged types.
476 Add Sure parameter to Note_Possible_Modification calls
477 Add implementation of Invalid_Value attribute
478 Implement new attribute Has_Tagged_Values
479 Implement Enum_Val attribute
480 (Analyze_Attribute, case Range): Set Name_Req True for prefix of
481 generated attributes.
482 (Analyze_Attribute, case Result): If prefix of the attribute is
483 overloaded, it always resolves to the enclosing function.
484 (Analyze_Attribute, case Result): Properly deal with analysis when
485 Postconditions are not active.
486 (Resolve_Attribute, case Result): Properly deal with appearence during
487 preanalysis in spec.
488 Add processing for attribute Result
489
490 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
491 for operators.
492 (Analyze_Subprogram_Body): Install private_with_clauses when the body
493 acts as a spec.
494 (Check_Inline_Pragma): recognize an inline pragma that appears within
495 the subprogram body to which it applies.
496 (Analyze_Function_Return): Check that type of the expression of a return
497 statement in a function with a class-wide result is not declared at a
498 deeper level than the function.
499 (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
500 (Verify_Overriding_Indicator): Handle properly subprogram bodies for
501 user- defined operators.
502 (Install_Formals): Moved to spec to allow use from Sem_Prag for
503 analysis of precondition/postcondition pragmas.
504 (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
505 Last_Formal, along with lots of comments on what this is about
506 (Analyze_Subprogram_Body): Fix case where we move entities from the
507 spec to the body when there are no body entities (now possible with
508 precondition and postcondition pragmas).
509 (Process_PPCs): New procedure
510 (Analyze_Subprogram_Body): Add call to Process_PPCs
511
512 * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
513 clause.
514 (Pop_Scope): Restore Check_Policy_List on scope exit
515 (Push_Scope): Save Check_Policy_List on scope entry
516 Change name In_Default_Expression => In_Spec_Expression
517 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
518 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
519 (Analyze_Object_Renaming): Allow 'Reference as object
520 (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
521 (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
522 of restriction identifier.
523 Add Sure parameter to Note_Possible_Modication calls
524
525 * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
526 Don't check for primitive operations when calling Rep_Item_Too_Late.
527 (Process_Import_Or_Interface): Do not place flag on formal
528 subprograms.
529 (Analyze_Pragma, case Export): If the entity is a deferred constant,
530 propagate information to full view, which is the one elaborated by the
531 back-end.
532 (Make_Inline): the pragma is effective if it applies to an internally
533 generated subprogram declaration for a body that carries the pragma.
534 (Analyze_Pragma, case Optimize_Alignment): Set new flag
535 Optimize_Alignment_Local.
536 (Analyze_PPC_In_Decl_Part): New procedure
537 (Get_Pragma_Arg): Moved to outer level
538 (Check_Precondition_Postcondition): Change to allow new visibility
539 rules for package spec
540 (Analyze_Pragma, case Check_Policy): Change placement rules to be
541 same as pragma Suppress/Unsuppress.
542 Change name In_Default_Expression => In_Spec_Expression
543 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
544 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
545 (Check_Precondition_Postcondition): Do proper visibility preanalysis
546 for the case of these pragmas appearing in the spec.
547 (Check_Enabled): New function
548 (Initialize): New procedure
549 (Tree_Read): New procedure
550 (Tree_Write): New procedure
551 (Check_Precondition_Postcondition): New procedure
552 Implement pragmas Check and Check_Policy
553 Merge Assert processing with Check
554
555 * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
556 New warning flag -gnatw.e
557
558 * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
559 returning whether a task (or main procedure) has a pragma
560 Relative_Deadline.
561 (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
562 (or main procedure) has a pragma Relative_Deadline.
563 Add Next_Pragma field to N_Pragma node
564 (PPC_Enabled): New flag
565 (Next_Pragma): Now used for Pre/Postcondition processing
566
567 * snames.h, snames.ads, snames.adb: New standard name
568 Inherit_Source_Path
569 Add entry for 'Invalid_Value attribute
570 Add entry for new attribute Has_Tagged_Values
571 Add entry for Enum_Val attribute
572 Add new standard names Aggregate, Configuration and Library.
573 Add _Postconditions
574 Add _Result
575 Add Pragma_Precondition
576 Add Pragma_Postcondition
577 Add Attribute_Result
578 New standard name Archive_Builder_Append_Option
579 (Preset_Names): Add _relative_deadline and relative_deadline definitions
580 There was also a missing non_preemptive_within_priorities.
581 (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
582 Relative_Deadline.
583 Add support for pragmas Check and Check_Policy
584
585 * tree_gen.adb: Call Sem_Aux.Tree_Write
586
587 * tree_in.adb: Call Sem_Aux.Tree_Read
588
589 * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
590 sequence
591
592 * exp_intr.adb (Expand_Source_Info): New Build_Location calling
593 sequence
594
595 * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
596 (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
597 Relative_Deadline.
598 (Expand_Pragma_Check): New procedure
599
600 * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
601 buffer.
602
603 * sinfo.adb (PPC_Enabled): New flag
604
6052008-04-08 Robert Dewar <dewar@adacore.com>
606 Gary Dismukes <dismukes@adacore.com>
607 Javier Miranda <miranda@adacore.com>
608 Ed Schonberg <schonberg@adacore.com>
609
610 * fe.h: Remove global Optimize_Alignment flag, no longer used
611
612 * layout.adb: Test Optimize_Alignment flags rather than global switch
613
614 * lib.ads, lib.adb: New OA_Setting field in library record
615
616 * lib-load.adb: New OA_Setting field in library record
617
618 * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
619 units mentioned in limited_with_ clauses in the ali file, with an
620 'Y' marker.
621 New Ox fields in U line
622
623 * opt.adb: New flag Optimize_Alignment_Local
624 (Check_Policy_List[_Config]): New flags
625
626 * opt.ads (Invalid_Value_Used): New flag
627 New switch Optimize_Alignment_Local
628 (Warn_On_Parameter_Order): New flag
629 (Check_Policy_List[_Config]): New flags
630
631 * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
632 limited_with clauses.
633 New data structures for Optimize_Alignment
634
635 * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
636 New procedure
637 (Check_Consistent_Optimize_Alignment): Rework for new structure
638 (Check_Consistent_Restrictions): Fix incorrect error message
639
640 sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
641 created class-wide type (to the Parent field of the specific type).
642 (Install_Siblings): Handle properly private_with_clauses on subprogram
643 bodies and on generic units.
644 (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
645 illegal limited_with_clause that names a non-existent package.
646 (Check_Body_Required): Determine whether a unit named a limited_with
647 clause needs a body.
648 (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
649 Capture Optimize_Alignment settings to set new OA_Setting field in
650 library record.
651 (Build_Limited_Views): Include task and protected type declarations.
652
653 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
654 case of a possible constant redeclaration where the current object is
655 an entry index constant.
656 (Analyze_Object_Declaration): Generate an error in case of CPP
657 class-wide object initialization.
658 (Analyze_Object_Declaration): Add extra information on warnings for
659 declaration of unconstrained objects.
660 (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
661 conflicts with the setting of Stored_Constraint in the case where the
662 access type entity has already been created as an E_Incomplete_Type due
663 to a limited with clause.
664 Use new Is_Standard_Character_Type predicate
665 (Analyze_Object_Declaration): Apply access_constant check only after
666 expression has been resolved, given that it may be overloaded with
667 several access types.
668 (Constant_Redeclaration): Additional legality checks for deferred
669 constant declarations tha involve anonymous access types and/or null
670 exclusion indicators.
671 (Analyze_Type_Declaration): Set Optimize_Alignment flags
672 (Analyze_Subtype_Declaration): Ditto
673 (Analyze_Object_Declaration): Ditto
674 (Analyze_Object_Declaration): Don't count tasks in generics
675 Change name In_Default_Expression => In_Spec_Expression
676 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
677 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
678 (Process_Discriminants): Additional check for illegal use of default
679 expressions in access discriminant specifications in a type that is not
680 explicitly limited.
681 (Check_Abstract_Overriding): If an inherited function dispaches on an
682 access result, it must be overridden, even if the type is a null
683 extension.
684 (Derive_Subprogram): The formals of the derived subprogram have the
685 names and defaults of the parent subprogram, even if the type is
686 obtained from the actual subprogram.
687 (Derive_Subprogram): In the presence of interfaces, a formal of an
688 inherited operation has the derived type not only if it descends from
689 the type of the formal of the parent operation, but also if it
690 implements it. This is relevant for the renamings created for the
691 primitive operations of the actual for a formal derived type.
692 (Is_Progenitor): New predicate, to determine whether the type of a
693 formal in the parent operation must be replaced by the derived type.
694
695 * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
696 predicate recursive to handle components that have a user-defined
697 Initialize procedure. Handle controlled derived types whose ancestor
698 has a user-defined Initialize procedured.
699 (Note_Possible_Modification): Add Sure parameter, generate warning if
700 sure modification of constant
701 Use new Is_Standard_Character_Type predicate
702 (Find_Parameter_Type): when determining whether a protected operation
703 implements an interface operation, retrieve the type of the formal from
704 the entity when the formal is an access parameter or an
705 anonymous-access-to-subprogram.
706 Move Copy_Parameter_List to sem_util, for use when building stubbed
707 subprogram bodies.
708 (Has_Access_Values): Tagged types now return False
709 (Within_HSS_Or_If): New procedure
710 (Set_Optimize_Alignment_Flags): New procedure
711 Change name In_Default_Expression => In_Spec_Expression
712 Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
713 Change name Pre_Analyze_And_Resolve => Preanalyze_And_Resolve
714
7152008-04-08 Tristan Gingold <gingold@adacore.com>
716
717 * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
718
7192008-04-08 Tristan Gingold <gingold@adacore.com>
720
721PR ada/10768
722
723 * cuintp.c: Fix 16 bits issue for AVR.
724 On AVR, integer is 16 bits, so it can't be used to do math with
725 Base (=32768).
726 So use long_integer instead.
727
7282008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
729
730 * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
731 System.OS_Primitives.
732 Change type of various constants, parameters and local variables from
733 Time to representation type OS_Time.
734 (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
735 Remove the declaration of constant Mili_F from several routines. New
736 body for internal package Conversions_Operations.
737 (Time_Of): Add default parameters for several formals.
738
739 * a-caldel.adb: Minor reformatting
740
741 * a-calend.ads, a-calend.adb: New body for internal package
742 Conversions_Operations.
743 (Time_Of): Add default parameters for several formals.
744
745 * Makefile.rtl: Add a-ststop
746 Add Ada.Calendar.Conversions to the list of runtime files.
747 Add g-timsta
748
749 * a-calcon.adb, a-calcon.ads: New files.
750
7512008-04-08 Jose Ruiz <ruiz@adacore.com>
752 Tristan Gingold <gingold@adacore.com>
753
754 * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
755 (Install_Restricted_Handlers): New procedure
756 which is a simplified version of Install_Handlers that does not store
757 previously installed.
758
759 * s-interr-vxworks.adb: Fix ACATS cxc3001
760 On VxWorks interrupts can't be detached.
761 (Install_Restricted_Handlers): New procedure.
762
763 * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
764 procedure.
765
7662008-04-08 Olivier Hainque <hainque@adacore.com>
767
768 * s-intman-vxworks.ads, s-intman-vxworks.adb
769 (Map_And_Raise_Exception): Remove. Was an import of only part of the
770 required services already implemented elsewhere.
771 (Notify_Exception): Delete body, import __gnat_error_handler instead.
772 (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
773 argument passed to the handler, which we need for ZCX propagation
774 purposes.
775
7762008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
777
778 * adaint.h, adaint.c (__gnat_current_time_string): New routine.
779
780 * g-timsta.adb, g-timsta.ads: New files.
781
7822008-04-08 Robert Dewar <dewar@adacore.com>
783
784 * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
785 (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
786 (Raise_Exception_Always): Fix documentation accordingly
787
7882008-04-08 Robert Dewar <dewar@adacore.com>
789
790 * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
791 Stream_Convert)
792
793 * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
794 FOnly
795
7962008-04-08 Javier Miranda <miranda@adacore.com>
797 Robert Dewar <dewar@adacore.com>
798 Ed Schonberg <schonberg@adacore.com>
799
800 * a-tags.adb (Register_Interface_Offset): New subprogram.
801 (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
802 (To_Predef_Prims_Table_Ptr): Removed.
803 (Acc_Size): Removed.
804 (To_Acc_Size): Removed.
805 (Parent_Size): Modified to the call the subprogram returning the size of
806 the parent by means of the new TSD component Size_Func.
807
808 * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
809 (DT_Offset_To_Top_Offset): New constant value that is used to generate
810 code referencing the Offset_To_Top component of the dispatch table's
811 prologue.
812 (Prim_Ptr): New declaration of access to procedure. Used to avoid the
813 use of 'address to initialize dispatch table slots.
814 (Size_Func): New component of the TSD. Used by the run-time to call the
815 size primitive of the tagged type.
816
817 * checks.adb (Apply_Access_Check): Avoid check when accessing the
818 Offset_To_Top component of a dispatch table.
819 (Null_Exclusion_Static_Checks): If the non-null access type appears in a
820 deferred constant declaration. do not add a null expression, to prevent
821 spurious errors when full declaration is analyzed.
822 (Apply_Discriminant_Check): If both discriminant constraints share a
823 node which is not static but has no side effects, do not generate a
824 check for that discriminant.
825 (Generate_Index_Checks): Set Name_Req to true in call to duplicate
826 subexpr, since the prefix of an attribute is a name.
827
828 * checks.ads: Fix nit in comment.
829
830 * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
831 and body of predefined primitives in case of CPP tagged type
832 derivations.
833 (Freeze_Type): Deal properly with no storage pool case
834 (Make_Predefined_Primitive_Specs): Generate specification of abstract
835 primitive Deep_Adjust if a nonlimited interface is derived from a
836 limited interface.
837 (Build_Dcheck_Functions): Create discriminant-checking functions only
838 for variants that have some component(s).
839 (Build_Slice_Assignment): In expanded code for slice assignment, handle
840 properly the case where the slice bounds extend to the last value of the
841 underlying representation.
842 (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
843 (Is_Variable_Size_Record): An array component has a static size if
844 index bounds are enumeration literals.
845
846 * exp_disp.adb (Make_DT): Use the first subtype to determine whether
847 an external tag has been specified for the type.
848 (Building_Static_DT): Add missing support for private types.
849 (Make_DT): Add declaration of Parent_Typ to ensure consistent access
850 to the entity associated with the parent of Typ. This is done to
851 avoid wrong access when the parent is a private type.
852 (Expand_Interface_Conversion): Improve error message when the
853 configurable runtime has no support for dynamic interface conversion.
854 (Expand_Interface_Thunk): Add missing support to interface types in
855 configurable runtime.
856 (Expand_Dispatching_Call): remove obsolete code.
857 (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
858 ensure that all subtypes and aggregates associated with dispatch
859 tables have the attribute Is_Dispatch_Table_Entity set to true.
860 (Register_Primitive): Rename one variable to improve code reading.
861 Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
862 of the pointer to the 'size primitive in the TSD.
863
864 * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
865 (RE_Offset_To_Top_Ptr): New entity.
866 (RE_Register_Interface_Offset): New entity.
867 (RE_Set_Dynamic_Offset_To_Top): New entity.
868 (RE_Set_Offset_To_Top): Removed entity.
869 (RE_Prim_Ptr): New entity
870 (RE_Size_Func): New entity
871 (RE_Size_Ptr): New entity
872 (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
873 (Ada_Dispatching_Child): Define this new subrange.
874 (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
875 RE_Time_Span, and RE_Time_Span_Zero).
876 (RE_Unit_Table): Add new required run-time calls
877
878 * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
879 children.
880
881 * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
882 (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
883 initializes the Offset_To_Top component of a dispatch table.
884 (Build_Predef_Prims): Removed.
885 (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
886 its actual code.
887 (Build_Set_Size_Function): New subprogram.
888
889 * exp_ch13.adb: Do not generate storage variable for storage_size zero
890 (Expand): Handle setting/restoring flag Inside_Freezing_Actions
891
8922008-04-08 Robert Dewar <dewar@adacore.com>
893
894 * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
895 computing Fore when Exp > 0
896
8972008-04-08 Robert Dewar <dewar@adacore.com>
898
899 * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
900
901 * errout.adb: Remove Big_String_Ptr declarations (now in Types)
902 Change name Is_Style_Msg to Is_Style_Or_Info_Msg
903
904 * fmap.adb: Remove Big_String declarations (now in Types)
905 (No_Mapping_File): New Boolean global variable
906 (Initialize): When mapping file cannot be read, set No_Mapping_File to
907 False.
908 (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
909 tables were empty before adding entries, open the mapping file
910 with Truncate = True, instead of delete/re-create.
911
912 * fname-sf.adb: Remove Big_String declarations (now in Types)
913
914 * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
915 s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
916 big pointer types
917
918 * table.ads: Add for Table_Ptr'Storage_Size use 0
919
920 * types.ads: Add Big_String declarations
921 Add Size_Clause of zero for big pointer types
922
9232008-04-08 Vincent Celier <celier@adacore.com>
924
925 * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
926 (Usage): Add line for switch --subdirs=
927 Add new switch -eL, to follow symbolic links when processing project
928 files.
929
930 * gnatcmd.adb: Process switches -eL and --subdirs=
931 (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
932 Program_Name to get proper tool names when AAMP_On_Target is set.
933 (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
934 AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
935 Osint.Program_Name).
936
937 * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
938 (Usage): Add lines for switches -eL and --subdirs=
939
940 * makeusg.adb: Add line for switch --subdirs=
941
942 * prj.ads:
943 (Source_Data): New Boolean component Compiled, defaulted to True
944 (Empty_File_Name: New global variable in private part, initialized in
945 procedure Initialize.
946 (Subdirs_Option): New constant string
947 (Subdirs): New String_Ptr global variable
948 (Language_Config): New component Include_Compatible_Languages
949 (Project_Qualifier): New type for project qualifiers
950 (Project_Data): New component Qualifier
951 (Project_Configuration): New component Archive_Builder_Append_Option
952
953 * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
954 another imported project indicate the name of this imported project.
955 (Check_File): When a unit is in two project files, indicate the project
956 names and the paths of the source files for each project.
957 (Add_Source): Set Compiled to False if compiler driver is empty. Only
958 set object, dependency and switches file names if Compiled is True.
959 (Process_Compiler): Allow the empty string for value of attribute Driver
960 (Get_Directories): When Subdirs is not null and Object_Dir is not
961 specified, locate and create if necessary the actual object dir.
962 (Locate_Directory): When Subdirs is not empty and Create is not the
963 empty string, locate and create if necessary the actual directory
964 as a subdirectory of directory Name.
965 (Check_Library_Attributes.Check_Library): Allow a project where the only
966 "sources" are header files of file based languages to be imported by
967 library projects, in multi-language mode (gprbuild).
968 (Check_Library_Attributes.Check_Library): In multi-language mode
969 (gprbuild), allow a library project to import a project with no
970 sources, even when this is not declared explicitly.
971 (Check_If_Externally_Built): A virtual project extending an externally
972 built project is also externally built.
973 (Check_Library_Attributes): For a virtual project extending a library
974 project, inherit the library directory.
975 (Process_Project_Level_Array_Attributes): Process new attribute
976 Inherit_Source_Path.
977 For projects with specified qualifiers "standard", "library" or
978 "abstract", check that the project conforms to the qualifier.
979 (Process_Project_Level_Simple_Attributes): Process new attribute
980 Archive_Builder_Append_Option.
981
982 * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
983 (Normalize_Compiler_Switches): Only keep compiler switches that are
984 passed to gnat1 by the gcc driver and that are stored in the ALI file
985 by gnat1.
986 Do not take into account switc -save-temps
987
988 * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
989 gprmake is called with -eL.
990 (Scan_Arg): Recognize switch -eL
991 (Usage): Add line for switch -eL
992
993 * prj.adb (Initialize): Initialize Empty_File_Name
994 (Project_Empty): New component Qualifier
995
996 * prj-attr.ads, prj-attr.adb: New project level attribute
997 Inherit_Source_Path.
998 New project level attribute Archive_Builder_Append_Option
999
1000 * prj-dect.adb: Replace System.Strings by GNAT.Strings.
1001
1002 * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
1003 <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
1004 upward compatibility.
1005
1006 * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
1007 each Trying ..." on different lines.
1008 (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
1009 is "configuration" when not in configuration. Fail when in configuration
1010 when a specified qualifier is other than "configuration".
1011
1012 * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
1013 full associative array together.
1014 (Recursive_Process): Put the project qualifier in the project data
1015
1016 * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
1017 (Set_Project_Qualifier_Of): New procedure
1018
10192008-04-08 Robert Dewar <dewar@adacore.com>
1020
1021 * errout.ads: Update comments for new handling of info: messages
1022
1023 * erroutc.adb (Matches): New procedure
1024 (Warning_Specifically_Suppressed): Modified to handle multiple * chars
1025 (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
1026 info messages as well as style messages.
1027
1028 * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
1029
1030 * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
1031 subprograms.
1032 (Check_A_Call): Special "info: " warnings now have ? in the text
1033 (Elab_Warning): Use info message in static case
1034
10352008-04-08 Ed Schonberg <schonberg@adacore.com>
1036
1037 * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
1038 whether an array aggregate with static bounds and scalar components
1039 should be expanded into a static constant.
1040
10412008-04-08 Gary Dismukes <dismukes@adacore.com>
1042 Ed Schonberg <schonberg@adacore.com>
1043 Robert Dewar <dewar@adacore.com>
1044
1045 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
1046 Has_Stream_Attribute_ Definition when checking for available stream
1047 attributes on parameters of a limited type in Ada 2005. Necessary for
1048 proper recognition of visible stream attribute clauses.
1049 (Has_Stream_Attribute_Definition): If the type is derived from a
1050 private type, then use the derived type's underlying type for checking
1051 whether it has stream attributes.
1052 (Validate_Object_Declaration): The check for a user-defined Initialize
1053 procedure applies also to types with controlled components or a
1054 controlled ancestor.
1055 Reject an object declaration in a preelaborated unit if the type is a
1056 controlled type with an overriding Initialize procedure.
1057 (Validate_Remote_Access_To_Class_Wide_Type): Return without further
1058 checking when the parent of a dereference is a selected component and
1059 the name has not been analyzed.
1060
1061 * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
1062 prefixes that are invalid explicit dereferences of remote
1063 access-to-class-wide values, first checking whether the selected
1064 component is a prefixed form of call to a tagged operation.
1065 (Analyze_Call): Remove code that issues an error for limited function
1066 calls in illegal contexts, as we now support all of the contexts that
1067 were forbidden here.
1068 Allow a function call that returns a task.and appears as the
1069 prefix of a selected component.
1070 (Analyze_Reference): Give error message if we try to make a 'Reference
1071 for an object that is atomic/aliased without its type having the
1072 corresponding attribute.
1073 (Analyze_Call): Remove condition checking for attributes to allow
1074 calls to functions with inherently limited results as prefixes of
1075 attributes. Remove related comment about Class attributes.
1076 (Analyze_Selected_Component): If the prefix is a remote type, check
1077 whether this is a prefixed call before reporting an error.
1078 (Complete_Object_Operation): If the controlling formal is an access to
1079 variable reject an actual that is a constant or an access to one.
1080 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
1081 primitive operations from base type.
1082
1083 * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
1084 build-in-place
1085 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
1086 (Expand_N_Selected_Component): Test for prefix that is a build-in-place
1087 function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
1088 (Expand_N_Slice): Test for prefix that is a build-in-place function call
1089 and call Make_Build_In_Place_Call_In_Anonymous_Context.
1090 (Analyze_Call): Remove code that issues an error for limited function
1091 calls in illegal contexts, as we now support all of the contexts that
1092 were forbidden here.
1093 New calling sequence for Get_Simple_Init_Val
1094 (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
1095 (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
1096
10972008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
1098 Ed Schonberg <schonberg@adacore.com>
1099 Robert Dewar <dewar@adacore.com>
1100
1101 * exp_ch2.adb: Minor reformatting.
1102 (Expand_Entry_Index_Parameter): Set the type of the identifier.
1103 (Expand_Entry_Reference): Add call to Expand_Protected_Component.
1104 (Expand_Protected_Component): New routine.
1105 (Expand_Protected_Private): Removed.
1106 Add Sure parameter to Note_Possible_Modification calls
1107
1108 * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
1109 generated subprogram declaration must inherit the overriding indicator
1110 from the instantiation node.
1111 (Validate_Access_Type_Instance): If the designated type of the actual is
1112 a limited view, use the available view in all cases, not only if the
1113 type is an incomplete type.
1114 (Instantiate_Object): Actual is illegal if the formal is null-excluding
1115 and the actual subtype does not exclude null.
1116 (Process_Default): Handle properly abstract formal subprograms.
1117 (Check_Formal_Package_Instance): Handle properly defaulted formal
1118 subprograms in a partially parameterized formal package.
1119 Add Sure parameter to Note_Possible_Modification calls
1120 (Validate_Derived_Type_Instance): if the formal is non-limited, the
1121 actual cannot be limited.
1122 (Collect_Previous_Instances): Generate instance bodies for subprograms
1123 as well.
1124
1125 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
1126 try to set RM_Size.
1127 Add Sure parameter to Note_Possible_Modification calls
1128 (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
1129 (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
1130 constant overlaid by variable and issue warning.
1131 Use new Is_Standard_Character_Type predicate
1132 (Analyze_Record_Representation_Clause): Check that the specified
1133 Last_Bit is not less than First_Bit - 1.
1134 (Analyze_Attribute_Definition_Clause, case Address): Check for
1135 self-referential address clause
1136
1137 * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
1138 detection mechanism when the lhs is a prival.
1139 (Analyze_Assignment): Call Check_Unprotected_Access to detect
1140 assignment of a pointer to protected data, to an object declared
1141 outside of the protected object.
1142 (Analyze_Loop_Statement): Check for unreachable code after loop
1143 Add Sure parameter to Note_Possible_Modication calls
1144 Protect analysis from previous syntax error such as a scope mismatch
1145 or a missing begin.
1146 (Analyze_Assignment_Statement): The assignment is illegal if the
1147 left-hand is an interface.
1148
ea081ad7
AC
1149 * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
1150 violation of restriction No_Implicit_Conditionals
d563d3f0
AC
1151 Add Sure parameter to Note_Possible_Modication calls
1152 Use new Is_Standard_Character_Type predicate
1153 (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
1154 call as operator. Fixes problems (e.g. validity checking) which
1155 come from the result looking as though it does not come from source).
1156 (Resolve_Call): Check case of name in named parameter if style checks
1157 are enabled.
1158 (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
1159 from the checking that such calls should not occur from an entry body.
1160 (Resolve_Call): If the return type of an Inline_Always function
1161 requires the secondary stack, create a transient scope for the call
1162 if the body of the function is not available for inlining.
1163 (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
1164 that are actuals for in-out formals.
1165 (Try_Object_Operation): If prefix is a tagged protected object,retrieve
1166 primitive operations from base type.
1167 (Analyze_Selected_Component): If the context is a call to a protected
1168 operation the parent may be an indexed component prior to expansion.
1169 (Resolve_Actuals): If an actual is of a protected subtype, use its
1170 base type to determine whether a conversion to the corresponding record
1171 is needed.
1172 (Resolve_Short_Circuit): Handle pragma Check
1173
1174 * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
1175 Use new Is_Standard_Character_Type predicate
1176 (Eval_Relational_Op): Catch more cases of string comparison
1177
11782008-04-08 Robert Dewar <dewar@adacore.com>
1179 Gary Dismukes <dismukes@adacore.com>
1180
1181 * s-rident.ads: Add No_Default_Initialization restriction
1182
1183 * exp_tss.adb:
1184 (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
1185 (Set_TSS): Handle No_Default_Initialization case
1186
1187 * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
1188 No_Default_Initialization
1189 (Expand_N_Subprogram_Body): Remove redundant initialization of out
1190 parameters when Normalize_Scalars is active.
1191 (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
1192 Fix casing error in formal parameter name in call
1193 (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
1194 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
1195 dispatching call on VM targets.
1196
11972008-04-08 Gary Dismukes <dismukes@adacore.com>
1198 Thomas Quinot <quinot@adacore.com>
1199
1200 * exp_ch7.adb (Find_Final_List): Change the test for generating a
1201 selected component from an access type's Associated_Final_Chain to
1202 check for the presence of that field, rather than assuming it exists
1203 for all named access types.
1204 (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
1205 procedure to call at the end of the generated cleanup procedure.
1206 (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
1207 and an At_End_Proc already exists in the handled sequence of statements
1208 for which cleanup actions are being expanded, the original cleanup
1209 action must be preserved.
1210
12112008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
1212 Ed Schonberg <schonberg@adacore.com>
1213 Robert Dewar <dewar@adacore.com>
1214 Gary Dismukes <dismukes@adacore.com>
1215
1216 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
1217 Build_Unprotected_Subprogram_Body): Generate debug info for
1218 declarations related to the handling of private data in task and
1219 protected types.
1220 (Debug_Private_Data_Declarations): New subprogram.
1221 (Install_Private_Data_Declarations): Remove all debug info flagging.
1222 This is now done by Debug_Private_Data_Declarations at the correct
1223 stage of expansion.
1224 (Build_Simple_Entry_Call): If the task name is a function call, expand
1225 the prefix into an object declaration, and make the surrounding block a
1226 task master.
1227 (Build_Master_Entity): An internal block is a master if it wraps a call.
1228 Code reformatting, update comments. Code clean up.
1229 (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
1230 (Replicate_Entry_Formals): If the formal is an access parameter or
1231 anonymous access to subprogram, copy the original tree to create new
1232 entities for the formals of the subprogram.
1233 (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
1234 for tasks to store the value passed using pragma Relative_Deadline.
1235 (Make_Task_Create_Call): Add the Relative_Deadline argument to the
1236 run-time call to create a task.
1237 (Build_Wrapper_Spec): If the controlling argument of the interface
1238 operation is an access parameter with a non-null indicator, use the
1239 non-null indicator on the wrapper.
1240
1241 * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
1242 present, which it may not be in the case where the type entity is an
1243 incomplete view brought in by a limited with.
1244 (Analyze_Task_Type): Only retrieve the full view when present, which it
1245 may not be in the case where the type entity is an incomplete view brought
1246 in by a limited with.
1247 (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
1248 private components of a protected type, to prevent the generation of freeze
1249 nodes for which there is no proper scope of elaboration.
1250
1251 * exp_util.ads, exp_util.adb
1252 (Remove_Side_Effects): If the expression is a function call that returns a
1253 task, expand into a declaration to invoke the build_in_place machinery.
1254 (Find_Protection_Object): New routine.
1255 (Remove_Side_Effects): Also make a copy of the value
1256 for attributes whose result is of an elementary type.
1257 (Silly_Boolean_Array_Not_Test): New procedure
1258 (Silly_Boolean_Array_Xor_Test): New procedure
1259 (Is_Volatile_Reference): New function
1260 (Remove_Side_Effects): Use Is_Volatile_Reference
1261 (Possible_Bit_Aligned_Component): Handle slice case properly
1262
1263 * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
1264 case test to Exp_Util
1265 (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
1266
12672008-04-08 Thomas Quinot <quinot@adacore.com>
1268
1269 * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
1270 in call
1271 (Add_RACW_Features): When processing an RACW in another unit than the
1272 main unit, set Body_Decls to No_List to indicate that the bodies of
1273 the type's TSS must not be generated.
1274 (GARLIC_Support.Add_RACW_Read_Attribute,
1275 GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
1276 Body_Decls is No_List.
1277 (PolyORB_Support.Add_RACW_Read_Attribute,
1278 PolyORB_Support.Add_RACW_Write_Attribute,
1279 PolyORB_Support.Add_RACW_From_Any,
1280 PolyORB_Support.Add_RACW_To_Any,
1281 PolyORB_Support.Add_RACW_TypeCode): Same.
1282 (Transmit_As_Unconstrained): New function.
1283 (Build_Ordered_Parameters_List): Use the above to order parameters.
1284 (GARLIC_Support.Build_General_Calling_Stubs):
1285 Use the above to determine which parameters to unmarshall using 'Input
1286 at the point where their temporary is declared (as opposed to later on
1287 with a 'Read call).
1288 (PolyORB_Support.Build_General_Calling_Stubs):
1289 Use the above to determine which parameters to unmarshall using From_Any
1290 at the point where their temporary is declared (as opposed to later on
1291 with an assignment).
1292
12932008-04-08 Ed Schonberg <schonberg@adacore.com>
1294
1295 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
1296 an Input function for an access type, do not perform default
1297 initialization on the local variable that receives the value, to
1298 prevent spurious warnings when the type is null-excluding.
1299
13002008-04-08 Robert Dewar <dewar@adacore.com>
1301 Ed Schonberg <schonberg@adacore.com>
1302
1303 * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
1304 units.
1305 (Size_Known): Generic formal scalar types have known at compile
1306 time size, so remove check.
1307 Fix casing error in formal parameter name in call
1308 (Freeze_Subprogram): If the subprogram is a user-defined operator,
1309 recheck its overriding indication.
1310
13112008-04-08 Vincent Celier <celier@adacore.com>
1312
1313 * gnat1drv.adb: Send all messages indicating an error to standard error
1314
13152008-04-08 Robert Dewar <dewar@adacore.com>
1316
1317 * gnatbind.adb (Restriction_Could_Be_Set): New procedure
1318 (List_Applicable_Restrictions): Do not list existing restrictions
1319
13202008-04-08 Thomas Quinot <quinot@adacore.com>
1321
1322 * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
1323 add a pointer to generic sockets literature
1324 do not mention that the given example is "typical" usage.
1325 Remove obsolete comment about multicast not being supported on Windows.
1326 (Connect_Socket): Make Server mode IN rather than IN OUT
1327 since this formal is never modified.
1328
13292008-04-08 Robert Dewar <dewar@adacore.com>
1330
1331 * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
1332 the declaration for some different entity.
1333 (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
1334 list is precent (following the parent subtype indication), display
1335 appropriate "and" keyword.
1336
1337 * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
1338 Remove unnecessary calls to Init_Size_Align and Init_Esize.
1339 Add notes on use of Parent field of an Itype
1340
13412008-04-08 Ed Schonberg <schonberg@adacore.com>
1342 Robert Dewar <dewar@adacore.com>
1343 Gary Dismukes <dismukes@adacore.com>
1344
1345 * lib-xref.adb (Is_On_LHS): Remove dead code
1346 (Output_Overriden_Op): If the overridden operation is itself inherited,
1347 list the ancestor operation, which is the one whose body or absstract
1348 specification is actually being overridden. For source navigation
1349 purposes.
1350
1351 * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
1352 operation is primitive for the type.
1353 (Declare_Inherited_Private_Subprograms): If the new operation overrides
1354 an inherited private subprogram, set properly the Overridden_Operation
1355 attribute, for better cross-reference information.
1356 (Analyze_Package_Specification): Do late analysis of spec PPCs
1357 (Install_Private_Declaration, Uninstall_Declarations): Save/restore
1358 properly the full view and underlying full views of a private type in a
1359 child unit, whose full view is derived from a private type in a parent
1360 unit, and whose own full view becomes visible in the child body.
1361
1362 * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
1363 primitive operation after the type has been frozen, add an explicit
1364 reference to the type and the operation, because other primitive
1365 references have been emitted already.
1366 (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
1367 dispatching call on VM targets.
1368
13692008-04-08 Vincent Celier <celier@adacore.com>
1370 Thomas Quinot <quinot@adacore.com>
1371
1372 * make.adb: (Gnatmake_Called): Remove, no longer necessary
1373 (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
1374 is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
1375 (Insert_Project_Sources): Take into account index in multi-unit source
1376 files.
1377 After building a library project, delete all temporary files.
1378 (Initialize): Reset current output after parsing project file.
1379 (Collect_Arguments_And_Compile): Never insert in the queue the sources
1380 of library projects that are externally built.
1381 Put file name in error and inform messages if -df is used
1382 (Display): If invoked with -d7, do not display path names, but only
1383 file names.
1384
1385 * makeutl.ads (Path_Or_File_Name): New function
1386 (Path_Or_File_Name): New function
1387
13882008-04-08 Arnaud Charlet <charlet@adacore.com>
1389
1390 * Make-lang.in: Disable warnings during first stage of bootstrap
1391 Get rid of gnatbl.
1392 Update dependencies.
1393
13942008-04-08 Vincent Celier <celier@adacore.com>
1395
1396 * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
1397 case to decide if ALI object file is included in library.
1398 (Build_Library): Never attempt to build a library if the project is
1399 externally built.
1400
14012008-04-08 Thomas Quinot <quinot@adacore.com>
1402
1403 * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
1404 (No_List) is defined to return Empty.
1405
14062008-04-08 Jose Ruiz <ruiz@adacore.com>
1407
1408 * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
1409 documentation.
1410 Update comments.
1411 (Read_Default_Search_Dirs): Do not consider spaces as path separators
1412 because spaces may be part of legal paths.
1413
14142008-04-08 Robert Dewar <dewar@adacore.com>
1415
1416 * par-ch11.adb (P_Exception_Handler): Check indentation level for
1417 handler
1418
14192008-04-08 Ed Schonberg <schonberg@adacore.com>
1420
1421 * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
1422 in a type declaration, if this is not an interface declaration or
1423 private type extension.
1424
14252008-04-08 Vincent Celier <celier@adacore.com>
1426
1427 * prj-util.adb (Executable_Of): New String parameter Language. When
1428 Ada_Main is False and Language is not empty, attempt to remove the body
1429 suffix or the spec suffix of the language to get the base of the
1430 executable file name.
1431 (Put): New Boolean parameter Lower_Case, defauilted to False. When
1432 Lower_Case is True, put the value in lower case in the name list.
1433 (Executable_Of): If there is no executable suffix in the configuration,
1434 then do not modify Executable_Extension_On_Target.
1435
1436 * prj-util.ads (Executable_Of): New String parameter Language,
1437 defaulted to the empty string.
1438 (Put): New Boolean parameter Lower_Case, defauilted to False
1439
14402008-04-08 Robert Dewar <dewar@adacore.com>
1441
1442 * scng.adb (Scan_Identifier): Handle case of identifier starting with
1443 wide character using UTF-8 encoding.
1444
14452008-04-08 Javier Miranda <miranda@adacore.com>
1446
1447 * sem.adb (Analyze): Consider case in which we analyze an empty node
1448 that was generated by a call to a runtime function that is not
1449 available under the configurable runtime.
1450
1451 * sem.ads (Inside_Freezing_Actions): New flag.
1452 (Save_Check_Policy_List): New field in scope stack entry
1453
14542008-04-08 Ed Schonberg <schonberg@adacore.com>
1455 Robert Dewar <dewar@adacore.com>
1456
1457 * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
1458 the ancestor part of an extension aggregate for a limited type.
1459 (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
1460 enumeration index bounds.
1461 (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
1462 when array is too short.
1463 (Check_Expr_OK_In_Limited_Aggregate): Move function
1464 Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
1465 change name).
1466 (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
1467 Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
1468 component associations.
1469 (Check_Non_Limited_Type): Moved to outer level and renamed.
1470 (Resolve_Record_Aggregate): In an extension aggregate, an association
1471 with a box initialization can only designate a component of the
1472 extension, not a component inherited from the given ancestor
1473
1474 * sem_case.adb: Use new Is_Standard_Character_Type predicate
1475
14762008-04-08 Robert Dewar <dewar@adacore.com>
1477
1478 * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
1479 negative scale
1480 (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
1481 Properly handle case where Aft > Scale and input number is less than
1482 one.
1483
14842008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
1485
1486 * s-stoele.ads, s-soflin.ads: Move the location of
1487 Dummy_Communication_Block from System.Storage_Elements to
1488 System.Soft_Links.
1489
1490 * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
1491 emulate Communication_Block in certain scenarios.
1492
14932008-04-08 Hristian Kirtchev <kirtchev@adacore.com>
1494
1495 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
1496 subprogram.
1497 Add new subtype S_WWC, unchecked conversion routines From_WWC and
1498 To_WWC.
1499 (I_WWC, O_WWC): New routines for input and output of
1500 Wide_Wide_Character.
1501
15022008-04-08 Robert Dewar <dewar@adacore.com>
1503
1504 * stringt.adb (Write_String_Table_Entry): Handle wide characters
1505 properly
1506
15072008-04-08 Robert Dewar <dewar@adacore.com>
1508
1509 * styleg.adb (Check_Comment): Allow special char after -- in
1510 non-end-of-line case
1511
15122008-04-08 Robert Dewar <dewar@adacore.com>
1513
1514 * stylesw.adb: Implement -gnaty + - y options
1515 (Set_GNAT_Style_Check_Options): Includ I in style check string
1516
1517 * stylesw.ads: Add comments for new style switch options
1518
15192008-04-08 Sergey Rybin <rybin@adacore.com>
1520
1521 * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
1522 to the set of the GNAT components needed by ASIS.
1523
15242008-04-08 Bob Duff <duff@adacore.com>
1525
1526 * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
1527
15282008-04-08 Tristan Gingold <gingold@adacore.com>
1529
1530 * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
1531 Improve error message generation.
1532
15332008-04-08 Vincent Celier <celier@adacore.com>
1534
1535 * a-direct.adb (Start_Search): Check for Name_Error before checking for
1536 Use_Error, as specified in the RM. Check if directory is open and raise
1537 Use_Error if it is not.
1538
15392008-04-08 Vincent Celier <celier@adacore.com>
1540 Robert Dewar <dewar@adacore.com>
1541
1542 * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
1543 AAMP_On_Target is set.
1544
1545 * vms_data.ads: Add NOxxx to style check switch list
1546 Add entry COMPONENTS for -gnatVe
1547 Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
1548 (/SUBDIRS=).
1549 (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
1550 Add qualifiers for gnatmetric coupling options
1551 Add note that -gnata enables all checks
1552 Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
1553 Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
1554 New warning flag -gnatw.e
1555
1556 * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
1557 Add entry for -gnatyN (forgotten before)
1558 Line for new warning switch -gnatw.p
1559 New warning flag -gnatw.e
1560
1561 * gnat_ugn.texi: Add documentation fpr project file switch -aP
1562 Document -gnaty - + y
1563 Replace occurences of "package specification" with "package spec"
1564 Define preprocessing symbols in documentation of gnatprep
1565 Clarify reason for distinguishing overflow checking
1566 Add documentation for project-aware tool switches -eL and --subdirs=
1567 Complete list of configuration pragmas
1568 Specify that, even when gnatmake switch -x is used, mains on the command
1569 line need to be sources of project files.
1570 Editing of gnatcheck/gnatmetric doc.
1571 Add documentation for -gnatw.p/-gnatw.P
1572 Add missing documentation for -fno-inline-functions.
1573 Add documentation for -gnatw.e
1574
1575 * gnat_rm.texi: Add documentation for No_Default_Initialization
1576 Replace occurences of "package specification" with "package spec"
1577 Document use of * in Warnings Off string
1578 Update documentation of alignment/component clauses.
1579 Add documentation for Invalid_Value
1580 Document new consistency rule for Optimize_Alignment
1581 Add documentation for Precondition and Postcondition pragmas
1582 Add documentation for Check and Check_Policy pragmas
1583 Document new Enum_Val attribute
1584 Remove requirement for static string in pragma Assert
1585 Add documentation on GNAT.Time_Stamp
1586
1587 * ug_words: add entry for -gnatVe
1588 Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
1589 Add entry for -gnatw.e
1590
1591 * debug.adb: Add missing documentation for d.a flag
1592 Document new -gnatd.a switch.
1593 Add documentation for new gnatmake debug switch -df
1594
15952008-04-08 Thomas Quinot <quinot@adacore.com>
1596
1597 * gen-soccon.c: Bump year in copyright notices.
1598
1599 * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
1600
16012008-04-08 Eric Botcazou <ebotcazou@adacore.com>
1602
1603 * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
1604 Minor reformatting.
1605
16062008-04-08 Robert Dewar <dewar@adacore.com>
1607 Bob Duff <duff@adacore.com>
1608
1609 * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
1610 Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
1611
1612 * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
1613
1614 * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
1615
1616 * g-trasym.ads: Minor comment improvements
1617
1618 * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
1619
1620 * a-sequio.ads, a-direio.ads: improve message for tagged type
1621
1622 * a-strunb.ads: Minor reformatting
1623
1624 * a-tifiio.adb: Minor reformatting
1625
1626 * atree.adb (Fix_Parents): Use clearer names for formals
1627 Cleanup and simplify code
1628 Use named notation in calls
1629
1630 * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
1631 confusing calls
1632
1633 * uintp.adb: Used named notation for some confusing calls
1634
1635 * bindusg.adb: Minor change in one line of output
1636
1637 * cstand.adb: Minor reformatting of src representation of Standard
1638
1639 * a-assert.ads: Add comment.
1640
1641 * g-decstr.adb: Fix bad indentation
1642
1643 * expander.ads, expander.adb: Code clean up.
1644
1645 * sem_dist.ads: Minor comment improvement
1646
1647 * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
1648 s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
1649
1650 * i-cstrin.adb: Fix casing error in formal parameter name in call
1651
16522008-04-08 Ed Schonberg <schonberg@adacore.com>
1653
1654 * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
1655 mentioned in limited_with_clauses to do create semantic dependencies
1656 even though they appear in the ali file.
1657
16582008-04-08 Emmanuel Briot <briot@adacore.com>
1659
1660 * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
1661 statement.
1662 (Get_Configuration): New subprogram.
1663
1664 * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
1665 These optional parameters help preserve the casing of the project's name
1666 when pretty-printing.
1667
16682008-04-08 Jerome Lambourg <lambourg@adacore.com>
1669 Arnaud Charlet <charlet@adacore.com>
1670
1671 * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
1672 then use __gnat_set_exit_status to report the returned status code.
1673
1674 * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
1675 messages on .NET, since some constructs of the language are not
1676 properly supported.
1677
1678 * gnatlink.adb (Gnatlink): In case the command line is too long for the
1679 .NET linker, gnatlink now concatenate all .il files and pass this to
1680 ilasm.
1681
d8ec5bf2
AJ
16822008-04-07 Aurelien Jarno <aurelien@aurel32.net>
1683 Xavier Grave <grave@ipno.in2p3.fr>
1684
1685 * Makefile.in: Add make ifeq define for mips/mipsel support.
1686 * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
1687 system-linux-mips.ads: New files.
1688
7437c8d4
AJ
16892008-04-07 Aurelien Jarno <aurelien@aurel32.net>
1690
1691 * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
1692 detect systems using GNU libc.
1693 * gsocket.h: ditto.
1694 * socket.c: ditto.
1695 * adaint.c: ditto.
1696 * link.c: ditto.
1697
1dab7b35
AJ
16982008-04-07 Aurelien Jarno <aurelien@aurel32.net>
1699
1700 * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
1701 constant constant for sysconf call.
1702 (bit_field): New packed boolean type used by cpu_set_t.
1703 (cpu_set_t): New type corresponding to the C type with
1704 the same name. Note that on the Ada side we use a bit
1705 field array for the affinity mask. There is not need
1706 for the C macro for setting individual bit.
1707 (pthread_setaffinity_np): New imported routine.
1708 * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
1709 on GNU/kFreeBSD.
1710
39fcde8f
EB
17112008-04-07 Eric Botcazou <ebotcazou@adacore.com>
1712
1713 * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
1714
9dd9bf80
EB
17152008-04-07 Eric Botcazou <ebotcazou@adacore.com>
1716
1717 * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
1718 * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
1719 * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
1720 * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
1721 Return by Depressed Stack Pointer.
1722
2d091b12
EB
17232008-04-06 Eric Botcazou <ebotcazou@adacore.com>
1724
1725 * decl.c (is_variable_size): Do not unconditionally return false
1726 on non-strict alignment platforms.
1727
1bde5bc4
EB
17282008-04-06 Eric Botcazou <ebotcazou@adacore.com>
1729
1730 * decl.c (rest_of_type_decl_compilation_no_defer): New local function
1731 used to process all the variants of the specified type.
1732 (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
1733 types too. Call rest_of_type_decl_compilation_no_defer if undeferring.
1734 (rest_of_type_decl_compilation): Likewise.
1735 * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
1736
9ff420f1
PB
17372008-04-03 Paolo Bonzini <bonzini@gnu.org>
1738
1bde5bc4
EB
1739 * gigi.h (insert_block): Kill.
1740 * utils.c (insert_block): Kill.
9ff420f1 1741
bf1e48d1
EB
17422008-04-02 Eric Botcazou <ebotcazou@adacore.com>
1743
1744 * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
1745 type has self-referential size, get the size from the initializing
1746 expression directly if it is also a constant whose nominal type
1747 has self-referential size.
1748
a6a0635e
JDA
17492008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1750
51e5c7b5
JDA
1751 PR ada/33688
1752 * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
1753
a6a0635e
JDA
1754 PR ada/33857
1755 * env.c: Always include crt_externs.h if __APPLE__ is defined.
1756 (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
1757
4d22f5b1
AJ
17582008-04-01 Andreas Jaeger <aj@suse.de>
1759
1760 * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
1761 IP_PKTINFO.
1762
dec55d76
RW
17632008-03-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1764
1765 * g-table.adb, g-tasloc.adb, g-traceb.ads,
1766 g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
1767 gnatbind.adb, gnatchop.adb, gnatcmd.adb,
1768 gnatcmd.ads, gnatdll.adb, gnatfind.adb,
1769 gnatlink.adb, gnatmem.adb, gprep.adb,
1770 i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
1771 i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
1772 layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
1773 lib-xref.ads, lib.adb, link.c, live.ads,
1774 make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
1775 mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
1776 misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
1777 mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
1778 namet.adb, namet.h, nlists.adb, nlists.ads,
1779 nlists.h, opt.ads, osint-b.ads, osint-c.adb,
1780 osint-c.ads, osint.adb, osint.ads, output.ads,
1781 par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
1782 par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
1783 par-endh.adb, par-labl.adb, par-prag.adb,
1784 par-sync.adb, par-tchk.adb, par-util.adb,
1785 par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
1786 prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
1787 prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
1788 prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
1789
5a864002
EB
17902008-03-31 Eric Botcazou <ebotcazou@adacore.com>
1791
1792 * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
1793 size if it has overflowed.
1794
2566855a 17952008-03-31 Olivier Hainque <hainque@adacore.com>
5a864002 1796 Eric Botcazou <ebotcazou@adacore.com>
2566855a
OH
1797
1798 * utils2.c (find_common_type): Document assumption on t1/t2 vs
1799 lhs/rhs. Force use of lhs type if smaller, whatever the modes.
1800
e14c931f
RW
18012008-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1802
1803 * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
1804 einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
1805 exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
1806 exp_pakd.ads, exp_prag.adb, exp_smem.adb,
1807 exp_tss.ads, exp_util.adb, exp_util.ads,
1808 exp_vfpt.adb, freeze.adb, freeze.ads,
1809 frontend.adb, g-alleve.adb, g-altcon.adb,
1810 g-altive.ads, g-alveop.ads, g-alvevi.ads,
1811 g-arrspl.adb, g-busorg.ads, g-calend.adb,
1812 g-calend.ads, g-casuti.ads, g-cgideb.adb,
1813 g-comlin.adb, g-comlin.ads, g-curexc.ads,
1814 g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
1815 g-dirope.adb, g-dirope.ads, g-dynhta.ads,
1816 g-dyntab.adb, g-encstr.ads, g-excact.ads,
1817 g-except.ads, g-expect.ads, g-heasor.adb,
1818 g-hesora.adb, g-hesorg.adb, g-htable.ads,
1819 g-locfil.ads, g-md5.adb, g-md5.ads,
1820 g-memdum.ads, g-moreex.ads, g-os_lib.adb,
1821 g-pehage.adb, g-pehage.ads, g-regexp.adb,
1822 g-regexp.ads, g-regpat.adb, g-regpat.ads,
1823 g-soccon-aix.ads, g-soccon-darwin.ads,
1824 g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
1825 g-soccon-hpux.ads, g-soccon-irix.ads,
1826 g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
1827 g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
1828 g-soccon-mingw.ads, g-soccon-solaris-64.ads,
1829 g-soccon-solaris.ads, g-soccon-tru64.ads,
1830 g-soccon-vms.ads, g-soccon-vxworks.ads,
1831 g-soccon.ads, g-socket.adb, g-socket.ads,
1832 g-socthi-mingw.adb, g-socthi-vms.adb,
1833 g-socthi-vxworks.adb, g-soliop-mingw.ads,
1834 g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
1835 g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
1836 typos.
1837
2bc894d9
EB
18382008-03-27 Eric Botcazou <ebotcazou@adacore.com>
1839
1840 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
1841 if the procedure is imported.
1842
640bd0bf
AC
18432008-03-26 Arnaud Charlet <charlet@adacore.com>
1844
1845 * adaint.c: Fix warnings.
1846
0afae63b
AC
18472008-03-26 Arnaud Charlet <charlet@adacore.com>
1848
1849 * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
1850
afc5f979
AC
18512008-03-26 Arnaud Charlet <charlet@adacore.com>
1852
1853 * a-witeio.adb: Fix problem with Current_Output (introduce Self).
1854 Fix problem of status check for null file
1855
c5d31169
AC
18562008-03-26 Arnaud Charlet <charlet@adacore.com>
1857
1858 * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
1859 s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
1860 s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
1861 i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
1862 s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
1863 comments.
1864
b501b251
AC
18652008-03-26 Thomas Quinot <quinot@adacore.com>
1866
2bc894d9 1867 PR ada/33688
b501b251
AC
1868 * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
1869 Get_Socket_Option): Add support for Receive_Packet_Info.
1870
1871 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
1872 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
1873 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
1874 g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
1875 g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
1876 new constants SO_REUSEPORT and IP_PKTINFO
1877
18782008-03-26 Robert Dewar <dewar@adacore.com>
1879
1880 * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
1881 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
1882 a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
1883 a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
1884 a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
1885 a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
1886 s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
1887 s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
1888 a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
1889 s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
1890 s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
1891 s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
1892 s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
1893 s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
1894 s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
1895 s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
1896 s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
1897 s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
1898 s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
1899 s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
1900 a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
1901 a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
1902 s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
1903 s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
1904 s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
1905 s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
1906 s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
1907 a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
1908 a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
1909 s-tasloc.adb: Minor reformatting.
1910 Update comments.
1911 Remove "used for" sections from comments.
1912
19132008-03-26 Robert Dewar <dewar@adacore.com>
1914
1915 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
1916 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
1917 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
1918 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
1919 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
1920 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
1921 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
1922 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
1923 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
1924 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
1925 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
1926 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
1927 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
1928 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
1929 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
1930 double spaced if it fits on one line and otherwise single spaced.
1931
19322008-03-26 Arnaud Charlet <charlet@adacore.com>
1933
1934 * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
1935 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
1936 s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
1937 or task info if the thread could not be created.
1938
19392008-03-26 Arnaud Charlet <charlet@adacore.com>
1940
1941 * gnatvsn.ads (Library_Version): Bump to 4.4.
1942 (Current_Year): Bump to 2008.
1943
19442008-03-26 Robert Dewar <dewar@adacore.com>
1945
1946 * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
1947
1948 * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
1949
1950 * debug.adb: Add debug flags d.r and d.v
1951 Add debug flag .T (Optimize_Alignment (Time))
1952 Add debug flag .S (Optimize_Alignment (Space))
1953
1954 * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
1955 depending on setting of relevant debug flags.
1956 Replace use of Warnings_Off by Has_Warnings_Off
1957 (Freeze_Entity): In circuit for warning on suspicious convention
1958 actuals, do not give warning if subprogram has same entity as formal
1959 type, or if subprogram does not come from source.
1960 (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
1961 if Optimize_Alignment set to Space.
1962
1963 * frontend.adb: Add call to Sem_Warn.Initialize
1964 Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
1965 Reset Optimize_Alignment mode from debug switches .S and .T
1966
1967 * layout.adb (Layout_Composite_Object): Rewritten for
1968 Optimize_Aligment pragma.
1969
1970 * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
1971 mode.
1972
1973 * opt.ads, opt.adb: (Optimize_Alignment): New global switch
1974
1975 * par-prag.adb (N_Pragma): Chars field removed, use Chars
1976 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
1977 this change. Add entry for pragma Optimize_Alignment
1978
1979 * sem_prag.adb (N_Pragma): Chars field removed, use Chars
1980 (Pragma_Identifier (..
1981 instead, adjustments throughout to accomodate this change.
1982 (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
1983 (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
1984 Add implementation of pragma Optimize_Alignment
1985
19862008-03-26 Vincent Celier <celier@adacore.com>
1987
1988 * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
1989 Improve memory usage to avoid use of stack.
1990
19912008-03-26 Robert Dewar <dewar@adacore.com>
1992
1993 * a-teioed.ads: Correct value of Default_Fill
1994
1995 * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
1996
19972008-03-26 Robert Dewar <dewar@adacore.com>
1998
1999 * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
2000 with Current_Output (introduce Self).
2001
20022008-03-26 Robert Dewar <dewar@adacore.com>
2003
2004 * checks.adb (Ensure_Valid): Capture valid status if possible
2005 (eliminate checks)
2006
20072008-03-26 Robert Dewar <dewar@adacore.com>
2008
2009 * stand.ads: Deal with reordering of package standard declarations
2010
2011 * cstand.adb: Put package Standard declarations in proper order
2012
20132008-03-26 Robert Dewar <dewar@adacore.com>
2014
2015 * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
2016 (Pragma_Identifier (.. instead.
2017 (OK_To_Reorder_Components): New flag
2018 (Has_Entries): Code cleanup.
2019 (Warnings_Off_Used): New flag
2020 (Warnings_Off_Used_Unmodified): New flag
2021 (Warnings_Off_Used_Unreferenced): New flag
2022 (Has_Warnings_Off): New function
2023 (Has_Unmodified): New function
2024 (Has_Unreferenced): New function
2025 (Is_Trivial_Subprogram): New flag
2026 (Is_Static_Dispatch_Table_Entity): New attribute.
2027 Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
2028 (more consistent with other similar names)
2029 (Access_Subprogram_Type): New classification function
2030
20312008-03-26 Robert Dewar <dewar@adacore.com>
2032
2033 * errout.ads: Document new !! insertion sequence
2034
2035 * errout.adb (N_Pragma): Chars field removed, use Chars
2036 (Pragma_Identifier (.. instead.
2037 Replace use of Warnings_Off by Has_Warnings_Off
2038 (Error_Msg_Internal): Don't delete warning ending in !!
2039
20402008-03-26 Robert Dewar <dewar@adacore.com>
2041
2042 * par.adb (Check_No_Right_Paren): Removed no longer used
2043
2044 * par-ch10.adb (N_Pragma): Chars field removed, use Chars
2045 (Pragma_Identifier (.. instead.
2046
2047 * par-ch10.adb (P_Subunit): Improvement in error recovery and message
2048
2049 * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
2050 par-ch4.adb: Minor improvements in error recovery and messages.
2051
2052 * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
2053 non-serious
2054
2055 * par-ch9.adb: Minor improvements in error recovery and messages
2056 (P_Protected): Better error recovery for "protected type x;"
2057
2058 * par-util.adb: Minor improvements in error recovery and messages
2059 (Check_No_Right_Paren): Removed no longer used
2060
20612008-03-26 Ed Schonberg <schonberg@adacore.com>
2062
2063 * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
2064 that the prefix of an attribute is the type of the aggregate being
2065 expanded.
2066
20672008-03-26 Javier Miranda <miranda@adacore.com>
2068 Robert Dewar <dewar@adacore.com>
2069
2070 * exp_attr.adb (N_Pragma): Chars field removed.
2071 (Expand_N_Attribute_Reference): If the designated type associated with
2072 attribute 'Unrestricted_Access is a subprogram entity then replace it
2073 by an E_Subprogram_Type itype.
2074 Implement attribute Old
2075
2076 * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
2077
2078 * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
2079 Replace call to
2080 New_Internal_Entity by call to Create_Itype to centralize calls
2081 building itypes, ad propagate the convention of the designated
2082 subprogram. In addition, disable the machinery cleaning constant
2083 indications from all entities in current scope when 'Unrestricted_Access
2084 corresponds with a node initializing a dispatch table slot.
2085 (Analyze_Attribute): Parameterless attributes returning a string or a
2086 type will not be called with improper arguments, so we can remove junk
2087 code that was dealing with this case.
2088 Implement attribute Old
2089
2090 * snames.ads, snames.h, snames.adb: Add entries for attribute Old
2091 Add entry for pragma Optimize_Alignment
2092 New standard names Sync and Synchronize
2093
20942008-03-26 Robert Dewar <dewar@adacore.com>
2095 Arnaud Charlet <charlet@adacore.com>
2096
2097 * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
2098 stmt.
2099 (No_Exception_Propagation_Active): New function.
2100 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
2101 Update comments, and review all uses of No_Exception_Propagation, which
2102 are now correct and in sync with what gigi expects.
2103
2104 * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
2105 function.
2106 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
2107 Update comments, and review all uses of No_Exception_Propagation, which
2108 are now correct and in sync with what gigi expects.
2109
21102008-03-26 Ed Schonberg <schonberg@adacore.com>
2111
2112 * sem_ch3.adb (Access_Definition): If the access type is the return
2113 result of a protected function, create an itype reference for it
2114 because usage will be in an inner scope from the point of declaration.
2115 (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
2116 OK_To_Reorder_Components.
2117 (Make_Index): If an overloaded range includes a universal integer
2118 interpretation, resolve to Standard.Integer.
2119 (Analyze_Subtype_Indication): Copy Convention to subtype
2120 (Check_Abstract_Interfaces): Complete semantic checks on the legality of
2121 limited an synchronized progenitors in type declaration and private
2122 extension declarations.
2123
2124 * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
2125 protected subprogram body, determine proper scope from subprogram
2126 declaration.
2127
21282008-03-26 Robert Dewar <dewar@adacore.com>
2129
2130 * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
2131 No_Run_Time_Mode
2132
21332008-03-26 Gary Dismukes <dismukes@adacore.com>
2134
2135 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
2136 of a heap allocator for a limited unconstrained function return when
2137 resstriction No_Allocators is active.
2138 (Analyze_Allocator): The restriction No_Allocators is now only checked
2139 on allocators that have Comes_From_Source set, as per RM-H.4(7).
2140
2141 * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
2142 of a heap allocator for a limited unconstrained function return when
2143 resstriction No_Allocators is active.
2144 (Analyze_Allocator): The restriction No_Allocators is now only checked
2145 on allocators that have Comes_From_Source set, as per RM-H.4(7).
2146 (Has_Fixed_Op): If the name in a function call is Standard."*" and the
2147 operands are fixed-point types, the universal_fixed predefined operation
2148 is used, regardless of whether the operand type (s) have a primitive
2149 operation of the same name.
2150
21512008-03-26 Javier Miranda <miranda@adacore.com>
2152
2153 * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
2154 Is_Static_Dispatch_Table
2155 (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
2156 to Exchange_Declarations to exchange the private and full-view. Bug
2157 found working in this issue.
2158 (Expand_Dispatching_Call): Propagate the convention of the subprogram
2159 to the subprogram pointer type.
2160 (Make_Secondary_DT): Replace generation of Prim'Address by
2161 Address (Prim'Unrestricted_Access)
2162 (Make_DT): Replace generation of Prim'Address by
2163 Address (Prim'Unrestricted_Access)
2164 (Make_Disp_*_Bodies): When compiling for a restricted profile, use
2165 simple call form for single entry.
2166 (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
2167 tables of predefined primitives).
2168 (Make_Secondary_DT): Add support to handle access to dispatch tables of
2169 predefined primitives.
2170 (Make_Tags): Add entities to Access_Dispatch_Table associated with
2171 access to dispatch tables containing predefined primitives.
2172
2173 * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
2174 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
2175 this change.
2176 (Register_Predefined_DT_Entry): Updated to handle the new contents
2177 of attribute Access_Disp_Table (pointers to dispatch tables containing
2178 predefined primitives).
2179
2180 * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
2181 subprogram.
2182 (Find_Interface_ADT): Updated to skip the new contents of attribute
2183 Access_Dispatch_Table (pointers to dispatch tables containing predefined
2184 primitives).
2185
2186 * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
2187 concurrent types.
2188 (Set_Convention): Use new function Is_Access_Subprogram_Type
2189 (Collect_Interfaces_Info): Updated to skip the new contents of attribute
2190 Access_Dispatch_Table (pointers to dispatch tables containing predefined
2191 primitives).
2192
2193 * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
2194 expanded code avoiding calls to Build_Predef_Prims.
2195 (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
2196 call to Build_Get_Predefined_Prim_Op_Address.
2197
21982008-03-26 Javier Miranda <miranda@adacore.com>
2199
2200 * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
2201 subprogram Corresponding_Runtime_Package to know the runtime package
2202 that will provide support to a given protected type.
2203
2204 * exp_ch9.adb (Add_Private_Declarations,
2205 Build_Protected_Subprogram_Call,
2206 Build_Protected_Entry, Build_Simple_Entry_Call,
2207 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
2208 Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
2209 cleanup using the new centralized subprogram Corresponding_Runtime
2210 Package to know the runtime package that provides support to
2211 a given protected type.
2212
22132008-03-26 Ed Schonberg <schonberg@adacore.com>
2214
2215 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
2216 assignment is within the initialization procedure for a packed array,
2217 and Initialize_Scalars is enabled, compile right-hand side with checks
2218 off, because the value is purposely out of range.
2219
22202008-03-26 Vincent Celier <celier@adacore.com>
2221
2222 * gnatcmd.adb: Add processing for GNAT SYNC
2223
2224 * vms_conv.ads: (Command_Type): Add command Sync
2225
2226 * vms_conv.adb (Initialize): Add Command_List data for new command Sync
2227
2228 * vms_data.ads: Add entries for -gnatw.w
2229 Add qualifier for gnatstub --header-file option
2230 Add switches for GNAT SYNC
2231
2232 * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
2233 (Add_Package_Name): New procedure
2234 (Package_Name_List): New function
2235 (Initialize): Add known package names to the list
2236 (Register_New_Package): Add the new package name to the list
2237
22382008-03-26 Robert Dewar <dewar@adacore.com>
2239
2240 * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
2241 s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
2242 Raise_Exception by "raise with" construct.
2243
22442008-03-26 Pascal Obry <obry@adacore.com>
2245
2246 * Makefile.in: Add proper GNAT.Serial_Communications implementation on
2247 supported platforms.
2248
2249 * Makefile.rtl: Add g-sercom.o.
2250
2251 * impunit.adb: Add g-sercom.adb.
2252
2253 * s-crtl.ads (open): New routine.
2254 (close): Likewise.
2255 (write): Likewise.
2256
2257 * s-osinte-mingw.ads (BYTE): New type.
2258 (CHAR): Likewise.
2259 (OVERLAPPED): Likewise.
2260 (GENERIC_READ): New constant.
2261 (GENERIC_WRITE): Likewise.
2262 (OPEN_EXISTING): Likewise.
2263 (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
2264 type instead.
2265 (CreateFile): New routine.
2266 (WriteFile): Likewise.
2267 (ReadFile): Likewise.
2268 (CloseHandle): Move next to the other file oriented routines.
2269
2270 * g-sercom.ads: New unit.
2271
2272 * g-sercom.adb: Default implementation, calls to this unit will raise
2273 a program error exception.
2274
2275 * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
2276 GNU/Linux implementations.
2277
22782008-03-26 Robert Dewar <dewar@adacore.com>
2279
2280 * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
2281
2282 * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
2283 unchecked conversion for different conventions only for subprogram
2284 pointers or on VMS.
2285
22862008-03-26 Vincent Celier <celier@adacore.com>
2287
2288 * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
2289 to check if the specified object file is correct.
2290
22912008-03-26 Thomas Quinot <quinot@adacore.com>
2292
2293 * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
2294 Comes_From_Source to exclude primitives from being checked. We want to
2295 exclude predefined primitives only, so use the appropriate specific
2296 predicate. Also, flag a formal parameter of an anonymous
2297 access-to-subprogram type as illegal for a primitive operation of a
2298 remote access to class-wide type.
2299
23002008-03-26 Vincent Celier <celier@adacore.com>
2301
2302 * prj-dect.adb (Parse_Package_Declaration): When a package name is not
2303 known, check if it may be a missspelling of a known package name. In
2304 not verbose, not mode, issue warnings only if the package name is a
2305 possible misspelling.
2306 In verbose mode, always issue a warning for a not known package name,
2307 plus a warning if the name is a misspelling of a known package name.
2308
2309 * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
2310 limited withs or limited withs are parse during one call.
2311 (Parse_Single_Project): Post parse context clause in two passes: non
2312 limited withs before current project and limited withs after current
2313 project.
2314
2315 * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
2316 project with the name With_Name, even if it is only extended indirectly.
2317 (Recursive_Process): Process projects in order: first single withs, then
2318 current project, then limited withs.
2319
2320 * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
2321 project with the name With_Name, even if it is only extended indirectly.
2322
23232008-03-26 Robert Dewar <dewar@adacore.com>
2324
2325 * scn.adb (Initialize_Scanner): Format messages belong on standard error
2326
23272008-03-26 Ed Schonberg <schonberg@adacore.com>
2328
2329 * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
2330 a generic subprogram that is imported, do not attempt to compile
2331 non-existent body.
2332
2333 * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
2334 imported, do not generate a raise_program_error for the non-existent
2335 body.
2336 (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
2337 perform minimal name resolution on the generic to avoid spurious
2338 warnings.
2339 (Find_Actual_Type): the designated type of the actual in a child unit
2340 may be declared in a parent unit without being an actual.
2341
23422008-03-26 Robert Dewar <dewar@adacore.com>
2343
2344 * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
2345 * sinfo.ads, sinfo.adb (From_At_End): New flag
2346
23472008-03-26 Ed Schonberg <schonberg@adacore.com>
2348
2349 * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
2350 operations that have an interface parameter.
2351 (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
2352 Don't treat No_Return call as raise.
2353
2354 * sem_disp.adb (Check_Dispatching_Operations): apply check for
2355 non-primitive interface primitives to access parameters, not to all
2356 parameters of an access type.
2357
23582008-03-26 Ed Schonberg <schonberg@adacore.com>
2359
2360 * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
2361 declarations of a parent unit are made visible when compiling a child
2362 instance, the parent is not a hidden open scope, even though it may
2363 contain other pending instance.
2364
2365 * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
2366 hidden open scope for some child instance, it does affect the
2367 visibility status of other stach entries.
2368 (Analyze_Object_Renaming): Check that a class-wide object cannot be
2369 renamed as an object of a specific type.
2370
23712008-03-26 Robert Dewar <dewar@adacore.com>
2372
2373 * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
2374 recursion and raise SE directly.
2375 (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
2376 set for formal type for IN mode parameter.
2377
23782008-03-26 Robert Dewar <dewar@adacore.com>
2379
2380 * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
2381 (Initialize): New procedure
2382 (Output_Warnings_Off_Warnings): New procedure
2383 (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
2384 (Output_Non_Modifed_In_Out_Warnings): Ditto
2385 (Warn_On_Unreferenced_Entity): Ditto
2386
23872008-03-26 Vincent Celier <celier@adacore.com>
2388
2389 * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
2390 readable.
2391
23922008-03-26 Matthew Heaney <heaney@adacore.com>
2393
2394 * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
2395 a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
2396 Marked with clauses as private, and controlled operations as overriding
2397
23982008-03-26 Robert Dewar <dewar@adacore.com>
2399
2400 * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
2401
24022008-03-26 Robert Dewar <dewar@adacore.com>
2403
2404 * back_end.adb, back_end.ads: Minor reformatting
2405
2406 * bindgen.adb: Minor clarification of comments
2407
2408 * fname.ads: Minor comment fixes
2409
2410 * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
2411 prj-nmsc.adb, sem_aggr.adb: Minor reformatting
2412
2413 * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
2414 xsnames.adb: Remove warnings off pragma no longer needed
2415
2416 * a-catizo.ads, a-calari.ads, a-calfor.adb,
2417 a-calfor.ads: Fix header.
2418
24192008-03-26 Tristan Gingold <gingold@adacore.com>
2420
2421 * init.c: Do not adjust pc for HPARITH on alpha/vms.
2422
24232008-03-26 Robert Dewar <dewar@adacore.com>
2424
2425 * lib-xref.adb: (OK_To_Set_Reference): New function
2426 (Generate_Reference): Don't set referenced from occurrence in Warnings,
2427 Unmodified, or Unreferenced pragma
2428
24292008-03-26 Robert Dewar <dewar@adacore.com>
2430
2431 * alloc.ads: Add entries for Warnings_Off_Pragmas table
2432
24332008-03-26 GNAT Script <nobody@adacore.com>
2434
2435 * Make-lang.in: Makefile automatically updated
2436
24372008-03-26 Robert Dewar <dewar@adacore.com>
2438
2439 * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
2440 par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
2441 removed, use Chars (Pragma_Identifier (.. instead, adjustments
2442 throughout to accomodate this change.
2443
2444 * s-pooglo.ads, s-pooloc.ads: Minor comment updates
2445
2446 * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
2447 Einfo.Set_Needs_Debug_Info)
2448
24492008-03-26 Robert Dewar <dewar@adacore.com>
2450
2451 * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
2452 Add description for the new gnatstub option '--header-file'
2453 clarification of -gnatwz/-gnatwZ
2454 Add a "Irix-Specific Considerations" section to document the need to
2455 set LD_LIBRARY_PATH when using the default shared runtime library.
2456 Added documentation for both gcov and gprof.
2457
2458 * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
2459 messages that are not suppressed when clients are compiled.
2460 Add documentation of s-pooglo s-pooloc
2461 Document the new GNAT.Serial_Communications API.
2462 Add documentation for 'Old attribute
2463 Add description of pragma Optimize_Alignment
2464
2465 * ug_words: Add entries for -gnatw.w -gnatw.W
2466
2467 * usage.adb: Add line for -gnatw.w (warn on warnings off)
2468
3a9634be
EB
24692008-03-25 Eric Botcazou <ebotcazou@adacore.com>
2470
2471 Revert
2472 2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
2473 PR ada/35186
2474 * decl.c (maybe_pad_type): Avoid padding an integral type when
2475 bumping its alignment is sufficient.
2476
53b308f6
AC
24772008-03-25 Arnaud Charlet <charlet@adacore.com>
2478
2479 * exp_ch6.adb, exp_disp.adb: Update copyright notice.
2480 Fix wrong formatting (lines too long)
2481
8fc789c8
RW
24822008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2483
2484 * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
2485 a-calend-vms.adb, a-calend.adb, a-calend.ads,
2486 a-calfor.adb, a-chahan.ads, a-chtgke.adb,
2487 a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
2488 a-cohama.ads, a-comlin.ads, a-coorse.adb,
2489 a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
2490 a-except-2005.ads, a-except.adb, a-except.ads,
2491 a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
2492 a-exextr.adb, a-filico.ads, a-finali.ads,
2493 a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
2494 a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
2495 a-sequio.ads, a-strbou.ads, a-strfix.adb,
2496 checks.adb, exp_ch3.adb, exp_ch4.adb,
2497 exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
2498 exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
2499 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
2500 exp_dbug.ads, exp_disp.adb, exp_dist.adb,
2501 exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
2502
15f6d6e7
RD
25032008-03-24 Robert Dewar <dewar@adacore.com>
2504
2505 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
2506 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
2507 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
2508 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
2509 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
2510 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
2511 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
2512 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
2513 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
2514 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
2515 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
2516 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
2517 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
2518 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
2519 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
2520 double spaced if it fits on one line and otherwise single spaced.
2521
b2e74434
RW
25222008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2523
2524 PR documentation/15479
2525 * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
2526 (doc/gnat_ugn_unw.texi): ... this, and adjusted.
2527 (doc/gnat_ugn.info): Renamed from ...
2528 (doc/gnat_ugn_unw.info): ... this.
2529 (doc/gnat_ugn.dvi): Renamed from ...
2530 (doc/gnat_ugn_unw.dvi): ... this.
2531 (doc/gnat_ugn.pdf): Renamed from ...
2532 (doc/gnat_ugn_unw.pdf): ... this.
2533 (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
2534 Adjusted.
2535 * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
2536 unconditionally to gnat_ugn.info. Fix cross references to the
2537 GNAT Reference Manual. Convert links to the GCC, GDB, Emacs,
2538 and GNU make manuals to be proper texinfo links.
2539 * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
2540
f4351641
OH
25412008-03-21 Olivier Hainque <hainque@adacore.com>
2542
2543 * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
2544 ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
2545
10c5d1a0
EB
25462008-03-21 Eric Botcazou <ebotcazou@adacore.com>
2547
2548 * trans.c (addressable_p): Add notes on addressability issues.
2549
457b629a
OH
25502008-03-21 Olivier Hainque <hainque@adacore.com>
2551 Ed Schonberg <schonberg@adacore.com>
2552
2553 * trans.c (addressable_p): Accept COND_EXPR when both arms
2554 are addressable.
2555 (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
2556 (call_to_gnu): Do not use name reference in the error message
2557 for a misaligned by_reference_parameter. The actual may be a
2558 general expression.
2559
ac5dc795
PB
25602008-03-18 Paolo Bonzini <bonzini@gnu.org>
2561
e1da2b17
EB
2562 * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
2563
79f34d07
RW
25642008-03-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2565
2566 * gnat_rm.texi (Implementation Defined Characteristics)
2567 (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
2568 appropriate.
2569 * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
2570 (Switches for gnatchop, Installing a library): Likewise.
2571
e1e7141c
EB
25722008-03-10 Eric Botcazou <ebotcazou@adacore.com>
2573
2574 * trans.c (emit_range_check): Do not emit the check if the base type
2575 of the expression is the type against which its range must be checked.
2576
892f6e65
EB
25772008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2578
2579 * decl.c (maybe_pad_type): Use value_factor_p.
2580
7934d781
EB
25812008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2582
2583 * lang.opt (nostdlib): Move around.
2584 * misc.c (gnat_handle_option): Fix formatting.
2585 (gnat_dwarf_name): Move around.
2586 * trans.c (Case_Statement_to_gnu): Fix formatting.
2587 (gnat_to_gnu): Likewise.
2588 * utils.c (aggregate_type_contains_array_p): Likewise.
2589 (create_subprog_decl): Likewise.
2590
8f5893ab
EB
25912008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2592
2593 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
2594 bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
2595
ba436c3b
EB
25962008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2597
2598 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
2599 BIGGEST_ALIGNMENT when capping the alignment of records with
2600 strict alignment and size clause.
2601
6ab36dac
EB
26022008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2603
2604 * lang-specs.h: Pass -gnatwa if -Wall is passed.
2605 * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
2606 and -Wuninitialized.
2607 (gnat_post_options): Clear warn_unused_parameter.
2608
8853cb0b
EB
26092008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2610
2611 * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
2612 aligned bit-fields, bumping the alignment of the record type if deemed
2613 profitable.
2614 (value_factor_p): Return false instead of 0.
2615
66abe22c
EB
26162008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2617
2618 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
2619 for scalar types with small alignment.
2620
563569be
EB
26212008-03-08 Eric Botcazou <ebotcazou@adacore.com>
2622
2623 * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
2624 from that of the front-end's end label.
2625 (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
2626 from that of the loop label.
2627
b49a1a1e
EB
26282008-03-07 Eric Botcazou <ebotcazou@adacore.com>
2629
2630 * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
2631 comment for the packed array type case.
2632 * utils.c (build_template): Use a loop to strip padding or
2633 containing records for justified modular types.
2634
fd5c81e9
EB
26352008-03-07 Eric Botcazou <ebotcazou@adacore.com>
2636
2637 * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
2638 large alignments specified for types.
2639 (validate_alignment): Minor cleanup.
2640
7f42aa36
EB
26412008-03-07 Eric Botcazou <ebotcazou@adacore.com>
2642
2643 * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
2644 (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
2645 the component for packing, if possible, as well as if a component
2646 size clause is specified.
2647 <E_Record_Subtype>: For an array type used to implement a packed
2648 array, get the component type from the original array type.
2649 Try to get a smaller form of the component for packing, if possible,
2650 as well as if a component size clause is specified.
2651 (round_up_to_align): New function.
2652 (make_packable_type): Add in_record parameter.
2653 For a padding record, preserve the size. If not in_record and the
2654 size is too large for an integral mode, attempt to shrink the size
2655 by lowering the alignment.
2656 Ditch the padding bits of the last component.
2657 Compute sizes and mode manually, and propagate the RM size.
2658 Return a BLKmode record type if its size has shrunk.
2659 (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
2660 Use Original_Array_Type to retrieve the type in case of an error.
2661 Adjust call to make_packable_type.
2662 (gnat_to_gnu_field): Likewise.
2663 (concat_id_with_name): Minor tweak.
2664 * trans.c (larger_record_type_p): New predicate.
2665 (call_to_gnu): Compute the nominal type of the object only if the
2666 parameter is by-reference. Do the conversion actual type -> nominal
2667 type if the nominal type is a larger record.
2668 (gnat_to_gnu): Do not require integral modes on the source type to
2669 avoid the conversion for types with identical names.
2670 (addressable_p): Add gnu_type parameter. If it is specified, do not
2671 return true if the expression is not addressable in gnu_type.
2672 Adjust recursive calls.
2673 * utils.c (finish_record_type): Remove dead code.
2674
2f76571e
EB
26752008-03-05 Eric Botcazou <ebotcazou@adacore.com>
2676
2677 PR ada/35186
2678 * decl.c (maybe_pad_type): Avoid padding an integral type when
2679 bumping its alignment is sufficient.
2680
4d0e4612
RW
26812008-03-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2682
ad6b5b00
RW
2683 * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
2684 * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
2685 statement.
2686 * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
2687 gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
2688 sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
2689 code output strings.
2690 * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
2691 system-vms_64.ads: Fix typos in ada source code comments.
2692 * sinfo-cn.adb: Remove incomplete sentence.
2693
4d0e4612
RW
2694 PR documentation/15479
2695 * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
2696
acf6b7ab
ST
26972008-02-27 Samuel Tardieu <sam@rfc1149.net>
2698
2699 PR ada/22255
2700 * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
2701
f5c064ab
ST
27022008-02-27 Samuel Tardieu <sam@rfc1149.net>
2703
2704 PR ada/34799
2705 * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
2706 that underlying type is present.
2707
2d593c86
TT
27082008-02-26 Tom Tromey <tromey@redhat.com>
2709
2710 * misc.c (internal_error_function): Remove test of
2711 USE_MAPPED_LOCATION.
2712 * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
2713 (Sloc_to_locus): Remove old location code.
2714
443b3472
RW
27152008-02-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2716
8dd07840
RW
2717 * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
2718 `i.e.' by adding comma or `@:' as appropriate.
2719 * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
2720 plain characters `C', use `@samp{C}'.
2721 * gnat_ugn.texi (File Naming Rules, About gnatkr)
2722 (Krunching Method): Likewise.
2723
443b3472
RW
2724 * gnat_ugn.texi (Conventions): List environment variables and
2725 metasyntactic variables.
2726 (Compiling Programs): Fix notation of metasyntactic variables.
2727 Add @file where appropriate. Use @file for file extensions,
2728 @samp for strings.
2729 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
2730 instead of @file, @env instead of @code.
2731
9538dfb9
RW
27322008-02-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2733
d488f6ea
RW
2734 PR documentation/15479
2735 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
2736 and `...' with `@dots{}' or `@enddots{}'.
2737
1992bbd9
RW
2738 PR documentation/15479
2739 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
2740 use @command instead of @code, @option instead of @samp or @code,
2741 @code instead of @var, @samp instead of @file.
2742
9538dfb9
RW
2743 PR documentation/15479
2744 * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
2745 in Makefile rules, by using `&&' rather than `;'.
2746
e69044cb
RW
27472008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2748
2749 PR documentation/15479
2750 * gnat_ugn.texi: In non-code, avoid space before colon.
2751 (Regular Expressions in gnatfind and gnatxref): Fix indentation.
2752 (Examples of gnatxref Usage): Use @command{vi} instead of
2753 @file{vi}.
2754 (Character Set Control): Do not use @code for UTF-8.
2755 (Validity Checking): Fix typo "NaNs" instead of "NaN's". Do not
2756 use @code for IEEE.
2757 * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
2758 sample.
2759 * gnat_rm.texi, gnat_ugn.texi: Fix typos. Bump copyright years.
2760
9e94c78f 27612008-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
6a333ca0
JS
2762
2763 PR ada/35143
2764 * env.c: Add __rtems__ to if defined.
2765 * s-osinte-rtems.adb: Add To_Target_Priority. Fix formatting.
2766 * s-osinte-rtems.ads: Add To_Target_Priority prototype and
2767 PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants. Add
2768 pragma Convention as required.
2769 * gsocket.h: Make compile in and out of RTS.
2770 * Makefile.in: Add system-rtems.ads. Build DEC extensions.
2771 Use g-soccon-rtems.ads.
2772 * g-soccon-rtems.ads, system-rtems.ads: New files.
2773
72fb133f
KG
27742008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2775
2776 PR other/35107
2777 * Make-lang.in (gnat1): Add $(GMPLIBS).
2778
8fa07a56
EB
27792008-01-26 Eric Botcazou <ebotcazou@adacore.com>
2780
2781 * decl.c (components_to_record): Improve comment.
2782
0bf38239
EB
27832008-01-22 Eric Botcazou <ebotcazou@adacore.com>
2784
2785 * decl.c (components_to_record): Do not reuse the empty union type
2786 if there is a representation clause on the record.
2787 * trans.c (addressable_p): Return true for INTEGER_CST.
2788
461d6eb3
EB
27892008-01-21 Eric Botcazou <ebotcazou@adacore.com>
2790
2791 * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
2792 in pointer arithmetics.
2793 * utils2.c (build_allocator): Likewise.
2794
9328dd57
EB
27952008-01-17 Eric Botcazou <ebotcazou@adacore.com>
2796
2797 * utils.c (build_function_stub): Properly build the call expression.
2798
052cec9b
EB
27992008-01-14 Eric Botcazou <ebotcazou@adacore.com>
2800
2801 * decl.c (gnat_to_gnu_entity) <object>: Process renamings
2802 before converting the expression to the type of the object.
2803 * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
2804 Stabilize constructors for special wrapping types.
2805
08ffbdad
EB
28062008-01-13 Eric Botcazou <ebotcazou@adacore.com>
2807
9e94c78f 2808 * trans.c (call_to_gnu): Invoke the addressable_p predicate only
6bf4cbe8 2809 when necessary. Merge some conditional statements. Update comments.
08ffbdad
EB
2810 Rename unchecked_convert_p local variable to suppress_type_conversion.
2811 Do not suppress conversions in the In case.
2812 (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
2813 into account on non strict-alignment platforms.
2814
7219c2c7
EB
28152008-01-12 Eric Botcazou <ebotcazou@adacore.com>
2816
2817 * utils.c (aggregate_type_contains_array_p): New predicate.
2818 (create_field_decl): In a packed record, force byte alignment
2819 for fields without specified position that contain an array.
2820
52ef2874
EB
28212008-01-12 Eric Botcazou <ebotcazou@adacore.com>
2822
2823 * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
2824
3fa87ef8
JDA
28252008-01-10 John David Anglin <dave.anglin.@nrc-cnrc.gc.ca>
2826
2827 PR ada/34466
2828 * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
2829 sysconf call.
2830 (bit_field): New packed boolean type used by cpu_set_t.
2831 (cpu_set_t): New type corresponding to the C type with
2832 the same name. Note that on the Ada side we use a bit
2833 field array for the affinity mask. There is not need
2834 for the C macro for setting individual bit.
2835 (pthread_setaffinity_np): New imported routine.
2836
9e94c78f 28372008-01-03 Tero Koskinen <tero.koskinen@iki.fi>
e0658eda
TK
2838
2839 PR ada/34647
2840 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
2841 on OpenBSD as is done on other BSD systems.
2842
2843 PR ada/34645
2844 * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
2845 getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
2846 I/O.
2847
2848 PR ada/34644
2849 * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
2850 clearenv().
2851
2852 PR ada/34646
2853 * init.c (__gnat_error_handler, __gnat_install_handler,
2854 __gnat_init_float): Define for OpenBSD.
2855
2856 * initialize.c (__gnat_initialize): Define for OpenBSD.
2857
18bc9cca
ST
28582007-12-27 Samuel Tardieu <sam@rfc1149.net>
2859
2860 PR ada/34553
2861 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
2862 instead of mktemp() or tmpnam() on NetBSD.
2863
f0bf503e
EB
28642007-12-23 Eric Botcazou <ebotcazou@adacore.com>
2865
2866 * trans.c (call_to_gnu): Make the temporary for non-addressable
2867 In parameters passed by reference.
2868 (addressable_p): Return true for STRING_CST and CALL_EXPR.
2869
7469b7bc
AC
28702007-12-19 Robert Dewar <dewar@adacore.com>
2871
2872 * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
2873 Add pragma Warnings (Off) for unassigned IN OUT arguments
2874
2875 * sem_warn.adb (Output_Reference): Suppress messages for internal names
2876 (Check_References): Extensive changes to tune up warnings
2877 (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
2878 (Has_Pragma_Unmodifed_Check_Spec): New function
2879 (Check_References): Implement pragma Unmodified
2880 (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
2881
2882 * par-prag.adb: Dummy entry for pragma Unmodified
2883
2884 * sem_prag.adb: Implement pragma Unmodified
2885
2886 * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
2887 (Proc_Next_Component_Or_Discriminant): Fix typo.
2888 Update comments.
2889
2890 * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
2891 Unmodified.
2892 (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
2893 because the former already takes care of discarding the result.
2894 (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
2895 Add comment.
2896
2897 * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
2898
28992007-12-19 Eric Botcazou <ebotcazou@adacore.com>
2900
2901 * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
2902 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
2903 system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
2904 system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
2905 system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
2906 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
2907 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
2908 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
2909 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
2910 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
2911 (Dynamic_Trampolines_Used): Delete.
2912
2913 * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
2914 Turn on stack probing mechanism on LynxOS.
2915
29162007-12-19 Bob Duff <duff@adacore.com>
2917
2918 * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
2919 the resulting tail recursion by hand. This prevents running out of
2920 memory on deeply nested concatenations, since Field2 is where the left
2921 operand of concatenations is stored.
2922 Fix bug (was returning OK_Orig in some cases). Fix return subtype to
2923 clarify that it can only return OK or Abandon.
2924
2925 * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
2926 operand by iteration, in order to avoid running out of memory on
2927 deeply-nested concatenations. Use the Parent pointer to get back up the
2928 tree.
2929 (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
2930 Resolve_Op_Concat_Rest): New procedures split out of
2931 Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
2932 clearer.
2933
2934 * checks.adb (Remove_Checks): Use Traverse_Proc instead of
2935 Traverse_Func, because the former already takes care of discarding the
2936 result.
2937
2938 * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
2939 because the former already takes care of discarding the result.
2940 (Remove_Warning_Messages): Use appropriate subtype for Status and
2941 Discard
2942
29432007-12-19 Ed Schonberg <schonberg@adacore.com>
2944
2945 * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
2946 discriminants forces expansion of the aggregate into assignments.
2947 (Init_Record_Controller): If the type of the aggregate is untagged and
2948 is not inherently limited, the record controller is not limited either.
2949
29502007-12-19 Robert Dewar <dewar@adacore.com>
2951
2952 * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
2953 handling compile time known size of record or array (case of front end
2954 layout active, e.g. in GNAAMP).
2955
29562007-12-19 Javier Miranda <miranda@adacore.com>
2957
2958 * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
2959 that forces the construction of static dispatch tables in case of
2960 record subtypes.
2961
29622007-12-19 Robert Dewar <dewar@adacore.com>
2963
2964 * exp_ch9.adb (Null_Statements): Moved to library level
2965 (Trivial_Accept_OK): New function
2966 (Expand_Accept_Declaration): Use Trivial_Accept_OK
2967 (Expand_N_Accept_Statement): Use Trivial_Accept_OK
2968
29692007-12-19 Robert Dewar <dewar@adacore.com>
2970
2971 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
2972 in complex case where array is Volatile.
2973
29742007-12-19 Ed Schonberg <schonberg@adacore.com>
2975
2976 * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
2977 properly the Ada2005 rules concerning when the current instance of a
2978 record type is aliased.
2979
29802007-12-19 Ed Schonberg <schonberg@adacore.com>
2981
2982 * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
2983 mangled declaration
2984 (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
2985 declarations.
2986 (P_Variant_Part): Cleaner patch for parenthesized discriminant
2987
29882007-12-19 Vincent Celier <celier@adacore.com>
2989
2990 * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
2991 package is not known
2992
2993 * prj-attr.ads (Unknown_Package): New constant
2994 Do not crash when an unknown package is in several projects
2995
2996 * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
2997 ignored
2998
2999 * prj-nmsc.adb (Check): Remove obsolete code related to no longer
3000 existing package Language_Processing.
3001
30022007-12-19 Ed Schonberg <schonberg@adacore.com>
3003 Gary Dismukes <dismukes@adacore.com>
44914a04 3004 Samuel Tardieu <sam@rfc1149.net>
7469b7bc
AC
3005
3006 PR ada/15803, ada/15805
3007 * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
3008 illegal access subtypes when there is a constrained partial view.
3009 (Check_For_Premature_Usage): New procedure inside
3010 Access_Subprogram_Declaration for checking that an access-to-subprogram
3011 type doesn't reference its own name within any formal parameters or
3012 result type (including within nested anonymous access types).
3013 (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
3014 (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
3015 context is an access_to_variable, the expression cannot be an
3016 access_to_constant.
3017
30182007-12-19 Bob Duff <duff@adacore.com>
3019
3020 * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
3021 (Analyze_Concatenation): Use iteration instead of recursion in order
3022 to avoid running out of stack space for deeply nested concatenations.
3023
30242007-12-19 Ed Schonberg <schonberg@adacore.com>
3025 Gary Dismukes <dismukes@adacore.com>
3026
3027 * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
3028 whose renamed entity is a subprogram that requires overriding.
3029 (Premature_Usage): Test for the case of N_Full_Type_Declaration when
3030 issuing an error for premature usage and issue a message that says
3031 'type' rather than 'object'.
3032
30332007-12-19 Gary Dismukes <dismukes@adacore.com>
3034
3035 PR ada/34149
3036 * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
3037 presence of a statically tagged operand (Present (Static_Tag)) with
3038 test for Indeterm_Ancestor_Call when determining whether to propagate
3039 the static tag to tag-indeterminate operands (which forces dispatching
3040 on such calls).
3041 (Check_Controlling_Formals): Ada2005, access parameters can have
3042 defaults.
3043 (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
3044 not insert subprogram in list of primitive operations if already there.
3045
30462007-12-19 Tristan Gingold <gingold@adacore.com>
3047
3048 * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
3049 global variable.
3050
30512007-12-19 Thomas Quinot <quinot@adacore.com>
3052
3053 Part of PR ada/33688
3054 * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
3055 datagram info on Linux.
3056
30572007-12-19 Vincent Celier <celier@adacore.com>
3058
3059 * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
3060 that the source path name is always found in the dependencies.
3061
30622007-12-19 Robert Dewar <dewar@adacore.com>
3063
3064 * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
3065 Fix name of Wide_Wide_Latin_1/9 file names
3066 Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
3067 Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
3068 Add missing documentation for Ada.Command_Line.Response_File
3069 Update list of warning letters for Warnings pragma
3070 Add documentation for pragma Unmodified
3071
43779dea
ST
30722007-12-19 Samuel Tardieu <sam@rfc1149.net>
3073
3074 * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
3075
5287c2bc
AC
30762007-12-17 Arnaud Charlet <charlet@adacore.com>
3077
3078 * s-vxwork-alpha.ads: Removed, no longer used.
3079
6343804d
JJ
30802007-12-15 Jakub Jelinek <jakub@redhat.com>
3081
3082 * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
3083
3958c9c8
ST
30842007-12-13 Samuel Tardieu <sam@rfc1149.net>
3085
3086 PR ada/34360
3087 * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
3088 mlib-tgt-specific.adb.
3089
78185974
BD
30902007-12-13 Bob Duff <duff@adacore.com>
3091
3092 * trans.c (Attribute_to_gnu): Check for violations of the
3093 No_Implicit_Dynamic_Code restriction. This checking used to be done in
3094 the front end, but is moved here so we can make it more accurate.
3095
e9b54d64
AC
30962007-12-13 Pascal Obry <obry@adacore.com>
3097
3098 * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
3099 version is provided for older GNU/Linux distribution not
3100 supporting thread affinity sets.
3101
3102 * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
3103 call.
3104 (bit_field): New packed boolean type used by cpu_set_t.
3105 (cpu_set_t): New type corresponding to the C type with
3106 the same name. Note that on the Ada side we use a bit
3107 field array for the affinity mask. There is not need
3108 for the C macro for setting individual bit.
3109 (pthread_setaffinity_np): New imported routine.
3110
3111 * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
3112 no null.
3113 (Create_Task): Set the processor affinity mask if information
3114 is present.
3115
3116 * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
3117
31182007-12-13 Robert Dewar <dewar@adacore.com>
3119
3120 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
3121 s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
3122 s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
3123 s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
3124 s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
3125 s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
3126 s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
3127 i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
3128 for subprogram pointers.
3129
3130 * g-ctrl_c.adb: New file.
3131
3132 * g-ctrl_c.ads (Install_Handler): New body.
3133
3134 * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
3135 instead of obsolete function Is_Always_Inlined.
3136 (Freeze_Entity): check for tagged type in imported C subprogram
3137 (Freeze_Entity): check for 8-bit boolean in imported C subprogram
3138 (Freeze_Entity): check for convention Ada subprogram pointer in
3139 imported C subprogram.
3140 (Freeze_Fixed_Point_Type): In the case of a base type where the low
3141 bound would be chopped off and go from negative to zero, force
3142 Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
3143 bound) so that the size computation for the base type will take
3144 negative values into account.
3145
31462007-12-13 Eric Botcazou <ebotcazou@adacore.com>
3147 Bob Duff <duff@adacore.com>
3148 Tristan Gingold <gingold@adacore.com>
3149
3150 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
3151 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
3152 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
3153 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
3154 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
3155 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
3156 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
3157 system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
3158 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
3159 system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
3160 system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
3161 (Always_Compatible_Rep): New flag to control trampolines globally.
3162 (Dynamic_Trampolines_Used): New flag for implementing the
3163 No_Implicit_Dynamic_Code restriction more correctly (not yet used,
3164 and not yet set correctly for some targets).
3165
3166 * s-taprop-vxworks.adb: Use stack limit method of stack checking.
3167 Simply indirectly call s-stchop when a task is created.
3168
3169 * ali.ads:
3170 New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
3171 appears as an argument (entries A) in an ALI file.
3172
3173 * fe.h (Stack_Check_Limits): Declare new target parameter.
3174 (Check_Implicit_Dynamic_Code_Allowed): New procedure.
3175
3176 * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
3177 This variable is declared in C to be sure not subject to elaboration
3178 code.
3179 (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
3180 Storage_Error.
3181
3182 * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
3183 (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
3184
3185 * s-stchop.ads: Add comments.
3186
3187 * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
3188 limit method of stack checking.
3189
3190 * s-stchop-limit.ads: New file.
3191
31922007-12-13 Robert Dewar <dewar@adacore.com>
3193
3194 * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
3195 a-cihama.adb, g-awk.adb,
3196 s-inmaop-posix.adb: Update handling of assigned value/unreferenced
3197 warnings
3198
3199 * exp_smem.adb: Update handling of assigned value/unreferenced warnings
3200
3201 * sem.adb: Update handling of assigned value/unreferenced warnings
3202
3203 * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
3204
3205 * lib-xref.ads: Improve documentation for k xref type
3206
3207 * lib-xref.adb:
3208 Update handling of assigned value/unreferenced warnings
3209 (Generate_Reference): Warning for reference to entity for which a
3210 pragma Unreferenced has been given should be unconditional.
3211 If the entity is a discriminal, mark the original
3212 discriminant as referenced.
3213
3214 * sem_warn.ads, sem_warn.adb
3215 (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
3216 no entities referenced in package
3217 (Check_One_Unit): Don't give message about no entities referenced in
3218 a package if a pragma Unreferenced has appeared.
3219 Handle new warning flag -gnatw.a/-gnatw.A
3220 Update handling of assigned value/unreferenced warnings
3221
3222 * atree.h: Add flags up to Flag247
3223 (Flag231): New macro.
3224
32252007-12-13 Jose Ruiz <ruiz@adacore.com>
3226
3227 * adaint.h: (__gnat_plist_init): Not defined for RTX.
3228
3229 * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
3230 RTX systems.
3231
3232 * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
3233 (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
3234 EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
3235 GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
3236
3237 * mingw32.h:
3238 Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
3239
3240 * sysdep.c (winflush_function for RTX): Procedure that does nothing
3241 since we only have problems with Windows 95/98, which are not
3242 supported by RTX.
3243 (__gnat_ttyname): Return the empty string on Nucleus, just as
3244 done on vxworks.
3245
32462007-12-13 Robert Dewar <dewar@adacore.com>
3247
3248 * a-textio.adb, a-textio.ads:
3249 Extensive changes to private part for wide character encoding
3250
3251 * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
3252 (Look_Ahead): Fix mishandling of encoded sequences
3253 Move declaration of Wch_Con to private part (should not be visible)
3254
3255 * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
3256 UTF-8. Probably this is never used, but if it is, brackets is
3257 clearly correct.
3258
3259 * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
3260 setting wide character encoding for no main program case and when
3261 encoding is specified using -W?
3262 Initialize stack limit of environment task if stack limit method of
3263 stack checking is enabled.
3264 (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
3265 (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
3266 (Get_Main_Unit_Name): New function.
3267 (Gen_Adainit_Ada): Add call to main program for .NET when needed.
3268 (Gen_Output_File): Set Bind_Main_Program to True for .NET
3269
3270 * bindusg.adb: Add line for -Wx switch
3271
3272 * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
3273 Add comments
3274 Add new useful constant WC_Longest_Sequences
3275
3276 * switch-b.adb: Clean up handling of -Wx switch
3277 For -gnatWx, set Wide_Character_Encoding_Method_Specified
3278
3279 * switch-c.adb: -gnatg activates warning on assertion errors
3280 For -gnatWx, set Wide_Character_Encoding_Method_Specified
3281
3282 * s-wchcon.adb: (Is_Start_Of_Encoding): New function
3283
32842007-12-13 Robert Dewar <dewar@adacore.com>
3285 Ed Schonberg <schonberg@adacore.com>
3286
3287 * a-ngcoty.adb: New pragma Fast_Math
3288
3289 * opt.adb: New pragma Fast_Math
3290
3291 * par-prag.adb:
3292 Add Implemented_By_Entry to the list of pragmas which do not require any
3293 special processing.
3294 (Favor_Top_Level): New pragma.
3295 New pragma Fast_Math
3296
3297 * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
3298 (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
3299 Expand_Allocator_Expression): Take into account VM_Target
3300 (Expand_Attribute, case 'Identity): Handle properly the case where
3301 the prefix is a task interface.
3302 New pragma Fast_Math
3303
3304 * par.adb (Next_Token_Is): New function
3305 (P_Pragma): Add Skipping parameter
3306 (U_Left_Paren): New procedure
3307 (U_Right_Paren): New procedure
3308 New pragma Fast_Math
3309
3310 * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
3311 subunit
3312 New pragma Fast_Math
3313
3314 * sem_prag.adb: Add significance value to table Sig_Flag for pragma
3315 Implemented_By_Entry.
3316 (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
3317 (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
3318 items, since it can apply to more than one overloadable entity. Set
3319 new flag Has_Pragma_Inline_Always for Inline_Always case.
3320 (Analyze_Pragma, case Complex_Representation): Improve error message.
3321 (Analyze_Pragma, case Assert): When assertions are disabled build the
3322 rewritten code with Sloc of expression rather than pragma, so new
3323 warning about failing is not deleted.
3324 (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
3325 protected types and update error message to reflect that. Test whether
3326 the protected type is allowed for the pragma (an error is issued if the
3327 type has any entries, or components that do not have preelaborable
3328 initialization).
3329 New pragma Fast_Math
3330 (Analyze_Pragma, case No_Return): Handle generic instance
3331
3332 * snames.h, snames.ads, snames.adb:
3333 Add new predefined name for interface primitive _Disp_Requeue.
3334 New pragma Fast_Math
3335
3336 * a-tags.ads, a-tags.adb: New calling sequence for
3337 String_To_Wide_[Wide_]String
3338 (Secondary_Tag): New subprogram.
3339
3340 * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
3341 from Exp_Attr
3342 New calling sequence for String_To_Wide_[Wide_]String
3343 (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
3344 the use of the secondary stack for image routines.
3345
3346 * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
3347 calling sequence for String_To_Wide_[Wide_]String
3348
3349 * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
3350 Ada 95 mode
3351 (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
3352 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3353
3354 * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
3355 (P_Formal_Part): Use Skipping parameter in P_Pragma call
3356 to improve error recovery
3357
3358 * par-util.adb (Next_Token_Is): New function
3359 (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
3360
3361 * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
3362 semicolon if missing
3363 (P_Pragma): Implement new Skipping parameter
3364 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3365 Fix location of flag for unrecognized pragma message
3366
3367 * par-tchk.adb (U_Left_Paren): New procedure
3368 (U_Right_Paren): New procedure
3369
33702007-12-13 Geert Bosch <bosch@adacore.com>
3371
3372 * a-tifiio.adb:
3373 (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
3374 the second or later Scaled_Divide would omit leading zeroes,
3375 resulting in too few digits produced and a Layout_Error as result.
3376 (Put): Initialize Pos.
3377
33782007-12-13 Robert Dewar <dewar@adacore.com>
3379
3380 atree.ads, atree.adb (Flag231..Flag247): New functions
3381 (Set_Flag231..Set_Flag247): New procedures
3382 (Basic_Set_Convention): Rename Set_Convention to be
3383 Basic_Set_Convention
3384 (Nkind_In): New functions
3385 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3386
3387 * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
3388 instead
3389 of obsolete function Is_Always_Inlined
3390 (Register_Predefined_DT_Entry): Initialize slots of the second
3391 secondary dispatch table.
3392 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3393 (Expand_N_Function_Call): Remove special provision for stack checking.
3394
3395 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
3396 Include _Disp_Requeue in the list of predefined operations.
3397 (Find_Interface_ADT): Modified to fulfill the new specification.
3398 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3399
3400 * par-ch4.adb, nlists.ads, nlists.adb:
3401 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
3402
3403 * sinfo.ads, sinfo.adb: (Nkind_In): New functions
3404 Fix location of flag for unrecognized pragma message
3405
3406 * sem_ch7.adb: Use Nkind_In
3407
34082007-12-13 Vincent Celier <celier@adacore.com>
3409
3410 * opt.ads:
3411 Indicate what flags are used by the Project Manager, gprbuild and
3412 gprclean.
3413 (Opt.Follow_Links_For_Dirs): New flag
3414 (Warn_On_Assertion_Failure): New flag
3415 (Wide_Character_Encoding_Method_Specified): New flag
3416 (Suppress_All_Inlining): New switch set by -fno-inline
3417 (Real_VMS_Target): New flag
3418 New pragma Fast_Math
3419
34202007-12-13 Robert Dewar <dewar@adacore.com>
3421
3422 * back_end.adb: Recognize -fno-inline
3423
34242007-12-13 Robert Dewar <dewar@adacore.com>
3425
3426 * checks.adb: Fix optimization problem with short-circuited form
3427
34282007-12-13 Bob Duff <duff@adacore.com>
3429
3430 * clean.adb (Usage): Add line for -aP
3431 (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
3432 with a parameter "procedure Usage", instead of passing a pointer to a
3433 procedure. This is to eliminate trampolines (since the Usage procedure
3434 is often nested in a main procedure, and it would be inconvenient to
3435 unnest it).
3436
3437 * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
3438 to be generic, with a parameter "procedure Callback (...)", instead of
3439 passing a pointer to a procedure. This is to eliminate trampolines
3440 (since the Callback procedure is usually nested).
3441
3442 * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
3443 gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
3444 (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
3445
3446 * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
3447 Use the generic Heap_Sort_G instead of Heap_Sort_A.
3448
34492007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
3450
3451 * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
3452 (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
3453 (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
3454 (Renamed_In_Spec): New flag
3455 (Has_Pragma_Inline_Always): New flag
3456 Add missing doc for pragma Obsolescent_Warning
3457 Add missing doc for 17 additional unused flags (230-247)
3458 (Is_Derived_Type): Remove condition "not Is_Generic_Type".
3459 Alphabetize with clauses.
3460 Separate Is_Thunk and Has_Thunks flags
3461 (Write_Entity_Flags): Add forgotten entry for Has_Thunks
3462 (Related_Interface): Renamed to Related_Type.
3463 (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
3464 (Set_Is_Flag): Restrict the assertion.
3465
34662007-12-13 Vincent Celier <celier@adacore.com>
3467
3468 * errout.adb (Output_Source_Line): Do not keep a trailing space after
3469 the source line number if the source line is empty.
3470
34712007-12-13 Geert Bosch <bosch@adacore.com>
3472
3473 * eval_fat.adb (Decompose_Int): Handle argument of zero.
3474 (Compose): Remove special casing of zero.
3475 (Exponent): Likewise.
3476 (Fraction): Likewise.
3477 (Machine): Likewise.
3478 (Decompose): Update comment.
3479
34802007-12-13 Ed Schonberg <schonberg@adacore.com>
3481
3482 * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
3483 limited ancestor part, initialize controllers of enclosing record
3484 before expanding ancestor aggregate.
3485 (Gen_Assign): If a component of the aggregate is box-initialized, add
3486 code to call Initialize if the component is controlled, and explicit
3487 assignment of null if the component is an access type.
3488
3489 Handle properly aggregates for limited types that appear in object
3490 declarations when the aggregate contains controlled values such as
3491 protected types.
3492 When expanding limited aggregates into individual components, do not
3493 call Adjust on controlled components that are limited.
3494
34952007-12-13 Ed Schonberg <schonberg@adacore.com>
3496
3497 * expander.adb: Take into account N_Subprogram_Renaming_Declaration
3498
34992007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
3500
3501 * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
3502 predefined primitive _Disp_Requeue.
3503 (Make_Predefined_Primitive_Specs): Create the spec for predefined
3504 primitive _Disp_Requeue.
3505 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
3506 type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
3507 (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
3508 an interface type. In case of limited interfaces we now declare all the
3509 predefined primitives associated with synchronized interfaces as
3510 abstract.
3511 (Predef_Spec_Or_Body): For interface types generate abstract subprogram
3512 declarations.
3513 (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
3514 tagged type is an interface type and there is no user-defined equality
3515 function.
3516 Add also bodies of predefined primitives associated with synchronized
3517 interfaces.
3518 (Freeze_Record_Type): Do not build bodies of predefined primitives of
3519 interface types because they are now defined abstract.
3520 Add missing documentation.
3521 (Expand_Record_Controller): Update occurrence of Related_Interface
3522 to Related_Type.
3523 (Build_Offset_To_Top_Functions): Do nothing in case of VM.
3524 (Expand_N_Object_Declaration): Take into account VM_Target when handling
3525 class wide interface object declaration.
3526 (Expand_Previous_Access_Type): Do not create a duplicate master entity
3527 if the access type already has one.
3528 (Expand_N_Object_Declaration): Defend against attempt to validity check
3529 generic types. Noticed for -gnatVcf specified with previous errors.
3530
35312007-12-13 Arnaud Charlet <charlet@adacore.com>
3532
3533 * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
3534 Expand_Allocator_Expression): Take into account VM_Target
3535
3536 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
3537 secondary stack when VM_Target /= No_VM
3538
35392007-12-13 Javier Miranda <miranda@adacore.com>
3540 Ed Schonberg <schonberg@adacore.com>
3541
3542 * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
3543 Is_Complation_Unit by Is_Library_Level_Entity in the code
3544 that decides if the static dispatch tables need to be built.
3545 (Wrap_Transient_Declaration): Do not generate a finalization call if
3546 this is a renaming declaration and the renamed object is a component
3547 of a controlled type.
3548
35492007-12-13 Gary Dismukes <dismukes@adacore.com>
3550
3551 * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
3552 In the case where the renamed subprogram is a dereference, call
3553 Force_Evaluation on the prefix.
3554
35552007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
3556 Ed Schonberg <schonberg@adacore.com>
3557
3558 * exp_ch9.adb (Expand_N_Asynchronous_Select,
3559 Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
3560 comment reformatting.
3561 (Set_Privals): Inherit aliased flag from formal. From code reading.
3562 (Build_Simple_Entry_Call): Out parameters of an access type are passed
3563 by copy and initialized from the actual. This includes entry parameters.
3564 (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
3565 and Ada 2005 models of requeue.
3566 (Null_Statements): Still connsider do-end block null if it contains
3567 Unreferenced and Warnings pragmas.
3568 (Expand_N_Accept_Statement): Do not optimize away null do end if
3569 dispatching policy is other than defaulted.
3570 (Expand_N_Timed_Entry_Call): When the triggering statement is a
3571 dispatching call, manually analyze the delay statement.
3572 (Find_Parameter_Type): Move subprogram to Sem_Util.
3573
35742007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
3575 Javier Miranda <miranda@adacore.com>
3576
3577 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
3578 _Disp_Requeue occupies dispatch table slot number 15. Move
3579 _Disp_Timed_Select to slot 16.
3580 (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
3581 generate the spec and body of _Disp_Reqeueue.
3582 (Make_DT): Build and initialize the second dispatch table.
3583 Handle initialization of RC_Offset when the parent
3584 is a private type with variable size components.
3585 (Make_Secondary_DT): Complete documentation. Add support to
3586 initialize the second dispatch table.
3587 (Make_Tags): Generate the tag of the second dispatch table.
3588 (Register_Primitive): Add support to register primitives in the
3589 second dispatch table.
3590
35912007-12-13 Pascal Obry <obry@adacore.com>
3592
3593 * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
3594 Windows. This signal is used by gnatmake to kill child processes for
3595 example.
3596
35972007-12-13 Javier Miranda <miranda@adacore.com>
3598
3599 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
3600 support for generic dispatching constructor calls in which we need to
3601 locate the tag of a secondary dispatch table associated with an
3602 interface type to properly dispatch the call.
3603 (Expand_N_Attribute_Reference [case Address],
3604 Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
3605 handling of VM targets.
3606
36072007-12-13 Robert Dewar <dewar@adacore.com>
3608 Ed Schonberg <schonberg@adacore.com>
3609
3610 * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
3611 assert fail
3612
3613 * ug_words: Add entries for -gnatw.a -gnatw.A
3614
3615 * sem_res.adb (Set_String_Literal_Subtype): If the context of the
3616 literal is a subtype with non-static constraints, use the base type of
3617 the context as the base of the string subtype, to prevent type
3618 mismatches in gigi.
3619 (Resolve_Actuals): If the actual is an entity name, generate a
3620 reference before the actual is resolved and expanded, to prevent
3621 spurious warnings on formals of enclosing protected operations.
3622 (Analyze_Overloaded_Selected_Component): If type of prefix if
3623 class-wide, use visible components of base type.
3624 (Resolve_Selected_Component): Ditto.
3625 (Resolve_Short_Circuit): Detect case of pragma Assert argument
3626 evaluating to False, and issue warning message.
3627
3628 * usage.adb: Add lines for -gnatw.a and -gnatw.A
3629
36302007-12-13 Emmanuel Briot <briot@adacore.com>
3631
3632 * g-calend.ads (No_Time): New constant, to represent an uninitialized
3633 time value
3634
3635 * g-catiio.ads, g-catiio.adb (Value): Added support for more date
3636 formats.
3637 (Month_Name_To_Number): New subprogram
3638
3639 * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
3640 letter to upper-case.
3641
36422007-12-13 Robert Dewar <dewar@adacore.com>
3643 Ed Schonberg <schonberg@adacore.com>
3644
3645 * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
3646
3647 * layout.adb (Resolve_Attribute, case 'Access): If designated type of
3648 context is a limited view, use non-limited view when available. If the
3649 non-limited view is an unconstrained array, this enforces consistency
3650 requirements in 3.10.2 (27).
3651 (Layout_Type): For an access type whose designated type is a limited
3652 view, examine its declaration to determine if it is an unconstrained
3653 array, and size the access type accordingly.
3654 (Layout_Type): Do not force 32-bits for convention c subprogram
3655 pointers in -gnatdm mode, only if real vms target.
3656
3657 * sem_attr.adb (Analyze_Access_Attribute): Use new flag
3658 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
3659 (Analyze_Access_Attribute,Attribute_Address): Remove checks for
3660 violations of the No_Implicit_Dynamic_Code restriction.
3661 (Resolve_Attribute, case 'Access): If designated type of context is a
3662 limited view, use non-limited view when available. If the non-limited
3663 view is an unconstrained array, this enforces consistency requirements
3664 in 3.10.2 (27).
3665 (Layout_Type): For an access type whose designated type is a limited
3666 view, examine its declaration to determine if it is an unconstrained
3667 array, and size the access type accordingly.
3668
36692007-12-13 Vincent Celier <celier@adacore.com>
3670
3671 * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
3672 object directory of main project does not exist.
3673 On VMS, correctly set then environment variable for the source
3674 directories.
3675
36762007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
3677
3678 * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
3679 set to True this procedure will create the value of type REG_EXPAND_SZ.
3680 It was only possible to create REG_SZ values before.
3681
36822007-12-13 Robert Dewar <dewar@adacore.com>
3683
3684 * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
3685 g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
3686 namet-sp.adb, namet-sp.ads: New files.
3687
3688 * g-speche.adb: Use generic routine in g-spchge
3689
3690 * s-wchcnv.ads, s-wchcnv.adb:
3691 Minor code cleanup (make formal type consistent with spec)
3692
3693 * namet.adb: Update comments.
3694
3695 * par-endh.adb (Evaluate_End_Entry): Use new
3696 Namet.Sp.Is_Bad_Spelling_Of function
3697
3698 * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
3699
3700 * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
3701 ancestor is an access type initialized with a box, set its type
3702 explicitly, for use in subsequent expansion.
3703 (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
3704 function
3705
37062007-12-13 Robert Dewar <dewar@adacore.com>
3707
3708 * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
3709 access Vstring)
3710
37112007-12-13 Robert Dewar <dewar@adacore.com>
3712
3713 * inline.adb (Back_End_Cannot_Inline): Use new flag
3714 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
3715
3716 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
3717 Has_Pragma_Inline_Always instead.
3718 of obsolete function Is_Always_Inlined
3719 (Build_Body_To_Inline): Same change
3720 (Cannot_Inline): Same change
3721 Do not give warning on exception raise in No_Return function
3722
3723 * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
3724 component has two inconsistent component clauses in the same record
3725 representation clause, favor the message that complains about
3726 duplication rather than inconsistency.
3727 Update comments.
3728 (Record_Representation_Clause): Do not warn on missing component
3729 clauses for inherited components of a type extension.
3730 (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
3731 an overloadable item if it is a pragma that can apply to multiple
3732 overloadable entities (e.g. Inline) because a pragma cannot be on
3733 more than one chain at a time.
3734 (Validate_Unchecked_Conversion): Add code to warn on unchecked
3735 conversion where one of the operands is Ada.Calendar.Time.
3736 (Analyze_Attribute_Definition_Clause): Fix typo in error message.
3737 For now, ignore Component_Size clause on VM targets, as done for
3738 pragma Pack.
3739
37402007-12-13 Emmanuel Briot <briot@adacore.com>
3741 Vincent Celier <celier@adacore.com>
3742
3743 * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
3744 string
3745 (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
3746 prj.ads
3747 (Hash): Move instantiation of System.HTable.Hash from spec to body
3748 (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
3749 systems, since we do not need to recompute the Name_Id for the canonical
3750 file name.
3751 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
3752 as a parameter. This parameter is in fact always "ada" in all calls, and
3753 we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
3754 while loading a project with 40000 files
3755
3756 * prj-attr.adb: Fix name of attribute Dependency_Driver
3757 Change the kind of indexing for attribute Root
3758
3759 * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
3760 variables already declared, in case constructions.
3761
3762 * prj-env.adb (Initialize): Reset Current_Source_Path_File and
3763 Current_Object_Path_File to No_Path.
3764
3765 * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
3766 ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
3767
3768 * prj-makr.adb: new parameter Current_Dir
3769
3770 * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
3771 Ada sources when language is not Ada.
3772 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
3773 (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
3774 (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
3775 (Locate_Directory): Always resolve links when computing Canonical_Path
3776 (Look_For_Sources): Make sure that Name_Buffer contains the file name
3777 in Source_Files before checking for the presence of a directory
3778 separator.
3779 Optimize calls to Name_Find when on case sensitive systems.
3780 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
3781 as a parameter.
3782 (Prj.Nmsc.Check): new parameter Current_Dir
3783 (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
3784 cannot be empty and the spec suffix cannot be the same as the body or
3785 separate suffix.
3786 (Get_Unit): When a file name can be of several unit kinds (spec, body or
3787 subunit), always consider the longest suffix.
3788 (Check_Configuration): Do not issue an error if there is no compiler
3789 for a language. Just issue a warning and ignore the sources for the
3790 language.
3791 (Check_Library_Attributes): Only check Library_Dir if Library_Name is
3792 not empty.
3793 (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
3794 (Unit_Exceptions): New hash table
3795 (Check_Naming_Schemes): Check if a file that could be a unit because of
3796 the naming scheme is not in fact a source because there is an exception
3797 for the unit.
3798 (Look_For_Sources): Put the unit exceptions in hash table
3799 Unit_Exceptions
3800 (Get_Unit_Exceptions): Give initial value No_Source to local variable
3801 Other_Part to avoid exception when code is compiled with validity
3802 checking.
3803 (Get_Sources_From_File): Check that there is no directory information
3804 in the file names.
3805 (Look_For_Sources): Check that there is no directory information in the
3806 list of file names in Source_Files.
3807 (Look_For_Sources): In multi-language mode, do not allow exception file
3808 names that are excluded.
3809 (Excluded_Sources_Htable): New hash table
3810 (Search_Directories.Check_File): New procedure to simplify
3811 Search_Directories.
3812 (Search_Directories): Do not consider excluded sources
3813 (Look_For_Sources): Populate Excluded_Sources_Htable before calling
3814 Search_Directories.
3815 (Get_Exceptions): Set component Lang_Kind of Source_Data
3816 (Get_Unit_Exceptions): Ditto
3817 (Search_Directories): Ditto
3818
3819 * prj-pars.adb: new parameter Current_Dir
3820
3821 * prj-part.ads, prj-part.adb:
3822 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
3823 (Opt.Follow_Links_For_Dirs): New flag
3824 (Project_Path_Name_Of): Cache information returned by this routine as
3825 Locate_Regular_File is a costly routine. The code to output a log
3826 information and the effective call to Locate_Regular_File is now
3827 factorized into a routine (code clean-up).
3828 (Parse, Parse_Single_Project): new parameter Current_Dir
3829 When main project file cannot be found, indicate in the error
3830 message the project path that was used to do the search.
3831
3832 * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
3833 (Prj.Proc.Process*): new parameter Current_Dir
3834
3835 * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
3836
38372007-12-13 Bob Duff <duff@adacore.com>
3838
3839 * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
3840 procedure to be called from the back end to check the
3841 No_Implicit_Dynamic_Code restriction.
3842
38432007-12-13 Arnaud Charlet <charlet@adacore.com>
3844
3845 * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
3846 Fixes another case where RTE_Available_Call was ignored instead of being
3847 taken into account.
3848 (Load_Fail): Ditto.
3849
3850 * rtsfind.ads: Add new entries.
3851
38522007-12-13 Robert Dewar <dewar@adacore.com>
3853
3854 * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
3855 g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
3856
3857 * scn.adb: Implement BOM recognition
3858
38592007-12-13 Thomas Quinot <quinot@adacore.com>
3860 Ed Schonberg <schonberg@adacore.com>
3861
3862 * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
3863 subprogram body that acts as its own spec may not have a non-private
3864 WITH clause on a private sibling.
3865 (Build_Unit_Name): If the parent unit in the name in a with_clause on a
3866 child unit is a renaming, create an implicit with_clause on that
3867 parent, and not on the unit it renames, to prevent visibility errors
3868 in the current unit.
3869
38702007-12-13 Ed Schonberg <schonberg@adacore.com>
3871
3872 * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
3873 renaming declaration, use the Slocs of the formal parameters from the
3874 declaration of the formal subprogram when creating the formal parameter
3875 entities in the renaming declaration.
3876 (Analyze_Formal_Type_Declaration): Change the placement of the error
3877 message concerning illegal known discriminants. It is now posted on the
3878 type rather than on the first discriminant. This change ensures early
3879 error report.
3880 (Freeze_Subprogram_Body): If the generic subprogram is nested within
3881 the package body that contains the instance, do not generate an
3882 out-of-place freeze node for the enclosing package.
3883 (Collect_Previous_Instantiations): Ignore internal instantiations
3884 generated for formal packages.
3885 (Validate_Derived_Type_Instance): Add a check that when a formal
3886 derived type is Known_To_Have_Preelab_Init then the actual type must
3887 have preelaborable initialization, and issue an error when this
3888 condition is violated.
3889
38902007-12-13 Robert Dewar <dewar@adacore.com>
3891
3892 * s-imenne.adb, s-imenne.ads: New files.
3893
3894 * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
3895 s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
3896 s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
3897 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
3898 s-imgwch.ads: New calling sequence for Image routines to avoid sec
3899 stack usage.
3900
39012007-12-13 Javier Miranda <miranda@adacore.com>
3902 Ed Schonberg <schonberg@adacore.com>
3903
3904 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
3905 generation of spurious error if parent is an interface type; caused
3906 because predefined primitive bodies will be generated later by
3907 Freeze_Record_Type.
3908 (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
3909 flag.
3910 (Derive_Subprograms): Handle derivations of predefined primitives
3911 after all the user-defined primitives to ensure that they are
3912 found in proper order in instantiations.
3913 (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
3914 of Related_Interface to Related_Type.
3915 (Record_Type_Declaration): Minor reordering of calls to decorate the
3916 Tag component because the entity must have set its Ekind attribute
3917 before setting its Is_Tag attribute.
3918 (Analyze_Subtype_Declaration): In the case of subtypes with
3919 Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
3920
39212007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
3922 Ed Schonberg <schonberg@adacore.com>
3923
3924 * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
3925 statement to the list of contexts where a selected component with a
3926 concurrent tagged type prefix should yield a primitive operation.
3927 (Find_Primitive_Operation): Handle case of class-wide types.
3928 (Analyze_Overloaded_Selected_Component): If type of prefix is
3929 class-wide, use visible components of base type.
3930 (Resolve_Selected_Component): Ditto.
3931 (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
3932 formal of a generic subprogram. find candidate interpretations by
3933 scanning the list of generic formal declarations.:
3934 (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
3935 type from a limited_with_clause, and the full view is available, use it
3936 for subsequent semantic checks.
3937 (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
3938 (Find_Primitive_Operation): New function.
3939 (Analyze_Overloaded_Selected_Component): insert explicit dereference
3940 only once if several interpretations of the prefix yield an access type.
3941 (Try_Object_Operation): Code and comment cleanup.
3942 (Analyze_Selected_Component): Reorder local variables. Minot comment and
3943 code reformatting. When the type of the prefix is tagged concurrent, a
3944 correct interpretation might be available in the primitive and
3945 class-wide operations of the type.
3946
39472007-12-13 Robert Dewar <dewar@adacore.com>
3948 Ed Schonberg <schonberg@adacore.com>
3949
3950 * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
3951 renaming entry as subprogram using rename-as-body if subprogram spec
3952 frozen.
3953 (Use_One_Type): The clause is legal on an access type whose designated
3954 type has a limited view.
3955 (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
3956 (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
3957 (Analyze_Renamed_Primitive_Operation): new procedure to determine the
3958 operation denoted by a selected component.
3959 (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
3960 it can be an expression, possibly overloaded, that returns a task or
3961 an access to one.
3962
39632007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
3964 Gary Dismukes <dismukes@adacore.com>
3965
3966 * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
3967 requeue statement is dispatching. Do not emit an error when the name is
3968 not an entry and the context is a dispatching select. Add code to
3969 perform subtype conformance between the formals of the current entry
3970 and those of the target interface primitive.
3971 (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
3972 Timed_Entry_Call): Analyze the triggering statement as the first step of
3973 the processing. If this is a dispatching select, postpone the analysis
3974 of all select statements until the Expander transforms the select. This
3975 approach avoids generating duplicate identifiers after the Expander has
3976 replicated some of the select statements. In case the Expander is
3977 disabled, perform regular analysis.
3978 (Check_Triggering_Statement): New routine.
3979 (Analyze_Requeue): Exclude any interpretations that are not entries when
3980 checking overloaded names in a requeue. Also test type conformance for
3981 matching interpretations rather than requiring subtype conformance at
3982 that point to conform with the RM's resolution rule for requeues.
3983
39842007-12-13 Ed Schonberg <schonberg@adacore.com>
3985
3986 * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
3987 inherited operation is a defaulted tag-indeterminate call, and there is
3988 a statically tagged actual, use the static tag as a controlling actual
3989 for the defaulted actual.
3990
39912007-12-13 Geert Bosch <bosch@adacore.com>
3992
3993 * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
3994 context, so do not call Check_Non_Static_Context.
3995
39962007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
3997
3998 * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
3999 whether formal E is an entity which may have parameters.
4000
40012007-12-13 Bob Duff <duff@adacore.com>
4002 Javier Miranda <miranda@adacore.com>
4003 Robert Dewar <dewar@adacore.com>
4004
4005 * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
4006 (Set_Convention): New procedure to set the Convention flag, and in
4007 addition make sure the Favor_Top_Level flag is kept in sync (all
4008 foreign-language conventions require Favor_Top_Level = True).
4009 (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
4010 to Related_Type.
4011 (Collect_Interfaces_Info): Minor update to handle the two secondary
4012 dispatch tables. Update occurrence of Related_Interface to Related_Type.
4013 (Generate_Parent_Ref): Add parameter to specify entity to check
4014 (Is_Preelaborable_Expression): Allow the name of a discriminant to
4015 initialize a component of a type with preelaborable initialization.
4016 This includes the case of a discriminal used in such a context.
4017 (Is_Dependent_Component_Of_Mutable_Object): Take into account the
4018 latest Ada 2005 rules about renaming and 'Access of
4019 discriminant-dependent components.
4020 (Check_Nested_Access): Add handling when there are no enclosing
4021 subprograms (e.g. case of a package body).
4022 (Find_Parameter_Type): Factor routine from several other compiler files.
4023 Remove routine from Find_Overridden_Synchronized_Primitive.
4024
40252007-12-13 Thomas Quinot <quinot@adacore.com>
4026
4027 * sinput.adb (Get_Source_File_Index): Add assertion to guard against
4028 an invalid access to an uninitialized slot in the
4029 Source_File_Index_Table.
4030
40312007-12-13 Thomas Quinot <quinot@adacore.com>
4032
4033 * sinput-l.adb (Load_File): Disable style checks when preprocessing.
4034
40352007-12-13 Bob Duff <duff@adacore.com>
4036
4037 * s-soflin.ads: Apply new pragma Favor_Top_Level to all
4038 access-to-subprogram types in this package.
4039
40402007-12-13 Olivier Hainque <hainque@adacore.com>
4041
4042 * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
4043 with Stack_Grows_Down in System.Parameters. Rename Array_Address into
4044 Stack_Overlay_Address and document that we are using an internal
4045 abstraction.
4046 (Byte_Size, Unsigned_32_Size): Remove, now useless.
4047 (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
4048 consistently throughout the various implementation pieces.
4049
4050 * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
4051 overlay we are using to fill the stack area with patterns.
4052 (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
4053 (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
4054 (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
4055
40562007-12-13 Robert Dewar <dewar@adacore.com>
4057
4058 * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
4059
40602007-12-13 Arnaud Charlet <charlet@adacore.com>
4061
4062 * s-tassta.adb:
4063 (Create_Task): Take into account tasks created by foreign threads.
4064 Code clean up: use constants instead of hard coded values.
4065
40662007-12-13 Robert Dewar <dewar@adacore.com>
4067
4068 * styleg.adb (Check_Comment): More liberal rules for comment placement
4069
40702007-12-13 Olivier Hainque <hainque@adacore.com>
4071
4072 * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
4073 of Procedure Value instead of Frame Pointer as the invocation
4074 identifier associated with the instruction pointer in each traceback
4075 entry.
4076
4077 * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
4078 TB_Entry_For): Revert back to use of Procedure Value instead of Frame
4079 Pointer as the invocation identifier passed to tbk$symbolize.
4080
4081 * s-traent-vms.ads, s-traent-vms.adb
4082 (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
4083 Procedure Value instead of Frame Pointer as the invocation identifier
4084 passed to tbk$symbolize.
4085
40862007-12-13 Robert Dewar <dewar@adacore.com>
4087
4088 * tbuild.ads, tbuild.adb:
4089 Fix location of flag for unrecognized pragma message
4090
40912007-12-13 Robert Dewar <dewar@adacore.com>
4092
4093 * treepr.ads, treepr.adb: (pl): implement use of positive value
4094 shorthands
4095
40962007-12-13 Robert Dewar <dewar@adacore.com>
4097
4098 * xeinfo.adb: Remove warnings
4099 * xnmake.adb: Remove warnings
4100 * xsinfo.adb: Remove warnings
4101 * xtreeprs.adb: Remove warnings
4102 * xsnames.adb: Remove warnings
4103
4104 * a-ngcoar.adb: Fix typo.
4105 * s-interr.adb: Minor reformatting
4106 * env.c: Minor reformatting.
4107 * g-bytswa.adb: Minor reformatting.
4108 * g-rannum.ads: Minor documentation improvements
4109 * s-tasinf-mingw.adb: Minor header fix
4110 * a-clrefi.adb: Minor reformatting
4111 * g-sttsne.ads: Minor documentation improvement
4112 * g-sttsne-locking.ads: Minor documentation improvement
4113 * g-soliop-solaris.ads: Minor documentation improvement
4114 * g-soliop-mingw.ads: Minor documentation improvement
4115 * g-soliop.ads: Minor documentation improvement
4116 * exp_aggr.ads: Minor reformatting
4117 * debug.adb: Add documentation for the gprbuild debug flags
4118 * exp_ch2.adb: Use Nkind_In to simplify code throughout
4119 * exp_pakd.adb: Minor reformatting
4120
4121 * g-altive.ads, g-alleve.adb: Remove assertions.
4122 Add comment about minor differences between targets regarding
4123 floating-point operations.
4124
4125 * g-thread.adb: Remove pragma unreferenced.
4126 * lib.ads: Minor reformatting
4127 * par-ch9.adb: Minor reformatting of error messages
4128 * sem_case.adb: Minor reformatting
4129 * s-fileio.adb: Minor reformattinng
4130 * s-vmexta.ads: Minor typo
4131 * vxaddr2line.adb:
4132 Take into account 'Success' value as per new GNAT warning.
4133
41342007-12-13 Vincent Celier <celier@adacore.com>
4135
4136 * a-direct.adb (Create_Path): Always take '/' as a directory separator,
4137 even on Windows
4138
41392007-12-13 Robert Dewar <dewar@adacore.com>
4140 Bob Duff <duff@adacore.com>
4141
4142 * gnat_ugn.texi: Dcoument new rules for style check comment alignment
4143 Document that suffixes may be terminations of each others
4144 Add doc for -gnatw.a and -gnatw.A
4145 Document gnatbind -Wx switch
4146 Document BOM recognition
4147 Document pragma Implemented_By_Entry.
4148 Document new units.
4149
4150 * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
4151 Add doc for pragma Unreferenced suppressing no entities referenced msg
4152 Add documentation of GNAT.Directory_Operations.Iteration
4153 Add documentation of GNAT.Random_Numbers
4154 Add documentation for pragma Shared.
4155 Correct documentation for Bit_Order
4156 Add documentation for the Pool_Address attribute.
4157 Fix and improve documentation of pragma machine_attribute.
4158 New pragma Fast_Math
4159 Document BOM recognition
4160
4161 * vms_data.ads: Add entries for -gnatw.a -gnatw.A
4162 Add /Wide_Character_Encoding for binder
4163 Add qualifier for the new gnatpp option --no-separate-loop-then
4164
41652007-12-13 Matthew Heaney <heaney@adacore.com>
4166
4167 * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
4168 which generic formal operations are called for each operation.
4169
41702007-12-13 Olivier Hainque <hainque@adacore.com>
4171
4172 * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
4173 (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
4174
41752007-12-13 Emmanuel Briot <briot@adacore.com>
4176
4177 * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
4178 Reference_Dir unless we actually need it.
4179
41802007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
4181 Tristan Gingold <gingold@adacore.com>
4182
4183 * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
4184
4185 * s-osprim-vms.adb,
4186 a-calend-vms.adb: Remove pragma warning off and add pragma
4187 unreferenced.
4188
41892007-12-13 Robert Dewar <dewar@adacore.com>
4190
4191 * impunit.adb: Add entries for missing units
4192
4193 * Makefile.rtl: Add new run-time units.
4194
4195 * Make-lang.in: Update dependencies.
4196
41972007-12-13 Bob Duff <duff@adacore.com>
4198
4199 * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
4200 types, set Can_Use_Internal_Rep appropriately, based on
4201 Always_Compatible_Rep_On_Target.
4202
42032007-12-13 Gary Dismukes <dismukes@adacore.com>
4204 Arnaud Charlet <charlet@adacore.com>
4205
4206 * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
4207 it to the front end and setting the aamp_target environment variable
4208 to the switch's argument to ensure that gnaampbind and gnaamplink will
4209 take the specified library into account.
4210 (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
4211 target, since the CIL compiler supports an "object" file (.il files).
4212
42132007-12-13 Vincent Celier <celier@adacore.com>
4214
4215 * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
4216 (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
4217
42182007-12-13 Geert Bosch <bosch@adacore.com>
4219
4220 * s-parame-vxworks.adb:
4221 Update comments to reflect usage of this package by Nucleus.
4222
42232007-12-13 Arnaud Charlet <charlet@adacore.com>
4224
4225 * i-vxwork.ads: Kill new warning on Convention C, since changing the
4226 spec would break code.
4227
4228 * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
4229
4230 * system-vxworks-alpha.ads: Removed.
4231
e74a122e
EB
42322007-12-10 Eric Botcazou <ebotcazou@adacore.com>
4233
4234 * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
4235
5320014a
ST
42362007-12-09 Samuel Tardieu <sam@rfc1149.net>
4237
4238 PR ada/34366
4239 * sem_ch3.adb (Designates_T): New function.
4240 (Mentions_T): Factor reusable part of the logic into Designates_T.
4241 Consider non-access parameters and access and non-access result.
4242 (Check_Anonymous_Access_Components): Set ekind of anonymous access to
4243 E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
4244
4245 * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
4246
da746f77
LB
42472007-12-07 Ludovic Brenta <ludovic@ludovic-brenta.org>
4248
9d651736 4249 PR ada/34361
da746f77
LB
4250 * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
4251 the new implementation of target-specific calls.
4252
ebe0660b
OH
42532007-12-07 Olivier Hainque <hainque@adacore.com>
4254
4255 * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
4256 the designated full view, only follow a second level Full_View link
4257 for Non_Limited_Views of from_limited_with references.
4258
2eb160f2
ST
42592007-12-07 Samuel Tardieu <sam@rfc1149.net>
4260
4261 PR ada/15805
4262 * sem_ch6.adb (Process_Formals): Prevent an access type formal
4263 to be initialized with an access to constant object.
4264
9cc11b58
ST
4265 * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
4266 when an access to constant is used to initialize an access
4267 value.
4268
72f69ddf
ST
4269 PR ada/21346
4270 * a-direct.adb (Compose): Containing_Directory can be an empty string.
4271
5a2fe31a
OH
42722007-12-07 Olivier Hainque <hainque@adacore.com>
4273
4274 PR ada/34173
4275 * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
4276 the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
4277 this is from an alignment clause on the GNAT entity.
4278 * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
4279 to distinguish the case where we set it from the type's alignment.
4280 When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
4281 whether this alignment was set from an explicit alignment clause.
4282
4039fb35
EB
42832007-12-06 Eric Botcazou <ebotcazou@adacore.com>
4284
4285 * decl.c (make_packable_type): Revert last change.
4286 (gnat_to_gnu_field): Avoid setting size and position multiple times.
4287 * utils.c (finish_record_type): Retrieve the real name of the type.
4288
0ec479dc
EB
42892007-12-05 Eric Botcazou <ebotcazou@adacore.com>
4290
4291 * trans.c (lvalue_required_p): Take base node directly instead
4292 of its parent. Rename second parameter to 'gnu_type'.
4293 <N_Indexed_Component>: Return 0 if the node isn't the prefix.
4294 <N_Slice>: Likewise.
4295 (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
4296 Adjust calls to lvalue_required_p.
4297
07c7262e
ST
42982007-12-05 Samuel Tardieu <sam@rfc1149.net>
4299
4300 PR ada/21489
4301 * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
4302 parameters of an entry call.
4303
9e94c78f 43042007-12-03 Robert Dewar <dewar@adacore.com>
403fd939
RD
4305 Samuel Tardieu <sam@rfc1149.net>
4306
4307 PR ada/34287
4308 * sem_util.adb (Safe_To_Capture_Value): Do not capture values
4309 of variables declared in a library-level package.
4310
0bcb4d2a
ST
43112007-12-02 Samuel Tardieu <sam@rfc1149.net>
4312
4313 * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
4314 of Empty_String'Unchecked_Access.
4315
dd9c642a
ST
4316 * Makefile.in: Add support for sh4-linux.
4317
4318 * system-linux-sh4.ads: New file.
4319
35330114
KB
43202007-12-01 Kostik Belousov <kostikbel@ukr.net>
4321
4322 PR ada/33722
4323 * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
4324 and its argument must not be free()ed.
4325
a6dcb051
EB
43262007-11-29 Eric Botcazou <ebotcazou@adacore.com>
4327
4328 * decl.c (make_packable_type): Retrieve the real name of the type.
4329 (maybe_pad_type): Simplify similar code.
4330
39a97416
ST
43312007-11-28 Samuel Tardieu <sam@rfc1149.net>
4332
a6968b8b 4333 PR ada/15804
39a97416
ST
4334 * par-ch3.adb (P_Variant_Part): Signal an error when anything other
4335 than an identifier is used after "case" in a variant_part.
4336
b99dfeb3 4337 PR ada/17318
9c5a3a8d
ST
4338 * par-ch4.adb (Is_Parameterless_Attribute): New map.
4339 (P_Name, Scan_Apostrophe block): Parse left parenthesis following
4340 attribute name or not depending on the new map.
4341
4342 * sem-attr.adb (Analyze_Attribute): Parameterless attributes
4343 returning a string or a type will not be called with improper
4344 arguments.
4345
4346 * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
4347
4348 * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
4349
5a218498
ST
4350 PR ada/32792
4351 * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
4352 Signal an error when attribute argument is a fixed-point value of
4353 an unknown type.
4354
7bde4677
ST
4355 PR ada/22559
4356 * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
4357 a derived ordinary fixed point type.
4358
4359 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
4360 RM_Size when a Small clause is found.
4361
182e0d71
AK
43622007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
4363
4364 PR 34081/C++
4365 * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
4366 Pass 'false' for the new allocate_struct_function parameter.
4367 * utils.c (build_function_stub): Likewise.
4368
87caf699
RG
43692007-11-25 Richard Guenther <rguenther@suse.de>
4370
4039fb35 4371 * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
87caf699
RG
4372 (gnat_poplevel): Likewise.
4373
f1c8c7ee
EB
43742007-11-25 Eric Botcazou <ebotcazou@adacore.com>
4375
4376 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
4377 strict alignment, no alignment clause and a known static size, cap
4378 the type alignment to the greatest power of 2 factor of the size.
4379 (gnat_to_gnu_field): If the field has a component clause, is aliased
4380 or of a type with strict alignment, require that its size be equal to
4381 that of the type.
4382 (validate_size): Use the type size as the minimum size for a type with
4383 strict alignment.
4384
bb1f5840
ST
43852007-11-23 Samuel Tardieu <sam@rfc1149.net>
4386
4387 * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
4388 s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
4389 s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
4390 Use 'Access instead of 'Unchecked_Access in second and third
4391 arguments of pthread_sigmask.
4392
5102fac5
EB
43932007-11-23 Eric Botcazou <ebotcazou@adacore.com>
4394
4395 * decl.c (ceil_alignment): New function.
4396 (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
4397 (make_packable_type): Likewise.
4398
1fa4dfc6
OH
43992007-11-22 Olivier Hainque <hainque@adacore.com>
4400
4401 * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
4402 to fit in 80 columns.
4403
9e94c78f 44042007-11-21 Aurelien Jarno <aurelien@aurel32.net>
5f45b299
AJ
4405
4406 * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
4407 * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
4408
7634135a
EB
44092007-11-19 Eric Botcazou <ebotcazou@adacore.com>
4410
4411 PR ada/34098
4412 * misc.c (gnat_adjust_rli): Delete.
4413 (gnat_init): Do not initialize the translation code here.
4414 Do not call set_lang_adjust_rli.
4415 * trans.c (init_code_table): Make static.
4416 (gnat_init_stmt_group): Delete.
4417 (gigi): Initialize the translation code entirely here.
4418 Emit debug info for the common types here instead of...
4419 * utils.c (gnat_init_decl_processing): ...here.
4420 * gigi.h (init_code_table): Delete.
4421 (gnat_init_stmt_group): Likewise.
4422
b2c3bcf4
OH
44232007-11-16 Olivier Hainque <hainque@adacore.com>
4424
4425 * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
4426 retrieving an allocator return value from a super-aligned address from
4427 here to ...
4428 * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
4429 expect a super-aligned address for a fat or thin pointer.
4430
a01e283f
EB
44312007-11-14 Eric Botcazou <ebotcazou@adacore.com>
4432
4433 * trans.c (call_to_gnu): Always set the source location on the call
4434 expression. If the function returns-by-target, also set it on the
4435 address expression.
4436
713c3145
ST
44372007-11-14 Samuel Tardieu <sam@rfc1149.net>
4438
356d8961 4439 * adaint.c, init.c, initialize.c, link.c: Remove system-specific
713c3145
ST
4440 sections of non-supported Interix target.
4441
4442 * s-osinte-interix.ads: Removed.
4443
1e992e16
ST
4444 * i-cstrin.ads (chars_ptr): Make it a C convention type.
4445
0e506c4b
ST
44462007-11-13 Samuel Tardieu <sam@rfc1149.net>
4447
4448 * a-tasatt.adb: Add a comment at the beginning of the package
4449 explaining why in general 'Unchecked_Access must be used instead
4450 of 'Access.
4451
66beb09b
ST
4452 * sem_prag.adb (Process_Convention): Move the test for the
4453 entity on which the Convention pragma applies down to also
4454 forbid pragma Convention on enumeration literals reached
4455 through renamings.
4456
14678e46
ST
44572007-11-10 Samuel Tardieu <sam@rfc1149.net>
4458
4459 * a-tasatt.adb: Revert previous change for this file as it will
4460 generate an error when this package is instantiated from a
4461 local context.
4462
f9d806de
ST
44632007-11-07 Samuel Tardieu <sam@rfc1149.net>
4464
4465 * a-tasatt.adb: Type Wrapper should be declared in comment instead
4466 of already declared type Node_Access.
dcbd752d
ST
4467 Use 'Access instead of 'Unchecked_Access when applicable. Local
4468 lifetime is the one of the package.
4469 (Set_Value): W is allocated on the heap.
4470
4471 * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
4472 applicable.
4473 (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
4474 access type.
4475 (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
4476 access type.
4477
4478 * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
4479 applicable.
4480 (elaboration code): Timer_Queue lifetime is the one of the
4481 package.
f9d806de 4482
bc01690e
ST
4483 * tracebak.c (i386 alternative): Remove useless comparaison
4484 which is always false; LOWEST_ADDRESS is 0 and is never greater
4485 than an unsigned integer.
4486
d9c1dc68
ST
4487 * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
4488 embedded check for "Ada_Version >= Ada_05".
4489
cb88a3ea
OH
44902007-11-07 Olivier Hainque <hainque@adacore.com>
4491
4492 * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
4493 craft and expand comment.
4494
233a722b
EB
44952007-11-01 Eric Botcazou <ebotcazou@adacore.com>
4496
4497 * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
4498
6d1e8bff
EB
44992007-10-23 Eric Botcazou <ebotcazou@adacore.com>
4500
4501 * misc.c (gnat_handle_option): Replace call to abort with
4502 call to gcc_unreachable.
4503 (gnat_init): Likewise.
4504 (gnat_expand_expr): Likewise.
4505 (fp_prec_to_size): Likewise.
4506 (fp_size_to_prec): Likewise.
4507
262e7125
RG
45082007-10-23 Richard Guenther <rguenther@suse.de>
4509
4510 PR bootstrap/33608
4511 * tracebak.c: #undef abort after including system.h.
4512
9e94c78f 45132007-10-20 Danny Smith <dannysmith@users.sourceforge.net>
c8f499a9
DS
4514
4515 * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
4516 s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
4517 for win32 targets.
4518 (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
4519
f0e1e807
AC
45202007-10-15 Eric Botcazou <ebotcazou@adacore.com>
4521
4522 * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
4523 Set the protection status of the guard page based on the value of On.
4524
4525 * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
4526
4527 * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
4528 (Exit_Task): Pass False to Hide_Yellow_Zone.
4529
45302007-10-15 Robert Dewar <dewar@adacore.com>
4531
4532 * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
4533 s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
4534 a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
4535 checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
4536 freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
4537 gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
4538 mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
4539 prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
4540 sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
4541 s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
4542 uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
4543 a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
4544 a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
4545 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
4546 a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
4547 a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
4548 Minor reformatting.
4549 Add Unreferenced and Warnings (Off) pragmas for cases of
4550 variables modified calls where they are IN OUT or OUT parameters and
4551 the resulting values are not subsequently referenced. In a few cases,
4552 we also remove redundant code found by the new warnings.
4553
4554 * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
4555 sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
4556 sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
4557 sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
4558 warning controlled by -gnatw.o that warns on cases of out parameter
4559 values being ignored.
4560
45612007-10-15 Geert Bosch <bosch@adacore.com>
4562
4563 * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
4564
4565 * expect.c: Initial port to arm-mentor-nucleus.
4566 Use kill for __gnat_kill() on VMS.
4567
45682007-10-15 Emmanuel Briot <briot@adacore.com>
4569
4570 * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
4571 value.
4572 (Xref_Record): Change type for Line, since in the case of a reference to
4573 a predefined entity (as happens for array index types), the line is set
4574 to 0.
4575 Add support for parsing multiple array index types info, or
4576 multiple inherited interfaces info. This information cannot be stored
4577 in Xref_Entity_Record, which only supports a single instance of Tref_*,
4578 and is therefore stored in the list of references instead. It has a
4579 special treatement later on in tools that use this information.
4580
45812007-10-15 Tristan Gingold <gingold@adacore.com>
4582
4583 * debug.adb: Document use of -gnatd.a and -gnatd.I
4584
4585 * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
4586
45872007-10-15 Javier Miranda <miranda@adacore.com>
4588
4589 * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
4590 Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
4591 care of access to class-wide interface types plus removal of bizarre
4592 conversion of tagged object to access type (reported by Gary
4593 Dismukes). After this patch there is no need to perform any
4594 additional management on these nodes in Expand_Interface_Actuals.
4595
4596 * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
4597 that handles use of 'Access and 'Unchecked_Access applied to
4598 actuals covering interface types. Such code is now
4599 centralized in Expand_N_Attribute_Reference.
4600
46012007-10-15 Ed Schonberg <schonberg@adacore.com>
4602
4603 * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
4604 of tagged types whose ultimate ancestor is a CPP type.
4605 (Freeze_Array_Type): For a packed array type, generate an initialization
4606 procedure if the type is public, to handle properly a client that
4607 specifies Normalize_Scalars.
4608
46092007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
4610
4611 * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
4612 inside a generic body, retrieve the full view of the entry family
4613 discrete subtype if available.
4614
46152007-10-15 Thomas Quinot <quinot@adacore.com>
4616
4617 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
4618 attempt to generate stubs for hidden primitive operations.
4619
46202007-10-15 Vincent Celier <celier@adacore.com>
4621
4622 * mlib-tgt-specific.adb (Support_For_Libraries): New function,
4623 returning None, used when there is no platform specific body for
4624 MLib.Tgt.Specific.
4625
46262007-10-15 Bob Duff <duff@adacore.com>
4627
4628 * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
4629 (passing'Unrestricted_Access of nested subprograms to Sort) with use of
4630 the generic Heap_Sort_G, in order to avoid trampolines.
4631
46322007-10-15 Vasiliy Fofanov <fofanov@adacore.com>
4633 Jose Ruiz <ruiz@adacore.com>
4634
4635 * vx_stack_info.c: New file.
4636
4637 * i-forbla-unimplemented.ads: New file.
4638
4639 * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
4640 for unsupported configurations; use it on VMS targets instead of the
4641 real one.
4642 (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
4643 vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
4644 used by VxWorks targets to have access to task-specific data and be
4645 able to extract the stack boundaries for stack checking.
4646 Use system-vms-ia64.ads on ivms.
4647
4648 * Make-lang.in: Update dependencies.
4649
4650 * sysdep.c (__gnat_get_stack_info): Move to a standalone file
4651 (vx_stack_info.c).
4652
46532007-10-15 Vincent Celier <celier@adacore.com>
4654
4655 * snames.adb, snames.ads: Add new standard name runtime_library_dir
4656
4657 * prj.ads (Language_Config): Add new component Runtime_Library_Dir
4658
4659 * prj-attr.adb: Add project level attribute Runtime_Library_Dir
4660
4661 * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
4662 the source is unknown.
4663
4664 * prj-ext.adb: Spelling error fix
4665
4666 * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
4667 95 reserved word in its name.
4668 (Process_Project_Level_Array_Attributes): Process new attribute
4669 Runtime_Library_Dir.
4670
4671 * prj-part.adb (Parse_Single_Project): Do not check the name of the
4672 config project against the user project names.
4673
4674 * prj-proc.adb (Expression): In multi-language mode, indexes that do
4675 not include a dot are always case insensitive.
4676 (Process_Declarative_Items): Ditto
4677 (Process_Project_Tree_Phase_1): Set Success to False in case an error is
4678 detected.
4679
4680 * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
4681 True, compare both indexes in lower case.
4682
46832007-10-15 Robert Dewar <dewar@adacore.com>
4684
4685 * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
4686
46872007-10-15 Gary Dismukes <dismukes@adacore.com>
4688
4689 * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
4690 association for an access component, add an association with null as
4691 the expression. Remove testing for array subtypes and the setting in
4692 that case of Ctyp to the array component type, which prevented proper
4693 inclusion of an association for null-initialized arrays. Collapse
4694 condition that tests for array subtypes into just a test of
4695 Is_Partially_Initialized_Type (which already covers arrays anyway).
4696
46972007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
4698
4699 * sem_ch12.adb: Minor code reformatting.
4700 (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
4701 find the parent package which may have been hidden by local
4702 declarations.
4703
47042007-10-15 Gary Dismukes <dismukes@adacore.com>
4705
4706 * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
4707 flag of derived concurrent types, taking into account the flag setting
4708 on the parent subtype and any new set of discriminants.
4709
47102007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
4711
4712 * sem_ch4.adb: Minor code and comment reformatting.
4713 (Analyze_Allocator): When the designated type of an unconstrained
4714 allocator is a record with unknown discriminants or an array with
4715 unknown range bounds, emit a detailed error message depending on the
4716 compilation mode and whether the designated type is limited.
4717
47182007-10-15 Tristan Gingold <gingold@adacore.com>
4719
4720 * system-vms-ia64.ads: New file.
4721
4722 * system-vms_64.ads: Minor comment fix.
4723
47242007-10-15 Ed Schonberg <schonberg@adacore.com>
4725
4726 * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
4727 body generated for a function with a controlling result that is a null
4728 extension, discard the generated body in favor of the current explicit
4729 one.
4730
47312007-10-15 Ed Schonberg <schonberg@adacore.com>
4732
4733 * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
4734 examining its original form, to handle properly operator calls that
4735 have been rewritten.
4736
47372007-10-15 Olivier Hainque <hainque@adacore.com>
4738
4739 * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
4740 instead of a procedure value in each traceback entry.
4741
4742 * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
4743 instead of procedure value to TBK$SYMBOLIZE.
4744
4745 * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
4746 field.
4747 (TB_Entry_For): Account for the PV/FP renaming.
4748
4749 * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
4750 add comment.
4751 (Null_TB_Entry): Account for change of component name.
4752 (PV_For): Rename as FP_For.
4753
47542007-10-15 Tristan Gingold <gingold@adacore.com>
4755
4756 * trans.c (gnat_to_gnu): Remove the padding structure more often.
4757 This optimize assignment to over-aligned record.
4758
47592007-10-15 Emmanuel Briot <briot@adacore.com>
4760
4761 * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
4762 interfaces.
4763
4764 * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
4765 type, for dispatching calls.
4766
47672007-10-15 Vincent Celier <celier@adacore.com>
4768 Robert Dewar <dewar@adacore.com>
4769
4770 * gnat_ugn.texi: Add documentation for switches --version and --help
4771 for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
4772 gnatxref, gnatfind, gnatls, and gnatclean.
4773 Document -gnatw.o.
4774 Mention attribute Excluded_Source_Dirs
4775 Replace obsolescent attribute Locally_Removed_Files with attribute
4776 Excluded_Source_Files.
4777 Improve documentation of -u (gnatbind)
4778 Document how to do reliable stack checking for the environmental task
4779 on iVMS.
4780
4781 * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
4782 Document attribute Excluded_Source_Files and indicate that attribute
4783 Locally_Removed_Files is obsolescent.
4784
47852007-10-15 Thomas Quinot <quinot@adacore.com>
4786
4787 * g-soccon-vms.ads: Fix value of MSG_WAITALL.
4788
4789 * gen-soccon.c:
4790 Update documentation to note that OpenVMS 8.3 or later must be used
4791 to generate g-soccon-vms.ads.
4792
4793 * atree.adb: Add ??? comment
4794
4795 * exp_util.adb: Minor reformatting.
4796 Add ??? comment in Kill_Dead_Code.
4797
47982007-10-15 Robert Dewar <dewar@adacore.com>
4799
4800 * errout.ads: Comment clarification
4801
4802 * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
4803 (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
4804
4805 * lib.ads: Comment update
4806
4807 * init.c: Minor reformatting.
4808
4809 * sem_attr.adb: Minor formatting
4810
4811 * osint-b.ads: Minor reformatting
4812
4813 * sem_ch9.adb: Implement -gnatd.I switch
4814
4815 * g-comlin.adb: (Start): Fix handling of empty command line.
4816
4817 * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
4818 even when -rules follows the -cargs section.
4819
6524147c
OW
48202007-10-08 Ollie Wild <aaw@google.com>
4821
4822 * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
4823 gnat_return_tree.
4824 (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
4825 gnat_return_tree.
4826 (gnat_eh_runtime_type): Removed.
4827 (gnat_return_tree): New function.
4828
dff6abb2
BE
48292007-10-08 Ben Elliston <bje@au.ibm.com>
4830
4831 PR ada/33454
4832 Revert:
4833 2007-08-31 Ben Elliston <bje@au.ibm.com>
4834
4835 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
4836 when compiling for powerpc64-*-linux.
4837 * system-linux-ppc64.ads: New file.
4838
c3048783
EB
48392007-09-27 Eric Botcazou <ebotcazou@adacore.com>
4840
4841 Mapped location support
4842 * back_end.adb (Call_Back_End): Pass information about source
4843 files instead of units to gigi.
4844 * gigi.h (struct File_Info_Type): New.
4845 (gigi): Rename and change type of number_units parameter, change
4846 type of file_info_ptr parameter.
4847 * trans.c (number_files): New global variable.
4848 (gigi): Rename and change type of number_units parameter, change
4849 type of file_info_ptr parameter.
4850 If mapped location support is enabled, create the isomorphic mapping
4851 between source files and line maps.
4852 (Sloc_to_locus): If mapped location support is enabled, translate
4853 source location into mapped location.
4854 (annotate_with_node): Rename into set_expr_location_from_node.
4855 Call set_expr_location instead of annotate_with_locus.
4856 (Pragma_to_gnu): Adjust for above change.
4857 (Loop_Statement_to_gnu): Likewise.
4858 (call_to_gnu): Likewise.
4859 (Handled_Sequence_Of_Statements_to_gnu): Likewise.
4860 (gnat_to_gnu): Likewise.
4861 (add_stmt_with_node): Likewise.
4862 (add_cleanup): Likewise.
4863 * utils.c (gnat_init_decl_processing): Do not set input_line.
4864
68b72a44
AC
48652007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
4866
4867 * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
4868 (Applicable_Use): Emit a warning when a package tries to use itself.
4869 (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
4870 is already in use or the package where it is declared is in use or is
4871 declared in the current package.
4872 (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
4873
4874 * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
4875 s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
4876 s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
4877
48782007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
4879
4880 * a-calend-vms.adb, a-calend.adb:
4881 Add a section on leap seconds control along with two entities used to
4882 enable and disable leap seconds support. The array Leap_Second_Times is
4883 now constant and contains hard time values pre-generated. Remove
4884 all elaboration code used to populate the table of leap seconds.
4885
4886 * bindgen.adb:
4887 Add entity Leap_Seconds_Support to the list of global run-time variables
4888 along with a comment on its usage and values.
4889 (Gen_Adainit_Ada): Add code to generate the declaration and import of
4890 Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
4891 or one (enabled) depending on the presence of binder switch "-y".
4892 (Gen_Adainit_C): Add code to generate the declaration of external int
4893 __gl_leap_seconds_support. Set is value to zero (disabled) or one
4894 (enabled) depending on the presence of binder switch "-y".
4895
4896 * init.c: Add __gl_leap_seconds_support to the list of global values
4897 computed by the binder.
4898
48992007-09-26 Jerome Guitton <guitton@adacore.com>
4900
4901 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
4902 s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
4903 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
4904 s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
4905
4906 * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
4907
4908 * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
4909 function which can be called by the debugger to interrupt the tasks of
4910 an Ada application asynchronously, as needed on VxWorks.
4911 (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
4912
4913 * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
4914 renamed from Stop_All_Tasks. Update comments.
4915 (Stop_All_tasks): New function declaration.
4916
49172007-09-26 Olivier Hainque <hainque@adacore.com>
4918
4919 * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
4920 #include <utime.h> and #define GCC_RESOURCE_H before
4921 #include <sys/wait.h>.
4922 Add more protections in __gnat_translate_vms.
4923
4924 * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
4925 #include <sys/wait.h>.
4926
49272007-09-26 Thomas Quinot <quinot@adacore.com>
4928 Sergey Rybin <rybin@adacore.com>
4929
4930 * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
4931
4932 * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
4933 where it belongs.
4934
4935 * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
4936
4937 * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
4938 where it belongs.
4939
4940 * sem_dist.ads: Minor comment fix
4941
4942 * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
4943
49442007-09-26 Javier Miranda <miranda@adacore.com>
4945 Eric Botcazou <ebotcazou@adacore.com>
4946
4947 * a-tags.adb:
4948 (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
4949 indirection added to the HT_Link component of the TSD. This is required
4950 to statically allocate the TSD.
4951
4952 * a-tags.ads:
4953 Minor reordering of the declarations in the private part. Required to
4954 add a level of indirection to the contents of the TSD component HT_Link.
4955 This is required to statically allocate the TSD.
4956
4957 * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
4958 Is_Statically_Allocated set from constant objects.
4959 Do not make exported constants created by the compiler volatile.
4960 (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
4961 as read-only.
4962
4963 * trans.c (Identifier_to_gnu): For constants, unshare initializers
4964 before returning them.
4965
4966 * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
4967 public part of the package.
4968 (Make_DT): Move HT_Link component out of the TSD record. For this
4969 purpose Make_DT now declares a separate object that stores the
4970 HT_Link value, and initializes the TSD component with the address
4971 of this new object. The addition of this level of indirection is
4972 required to statically allocate the TSD because the TSD cannot
4973 have variable components.
4974 (Expand_Interface_Conversion): Improve the expanded code.
4975 (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
4976
4977 * sem_disp.adb (Check_Dispatching_Operation): In case of a body
4978 declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
4979 if we are building static dispatch tables then we must not generate
4980 extra code to register the primitive because the dispatch table will
4981 be built at the end of the library package; otherwise we notify that
4982 we cannot build the static dispatch table.
4983
49842007-09-26 Robert Dewar <dewar@adacore.com>
4985
4986 * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
4987 overlays.
4988
4989 * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
4990 (Analyze_Record_Representation_Clause): Suppress junk warning for
4991 missing component clause.
4992 (Analyze_Attribute_Definition_Clause, case Address): Apply the special
4993 tests for controlled type overlay to composites with controlled
4994 components.
4995 (Analyze_Record_Representation_Clause): Add reference for component name
4996
49972007-09-26 Javier Miranda <miranda@adacore.com>
4998 Gary Dismukes <dismukes@adacore.com>
4999
5000 * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
5001 for thunks associated with interface types.
5002
5003 * einfo.ads: Improve documentatation of Is_Internal
5004 (Is_Thunk): New attribute applicable to subprograms. True for thunks
5005 associated with interface types.
5006 Extensive comment fixes regarding flags that appear in all entities. The
5007 documentation is now consistent for all such flags (there were a number
5008 of errors in the documentation in this regard).
5009
5010 * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
5011
5012 * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
5013 of these procedures are passed a function call that already has
5014 build-in-place actuals (testing new flag
5015 Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
5016 the case where processing continues.
5017 (Expand_Call): If the call is generated from a thunk body then we
5018 propagate the extra actuals associated with the accessibility
5019 level of the access type actuals.
5020
5021 * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
5022 of each extra formal of a protected operation to reference the
5023 corresponding extra formal of the subprogram denoted by the
5024 operation's Protected_Body_Subprogram.
5025
5026 * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
5027 N_Function_Call nodes.
5028
50292007-09-26 Robert Dewar <dewar@adacore.com>
5030
5031 * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
5032
5033 * debug.adb: Add d.s flag.
5034
50352007-09-26 Gary Dismukes <dismukes@adacore.com>
5036
5037 * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
5038 debug variable so that it won't be initialized when pragma
5039 Initialize_Scalars is in effect.
5040
50412007-09-26 Gary Dismukes <dismukes@adacore.com>
5042
5043 * freeze.adb (Freeze_Entity): Remove check for preelaborable
5044 initialization of a full view. This is moved to
5045 Analyze_Package_Specification.
5046
5047 * sem_ch7.adb (Analyze_Package_Specification): Add check for
5048 preelaborable initialization of a full view in entity loop.
5049 (Uninstall_Declarations): If entity is a use-visible compilation unit,
5050 its child units are use-visible only if they are visible child units.
5051
5052 * sem_util.adb (Is_Preelaborable_Expression): New function to determine
5053 whether an expression can be used within a type declaration that
5054 requires preelaborable init.
5055 (Check_Components): Replace inline code that does partial checking for
5056 preelaborable default expressions with call to
5057 Is_Preelaborable_Expression.
5058 (Has_Preelaborable_Initialization): In the case of a generic actual
5059 subtype, (that is, Is_Generic_Actual is True), return the result of
5060 applying Has_Preelaborable_Initialization to the generic actual's base
5061 type.
5062
50632007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
5064
5065 * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
5066 call to Jan_1_Day _Of_Week to optimize its performance.
5067 (Is_Leap): Move the routine to the scope of Week_In_Year.
5068 (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
5069 weekday on which January 1 falls of Year - 1 and Year + 1. This function
5070 avoids calling Time_Of and Split, thus making it more efficent.
5071 (Week_In_Year): Reimplemented in oder to follow ISO 8601.
5072
5073 * g-calend.ads (Week_In_Year): Change comment to reflect new
5074 implementation.
5075
50762007-09-26 Emmanuel Briot <briot@adacore.com>
5077
5078 * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
5079 Command_Line): New types
5080 (Define_Alias, Define_Prefix, Free): New subprograms. These provide
5081 support for defining how switches can be grouped on a command line (as
5082 is the case for -gnatw... for GNAT), and how simple switches can be
5083 used as aliases for more complex switches (-gnatwa is same as
5084 -gnatwbcef...)
5085 (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
5086 (Start, Current_*): New subprograms
5087 Added support for parsing an array of strings in addition to the real
5088 command line.
5089 (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
5090 be moved from the body to the private part of the spec.
5091 (*): All subprograms now have an extra parameter with default value to
5092 specify which parser should be used. For backward compatibility, it
5093 defaults to parsing the command line of the application. They were also
5094 modified to properly handle cases where each of the argument does not
5095 start at index 1 (which is always true for Ada.Command_Line, but not
5096 when processing any Argument_List).
5097 (Free): New subprogram
5098 (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
5099 Argument): New subprograms
5100 (Switch_Parameter_Type): New enum, which clarifies the code. The extra
5101 special characters like ':', '=',... are now handled in a single place,
5102 which makes the code more extensible eventually.
5103 (Getopt, Full_Switch): When the switch was returned as part of the
5104 special character '*', make sure it is prepended by the switch character
5105 ('-' in general), so that the application knows whether "foo" or "-foo"
5106 was specified on the command line.
5107
51082007-09-26 Florian Villoing <villoing@adacore.com>
5109
5110 * g-dirope.adb (Remove_Dir): In case we are removing directories
5111 recursively, make sure that if an exception is raised during the
5112 processing, the current working directory is reset to its initial
5113 value before propagating the exception.
5114
51152007-09-26 Vincent Celier <celier@adacore.com>
5116
5117 * gnatbind.adb: If there are several ALI files specified and there is
5118 a main program to bind, the first ALI is expected to contain the main
5119 subprogram and the names of the binder generated files will be derived
5120 from the first ALI file name.
5121 (Gnatbind): Fix insertion character in invocation of Error_Msg
5122
51232007-09-26 Vincent Celier <celier@adacore.com>
5124
5125 * gnatcmd.adb (Check_Files): Do not include sources that have been
5126 removed by attributes Exclude_Source_Files or Locally_Removed_Files.
5127
51282007-09-26 Ed Schonberg <schonberg@adacore.com>
5129
5130 * lib-xref.ads, lib-xref.adb: The entry for array types now carries
5131 information about each of its index types, following the type
5132 reference for its component type.
5133
51342007-09-26 Vincent Celier <celier@adacore.com>
5135
5136 * make.adb: (Kill): New procedure (__gnat_kill imported)
5137 (Running_Compile, Outstanding_Compiles): Global variables that
5138 were previously local to procedure Compile_Sources.
5139 (Sigint_Intercepted): Send signal SIGINT to all outstanding
5140 compilation processes.
5141
5142 (Gnatmake): If project files are used, create the mapping of all the
5143 sources, so that the correct paths will be found.
5144
5145 * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
5146
51472007-09-26 Vincent Celier <celier@adacore.com>
5148
5149 * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
5150
5151 * prj.ads, prj.adb (Default_Language): Remove function, no longer used
5152 Replace components Compiler_Min_Options and Binder_Min_Options with
5153 Compiler_Required_Switches and Binder_Required_Switches in record
5154 Language_Config.
5155 Remove components Default_Language and Config in Project_Tree_Data,
5156 no longer used.
5157
5158 * prj-attr.adb: New attributes Required_Switches (<language>) in
5159 packages Compiler and Binder.
5160
5161 * prj-nmsc.adb: Major rewrite of the processing of configuration
5162 attributes for gprbuild. No impact on GNAT tools.
5163
5164 * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
5165 process configuration attributes: this is done in Prj.Nmsc.Check.
5166 (Recursive_Process): Make a full copy of packages inherited from project
5167 being extended, instead of a shallow copy.
5168 (Process_Project_Tree_Phase_1): New procedure
5169 (Process_Project_Tree_Phase_1): New procedure
5170 (Process): Implementation now uses the two new procedures
5171
5172 * prj-util.adb (Executable_Of): Get the suffix and the default suffix
5173 from the project config, not the tree config that no longer exists.
5174
51752007-09-26 Vincent Celier <celier@adacore.com>
5176
5177 * Make-lang.in: Update dependencies..
5178
51792007-09-26 Vincent Celier <celier@adacore.com>
5180
5181 * osint.adb, osint.ads: Minor reformatting
5182
5183 * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
5184
51852007-09-26 Gary Dismukes <dismukes@adacore.com>
5186
5187 * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
5188 message to cite use of <> in aggregate component associations rather
5189 than wrongly indicating use of limited aggregates.
5190
51912007-09-26 Robert Dewar <dewar@adacore.com>
5192
5193 * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
5194 Address_Taken.
5195
51962007-09-26 Ed Schonberg <schonberg@adacore.com>
5197
5198 * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
5199 ancestor of the derived type, the operations are inherited from the
5200 primary dispatch table of the parent.
5201 (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
5202 when the context is an explicit type conversion.
5203
52042007-09-26 Ed Schonberg <schonberg@adacore.com>
5205
5206 * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
5207 rule for qualified expressions properly, to detect improper conversions
5208 and resolve some cases of overloading.
5209
52102007-09-26 Ed Schonberg <schonberg@adacore.com>
5211
5212 * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
5213 proper kind of reference to the primitive operation, for better source
5214 navigation.
5215 (Valid_Conversion): A tagged conversion is legal if both operands are
5216 tagged.
5217
52182007-09-26 Robert Dewar <dewar@adacore.com>
5219
5220 * sem_warn.adb (Check_References): Catch more cases of unreferenced
5221 packages.
5222
52232007-09-26 Vincent Celier <celier@adacore.com>
5224
5225 * snames.adb, snames.ads: Change Include_Option to Include_Switches
5226
52272007-09-26 Robert Dewar <dewar@adacore.com>
5228
5229 * s-wchstw.adb: provide messages for run time unit exceptions
5230
5231 * a-witeio.adb: Minor reformatting
5232
5233 * exp_ch13.adb: Minor reformatting
5234
52352007-09-26 Sergey Rybin <rybin@adacore.com>
5236
5237 * vms_data.ads: Revise gnatmetric qualifiers.
5238 Add qualified for the new gnatbind option '-y'
5239
5240 * gnat_ugn.texi: Revise the gnatmetric section.
5241 Add entry for new gnatbind option '-y'.
5242
5243 * gnat_rm.texi: Minor spelling correction.
5244 Document restriction on overlaying controlled types
5245
52462007-09-26 Vincent Celier <celier@adacore.com>
5247
5248 * makegpr.adb (Link_Executables): Do not fail when the root project has
5249 no sources, but is an extending project.
5250
0a86bcc9
EB
52512007-09-25 Eric Botcazou <ebotcazou@adacore.com>
5252
5253 * trans.c: Fix misplaced #define.
5254
b235734c
EB
52552007-09-22 Eric Botcazou <ebotcazou@adacore.com>
5256
5257 * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
5258 the TYPE_REF_CAN_ALIAS_ALL flag to the result.
5259
97237784
OH
52602007-09-21 Olivier Hainque <hainque@adacore.com>
5261
5262 * utils.c (type_for_nonaliased_component_p): Return false for
5263 all AGGREGATE_TYPEs.
5264
2adde4ff
EB
52652007-09-17 Eric Botcazou <ebotcazou@adacore.com>
5266
5267 * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
5268 object covered by 13.3(19) volatile.
5269
b693daa7
EB
52702007-09-12 Eric Botcazou <ebotcazou@adacore.com>
5271
5272 PR ada/26797
5273 PR ada/32407
5274 * utils.c (unchecked_convert): Use a subtype as the intermediate type
5275 in the special VIEW_CONVERT_EXPR case.
5276
82da9a90
AC
52772007-09-12 Robert Dewar <dewar@adacore.com>
5278
5279 * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
5280
5281 * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
5282 lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
5283 s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
5284 s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
5285 s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
5286 s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
5287 s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
160c5065 5288 s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
82da9a90
AC
5289 a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
5290 g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
5291 s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
5292 s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
5293 snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
5294 s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
5295 s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
5296 s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
5297 s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
5298 pragma Compiler_Unit and adds it to relevant library units.
5299
53002007-09-12 Ed Schonberg <schonberg@adacore.com>
5301
5302 * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
5303 a box need not correspond to any component.
5304
53052007-09-12 Robert Dewar <dewar@adacore.com>
5306
5307 * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
5308 the tasking version of the Ada run time when foreign threads are
5309 present and there are no explicit Ada tasks or tasking constructs.
5310
5311 * gnat_rm.texi: Clarify documentation of GNAT.Threads.
5312
53132007-09-12 Hristian Kirtchev <kirtchev@adacore.com>
5314
5315 * bindusg.adb (Display): Correct comment for switch -X. Add a line for
5316 the usage of switch -y.
5317
5318 * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
5319 when switch -y is present.
5320
5321 * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
5322 leap seconds in Ada.Calendar and its children.
5323
53242007-09-12 Jose Ruiz <ruiz@adacore.com>
5325
5326 * a-extiti.ads (Timer): The discriminant is a "not null access
5327 constant" in the Reference Manual.
5328 (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
5329
53302007-09-12 Robert Dewar <dewar@adacore.com>
5331
5332 * a-swuwha.adb: Remove junk RM header
5333
53342007-09-12 Vincent Celier <celier@adacore.com>
5335
5336 * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
5337 indicator
5338
5339 * g-bytswa.ads: Minor reformatting
5340
53412007-09-12 Thomas Quinot <quinot@adacore.com>
5342
5343 * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
5344 Add new constant Thread_Blocking_IO, always True by default, set False
5345 on a per-runtime basis.
5346 (Need_Netdb_Buffer): New constant.
5347
53482007-09-12 Arnaud Charlet <charlet@adacore.com>
5349
5350 * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
5351 Added renames for corresponding functions in System.Partition_Interface.
5352
53532007-09-12 Doug Rupp <rupp@adacore.com>
5354
5355 * Makefile.in: Remove VMS specific System.CRTL packages which are no
5356 longer needed.
5357
5358 * s-crtl-vms64.ads: Removed.
5359
09528ed9
OH
53602007-09-12 Olivier Hainque <hainque@adacore.com>
5361
5362 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
5363 with discriminant constraints, generalize the code for BIT_FIELDs
5364 to PACKED fields of constant size and propagate DECL_PACKED.
5365
fa89b6ec
EB
53662007-09-11 Eric Botcazou <ebotcazou@adacore.com>
5367
5368 * decl.c (array_type_has_nonaliased_component): New predicate.
5369 (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
5370 set the TYPE_NONALIASED_COMPONENT flag on the type.
5371 <E_Array_Subtype>: Likewise.
5372 * gigi.h (type_for_nonaliased_component_p): Declare.
5373 * utils.c (type_for_nonaliased_component_p): New predicate.
5374 (create_field_decl): Invoke the above predicate to set the
5375 DECL_NONADDRESSABLE_P flag on the field.
5376
e18d6a15
JM
53772007-09-11 Javier Miranda <miranda@adacore.com>
5378
5379 * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
5380 in library level record type entities if we are generating statically
5381 allocated dispatch tables.
5382
5383 * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
5384 importing/exporting the _tag declaration by new code
5385 importing/exporting the dispatch table wrapper. This change allows us
5386 to statically allocate of the TSD.
5387 (Make_DT.Export_DT): New procedure.
5388 (Build_Static_DT): New function.
5389 (Has_DT): New function.
5390
5391 * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
5392 True_Constant and Current_Value. Required to statically
5393 allocate the dispatch tables.
5394 (Check_Allocator): Make function iterative instead of recursive.
5395 Also return inner allocator node, when present, so that we do not have
5396 to look for that node again in the caller.
5397
9e94c78f 53982007-09-11 Jan Hubicka <jh@suse.cz>
e89d6010
JH
5399
5400 * misc.c (gnat_expand_body): Kill.
5401 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
5402
281b604e
AC
54032007-09-10 Robert Dewar <dewar@adacore.com>
5404
5405 * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
5406 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
5407 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
5408 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
5409 ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
5410 bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
5411 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
5412 butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
5413 comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
5414 elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
5415 err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
5416 exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
5417 exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
5418 exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
5419 exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
5420 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
5421 exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
5422 exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
5423 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
5424 exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
5425 exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
5426 exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
5427 fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
5428 get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
5429 gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
5430 gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
5431 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
5432 gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
5433 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
5434 gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
5435 inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
5436 lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
5437 lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
5438 make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
5439 mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
5440 mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
5441 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
5442 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
5443 osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
5444 osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
5445 par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
5446 par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
5447 par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
5448 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
5449 par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
5450 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
5451 prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
5452 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
5453 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
5454 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
5455 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
5456 prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
5457 rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
5458 scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
5459 sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
5460 sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
5461 sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
5462 sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
5463 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
5464 sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
5465 sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
5466 sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
5467 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
5468 sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
5469 sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
5470 sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
5471 sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
5472 sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
5473 stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
5474 styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
5475 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
5476 switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
5477 tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
5478 treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
5479 types.h, uintp.h, urealp.h, usage.adb, usage.ads,
5480 validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
5481 xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
5482 xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
5483 gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
5484 mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
5485 symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
5486 mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
5487 mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
5488
54892007-09-10 Emmanuel Briot <briot@adacore.com>
5490
5491 * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
5492 classes ("[]").
5493
54942007-09-10 Vasiliy Fofanov <fofanov@adacore.com>
5495
5496 * adaint.c (__gnat_translate_vms): new function.
5497
54982007-09-10 Gary Dismukes <dismukes@adacore.com>
5499 Thomas Quinot <quinot@adacore.com>
5500
5501 * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
5502 create an abstract subprogram in the case of 'Input. For 'Output we now
5503 create a real spec/body when the type is abstract, since it can
5504 potentially be called.
5505 (Predefined_Primitive_Bodies): Now allow the creation of a predefined
5506 body for 'Output when the type is abstract (only the creation of the
5507 body for 'Input is excluded when the type is abstract).
5508 (Stream_Operation_OK): Add an additional condition in the return
5509 statement, so that False will be returned for TTS_Stream_Input if the
5510 associated tagged type is an abstract extension. Add comments for
5511 return statement.
5512 (Expand_N_Object_Declaration): For the case of a shared passive
5513 variable, insert init proc call only after the shared variable
5514 procedures have been processed, because the IP call needs to undergo
5515 shared passive variable reference expansion, which requires these
5516 procedures to be available (and elaborated).
5517
55182007-09-10 Vincent Celier <celier@adacore.com>
5519
5520 * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
5521 parameter Runtime_Project.
5522
55232007-09-10 Ed Schonberg <schonberg@adacore.com>
5524
5525 * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
5526 given a box association, the type of the component is discriminated,
5527 and the value of the discriminant is the discriminant of the enclosing
5528 type, retrieve its value from the aggregate itself, where it must have
5529 been supplied.
5530
5531 * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
5532 to remove other spurious ambiguities on arithmetic operations involving
5533 literals and addresses, on systems where Address is a visible integer
5534 type, when the operator is called in functional notation.
5535 (Try_Primitive_Operation): Within an instance, a call in prefixed form
5536 is legal when the types match, even if the operation is currently
5537 hidden.
5538
55392007-09-10 Ed Schonberg <schonberg@adacore.com>
5540
5541 * sem_ch12.adb (Build_Local_Package): A formal package with no
5542 associations is legal if all formals have defaults. It is not
5543 equivalent to a formal declared with a box.
5544
55452007-09-10 Sergey Rybin <rybin@adacore.com>
5546
5547 * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
5548
55492007-09-10 Sergey Rybin <rybin@adacore.com>
5550
5551 * gnat_ugn.texi: Add description of the new '-lratio' option
5552 Update 7.3.1 section about availability of the feature.
5553
55542007-09-10 Thomas Quinot <quinot@adacore.com>
5555
5556 * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
5557 inserted node.
5558
55592007-09-10 Olivier Hainque <hainque@adacore.com>
5560
5561 * Makefile.in: (mips-irix section): Activate build of libgmem.
5562
a56955b1
EB
55632007-09-10 Eric Botcazou <ebotcazou@adacore.com>
5564
5565 * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
5566 x87 registers.
5567
c03550f6
EB
55682007-09-10 Eric Botcazou <ebotcazou@adacore.com>
5569
5570 * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
5571 a debug renaming declaration specially.
5572
79646678
EB
55732007-09-08 Eric Botcazou <ebotcazou@adacore.com>
5574
5575 * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
5576 which a constant renaming is treated as a normal object declaration.
5577 * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
5578 the N_Indexed_Component case.
5579 <N_Indexed_Component>: Fall through to above case.
5580 <N_Object_Renaming_Declaration>: Return true for all composite types.
5581
d9e161ce
EB
55822007-09-08 Eric Botcazou <ebotcazou@adacore.com>
5583
5584 * decl.c (make_packable_type): If the new type has been given BLKmode,
5585 try again to get an integral mode for it.
5586
0ab29e91 55872007-09-07 Eric Botcazou <ebotcazou@adacore.com>
6ef9a246 5588
0ab29e91 5589 Re-apply accidentally reverted change:
6ef9a246 5590
0ab29e91 5591 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
6ef9a246 5592
0ab29e91
EB
5593 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
5594 get_action_description_for): Replace _Unwind_Word with _uleb128_t
5595 and _Unwind_SWord with _sleb128_t.
4b459ae4 5596
38f1f8cb
EB
55972007-09-06 Eric Botcazou <ebotcazou@adacore.com>
5598
5599 * trans.c (convert_with_check): Update call to real_2expN.
5600
db2960f4
SL
56012007-09-05 Sandra Loosemore <sandra@codesourcery.com>
5602
5603 * trans.c (Compilation_unit_to_gnu): Use set_cfun.
5604 * utils.c (end_subprog_body): Likewise.
5605
d70c0bd6
NC
56062007-09-03 Nick Clifton <nickc@redhat.com>
5607
5608 * Make-lang.in: Change copyright header to refer to version 3 of
5609 the GNU General Public License and to point readers at the
5610 COPYING3 file and the FSF's license web page.
5611 * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
5612 Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
5613 namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
5614 treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
5615 Likewise.
5616
8a26ebb6
AC
56172007-08-31 Vincent Celier <celier@adacore.com>
5618
5619 PR ada/4720
5620
5621 * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
5622 gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
5623 (Check_Version_And_Help): New procedure in package Switch to process
5624 switches --version and --help.
5625 Use Check_Version_And_Help in GNAT tools
5626
5627 * make.adb: Ditto.
5628 (Compile_Sources): Make sure that sources that are "excluded" are not
5629 compiled.
5630 (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
5631 project file is used.
5632 (Version_Switch): Remove, moved to Switch
5633 (Help_Switch): Remove, moved to Switch
5634 (Display_Version): Remove, moved to Switch
5635
5636 * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
5637 package Switch to process switches --version and --help.
5638 (Display_Version): New procedure
5639
5640 * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
5641
56422007-08-31 Javier Miranda <miranda@adacore.com>
5643
5644 * a-tags.adb (Internal_Tag): Protect the run-time against wrong
5645 internal tags.
5646
56472007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
5648
5649 * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
5650 (Mark_Non_Null): If the node for which we just generated an access check
5651 is a reference to an *in* parameter and the reference appears in the
5652 declarative part of a subprogram body, mark the node as known non null.
5653
56542007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
5655
5656 * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
5657 structure of E_Exception to reflect the new flag.
5658 (Is_Raised, Set_Is_Raised): New inlined routines.
5659 Update the usage of available flag to reflect the addition of Is_Raised.
5660 (Is_Raised, Set_Is_Raised): Bodies of new routines.
5661 (Write_Entity_Flags): Write the status of flag Is_Raised.
5662 (Is_Descendent_Of_Address): New entity flag, to simplify handling of
5663 spurious ambiguities when integer literals appear in the context of an
5664 address type that is a visible integer type.
5665
5666 * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
5667 exceptions never being raised.
5668 (Analyze_Raise_Statement): When analyzing an exception, mark it as being
5669 explicitly raised.
5670
56712007-08-31 Javier Miranda <miranda@adacore.com>
5672
5673 * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
5674 statement when compiling under restriction No_Exceptions_Proparation.
5675
56762007-08-31 Ed Schonberg <schonberg@adacore.com>
5677
5678 * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
5679 initialization aggregate for the type, generate itype references for
5680 thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
5681
56822007-08-31 Gary Dismukes <dismukes@adacore.com>
5683
5684 * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
5685 library-level package renaming, pass the declaration associated with
5686 the renaming's special debug variable to Qualify_Entity_Names to ensure
5687 that its encoded name is properly qualified.
5688
5689 * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
5690 occurring in the list of entities to qualify, and do not attempt to
5691 traverse an entity list in that case. Variables associated with
5692` library-level package renamings can now occur in the table.
5693
5694 * exp_dbug.ads: Revise documentation of the encoding for renaming
5695 declarations.
5696
56972007-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5698
5699 * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
5700 access type points to an unconstrained array.
5701
57022007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
5703
5704 * restrict.adb, namet.adb, par-util.adb: Remove redundant type
5705 conversion.
5706
5707 * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
5708 simple redundant qualifications. The check is performed whenever the
5709 expression is a non-overloaded identifier.
5710 (Resolve_Type_Conversion): Enchance the redundant type conversion check
5711 to include loop parameters.
5712 (Valid_Conversion): Avoid generation of spurious error message.
5713
57142007-08-31 Bob Duff <duff@adacore.com>
5715
5716 * par-ch4.adb (P_Simple_Expression): Fold long sequences of
5717 concatenations of string literals into a single literal, in order to
5718 avoid very deep recursion in the front end, which was causing stack
5719 overflow.
5720
5721 * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
5722 string, and the right operand is a string literal (the case of "" &
5723 "..."), optimize by avoiding copying the right operand -- just use the
5724 value of the right operand directly.
5725
5726 * stringt.adb (Store_String_Chars): Optimize by growing the
5727 String_Chars table all at once, rather than appending characters one by
5728 one.
5729 (Write_String_Table_Entry): If the string to be printed is very long,
5730 just print the first few characters, followed by the length. Otherwise,
5731 doing "pn(n)" in the debugger can take an extremely long time.
5732
5733 * sem_prag.adb (Process_Interface_Name): Replace loop doing
5734 Store_String_Char with Store_String_Chars.
5735
57362007-08-31 Vincent Celier <celier@adacore.com>
5737
5738 * prj-attr.adb: Add new attribute Excluded_Source_Files
5739
5740 * prj-nmsc.adb: Use attribute Excluded_Source_Files before
5741 Locally_Removed_Files.
5742
5743 * snames.ads, snames.adb: New standard name Excluded_Source_Files
5744
57452007-08-31 Ed Schonberg <schonberg@adacore.com>
5746
5747 * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
5748 clauses of subunits, ignore limited_with_clauses that are illegal and
5749 have not been fully analyzed.
5750
57512007-08-31 Ed Schonberg <schonberg@adacore.com>
5752
5753 * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
5754 flag, for effiency. It is called when analyzing arithmetic operators
5755 and also for actuals in calls that are universal_integers. The flag is
5756 set for the predefined type address, and for any type or subtype
5757 derived from it.
5758
5759 * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
5760 Universal_Integer, when the formal is a descendent of address and the
5761 call appears in user code.
5762 (Analyze_Selected_Component): if the prefix is a private extension, the
5763 tag component is visible.
5764
5765 * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
5766 entity flag.
5767
57682007-08-31 Robert Dewar <dewar@adacore.com>
5769
5770 * s-fileio.adb (Open): Normalize file name to lower case in non-case
5771 sensitive file name systems to avoid unexpected mismatch in Vista.
5772
57732007-08-31 Vincent Celier <celier@adacore.com>
5774
5775 * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
5776
57772007-08-31 Vincent Celier <celier@adacore.com>
5778
5779 * symbols-vms.adb (Initialize): Read symbol files with continuation
5780 lines
5781 (Finalize): If symbol is long, split the line
5782
57832007-08-31 Vincent Celier <celier@adacore.com>
5784
5785 * fmap.ads: Minor comment updates
5786
57872007-08-31 GNAT Script <nobody@adacore.com>
5788
5789 * Make-lang.in: Makefile automatically updated
5790
57912007-08-31 Bob Duff <duff@adacore.com>
5792
5793 * sinfo.ads: Minor comment fix.
5794
57952007-08-31 Thomas Quinot <quinot@adacore.com>
5796
5797 * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
5798 with implementation.
5799 Documentation cleanup only.
5800
58012007-08-31 Sergey Rybin <rybin@adacore.com>
5802
5803 * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
5804 gnatpp '--separate-stmt-name' option.
5805 Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
5806 option.
5807
5808 * gnat_ugn.texi: Add description for the new gnatpp
5809 '--separate-stmt-name' and '--use-on-new-line' options.
5810
22d2aa96
BE
58112007-08-31 Ben Elliston <bje@au.ibm.com>
5812
5813 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
5814 when compiling for powerpc64-*-linux.
5815 * system-linux-ppc64.ads: New file.
5816
51743df8
KW
58172007-08-22 Krister Walfridsson <cato@df.lth.se>
5818
5819 * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
5820 NetBSD.
5821
ac7d7749
KG
58222007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5823
5824 * misc.c (gnat_type_max_size): Constify.
5825
833eddff
AC
58262007-08-16 Gary Dismukes <dismukes@adacore.com>
5827
5828 * cstand.adb (Create_Standard): Create an entity for a zero-sized type
5829 associated with Standard_Debug_Renaming_Type, to be used as the type of
5830 the special variables whose names provide debugger encodings for
5831 renaming declarations.
5832
5833 * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
5834 (Set_Debug_Renaming_Link): Change to set Node25.
5835 (Write_Field13_Name): Remove case for E_Enumeration_Literal.
5836 (Write_Field25_Name): Add case for E_Variable to output
5837 "Debug_Renaming_Link".
5838 (Write_Field23_Name): Correct the output string for "Limited_View".
5839
5840 * exp_dbug.adb: Add with and use of Tbuild.
5841 (Debug_Renaming_Declaration): Replace creation of an enumeration type
5842 and literal with creation of a variable of type
5843 Standard_Debug_Renaming_Type whose name encodes both the renamed object
5844 and the entity of the renaming declaration.
5845 (Qualify_Entity_Name): Add the delayed qualification of the entity name
5846 part of the name of a variable that has a Debug_Renaming_Link.
5847
5848 * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
5849 special type to be associated with variables that provide debugger
5850 encodings for renaming declarations.
5851
58522007-08-16 Gary Dismukes <dismukes@adacore.com>
5853 Ed Schonberg <schonberg@adacore.com>
5854 Javier Miranda <miranda@adacore.com>
5855
5856 * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
5857 ancestor part given by an aggregate to test for an unchecked conversion,
5858 since this can occur in some cases when the ancestor part is a function
5859 call, and we don't want to fall into the recursive call to this
5860 procedure in that case.
5861
5862 * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
5863 stream attributes on limited types to account for user-specified
5864 attributes as well as whether Input (resp. Output) becomes available
5865 due to Read (resp. Write) being available for the type. Change Boolean
5866 variable to the more accurate name
5867 Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
5868 double-"not" predicate at beginning of return statement to more
5869 understandable form.
5870
5871 * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
5872 return has an associated N_Handled_Sequence_Of_Statements, then wrap it
5873 in a block statement and use that as the first statement of the
5874 expanded return rather than incorrectly using the handled sequence as
5875 the first statement.
5876
5877 * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
5878 operation, generate an explicit freeze node for it rather than
5879 generating extra formals, to ensure that gigi has the proper order of
5880 elaboration for anonymous subtypes in the signature of the subprograms.
5881 (Build_In_Place_Formal): Move assertion to beginning of loop.
5882 (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
5883 applied to a function call (occurs for some cases of 'Input).
5884 (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
5885 applied to a function call (occurs for some cases of 'Input).
5886
5887 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
5888 2005, generate an extended return statement enclosing the result object
5889 and 'Read call.
5890
5891 * freeze.adb (Freeze_Record_Type): Extend the current management of
5892 components that are access type with an allocator as default value: add
5893 missing support to the use of qualified expressions of the
5894 allocator (which also cause freezing of the designated type!)
5895 (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
5896 dispatching operation, since extra formals may be needed by calls to
5897 build-in-place functions (such as stream 'Input).
5898
5899 * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
5900 formals for 'Constrained and accessibility level in the case of a
5901 predefined dispatching operation.
5902
5903 * exp_util.adb (Insert_Actions): A protected body is a valid insertion
5904 point, no need to find the parent node.
5905
59062007-08-16 Javier Miranda <miranda@adacore.com>
5907
5908 * exp_attr.adb (Attribute_Priority): Add missing support for entries
5909 and entry barriers.
5910
59112007-08-16 Javier Miranda <miranda@adacore.com>
5912
5913 * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
5914 is not really required and can introduce regression with the debugger.
5915 The original problem is fixed with the patch written for checks.adb.
5916
59172007-08-16 Thomas Quinot <quinot@adacore.com>
5918
5919 * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
5920 Range_Check on Allocated_Table.
5921
59222007-08-16 Vincent Celier <celier@adacore.com>
5923
5924 * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
5925 Including_Non_Switch set to False.
5926 (Gnatmake): For the compiler, call Test_If_Relative_Path with
5927 Including_Non_Switch set to False.
5928
5929 * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
5930 parameter Including_Non_Switch, defaulted to True. When
5931 Including_Non_Switch is False, options that are not switches and
5932 appear as relative path are not converted to absolute paths.
5933
59342007-08-16 Nicolas Roche <roche@adacore.com>
5935
5936 * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
5937 makefiles
5938
5939 * Make-lang.in: Update dependencies
5940
59412007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
5942
5943 * sem_ch10.adb (Has_With_Clause): If the name of the with clause
5944 currently inspected is a selected component, retrieve the entity of
5945 its selector.
5946 (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
5947 from the immediate ancestor of Main_Unit_Entity.
5948 (Install_Limited_Withed_Unit): Do not install the limited view of
5949 package P if P is reachable through an ancestor chain from package C
5950 and C also has a with clause for P in its body.
5951 (Has_Limited_With_Clause): New routine.
5952 (Has_With_Clause): New routine.
5953
59542007-08-16 Ed Schonberg <schonberg@adacore.com>
5955
5956 * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
5957 generic for an enclosing instance is a global reference, even though
5958 its scope is the enclosing instance.
5959
59602007-08-16 Gary Dismukes <dismukes@adacore.com>
5961 Javier Miranda <miranda@adacore.com>
5962
5963 * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
5964 initialize a limited object.
5965 (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
5966 13/2 and 14/2.
5967 Make sure Has_Complex_Representation is inherited by derived type.
5968
59692007-08-16 Robert Dewar <dewar@adacore.com>
5970
5971 * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
5972 exception case
5973
59742007-08-16 Ed Schonberg <schonberg@adacore.com>
5975
5976 * sem_disp.adb (Check_Dispatching_Operation): If the operation
5977 implements an operation inherited from a progenitor interface, verify
5978 that they are subtype-conformant.
5979
59802007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
5981 Bob Duff <duff@adacore.com>
5982 Nicolas Setton <setton@adacore.com>
5983
5984 * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
5985 (Resolve): Alphabetize local variables. Add new variable From_Lib. When
5986 the statement which is being resolved comes from a predefined library
5987 unit, all non-predefined library interpretations are skipped.
5988 (Resolve_Op_Concat): If string concatenation was folded in the parser,
5989 but the "&" is user defined, give an error, because the folding would
5990 be wrong.
5991
5992 * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
5993 the parser has folded a long sequence of concatenations of string
5994 literals.
5995
5996 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
5997 and "JMP_BUF" variables as artificial.
5998 (N_String_Literal): Do not use alloca for very long string literals. Use
5999 xmalloc/free instead. Otherwise the stack might overflow.
6000
6001 * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
6002 compiler.
6003
60042007-08-16 Vincent Celier <celier@adacore.com>
6005
6006 * vms_conv.adb (Process_Argument): Ensure that project related options
6007 are not put in the -cargs section when using GNAT COMPILE.
6008
60092007-08-16 Robert Dewar <dewar@adacore.com>
6010
6011 * gnat_ugn.texi: Add note on preprocessing (output file not written)
6012
60132007-08-16 Thomas Quinot <quinot@adacore.com>
6014
6015 * a-tags.adb: Minor reformatting.
6016
60172007-08-16 Bob Duff <duff@adacore.com>
6018
6019 * sem_type.ads, sem_ch4.adb: Minor reformatting.
6020
ab6328d0
AC
60212007-08-14 Thomas Quinot <quinot@adacore.com>
6022
6023 * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
6024 s-osinte-interix.ads, system-interix.ads: Removed.
6025
60262007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
6027
6028 * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
6029 calls to Check_Within_Time_Bounds.
6030 ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
6031 (Difference): Account for possible rounding of the resulting difference
6032
60332007-08-14 Robert Dewar <dewar@adacore.com>
6034
6035 * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
6036 par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
6037 s-osinte-solaris.adb, s-osinte-solaris.ads,
6038 s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
6039
6040 * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
6041 switch -gnatyS. Enable -gnatyS in GNAT style check mode
6042
60432007-08-14 Robert Dewar <dewar@adacore.com>
6044 Ed Schonberg <schonberg@adacore.com>
6045
6046 * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
6047 Suppress unmodified in-out parameter warning in some cases
6048 This patch is a also fairly significant change to the way suppressible
6049 checks are handled.
6050
6051 * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
6052 needed for access to concurrent record types generated by the expander.
6053 (Generate_Range_Check): When generating a temporary to capture the
6054 value of a conversion that requires a range check, set the type of the
6055 temporary before rewriting the node, so that the type is always
6056 properly placed for back-end use.
6057 (Apply_Float_Conversion_Check): Handle case where the conversion is
6058 truncating.
6059 (Get_Discriminal): Code reformatting. Climb the scope stack looking
6060 for a protected type in order to examine its discriminants.
6061
60622007-08-14 Robert Dewar <dewar@adacore.com>
6063 Gary Dismukes <dismukes@adacore.com>
6064 Ed Schonberg <schonberg@adacore.com>
6065 Thomas Quinot <quinot@adacore.com>
6066
6067 * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
6068 a-stwisu.adb, a-strsup.adb: Fix warnings for range
6069 tests optimized out.
6070
6071 * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
6072 (Get_Allocator_Final_List): For the case of an anonymous access type
6073 that has a specified Associated_Final_Chain, do not go up to the
6074 enclosing scope.
6075 (Expand_N_Type_Conversion): Test for the case of renamings of access
6076 parameters when deciding whether to apply a run-time accessibility
6077 check.
6078 (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
6079 aggregate code before allocator, and ahead of declaration for
6080 temporary, to prevent access before elaboration when the allocator is
6081 an actual for an access parameter.
6082 (Expand_N_Type_Conversion): On an access type conversion involving an
6083 access parameter, do not apply an accessibility check when the
6084 operand's original node was an attribute other than 'Access. We now
6085 create access conversions for the expansion of 'Unchecked_Access and
6086 'Unrestricted_Access in certain cases and clearly accessibility should
6087 not be checked for those.
6088
6089 * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
6090 includes a type conversion of a packed component that has been expanded,
6091 recover the original expression for the object, and use this expression
6092 in the post-call assignment statement, so that the assignment is made
6093 to the object and not to a back-end temporary.
6094 (Freeze_Subprogram): In case of primitives of tagged types not defined
6095 at the library level force generation of code to register the primitive
6096 in the dispatch table. In addition some code reorganization has been
6097 done to leave the implementation clear.
6098 (Expand_Call): When expanding an inherited implicit conversion,
6099 preserve the type of the inherited function after the intrinsic
6100 operation has been expanded.
6101
6102 * exp_ch2.ads, exp_ch2.adb
6103 (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
6104 of an entry formal appearing in an assignment statement does not assign
6105 to the formal.
6106 (Expand_Current_Value): Instead of calling a routine to determine
6107 whether the prefix of an attribute reference should be optimized or
6108 not, prevent the optimization of such prefixes all together.
6109
6110 * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
6111 component whose prefix is known to be of an access type is an implicit
6112 dereference and does not assign to the prefix.
6113
61142007-08-14 Ed Schonberg <schonberg@adacore.com>
6115 Robert Dewar <dewar@adacore.com>
6116
6117 * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
6118 itype is visited, make an entry into table to link associated node and
6119 new itype.
6120 Add comments and correct harmless error in Build_NCT_Hash_Tables
6121 (Array_Aggr_Subtype): Associate each itype created for an index type to
6122 the corresponding range construct, and not to the aggregate itself. to
6123 maintain a one-to-one correspondence between itype and its associated
6124 node, to prevent errors when complex expression is copied.
6125 Fix mishandling of multiple levels of parens
6126
6127 * sem_aggr.adb: Create a limited view of an incomplete type, to make
6128 treatment of limited views uniform for all visible declarations in a
6129 limited_withed package.
6130 (New_Copy_Tree): If hash table is being used and itype is visited,
6131 make an entry into table to link associated node and new itype.
6132 (Resolve_Record_Aggregate): Do not add an others box association for a
6133 discriminated record component that has only discriminants, when there
6134 is a box association for the component itself.
6135
6136 * par-ch4.adb: Fix mishandling of multiple levels of parens
6137
61382007-08-14 Robert Dewar <dewar@adacore.com>
6139
6140 * comperr.adb: Fix problem with suppressing warning messages from gigi
6141
6142 * erroutc.ads, erroutc.adb, errout.ads,
6143 errout.adb (Write_Eol): Remove trailing spaces before writing the line
6144 (Write_Eol_Keep_Blanks): New procedure to write a line, including
6145 possible trailing spaces.
6146 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
6147 Fix problem with suppressing warning messages from back end
6148 Improve handling of deleted warnings
6149
6150 * gnat1drv.adb:
6151 Fix problem with suppressing warning messages from back end
6152 Handle setting of Static_Dispatch_Tables flag.
6153
6154 * prepcomp.adb:
6155 Fix problem with suppressing warning messages from back end
6156
6157 * exp_intr.adb: Improve handling of deleted warnings
6158
61592007-08-14 Robert Dewar <dewar@adacore.com>
6160
6161 * debug.adb: Improve -gnatdI to cover all cases of serialization
6162 Add documentation of dZ, d.t
6163
6164 * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
6165 serialization.
6166 (Sprint_Node_Actual): Generate new output associated with implicit
6167 importation and implicit exportation of object declarations.
6168
61692007-08-14 Ed Schonberg <schonberg@adacore.com>
6170 Robert Dewar <dewar@adacore.com>
6171 Javier Miranda <miranda@adacore.com>
6172 Gary Dismukes <dismukes@adacore.com>
6173
6174 * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
6175 to make treatment of limited views uniform for all visible declarations
6176 in a limited_withed package.
6177 Improve warnings for in out parameters
6178 (Set_Related_Interaface/Related_Interface): Allow the use of this
6179 attribute with constants.
6180 (Write_Field26_Name): Handle attribute Related_Interface in constants.
6181 Warn on duplicate pragma Preelaborable_Initialialization
6182
6183 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
6184 generation of a freezing node to ensure proper management of null
6185 excluding access types in the backend.
6186 (Create_Extra_Formals): Test base type of the formal when checking for
6187 the need to add an extra accessibility-level formal. Pass the entity E
6188 on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
6189 originally being done in a couple of cases), to ensure that the
6190 Extra_Formals list gets set on the entity E when the first entity is
6191 added.
6192 (Conforming_Types): Add missing calls to Base_Type to the code that
6193 handles anonymous access types. This is required to handle the
6194 general case because Process_Formals builds internal subtype entities
6195 to handle null-excluding access types.
6196 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
6197 functions that need it, even when not marked Requires_Overriding.
6198 Improve warnings for in out parameters
6199 (Analyze_Function_Return): Warn for disallowed null return
6200 Warn on return from procedure with unset out parameter
6201 Ensure consistent use of # in error messages
6202 (Check_Overriding_Indicator): Add in parameter Is_Primitive.
6203 (Analyze_Function_Return): Move call to Apply_Constraint_Check before
6204 the implicit conversion of the expression done for anonymous access
6205 types. This is required to generate the code of the null excluding
6206 check (if required).
6207
6208 * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
6209 A formal parameter is never publicly referenceable outside of its body.
6210 (Check_References): For an unreferenced formal parameter in an accept
6211 statement, use the same warning circuitry as for subprogram formal
6212 parameters.
6213 (Warn_On_Unreferenced_Entity): New subprogram, taken from
6214 Output_Unreferenced_Messages, containing the part of that routine that
6215 is now reused for entry formals as described above.
6216 (Goto_Spec_Entity): New function
6217 (Check_References): Do not give IN OUT warning for dispatching operation
6218 Improve warnings for in out parameters
6219 (Test_Ref): Check that the entity is not undefinite before calling
6220 Scope_Within, in order to avoid infinite loops.
6221 Warn on return from procedure with unset out parameter
6222 Improved warnings for unused variables
6223
62242007-08-14 Robert Dewar <dewar@adacore.com>
6225 Javier Miranda <miranda@adacore.com>
6226 Gary Dismukes <dismukes@adacore.com>
6227
6228 * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
6229 (Expand_N_Attribute_Reference): Further unify the handling of the
6230 three forms of access attributes, using common code now for all three
6231 cases. Add a test for the case of applying an access attribute to
6232 an explicit dereference when the context is an access-to-interface
6233 type. In that case we need to apply the conversion to the prefix
6234 of the explicit dereference rather than the prefix of the attribute.
6235 (Attribute_Version, UET_Address): Set entity as internal to ensure
6236 proper dg output of implicit importation.
6237 (Expand_Access_To_Type): Removed.
6238 (Expand_N_Attribute_Reference): Merge the code from the three cases
6239 of access attributes, since the processing is largely identical for
6240 these cases. The substantive fix here is to process the case of a
6241 type name prefix (current instance case) before handling the case
6242 of interface prefixes.
6243
62442007-08-14 Thomas Quinot <quinot@adacore.com>
6245 Ed Schonberg <schonberg@adacore.com>
6246 Javier Miranda <miranda@adacore.com>
6247 Robert Dewar <dewar@adacore.com>
6248
6249 * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
6250 (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
6251 type that is an anonymous access to controlled object, establish
6252 an associated finalization chain to avoid corrupting the global
6253 finalization list when a dynamically allocated object designated
6254 by such a component is deallocated.
6255 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
6256 functions that need it, even when not marked Requires_Overriding.
6257 (Initialize_Tag): Replace call to has_discriminants by call to
6258 Is_Variable_Size_Record in the circuitry that handles the
6259 initialization of secondary tags.
6260 (Is_Variable_Size_Record): New implementation.
6261 (Expand_N_Object_Declaration): Suppress call to init proc if there is a
6262 Suppress_Initialization pragma for a derived type.
6263 (Is_Variable_Size_Record): New subprogram.
6264 (Build_Offset_To_Top_Functions): New implementation that simplifies the
6265 initial version of this routine and also fixes problems causing
6266 incomplete initialization of the table of interfaces.
6267 (Build_Init_Procedure): Improve the generation of code to initialize the
6268 the tag components of secondary dispatch tables.
6269 (Init_Secondary_Tags): New implementation that simplifies the previous
6270 version of this routine.
6271 (Make_DT): Add parameter to indicate when type has been frozen by an
6272 object declaration, for diagnostic purposes.
6273 (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
6274 diagnose attemps to freeze a subprogram when some untagged type of its
6275 profile is a private type whose full view has not been analyzed yet.
6276 (Freeze_Array_Type): Generate init proc for packed array if either
6277 Initialize or Normalize_Scalars is set.
6278 (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
6279 constructing the new profile, copy the null_exclusion indicator for each
6280 parameter, to ensure full conformance of the new body with the spec.
6281
6282 * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
6283 Create wrappers for constructor functions that need it, even when not
6284 marked Requires_Overriding.
6285 (Covers): Handle properly designated types of anonymous access types,
6286 whose non-limited views are themselves incomplete types.
6287 (Add_Entry): Use an entity to store the abstract operation which hides
6288 an interpretation.
6289 (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
6290 (Collect_Interps): Use Empty as an actual for Abstract_Op in the
6291 initialization aggregate.
6292 (Function_Interp_May_Be_Hidden): Rename to
6293 Function_Interp_Has_Abstract_Op.
6294 (Has_Compatible_Type): Remove machinery that skips interpretations if
6295 they are labeled as potentially hidden by an abstract operator.
6296 (Has_Hidden_Interp): Rename to Has_Abstract_Op.
6297 (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
6298 (Write_Overloads): Output the abstract operator if present.
6299 (Add_Entry): Before inserting a new entry into the interpretation table
6300 for a node, determine whether the entry will be disabled by an abstract
6301 operator.
6302 (Binary_Op_Interp_May_Be_Hidden): New routine.
6303 (Collect_Interps): Add value for flag May_Be_Hidden in initialization
6304 aggregate.
6305 (Function_Interp_May_Be_Hidden): New routine.
6306 (Has_Compatible_Type): Do not consider interpretations hidden by
6307 abstract operators when trying to determine whether two types are
6308 compatible.
6309 (Has_Hidden_Interp): New routine.
6310 (Set_May_Be_Hidden_Interp): New routine.
6311 (Write_Overloads): Write the status of flag May_Be_Hidden.
6312
63132007-08-14 Ed Schonberg <schonberg@adacore.com>
6314 Javier Miranda <miranda@adacore.com>
6315
6316 * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
6317 types declared in the declarative part of a nested package body or in
6318 the proper body of a stub.
6319 (Set_All_DT_Position): Add missing check to avoid wrong assignation
6320 of the same dispatch table slot to renamed primitives.
6321 (Make_Select_Specific_Data_Table): Handle private types.
6322 (Tagged_Kind): Handle private types.
6323 (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
6324 output of implicit importation and exportation.
6325 (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
6326 first formal of the thunk is always associated with the controlling
6327 type. In addition perform the following code cleanup: remove formal
6328 Thunk_Alias which is no longer required, cleanup evaluation of the
6329 the controlling type, and update the documentation.
6330 Replace occurrence of Default_Prim_Op_Count by
6331 Max_Predef_Prims. Addition of compile-time check to verify
6332 that the value of Max_Predef_Prims is correct.
6333 (Check_Premature_Freezing): Apply check in Ada95 mode as well.
6334 (Make_DT): Add parameter to indicate when type has been frozen by an
6335 object declaration, for diagnostic purposes.
6336 (Build_Static_Dispatch_Tables): New subprogram that takes care of the
6337 construction of statically allocated dispatch tables.
6338 (Make_DT): In case of library-level tagged types export the declaration
6339 of the primary tag. Remove generation of tags (now done by Make_Tags).
6340 Additional modifications to handle non-static generation of dispatch
6341 tables. Take care of building tables for asynchronous interface types
6342 (Make_Tags): New subprogram that generates the entities associated with
6343 the primary and secondary tags of Typ and fills the contents of Access_
6344 Disp_Table. In case of library-level tagged types imports the forward
6345 declaration of the primary tag that will be declared later by Make_DT.
6346 (Expand_Interface_Conversion): In case of access types to interfaces
6347 replace an itype declaration by an explicit type declaration to avoid
6348 problems associated with the scope of such itype in transient blocks.
6349
63502007-08-14 Robert Dewar <dewar@adacore.com>
6351 Ed Schonberg <schonberg@adacore.com>
6352 Javier Miranda <miranda@adacore.com>
6353
6354 * exp_util.ads, exp_util.adb:
6355 This patch replaces a number of occurrences of explicit tests for N_Null
6356 with calls to Known_Null. This improves tracking of null values, since
6357 Known_Null also catches null constants, and variables currently known to
6358 be null, so we get better tracking.
6359 (Ensure_Defined): create an itype reference only in the scope of the
6360 itype.
6361 (Side_Effect_Free): A selected component of an access type that
6362 denotes a component with a rep clause must be treated as not
6363 side-effect free, because if it is part of a linked structure its
6364 value may be affected by a renaming.
6365 (Expand_Subtype_From_Expr): For limited objects initialized with build
6366 in place function calls, do nothing; otherwise we prematurely introduce
6367 an N_Reference node in the expression initializing the object, which
6368 breaks the circuitry that detects and adds the additional arguments to
6369 the called function. Bug found working in the new patch for statically
6370 allocated dispatch tables.
6371 (Is_Library_Level_Tagged_Type): New subprogram.
6372 (Remove_Side_Effects): If the expression of an elementary type is an
6373 operator treat as a function call.
6374 (Make_Literal_Range): If the index type of the array is not integer, use
6375 attributes properly to compute the constraint on the resulting aggregate
6376 which is a string.
6377
6378 * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
6379 class-wide type whose base type is an incomplete private type, leave
6380 class-wide type unfrozen so that freeze nodes can be generated
6381 properly at a later point.
6382 (Freeze_Entity, array case): Handle case of pragma Pack and component
6383 size attributre clause for same array.
6384
63852007-08-14 Vincent Celier <celier@adacore.com>
6386
6387 * prj.ads, prj.adb: Update Project Manager to new attribute names for
6388 gprbuild.
6389 Allow all valid declarations in configuration project files
6390 (Reset): Initialize all tables and hash tables in the project tree data
6391 Major update of the Project Manager and of the project aware tools,
6392 including gprmake, so that the same sources in the GNAT repository
6393 can be used by gprbuild.
6394 (Slash_Id): Change type to be Path_Name_Type
6395 (Slash): Return a Path_Name_Type instead of a File_Name_Type
6396
6397 * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
6398 gprbuild.
6399 Update Project Manager to new attribute names for ghprbuild
6400 Allow all valid declarations in configuration project files
6401 Major update of the Project Manager and of the project aware tools,
6402 including gprmake, so that the same sources in the GNAT repository
6403 can be used by gprbuild.
6404
6405 * prj-com.ads:
6406 Major update of the Project Manager and of the project aware tools,
6407 including gprmake, so that the same sources in the GNAT repository
6408 can be used by gprbuild.
6409
6410 * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
6411 insensitive flag for attributes with optional index.
6412 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
6413 array attribute, put the index in lower case.
6414 Update Project Manager to new attribute names for ghprbuild
6415 Allow all valid declarations in configuration project files
6416 Major update of the Project Manager and of the project aware tools,
6417 including gprmake, so that the same sources in the GNAT repository
6418 can be used by gprbuild.
6419
6420 * prj-env.ads, prj-env.adb:
6421 Major update of the Project Manager and of the project aware tools,
6422 including gprmake, so that the same sources in the GNAT repository
6423 can be used by gprbuild.
6424 (Get_Reference): Change type of parameter Path to Path_Name_Type
6425
6426 * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
6427 removing '-' from the path to start with the first character of the
6428 next directory.
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.
6432 Major update of the Project Manager and of the project aware tools,
6433 including gprmake, so that the same sources in the GNAT repository
6434 can be used by gprbuild.
6435
6436 * prj-nmsc.ads, prj-nmsc.adb:
6437 Update Project Manager to new attribute names for ghprbuild
6438 Allow all valid declarations in configuration project files
6439 (Search_Directories): Detect subunits that are specified with an
6440 attribute Body in package Naming. Do not replace a source/unit in the
6441 same project when the order of the source dirs are known. Detect
6442 duplicate sources/units in the same project when the order of the
6443 source dirs are not known.
6444 (Check_Ada_Name): Allow all identifiers that are not reserved words
6445 in Ada 95.
6446 Major update of the Project Manager and of the project aware tools,
6447 including gprmake, so that the same sources in the GNAT repository
6448 can be used by gprbuild.
6449 (Look_For_Sources): If the list of sources is empty, set the object
6450 directory of non extending project to nil.
6451 Change type of path name variables to be Path_Name_Type
6452 (Locate_Directory): Make sure that on Windows '/' is converted to '\',
6453 otherwise creating missing directories will fail.
6454
6455 * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
6456 prj-part.ads, prj-part.adb:
6457 Major update of the Project Manager and of the project aware tools,
6458 including gprmake, so that the same sources in the GNAT repository
6459 can be used by gprbuild.
6460
6461 * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
6462 insensitive flag for attributes with optional index.
6463 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
6464 array attribute, put the index in lower case.
6465 (Parse_Variable_Reference): Allow the current project name to be used in
6466 the prefix of an attribute reference.
6467
6468 * prj-util.ads, prj-util.adb
6469 (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
6470 defaulted to False. When True, always check against indexes in lower
6471 case.
6472
6473 * snames.ads, snames.h, snames.adb:
6474 Update Project Manager to new attribute names for gprbuild
6475 Allow all valid declarations in configuration project files
6476
64772007-08-14 Robert Dewar <dewar@adacore.com>
6478 Ed Schonberg <schonberg@adacore.com>
6479
6480 * opt.ads: Warning for non-local exception propagation now off by
6481 default
6482 New switch -gnatI to disable representation clauses
6483 Implement new pragma Implicit_Packing
6484
6485 * usage.adb:
6486 Warning for non-local exception propagation now off by default
6487 Add warning for unchecked conversion of pointers wi different
6488 conventions.
6489 New switch -gnatI to disable representation clauses
6490
6491 * usage.adb: new switch -gnatyS
6492
6493 * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
6494 note that aggregates of anonymous array types are not flagged.
6495 -gnatwc now includes membership tests optimized away
6496 -gnatw.x warnings are now off by default
6497 Added conditional compilation Appendix
6498 Add documentation of -gnatI
6499 Add documentation for new -gnatyS style check
6500 Update documentation about SAL and auto-init on Windows.
6501
6502 * gnat_rm.texi:
6503 Add documentation for pragma Check_Name and 'Enabled attribute
6504 Document that Eliminate on dispatching operation is ignored
6505 Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
6506 Document pragma Main
6507 Document pragma Implicit_Packing
6508
6509 * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
6510 different conventions
6511 New switch -gnatI to disable representation clauses
6512
6513 * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
6514 recognized, report the invalid characters including "-gnat" instead of
6515 just the first character in the switch.
6516 New switch -gnatI to disable representation clauses
6517 Set Warn_On_Object_Renames_Function true for -gnatg
6518
6519 * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
6520 Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
6521 Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
6522 to switch -aP (add directory to project search dir).
6523
6524 * par-prag.adb: Implement new pragma Implicit_Packing
6525
6526 * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
6527 type as having a non-standard representation, to force expansion on
6528 conversion to related types.
6529 (Analyze_Pragma): Warn on misspelled pragma
6530 (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
6531 Ensure consistent use of # in error messages
6532 Implement pragma Implicit_Packing
6533
65342007-08-14 Olivier Hainque <hainque@adacore.com>
6535 Eric Botcazou <ebotcazou@adacore.com>
6536
6537 * targtyps.c (get_target_maximum_default_alignment): New function.
6538 Maximum alignment
6539 that the compiler might choose by default for a type or object.
6540 (get_target_default_allocator_alignment): New function. Alignment known
6541 to be honored by the target default allocator.
6542 (get_target_maximum_allowed_alignment): New function. Maximum alignment
6543 we might accept for any type or object on the target.
6544 (get_target_maximum_alignment): Now synonym of maximum_default_alignment
6545
6546 * gigi.h (get_target_maximum_default_alignment): Declare new function.
6547 (get_target_default_allocator_alignment): Likewise.
6548 (get_target_maximum_allowed_alignment): Likewise.
6549
6550 PR ada/19037
6551 * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
6552 result of a function call, first try to use a stabilized reference for
6553 a constant renaming too.
6554 (validate_alignment): Use target_maximum_allowed_alignment instead of
6555 MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
6556 (gnat_to_gnu_entity): Use common nodes directly.
6557 (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
6558 alignment and size for the object.
6559 (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
6560 and N_Procedure_Call_Statement.
6561 (takes_address): Rename to lvalue_required_p, add third parameter
6562 'aliased' and adjust recursive calls.
6563 <N_Indexed_Component>: Update 'aliased' from the array type.
6564 <N_Selected_Component>: New case.
6565 <N_Object_Renaming_Declaration>: New Likewise.
6566 (Identifier_to_gnu): Adjust for above changes.
6567 (maybe_stabilize_reference) <CONST_DECL>: New case.
6568
6569 * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
6570 between type variants.
6571 (build_simple_component_ref): Likewise.
6572 (build_call_alloc_dealloc): Use target_default_allocator_alignment
6573 instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
6574 aligning type circuitry for allocations from the default storage pool.
6575 (build_allocator): Likewise.
6576 (build_simple_component_ref): Manually fold the reference for a
6577 constructor if the record type contains a template.
6578
6579 * utils.c (value_zerop): Delete.
6580 (gnat_init_decl_processing): Emit debug info for common types.
6581 (rest_of_record_type_compilation): If a union contains a field
6582 with a non-constant qualifier, treat it as variable-sized.
6583 (finish_record_type): Give the stub TYPE_DECL a name.
6584 (rest_of_record_type_compilation): Likewise.
6585 (convert) <CONSTRUCTOR>: New case. Build a new constructor if
6586 types are equivalent array types.
6587 (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
6588 even if the type is not passed by reference.
6589 (static_ctors, static_dtors): Delete.
6590 (end_subprog_body): Do not record constructors and destructors.
6591 (build_global_cdtor): Delete.
6592 (gnat_write_global_declarations): Do not call build_global_cdtor.
6593
0ab29e91 6594 * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
ab6328d0
AC
6595 -fRTS=rtp is specified.
6596 If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
6597 specified.
6598
6599 * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
6600 of the personality function with SJLJ exceptions.
6601
6602 * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
6603 the name of the personality function with SJLJ exceptions.
6604
66052007-08-14 Robert Dewar <dewar@adacore.com>
6606 Ed Schonberg <schonberg@adacore.com>
6607
6608 * par.ads, par.adb: Improve handling of extra right parens.
6609 (Par): Remove flag From_Limited_With_Clause.
6610
6611 * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
6612 Improve handling of extra right parens.
6613
66142007-08-14 Robert Dewar <dewar@adacore.com>
6615
6616 * par-tchk.adb (TF_Semicolon): Improve error recovery
6617
66182007-08-14 Robert Dewar <dewar@adacore.com>
6619 Ed Schonberg <schonberg@adacore.com>
6620
6621 * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
6622 enumeration type, mark all literals as referenced.
6623 (Eval_Attribute, case 'Image): If the argument is an enumeration
6624 literal and names are available, constant-fold but mark nevertheless as
6625 non-static.
6626 Clean up function names.
6627 (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
6628 comment.
6629 (Requires_Simple_Name_Prefix): Removed.
6630
66312007-08-14 Robert Dewar <dewar@adacore.com>
6632 Ed Schonberg <schonberg@adacore.com>
6633
6634 * sem_ch11.adb: Improved warnings for unused variables
6635
6636 * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
6637 is a synchronized interface, the derived type is limited.
6638 (Analyze_Object_Declaration): Mark the potential coextensions in the
6639 definition and expression of an object declaration node.
6640 (Build_Derived_Type): For the completion of a private type declaration
6641 with a derived type declaration, chain the parent type's representation
6642 items to the last representation item of the derived type (not the
6643 first one) if they are not present already.
6644 (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
6645 object declaration of forward references to tags.
6646 (Access_Subprogram_Declaration): In Ada2005, anonymous access to
6647 subprogram types can appear as access discriminants of synchronized
6648 types.
6649 (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
6650 given in prefixed form as a selected component.
6651 (Process_Discriminants): If not all discriminants have defaults, place
6652 error message on a default that is present.
6653 (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
6654 extend a synchronized tagged type.
6655 Improved warnings for unused variables
6656 (Is_Visible_Component): Fix a visibility hole on a component inherited
6657 by a private extension when parent is itself declared as a private
6658 extension, and the derivation is in a child unit.
6659 (Find_Hidden_Interface): Move spec from the package body.
6660
66612007-08-14 Robert Dewar <dewar@adacore.com>
6662 Ed Schonberg <schonberg@adacore.com>
6663
6664 * sem_ch5.adb: Improve warnings on redundant assignments
6665
6666 * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
6667 parameter
6668 (Is_Synchronized_Tagged_Type): New subprogram that returns true
6669 in case of synchronized tagged types (AARM 3.9.4 (6/2)).
6670 (Safe_To_Capture_Value): Can now return True for constants, even if Cond
6671 is set to False. Improves handling of Known_[Not_]Null.
6672 (Wrong_Type): Special case address arithmetic attempt
6673 (Collect_Abstract_Interfaces): Add new formal to allow collecting
6674 abstract interfaces just using the partial view of private types.
6675 (Has_Abstract_Interfaces): Add new formal to allow checking types
6676 covering interfaces using the partial view of private types.
6677 (Is_Fully_Initialized_Type): Special VM case for uTag component. This
6678 component still needs to be defined in this case, but is never
6679 initialized as VMs are using other dispatching mechanisms.
6680 (Abstract_Interface_List): For a protected type, use base type to get
6681 proper declaration.
6682 Improve warnings on redundant assignments
6683 (Is_Variable): Handle properly an implicit dereference of a prefixed
6684 function call.
6685 (Build_Actual_Subtype): If this is an actual subtype for an
6686 unconstrained formal parameter, use the sloc of the body for the new
6687 declaration, to prevent anomalises in the debugger.
6688
66892007-08-14 Robert Dewar <dewar@adacore.com>
6690
6691 * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
6692 dispatching operation
6693
66942007-08-14 Ed Schonberg <schonberg@adacore.com>
6695 Gary Dismukes <dismukes@adacore.com>
6696
6697 * exp_aggr.ads,
6698 exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
6699 expanded aggregate code before allocator, and ahead of declaration for
6700 temporary, to prevent access before elaboration when the allocator is
6701 an actual for an access parameter.
6702 (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
6703 the TSD and the table of interfaces.
6704 (Convert_To_Assignments): Augment the test for delaying aggregate
6705 expansion for limited return statements to include the case of extended
6706 returns, to prevent creation of an unwanted transient scope.
6707 (Is_Static_Dispatch_Table_Aggregate): New subprogram.
6708 (Expand_Array_Aggregate): Handle aggregates associated with
6709 statically allocated dispatch tables.
6710 (Expand_Record_Aggregate): Handle aggregates associated with
6711 statically allocated dispatch tables.
6712 (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
6713 of anonymous access type.
6714
67152007-08-14 Ed Schonberg <schonberg@adacore.com>
6716
6717 * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
6718 is a variable that renames a slice, use the variable itself in the
6719 expannsion when the renamed expression itself may be modified between
6720 the declaration of the renaming and the array assignment.
6721
67222007-08-14 Jerome Guitton <guitton@adacore.com>
6723
6724 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
6725 s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
6726 s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
6727 New functions; dummy implementations.
6728
6729 * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
6730 functions, used to implement the multi-tasks mode routines on VxWorks.
6731
6732 * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
6733 New functions, thin
6734 binding to the VxWorks routines which have changed between VxWorks 5
6735 and 6.
6736 (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
6737 which are not callable from a RTP.
6738
6739 * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
6740 implemented for the multi-tasks mode on VxWorks 5 and 6.
6741
6742 * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
6743
6744 * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
6745 functions.
6746
67472007-08-14 Vincent Celier <celier@adacore.com>
6748
6749 * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
6750 gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
6751 mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
6752 mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
6753 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
6754 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
6755 mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
6756 procedure.
6757 (Major_Id_Name): New function.
6758 mlib-tgt.ads/mlib.tgt.adb:
6759 (Library_Major_Minor_Id_Supported): New function, default returns True
6760 Most mlib-tgt-*.adb that support shared libraries and symbolic links:
6761 (Build_Dynamic_Library): Add support for major/minor ids for shared libs
6762 Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
6763 Implementation of Library_Major_Minor_Id_Supported returns False
6764 clean.adb:
6765 (Clean_Library_Directory): If major/minor ids are supported, clean all
6766 library files.
6767 Major update of the Project Manager and of the project aware tools,
6768 including gprmake, so that the same sources in the GNAT repository
6769 can be used by gprbuild.
6770
67712007-08-14 Olivier Hainque <hainque@adacore.com>
6772
6773 * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
6774 (GCC_ZCX_Support): Switch to True.
6775
6776 * s-intman-solaris.adb (Notify_Exception): Call
6777 Adjust_Context_For_Raise before raising, as expected for signal
6778 handlers in general.
6779
6780 * s-intman-posix.adb (Notify_Exception): Remove declaration of
6781 Adjust_Context_For_Raise, moved to the spec of this unit to be visible
6782 to other implementation bodies.
6783
6784 * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
6785 be visible by multiple implementation bodies.
6786
6787 * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
6788 only for conditions coming from hardware.
6789 [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
6790 adjustments to signal context prior to exception raise from signal
6791 handler.
6792 (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
6793 mode.
6794 Solaris section: (__gnat_adjust_context_for_raise): New function.
6795 Implementation of the machine context adjustments to perform prior to
6796 raise from a signal handler. Version for both sparc and x86.
6797 (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
6798 (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
6799 prior to raising as expected for any handler, before possible nested
6800 faults to make sure all the contexts in a chain have been adjusted by
6801 the time we propagate.
6802
68032007-08-14 Pascal Obry <obry@adacore.com>
6804
6805 * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
6806 (SYSTEM_INFO): New record.
6807 (SetThreadIdealProcessor): New imported routine needed for supporting
6808 task_info pragma on Windows.
6809
6810 * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
6811 info can be applied to the current host.
6812 (Create_Task): Set the ideal processor if information is present.
6813
6814 * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
6815 a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
6816
68172007-08-14 Olivier Hainque <hainque@adacore.com>
6818
6819 * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
6820 stack size and initial stack pointer value for a given task.
6821 (Enter_Task): Get the stack attributes of the task we are entering and
6822 let the stack checking engine know about them.
6823
6824 * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
6825 Let the stack-checking engine know about the initial sp value and stack
6826 size associated with the current task.
6827 (Set_Stack_Info): If a stack base has been notified for the current
6828 task, honor it. Fallback to the previous less accurate method otherwise.
6829
6830 * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
6831
68322007-08-14 Ed Schonberg <schonberg@adacore.com>
6833
6834 * sem_ch10.adb: Create a limited view of an incomplete type, to make
6835 treatment of limited views uniform for all visible declarations in a
6836 limited_withed package.
6837 Set flag indicating that a subprogram body for a child unit has a
6838 generated spec.
6839 (Analyze_Compilation_Unit): If unit is a subprogram body that has no
6840 separate declaration, remove the unit name from visibility after
6841 compilation, so that environment is clean for subsequent compilations.
6842 (Install_Limited_Context_Clauses): Do not install a
6843 limited_private_with_clause unless the current unit is a body or a
6844 private child unit.
6845 (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
6846 in the same fashion.
6847 (Install_Limited_Withed_Unit): Do not install a limited with clause if
6848 it applies to the declaration of the current package body.
6849 (Remove_Private_With_Clauses): If there is a regular with_clause for
6850 the unit, delete Private_With_Clause from context, to prevent improper
6851 hiding when processing subsequent nested packages and instantiations.
6852
68532007-08-14 Jose Ruiz <ruiz@adacore.com>
6854
6855 * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
6856 dir/file, device:/dir/file, and device:drive_letter:/dir/file as
6857 representing absolute path names.
6858 __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
6859
6860 * cstreams.c (__gnat_full_name for VxWorks): Use
6861 __gnat_is_absolute_path to detect whether we need to add the current
6862 directory to normalize the path.
6863
68642007-08-14 Javier Miranda <miranda@adacore.com>
6865
6866 * a-tags.ads,
6867 a-tags.adb (Displace): Associate a message with the raised CE
6868 exception.
6869 (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
6870 To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
6871 To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
6872 spec.
6873 (Default_Prim_Op_Count): Removed.
6874 (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
6875 Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
6876 Remove pragma Inline_Always.
6877
6878 * rtsfind.ads (Default_Prim_Op_Count): Removed
6879 (Max_Predef_Prims): New entity
6880 (RE_Expanded_Name): Removed
6881 (RE_HT_Link): Removed
6882 (RE_Iface_Tag): Remmoved
6883 (RE_Ifaces_Table): Removed
6884 (RE_Interfaces_Array): Removed
6885 (RE_Interface_Data_Element): Removed
6886 (RE_Nb_Ifaces): Removed
6887 (RE_RC_Offset): Removed
6888 (RE_Static_Offset_To_Top): Removed
6889
6890 * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
6891 formal.
6892 (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
6893 Prim_Op_Count by Max_Predef_Prims.
6894
68952007-08-14 Thomas Quinot <quinot@adacore.com>
6896 Vincent Celier <celier@adacore.com>
6897
6898 * binde.adb (Elab_All_Links): Remove unnecessary call to
6899 Generic_Separately_Compiled (if a unit satisfies this predicate, there
6900 won't be an associated Afile).
6901 (Elab_All_Links): Fail if a referenced unit cannot be found
6902
6903 * bindgen.adb:
6904 Fix comments in bindgen regarding consistency checks done in Bcheck:
6905 the checks are made across units within a partition, not across several
6906 partitions.
6907 Fix generation of C binder file for VxWorks.
6908
6909 * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
6910 Generic_May_Lack_ALI, more descriptive of the current use of the
6911 predicate, and update documentation.
6912
6913 * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
6914 reorganization and documentation update for the case of predefined
6915 library generics (for which we do not reference an Afile).
6916
69172007-08-14 Robert Dewar <dewar@adacore.com>
6918
6919 * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
6920 s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
6921 s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
6922 s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
6923 s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
6924 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
6925 s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
6926 s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
6927 exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
6928 s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
6929 s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
6930 a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
6931 s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
6932 g-altcon.adb: Minor reformatting
6933
6934 ada-tree.h: Delete empty line.
6935
6936 ali.ads: Minor reformatting
6937 Clarification of comments.
6938 Minor spelling correction
6939
6940 * exp_dbug.adb: Add Warnings Off to suppress new warning
6941
6942 * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
6943 formal
6944
6945 * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
6946 value
6947
6948 * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
6949
6950 * a-textio.ads: Reorder the standard input/output/error declarations
6951 for consistency.
6952
6953 * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
6954
6955 * par-ch2.adb: Recognize RM specially in errout
6956 Change 'R'M to RM in all error messages
6957
6958 * scng.adb: Recognize RM specially in errout
6959
6960 * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
6961 N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
6962
6963 * s-direio.adb: Add missing routine header box.
6964
6965 * sem_attr.ads: Add ??? comments
6966
6967 * sem_eval.adb: Recognize RM specially in errout
6968 Change 'R'M to RM in all error messages
6969
6970 * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
6971
6972 * s-tasinf.ads: Fix minor comment typo.
6973
6974 * a-cihama.adb: Minor comment addition
6975
6976 * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
6977 formal
6978
6979 * s-tasinf-tru64.ads: Fix minor comment typo.
6980
6981 * itypes.ads: Comment update.
6982
6983 * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
6984 anymore.
6985
6986 * argv.c: Added protection against null gnat_argv and gnat_envp.
6987
6988 * bcheck.adb (Check_Consistency): Use correct markup character ({) in
6989 warning message when Tolerate_Consistency_Errors is True.
6990
6991 * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
6992 Any_Id, as this subprogram is only applicable to *type* entities (it
6993 sets RM_Size). Instead initialize just Esize and Alignment.
6994
69952007-08-14 Bob Duff <duff@adacore.com>
6996
6997 * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
6998 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
6999 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
7000 a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
7001 a-coorse.ads (Next): Applied pragma Inline.
7002 Make all Containers packages Remote_Types (unless they are already
7003 Pure).
7004 (Previous): applied pragma Inline
7005 (Elements_Type): is now a record instead of an array
7006
70072007-08-14 Thomas Quinot <quinot@adacore.com>
7008
7009 * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
7010 of Set_Item.
7011 (Set_Item): When the new item is an element of the currently allocated
7012 table passed by reference, save a copy on the stack if we're going
7013 to reallocate. Also, in Table.Set_Item, make sure we test the proper
7014 variable to determine whether to call Set_Last.
7015
7016 * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
7017 symbols-vms.adb, symbols-processing-vms-alpha.adb,
7018 symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
7019 some occurrences of the pattern
7020 T.Increment_Last;
7021 T.Table (T.Last) := Value;
7022 with a cleaner call to
7023 T.Append (Value);
7024
70252007-08-14 Ed Schonberg <schonberg@adacore.com>
7026 Gary Dismukes <dismukes@adacore.com>
7027 Thomas Quinot <quinot@adacore.com>
7028
7029 * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
7030 derived type with interface progenitors use the analyzed formal as the
7031 parent of the actual, to create renamings for all the inherited
7032 operations in Derive_Subprograms.
7033 (Collect_Previous_Instances): new procedure within of
7034 Load_Parent_Of_Generic, to instantiate all bodies in the compilation
7035 unit being loaded, to ensure that the generation of global symbols is
7036 consistent in different compilation modes.
7037 (Is_Tagged_Ancestor): New function testing the ancestor relation that
7038 takes progenitor types into account.
7039 (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
7040 traversing over the primitives of the formal and actual types to locate
7041 any abstract subprograms of the actual type that correspond to a
7042 nonabstract subprogram of the formal type's ancestor type(s), and issue
7043 an error if such is found.
7044 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
7045 Instantiate_Package_Body, Instantiate_Subprogram_Body):
7046 Remove bogus guard around calls to Inherit_Context.
7047 (Reset_Entity): If the entity is the selector of a selected component
7048 that denotes a named number, propagate constant-folding to the generic
7049 template only if the named number is global to the generic unit.
7050 (Set_Instance_Env): Only reset the compilation switches when compiling
7051 a predefined or internal unit.
7052
70532007-08-14 Ed Schonberg <schonberg@adacore.com>
7054
7055 * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
7056 parameter to determine whether operation applies to the prefix.
7057 (Complete_Object_Operation): If actual has an access type and
7058 controlling formal is not an in_parameter, reject the actual if it is
7059 an access_to_constant type.
7060 (Try_Primitive_Operation): If the type of the prefix is a formal tagged
7061 type, the candidate operations are found in the scope of declaration of
7062 the type, because the type has no primitive subprograms.
7063 (Analyze_Selected_Component): If prefix is class-wide, and root type is
7064 a private extension, only examine visible components before trying to
7065 analyze as a prefixed call.
7066 Change Entity_List to Type_To_Use, for better readability.
7067 (Has_Fixed_Op): Use base type when checking whether the type of an
7068 operator has a user-defined multiplication/division
7069 (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
7070 user-defined operators are available for fixed-point types.
7071
70722007-08-14 Thomas Quinot <quinot@adacore.com>
7073 Ed Schonberg <schonberg@adacore.com>
7074
7075 * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
7076 formal At_Any_Place indicating, when True, that we want to test for
7077 availability of the stream attribute at any place (as opposed to the
7078 current visibility context only).
7079 (Missing_Read_Write_Attributes): A stream attribute is missing for the
7080 purpose of enforcing E.2.2(8) only if it is not available at any place.
7081 Take into account the Ada2005 pragma Has_Preelaborable_Initialization
7082 when checking the legality of an extension aggregate in a preelaborable
7083 package. Treat the literal null as a valid default expression in a
7084 component declaration for a type with preelaborable initialization.
7085 A limited interface is a legal progenitor for the designated type of a
7086 remote access to class-wide type.
7087
70882007-08-14 Thomas Quinot <quinot@adacore.com>
7089 Ed Schonberg <schonberg@adacore.com>
7090
7091 * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
7092 reference): Use correct entity as denoted entity for the selector of
7093 the rewritten node.
7094 (Find_Direct_Name): Add comment about Generate_Reference incorrectly
7095 setting the Referenced_As_LHS flag for entities that are implicitly
7096 dereferenced.
7097 (Find_Type): If the type is an internally generated incomplete type,
7098 mark the full view as referenced, to prevent spurious warnings.
7099 (Find_Selected_Component, Has_Components): Handle properly non-limited
7100 views that are themselves incomplete types.
7101 Handle interfaces visible through limited-with clauses.
7102 (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
7103 subprogram generic actual for which we have generated a renaming.
7104 Warn when the renaming introduces a homonym of
7105 the renamed entity, and the renamed entity is directly visible.
7106
71072007-08-14 Ed Schonberg <schonberg@adacore.com>
7108 Hristian Kirtchev <kirtchev@adacore.com>
7109
7110 * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
7111 appear in the subtree to the current allocator if it is not a static
7112 coextension.
7113 (Resolve_Allocator): Perform cleanup if resolution has determined that
7114 the allocator is not a coextension.
7115 (Resolve): Skip an interpretation hidden by an abstract operator only
7116 when the type of the interpretation matches that of the context.
7117 (Resolve): When looping through all possible interpretations of a node,
7118 do not consider those that are hidden by abstract operators.
7119 (Resolve_Actuals): When verifying that an access to class-wide object
7120 is an actual for a controlling formal, ignore anonymous access to
7121 subprograms whose return type is an access to class_wide type.
7122 (Resolve_Slice): If the prefix of the slice is a selected component
7123 whose type depends on discriminants, build its actual subtype before
7124 applying range checks on the bounds of the slice.
7125 (Valid_Conversion): In an instance or inlined body, compare root types,
7126 to prevent anomalies between private and public views.
7127 (Resolve): Improve error message for ambiguous fixed multiplication
7128 expressions that involve universal_fixed multiplying operations.
7129
71302007-08-14 Javier Miranda <miranda@adacore.com>
7131 Hristian Kirtchev <kirtchev@adacore.com>
7132
7133 * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
7134 location to allow the correct generation of errors in case of
7135 restrictions applied to the expanded code.
7136 (Expand_Entry_Barrier): Remove all generated renamings for a barrier
7137 function if the condition does not reference them.
7138 (Expand_Entry_Body_Declarations): Mark the index constant as having a
7139 valid value.
7140
71412007-08-14 Thomas Quinot <quinot@adacore.com>
8a57e48f 7142 Pablo Oliveira <oliveira@adacore.com>
ab6328d0
AC
7143
7144 * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
7145 typecode parameters for a union (in a variant record), remove
7146 extraneous layer of Any wrapping for member label.
7147 (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
7148 elabration statements, register the package with the name server
7149 at the beginning, not at the end, of the elaboration statements so
7150 that they can create remote access to subprogram values that designate
7151 remote subprograms from the package.
7152
71532007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
7154
7155 * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
7156 values to compute the number of seconds since the Unix Epoc in order to
7157 account for Daylight Savings Time. Perform special processing for dates
7158 that are earlier than the Unix Epoc to obtain a negative number.
7159
71602007-08-14 Emmanuel Briot <briot@adacore.com>
7161
7162 * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
7163 switches.
7164
71652007-08-14 Eric Botcazou <ebotcazou@adacore.com>
7166
7167 * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
7168 binder-generated file is not in Ada.
7169 Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
7170 recorded in the ALI file.
7171 Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
7172
71732007-08-14 Vincent Celier <celier@adacore.com>
7174
7175 * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
7176 (Output_Source): Do nothing if parameter is No_Sdep_Id
7177
7178 * make.adb (Gnatmake): Do not rebuild an archive simply because a
7179 shared library it imports has a later time stamp.
7180 (Check): Resolve the symbolic links in the path name of the object
7181 directory.
7182 Check that the ALI file is in the correct object directory
7183 Check if a file name does not correspond to the mapping of units
7184 to file names.
7185 (Display_Version): New procedure
7186 (Initialize): Process switches --version and --help
7187 Use type Path_Name_Type for path name
7188
71892007-08-14 Paul Hilfinger <hilfinger@adacore.com>
7190
7191 * impunit.adb: Re-organize System.Random_Numbers and
7192 GNAT.Random_Numbers and add to builds.
7193
7194 * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
7195
7196 * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
7197
7198 * a-assert.ads, a-assert.adb: New files.
7199
72002007-08-14 Gary Dismukes <dismukes@adacore.com>
7201
7202 * layout.adb (Layout_Type): In the case of access-to-subprogram types,
7203 if AAMP_On_Target is True, then the size of the type encompasses two
7204 addresses (a static link and a subprogram address), except in the case
7205 of library-level access types.
7206
72072007-08-14 Vincent Celier <celier@adacore.com>
7208
7209 * output.ads, output.adb (Write_Eol): Remove trailing spaces before
7210 writing the line.
7211 (Write_Eol_Keep_Blanks): New procedure to write a line, including
7212 possible trailing spaces.
7213 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
7214
72152007-08-14 Javier Miranda <miranda@adacore.com>
7216
7217 * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
7218 null-excluding access types.
7219
72202007-08-14 Javier Miranda <miranda@adacore.com>
7221
7222 * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
7223 that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
7224 of private types add missing check on matching interfaces in the
7225 partial and full declarations.
7226 (Analyze_Protected_Type): Code cleanup.
7227 (Analyze_Task_Type): Code cleanup.
7228
72292007-08-14 Javier Miranda <miranda@adacore.com>
7230
7231 * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
7232 generated interface thunk.
7233
72342007-08-14 Ed Schonberg <schonberg@adacore.com>
7235
7236 * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
7237 obsolescent warning on application of 'Class to an incomplete type.
7238
7239 * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
7240 prevent obsolescent warning on application of 'Class to an incomplete
7241 type.
7242
72432007-08-14 Pascal Obry <obry@adacore.com>
7244
7245 * s-fileio.adb (Is_Open): Add check for usability of the underlying
7246 file stream.
7247
72482007-08-14 Cyrille Comar <comar@adacore.com>
7249
7250 * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
7251 since it is potentially used in cases implying double finalization of
7252 the same object.
7253
72542007-08-14 Jose Ruiz <ruiz@adacore.com>
7255
7256 * s-tasini.adb (Get_Stack_Info): Move this function to
7257 System.Soft_Links.Tasking because it is common to the full and the
7258 restricted run times.
7259 (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
7260 in SSL.Tasking.Init_Tasking_Soft_Links.
7261
7262 * s-solita.adb (Get_Stack_Info): Function moved from
7263 System.Tasking.Initialization because it is common to the full and the
7264 restricted run times.
7265 (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
7266
72672007-08-14 Arnaud Charlet <charlet@adacore.com>
7268
7269 * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
7270 s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
7271 (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
7272 parameter.
7273
7274 * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
7275 guard to 12K.
7276
72772007-08-14 Gary Dismukes <dismukes@adacore.com>
7278
7279 * s-veboop.adb (SU): New named number initialized to
7280 System.Storage_Unit.
7281 (True_Val): The initialization expression is revised to use SU (=
7282 Storage_Unit) rather than assuming 8 for the component size of an
7283 unpacked Boolean array.
7284
72852007-08-14 Tristan Gingold <gingold@adacore.com>
7286
7287 * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
7288
7289 * tb-ivms.c: New file.
7290
7291 * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
7292
72932007-08-14 Geert Bosch <bosch@adacore.com>
7294
7295 * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
7296 s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
7297 Add required linker pragmas for automatically linking with the gnalasup
7298 linear algebra support library, and the systems math library.
7299 Rename cdot to cdotu and zdot to zdotu.
7300 Update header comment to describe purpose of package.
7301
73022007-08-14 Thomas Quinot <quinot@adacore.com>
7303
7304 * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
7305 an explicitly specified Associated_Final_Chain, use that list.
7306 (Expand_N_Package_Body): Build dispatch tables of library level tagged
7307 types.
7308 (Expand_N_Package_Declaration): Build dispatch tables of library level
7309 tagged types. Minor code cleanup.
7310
73112007-08-14 Vincent Celier <celier@adacore.com>
7312
7313 * gnatchop.adb (Terminate_Program): Remove exception and use
7314 Types.Terminate_Program instead.
7315
7316 * osint.ads, osint.adb (Current_Exit_Status): New global variable
7317 (Find_Program_Name): Added protection against empty name.
7318 (OS_Exit_Through_Exception): New procedure
7319
7320 * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
7321 (OS_Exit_Default): New procedure that contains the previous
7322 implementation of procedure OS_Exit.
7323 (Final_Value): Remove obsolete Interix stuff.
7324
73252007-08-14 Thomas Quinot <quinot@adacore.com>
7326
7327 * g-socket.ads: Reorganize example code so that it also works on
7328 Windows XP.
7329
73302007-08-14 Tristan Gingold <gingold@adacore.com>
7331
7332 * g-trasym.ads: AIX now supports symbolic backtraces.
7333
73342007-08-14 Ed Schonberg <schonberg@adacore.com>
7335
7336 * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
7337 units being loaded to detect circularities. A circularity may be
7338 present even if the current chain of pending units to load starts from
7339 a limited_with_clause.
7340
7341 * lib-load.ads: Change profile of Load_Unit to use a with_clause
7342 rather than a boolean flag, in order to detect circularities in
7343 with_clauses.
7344
7345 * par-load.adb: Use current with_clause in calls to Load_Unit, rather
7346 than propagating the From_Limited_With flag, in order to handle
7347 properly circularities involving with_clauses.
7348
73492007-08-14 Nicolas Setton <setton@adacore.com>
7350
7351 * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
7352 warnings.
7353
73542007-08-14 Arnaud Charlet <charlet@adacore.com>
7355
7356 * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
7357 to build for libgnala.
7358 libgnat: Add rules to build libgnala.a
7359 (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
7360 target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
7361 Add s-osinte-vxworks-kernel.adb to the target pairs of the
7362 kernel run-time lib for VxWorks 6, which would provide a different
7363 implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
7364 x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
7365 running ZCX by default.
7366 Add g-sttsne-locking to LynxOS version.
7367 Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
7368 On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
7369
7370 * system-darwin-x86.ads: New file.
7371
7372 * Make-lang.in: Delete files before copying onto them, so if they are
7373 read-only, the copy won't fail.
7374 Update dependencies
7375
73762007-08-14 Pascal Obry <obry@adacore.com>
7377
7378 * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
7379 naming scheme.
7380
73812007-08-14 Vincent Celier <celier@adacore.com>
7382
7383 * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
7384 (Gcc): Initialize Gcc_Name at the first call
7385
73862007-08-14 Ed Schonberg <schonberg@adacore.com>
7387
7388 * sem_ch7.adb (Analyze_Package_Specification): Do not install private
7389 with_clauses of the enclosing unit when analyzing the package
7390 specification of a nested instance.
7391
73922007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
7393
7394 * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
7395 (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
7396 Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
7397 layout of N_Allocator.
7398
73992007-08-14 Thomas Quinot <quinot@adacore.com>
7400
7401 * rtsfind.adb (Check_RPC): Add PCS version check.
7402
7403 * gnatvsn.ads, gnatvsn.adb: Add PCS version.
7404 (Gnat_Free_Software): New function.
7405
7406 * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
7407 the PCS_Version value from s-parint, used to check that it is consistent
7408 with what exp_dist expects.
7409
7410 * s-parint.ads (PCS_Version): New entity for checking consistency
7411 between exp_dist and PCS.
7412
7413 * gen-soccon.c: (SO_REUSEPORT): New constant.
7414
74152007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
7416
7417 * a-calfor.adb (Image (Duration; Boolean)): Change type of local
7418 variable Sub_Second to Duration in order to accomodate a larger range
7419 of arithmetic operations.
7420
74212007-08-14 Bob Duff <duff@adacore.com>
7422
7423 * g-sttsne-locking.ads: Move comments from spec to body.
7424 * g-sttsne-locking.adb: Move comments from spec to body.
7425 * g-sttsne-vxworks.ads: Removed.
7426 * g-sttsne-vxworks.adb: Removed.
7427
4862826d
ILT
74282007-08-11 Ian Lance Taylor <iant@google.com>
7429
7430 * misc.c (gnat_get_alias_set): Change return type to
7431 alias_set_type.
7432
4d8a9bfe
KG
74332007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7434
7435 * decl.c, utils2.c: Fix whitespace in last change.
7436
39595763
KG
74372007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7438
7439 * decl.c (compare_field_bitpos): Constify.
7440 * utils2.c (compare_elmt_bitpos): Likewise.
7441
08e7e8cb
AJ
74422007-07-27 Aurelien Jarno <aurelien@aurel32.net>
7443
7444 * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
7445 anonymous access type.
7446 (pthread_sigmask): Now take an access sigset_t.
7447
9e94c78f 74482007-07-05 Joel Sherrill <joel.sherrill@oarcorp.com>
83983455
JS
7449
7450 * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
7451
a8257e58
EB
74522007-06-21 Eric Botcazou <ebotcazou@adacore.com>
7453
7454 PR tree-optimization/25737
7455 * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
7456
5be014d5
AP
74572007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
7458
7459 * trans.c (Attribute_to_gnu): When subtracting an
7460 offset from a pointer, use POINTER_PLUS_EXPR with
7461 NEGATE_EXPR instead of MINUS_EXPR.
7462 (gnat_to_gnu): Likewise.
7463 * utils.c (convert): When converting between
7464 thin pointers, use POINTER_PLUS_EXPR and sizetype
7465 for the offset.
7466 * utils2.c (known_alignment): POINTER_PLUS_EXPR
7467 have the same semantics as PLUS_EXPR for alignment.
7468 (build_binary_op): Add support for the semantics of
7469 POINTER_PLUS_EXPR's operands.
7470 When adding an offset to a pointer, use POINTER_PLUS_EXPR.
7471
b0464c88
RE
74722007-06-11 Rafael Avila de Espindola <espindola@google.com>
7473
a472f546
EB
7474 * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
7475 of get_signed_or_unsigned_type.
b0464c88
RE
7476 * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
7477
93e17a25
BD
74782007-06-11 Bob Duff <duff@adacore.com>
7479 Thomas Quinot <quinot@adacore.com>
7480
7481 * g-stsifd-sockets.adb (Create): Work around strange behavior of
7482 'bind' on windows that causes 'connect' to fail intermittently, by
7483 retrying the 'bind'.
7484 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
7485
1bbf8502
DS
74862007-06-10 Duncan Sands <baldrick@free.fr>
7487
7488 * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
7489 than to void, for the fields when making a new fat pointer type.
7490 (gnat_substitute_in_type): Now substitute_in_type.
a472f546 7491 * gigi.h (gnat_substitute_in_type): Likewise. Adjust recursive calls.
1bbf8502
DS
7492 * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
7493 * utils.c (update_pointer_to): Update fat pointers by updating the
7494 dummy node pointers used for the fields.
7495
ec11296f
AC
74962007-06-06 Thomas Quinot <quinot@adacore.com>
7497 Bob Duff <duff@adacore.com>
7498
7499 * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
7500 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
7501 g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads: Add new
7502 constant Thread_Blocking_IO, always True by default, set False
7503 on a per-runtime basis.
7504 (Need_Netdb_Buffer): New constant.
7505
7506 * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
7507 g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
7508 files.
7509
7510 * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
7511 g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
7512 Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
7513 child package Task_Safe_NetDB
7514 (Host_Error_Messages): Add stub body.
7515 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
7516
7517 * g-soccon-mingw.ads: Add Windows-specific constants.
7518 (Need_Netdb_Buffer): New constant.
7519 (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
7520 wrapper and import inet_addr(3) from the standard sockets library
7521 directly instead.
7522 (In_Addr): Add alignment clause.
7523 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
7524
75252007-06-06 Robert Dewar <dewar@adacore.com>
7526
7527 * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
7528 s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
7529 s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
7530 s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
7531 s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
7532 s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
7533 a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
7534 a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
7535 a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
7536 g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
7537 g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
7538 i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
7539 s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
7540 s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
7541 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
7542 s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
7543 s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
7544 s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
7545 s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
7546 s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
7547 s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
7548 s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
7549 s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
7550 s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
7551 s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
7552 s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
7553 s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
7554 s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
7555 s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
7556 s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
7557 s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
7558 a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
7559 Unchecked_* by Ada.Unchecked_*
7560
75612007-06-06 Robert Dewar <dewar@adacore.com>
7562
7563 * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
7564 s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
7565 g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
7566 output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
7567 g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
7568 a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
7569
7570 * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
7571 s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
7572 s-tasloc.adb, s-tasloc.ads: New files.
7573
75742007-06-06 Bob Duff <duff@adacore.com>
7575
7576 * g-expect-vms.adb:
7577 (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
7578 * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
7579 (Send_Signal, Close): Raise Invalid_Process if the process id is
7580 invalid.
7581 (Pattern_Matcher_Access): Is now a general access type to be able to
7582 use aliased string.
7583
75842007-06-06 Thomas Quinot <quinot@adacore.com>
7585 Arnaud Charlet <charlet@adacore.com>
7586
a472f546
EB
7587 * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
7588 (SIGEMT is now used instead of SIGTERM on AIX).
ec11296f
AC
7589
7590 * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
7591 (Time_Slice_Supported): Set to True.
a472f546 7592 Use SIGEMT instead of SIGTERM as SIGADAABORT.
ec11296f
AC
7593
75942007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
7595
7596 * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
7597 (Time, Time)): Use To_Relative_Time rather than manual calculation to
7598 express the bounds of Duration as Time. Raise Time_Error when the
7599 result is greater or equal to the higher bound of Duration (on the
7600 margin case).
7601 ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
7602 Ada_High_And_Leaps.
7603 ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
7604 Ada_High_And_Leaps.
7605 ("-" (Time, Time)): Reorder code.
7606 (All_Leap_Seconds): Removed.
7607 (Arithmetic_Operations.Add): Remove sign related kludge.
7608 (Arithmetic_Operations.Difference): Control the leaps seconds processing
7609 with flag Leap_Support.
7610 (Arithmetic_Operations.Subtract): Remove sign related kludge.
7611 (Check_Within_Time_Bounds): New procedure.
7612 (Clock): Control the leap seconds processing with flag Leap_Support.
7613 (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
7614 (Formatting_Operations.Split): Control the leap seconds processing with
7615 flag Leap_Support.
7616 (Formatting_Operations.Time_Of): Control the leaps seconds processing
7617 with flag Leap_Support. Adjust the year, month and day (if applicable)
7618 when the value of day seconds designates a new day.
7619 (Split): Use parameter associations for better readability. Integrate
7620 flag Is_Ada_05.
7621 (Time_Of): Use parameter associations for better readability. Integrate
7622 flag Is_Ada_05.
7623
7624 * a-calfor.adb (Split): Use parameter associations for better
7625 readability. Integrate flag Is_Ada_05.
7626 (Time_Of): Remove flag Leap_Checks. Use parameter associations for
7627 better readability. Integrate flag Is_Ada_05.
7628
76292007-06-06 Arnaud Charlet <charlet@adacore.com>
7630
7631 * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
7632 s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
7633 s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
7634 s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
7635 s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
7636 s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
7637 s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
7638 s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
7639 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
7640 s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
7641 s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
7642 time when entering this routine to detect a backward clock setting
7643 (manual setting or DST adjustment), to avoid waiting for a longer delay
7644 than needed.
7645 (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
7646 Remove handling of deferred priority change, and replace by setting the
7647 task priority directly, as required by AI-188.
7648 Update comments.
7649 (Max_Task_Image_Length): New constant.
7650 Replace Warnings (Off) by Unreferenced pragma, cleaner.
7651 (Dynamic_Priority_Support): Removed, no longer needed.
7652 (Poll_Base_Priority_Change): Ditto.
7653 (Set_Ceiling): Add this procedure to change the ceiling priority
7654 associated to a lock. This is a dummy implementation because dynamic
7655 priority ceilings are not supported by the underlying system.
7656
7657 * a-dynpri.adb (Set_Priority): Take into account case where Target is
7658 accepting a RV with its priority boosted.
7659 Remove handling of deferred priority change, and replace by setting the
7660 task priority directly, as required by AI-188.
7661
7662 * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
7663 Succeeded = True.
7664 Remove handling of deferred priority change, and replace by setting the
7665 task priority directly, as required by AI-188.
7666 (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
7667 of Self_Id earlier.
7668
7669 * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
7670 (Poll_Base_Priority_Change): Removed.
7671 Code clean up: use SSL.Current_Target_Exception.
7672
7673 * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
7674 to run as this is a potentially dispatching point.
7675 (Call_Synchronous): Use Local_Defer_Abort.
7676 (Callable): Relax assertion.
7677 (Selective_Wait): Relax assertion in case abort is not allowed.
7678 Remove handling of deferred priority change, and replace by setting the
7679 task priority directly, as required by AI-188.
7680
7681 * s-tasuti.adb (Make_Passive): Adjust assertions.
7682 Remove handling of deferred priority change, and replace by setting the
7683 task priority directly, as required by AI-188.
7684
76852007-06-06 Arnaud Charlet <charlet@adacore.com>
7686
7687 * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
7688 system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
7689 system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
7690 system-vxworks-mips.ads, system-vxworks-alpha.ads,
7691 system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
7692 system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
7693 system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
7694 system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
7695 system-solaris-sparcv9.ads, system-vms.ads, system.ads,
7696 system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
7697 system-linux-ia64.ads: Document mapping between Ada and OS priorities.
7698 This patch changes the largest non-binary modulus from 2**31-1 to
7699 2**32-1.
7700 (Compiler_System_Version): Removed, no longer used.
7701 Clean up system files by removing flags only used on a single target.
7702 Also remove obsolete flags, only used during bootstrap from system.ads
7703 (Address): Add a pragma Preelaborable_Initialization.
7704
7705 * system-aix.ads: Ditto.
7706 (GCC_ZCX_Support): Set to true.
7707 Update priority range on AIX and map Ada priorities to target
7708 priorities appropriately for different scheduling policies.
7709
7710 * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
7711
77122007-06-06 Vincent Celier <celier@adacore.com>
7713
7714 * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
7715 mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
7716
7717 * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
7718 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
7719 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
7720 mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
7721 mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
a472f546
EB
7722 MLib.Tgt, containing the default versions of the exported subprograms.
7723 For each platform, create a specific version of the body of new child
7724 package MLib.Tgt.Specific that contains only the body of subprograms
7725 that are different from the default.
7726 (Archive_Builder_Append_Options): New function.
ec11296f
AC
7727
77282007-06-06 Matthew Gingell <gingell@adacore.com>
7729
a472f546
EB
7730 * s-osinte-aix.adb: Map Ada priorities to target priorities
7731 appropriately for different scheduling policies.
ec11296f
AC
7732
77332007-06-06 Arnaud Charlet <charlet@adacore.com>
7734
7735 * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
7736 its C counterpart.
7737 Remove references to Unchecked_Conversion, and use Ada.xxx instead.
7738 Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
7739
77402007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
7741
a472f546
EB
7742 * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
7743 Noop on VMS, added for interface commonality.
ec11296f
AC
7744
77452007-06-06 Eric Botcazou <ebotcazou@adacore.com>
7746 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7747 Olivier Hainque <hainque@adacore.com>
7748
7749 * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
7750 renamed expression of a full renaming at toplevel.
7751 (gnat_to_gnu_entity, case object): If not defining, do not look inside
7752 the values the constant is initialized to if it is an N_Allocator.
7753 (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
7754 TYPE_SIZE_UNIT of inner types after the stride is elaborated.
7755 (make_aligning_type): Accept an extra ROOM argument for storage to be
7756 made available before the aligned field, and an extra BASE_ALIGN
7757 argument for callers to pass the alignment guaranteed to be honored for
7758 the whole aligning object. Avoid call to finish_record_type, which only
7759 interferes with the sizes we want to set.
7760 (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
7761 make_aligning_type for super-aligned objects on stack.
7762 (components_to_record): Pass the adjusted size of the type when creating
7763 fields in the qualified union for the variant part.
7764 (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
7765 (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
7766 packed array type.
7767 (maybe_pad_type): Set TYPE_USER_ALIGN.
7768 (make_aligning_type): Likewise.
7769 ALIGN argument is unsigned int.
7770 (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
7771 (gnat_to_gnu_param): Likewise, for parameters.
7772 (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
7773 if it is constant and stems from a function call.
7774 (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
7775 of the record is specified. Adjust accordingly.
7776 (adjust_packed): New static function.
7777 (gnat_to_gnu_field): Use it to adjust the packedness setting.
7778 (components_to_record): Likewise.
7779 (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
7780 side-effects if the object is deemed constant.
7781 (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
7782 type instead of merely finalizing it. Tidy.
7783 <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
7784 <E_Access_Type>: Likewise.
7785 (defer_debug_incomplete_list): Rename to defer_finalize_list.
7786 (defer_debug_level): Delete.
7787 (gnat_to_gnu_entity) <debug_deferred>: Likewise
7788 <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
7789 type.
7790 <E_Record_Type>: Do not explicitly defer finalizing the type.
7791 Adjust for write_record_type_debug_info renaming.
7792 <E_Subprogram_Type>: Likewise.
7793 Finalize deferred types right after deferred incomplete types are
7794 expanded.
7795 (rest_of_type_decl_compilation): New global function.
7796 (components_to_record): Rename defer_debug parameter to do_not_finalize.
7797 (components_to_record): Propagate the packedness to the fields of the
7798 qualified union type if there is a variant part.
7799 (gnat_to_gnu_entity) <E_Array_Type>: Use new function
7800 instead of inline code to adjust the XUT field offsets.
7801 (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
7802 <E_Record_Subtype>: Do not let finish_record_type compute the sizes
7803 and write the debug info if the type derives from a discriminated one.
7804 (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
7805 <E_Array_Subtype>: Likewise.
7806 <E_String_Literal_Subtype>: Likewise.
7807 (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
7808 an alignment clause.
7809 (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
7810 before giving warning.
7811 (prepend_one_attribute_to): New function, helper to prepend an attribute
7812 to an attribute list.
7813 (gnat_to_gnu_entity) <E_Procedure>: Use it.
7814 (prepend_attributes): Likewise.
7815 (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
7816 <E_Array_Type>: Declare the padding type for the element type, if any.
7817 <E_Array_Subtype>: Likewise.
7818 (defer_limited_with): New variable.
7819 (Gigi_Equivalent_Type): New function.
7820 (gnat_to_gnu_entity): Use it at start and use result throughout.
7821 (gnat_to_gnu_entity, case E_Access_Type): Rework to use
7822 Gigi_Equivalent_Type, support Limited_With, allow two levels of
7823 indirection, precompute if unconstrained array to simplify logic, and
7824 use defer_limited_with to defer elaboration of some types from limited
7825 with.
7826 (finalize_from_with_types): New function.
7827
78282007-06-06 Gary Dismukes <dismukes@adacore.com>
7829 Eric Botcazou <ebotcazou@adacore.com>
7830 Tristan Gingold <gingold@adacore.com>
7831 Olivier Hainque <hainque@adacore.com>
7832
a472f546
EB
7833 * trans.c (Identifier_to_gnu): Change test for deferred constant by
7834 adding guard that the entity is an E_Constant before testing presence
7835 of Full_view (and remove unnecessary test that entity is not a type).
ec11296f
AC
7836 For a CONST_DECL used by reference, manually retrieve
7837 the DECL_INITIAL. Do not invoke fold in the other DECL_P cases either.
7838 (struct language_function): Move from utils.c to here.
7839 (struct parm_attr): New structure.
7840 (parm_attr, parm_attr vector, parm_attr GC vector): New types.
7841 (f_parm_attr_cache): New macro.
7842 (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
7843 expressions for the 'First, 'Last and 'Length attributes of the
7844 unconstrained array IN parameters.
7845 (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
7846 Allocate the information structure for the function earlier, as well
7847 as the language-specific part.
7848 If the parameter attributes cache has been populated, evaluate the
7849 cached expressions on entry.
7850 (takes_address): Add OPERAND_TYPE parameter. Handle N_Function_Call,
7851 N_Procedure_Call_Statement and N_Indexed_Component.
7852 (Pragma_to_gnu): Translate inspection_point to an asm statement
7853 containaing a comment and a reference to the object (either its address
7854 for BLKmode or its value).
7855 (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
7856 to go to DECL_INITIAL. Together with the size constraint relaxation
7857 in create_var_decl, enlarges the set of situations in which an
7858 identifier may be used as an initializer without implying elaboration
7859 code.
7860 (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
7861 DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
7862 node.
7863 (maybe_stabilize_reference): Remove lvalues_only parameter.
7864 (gnat_stabilize_reference): Adjust for above change.
7865 (gnat_to_gnu): Do not set location information on the result
7866 if it is a reference.
7867 (add_cleanup): Add gnat_node parameter and set the location of the
7868 cleanup to it.
7869 (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
7870 (Exception_Handler_to_gnu_zcx): Likewise.
7871 (gigi): Remove the cgraph node if the elaboration procedure is empty.
7872 (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
7873 the former right after the latter.
7874 (start_stmt_group): Make global.
7875 (end_stmt_group): Likewise.
7876 (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
7877 vars.
7878 (gnu_program_error_label_stack): Likewise.
7879 (gigi): Initialize them.
7880 (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
7881 (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
7882 New cases.
7883 (push_exception_label_stack): New function.
7884 (takes_address): New function.
7885
7886 * utils.c (struct language_function): Move to trans.c from here.
7887 (unchecked_convert): Do not wrap up integer constants in
7888 VIEW_CONVERT_EXPRs.
7889 (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
7890 the latter for aggregate types, unexpected by later passes, and relax an
7891 arbitrary size constraint on the former.
7892 (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
7893 to compare the sizes.
7894 (convert_vms_descriptor): When converting to a fat pointer type, be
7895 prepared for a S descriptor at runtime in spite of a SB specification.
7896 (shift_unc_components_for_thin_pointers): New function.
7897 (write_record_type_debug_info): For variable-sized fields, cap the
7898 alignment of the pointer to the computed alignment.
7899 (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
7900 If REP_LEVEL is 2, do not compute the sizes.
7901 (build_vms_descriptor): Adjust for new prototype of finish_record_type.
7902 (build_unc_object_type): Likewise.
7903 (declare_debug_type): New function.
7904
7905 * ada-tree.def: USE_STMT: removed (not emitted anymore).
7906
7907 * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
7908 no statement is expandable anymore.
7909 (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
7910 (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
7911 when the user requested it explicitely.
7912 (gnat_post_options): By default, set flag_eliminate_unused_debug_types
7913 to 0 for Ada.
7914 (get_alias_set): Return alias set 0 for a type if
7915 TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
7916
7917 * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
7918 (DECL_FUNCTION_STUB): New accessor macro.
7919 (SET_DECL_FUNCTION_STUB): New setter macro.
7920
7921 * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
7922
7923 * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
7924 declarations.
7925
79262007-06-06 Jose Ruiz <ruiz@adacore.com>
7927
7928 * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
7929 Rename to Abort_Task_Interrupt to be able to keep the same interface
7930 as the rest of the targets.
7931
7932 * s-osinte-vxworks.ads s-osinte-vxworks.adb
7933 (To_VxWorks_Priority): Remove explicit "in" mode indicator
7934
7935 * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
7936 New files.
7937
79382007-06-06 Robert Dewar <dewar@adacore.com>
7939
7940 * a-chahan.ads: Remove obsolescent pragmas
7941
7942 * a-chlat1.ads: Minor reformatting
7943
79442007-06-06 Robert Dewar <dewar@adacore.com>
7945
7946 * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
7947 for Errout
7948
7949 * errout.adb: New Finalize/Compilation_Errors/Output_Messages
7950 implementation
7951
7952 * errout.ads (Finalize): Changed interface
7953 (Output_Messages): New procedure
7954 (Compilation_Errors): New Interface
7955
7956 * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
7957 Finalize/Output_Messages interface for Errout
7958 (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
7959 Errout.
7960
79612007-06-06 Thomas Quinot <quinot@adacore.com>
7962 Olivier Hainque <hainque@adacore.com>
7963 Robert Dewar <dewar@adacore.com>
7964
7965 * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
7966 check.
7967 (Raise_Current_Excep): Call Debug_Raise_Exception just before
7968 propagation starts, to let debuggers know about the event in a reliable
7969 fashion.
7970 (Local_Raise): Moved to System.Exceptions
7971 More convenient to have this as a separate unit
7972
7973 * s-except.adb, s-except.ads: New files.
7974
7975 * a-exextr.adb (Unhandled_Exception): Delete - replaced by
7976 Debug_Unhandled_Exception in System.Exceptions where it belongs
7977 together with a couple of other debug helpers.
7978 (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
7979 the former Unhandled_Exception.
7980
7981 * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
7982 (Warn_No_Exception_Propagation): New procedure
7983 (Warn_If_No_Propagation): Rewritten for new warning generation
7984 (Expand_Exception_Handlers): New warning generation
7985 (Expand_N_Raise_xxx_Error): Rewritten for new warnings
7986 (Add_Exception_Label): Use Special_Exception_Package_Used for test
7987 instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
7988 (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
7989 even if restriction is set (makes life easier in Check_Returns)
7990 (Expand_Local_Exception_Handlers): Follow renamed entity chain when
7991 checking exception identities.
7992 (Expand_Local_Exception_Handlers): Do not optimize when all others case
7993 (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
7994 block for handler (used by Check_Returns)
7995 (Expand_Local_Exception_Handlers): Local_Raise now takes an address
7996 (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
7997 remove all exception handlers when optimizing local raise statements.
7998 (Find_Local_Handler): Use Get_Renamed_Entity
7999 (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
8000 marked analyzed after expanding exception handlers, do not generate
8001 redundant cleanup actions, because they have been constructed already.
8002
80032007-06-06 Thomas Quinot <quinot@adacore.com>
8004
8005 * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
8006 presence of this categorization pragma is mandated by the language.
8007 (Limited_Controlled): Add missing pragma Preelaborable_Initialization
8008 for this type.
8009
80102007-06-06 Vincent Celier <celier@adacore.com>
8011 Robert Dewar <dewar@adacore.com>
8012
8013 * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
8014 butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
8015 err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
8016 fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
8017 lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
8018 makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
8019 par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
8020 prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
8021 prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
8022 sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
8023 uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
8024 ali.ads, ali.adb:
8025 Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
8026 package Namet. Make File_Name_Type and Unit_Name_Type types derived from
8027 Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
8028 Use variables of types File_Name_Type and Unit_Name_Type in error
8029 messages.
8030 (Get_Name): Add parameter Ignore_Special, and set it reading file name
8031 (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
8032 here.
8033 Define flags Flag217-Flag230 with associated subprograms
8034 (Flag_Word5): New record type.
8035 (Flag_Word5_Ptr): New access type.
8036 (To_Flag_Word5): New unchecked conversion.
8037 (To_Flag_Word5_Ptr): Likewise.
8038 (Flag216): New function.
8039 (Set_Flag216): New procedure.
8040
80412007-06-06 Arnaud Charlet <charlet@adacore.com>
8042
8043 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
8044 instead of 'Size.
8045
8046 * a-stwifi.ads, a-stzfix.ads: Minor reformatting
8047
80482007-06-06 Javier Miranda <miranda@adacore.com>
8049
8050 * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
8051 the package.
8052 (Object_Specific_Data_Array): This is now internal to the package.
8053 (Object_Specific_Data): This is now internal to the package.
8054 (Select_Specific_Data_Element): This is now internal to the package.
8055 (Select_Specific_Data_Array): This is now internal to the package.
8056 (Select_Specific_Data): This is now internal to the package.
8057 (Offset_To_Top_Function_Ptr): This is now public.
8058 (To_Offset_To_Top_Function_Ptr): Removed.
8059 (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
8060 local to subprogram Offset_To_Top.
8061 (Predefined_DT): Removed.
8062 (Typeinfo_Ptr): Removed.
8063 (OSD): This function is now internal to this package.
8064 (SSD): This function is now internal to this package.
8065 (DT): New function that displaces the pointer to the table of primitives
8066 to get access to the enclosing wrapper record.
8067 (IW_Membership): Code cleanup.
8068 (Offset_To_Top): Code cleanup.
8069 (Predefined_DT): Removed.
8070 (Register_Interface_Tag): Removed.
8071 (Set_Interface_Table): Removed.
8072 (Set_Offset_Index): Removed.
8073 (Set_Offset_To_Top): Code cleanup.
8074 (Set_OSD): Removed.
8075 (Set_Signature): Removed.
8076 (Set_SSD): Removed.
8077 (Set_Tagged_Kind): Removed.
8078 (Typeinfo_Ptr): Removed.
8079 (TSD): Removed.
8080 (Displace): Add missing check on null actual.
8081
8082 * exp_disp.ads, exp_disp.adb
8083 (Select_Expansion_Utilities): Removed.
8084 (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
8085 (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
8086 the interface requires a new parameter.
8087 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
8088 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
8089 calls to subprograms Build_T, Build_S, etc. by the corresponding code.
8090 Done to remove package Select_Expansion_Utilities.
8091 (Make_DT): New implementation for statically allocated dispatch tables.
8092 (Make_Secondary_DT): Moved to the scope of Make_DT.
8093 (Register_Primitive): Code cleanup plus incoporate the use of the new
8094 function DT_Address_Attribute.
8095 (Expand_Interface_Thunk): The profile of this subprogram has been
8096 changed to return the Thunk_Id and the corresponding code.
8097 (Fill_DT_Entry): Removed. Its functionality is now provided by
8098 subprogram Register_Primitive.
8099 (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
8100 subprogram Register_Primitive.
8101 (Register_Primitive): New subprogram that incorporates the previous
8102 functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
8103 (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
8104 was only required to call Make_DT_Access_Action, which is now removed.
8105 (Ada_Actions): Removed
8106 (Action_Is_Proc): Removed
8107 (Action_Nb_Arg): Removed
8108 Replace all the calls to Make_DT_Access_Action by direct calls to
8109 Make_Procedure_Call_Statement or Make_Function_Call.
8110 (Set_DTC_Entity_Value): New subprogram.
8111 (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
8112 (Expand_Interface_Thunk): Add missing support for primitives that are
8113 functions with a controlling result (case in which there is no need
8114 to generate the thunk).
8115
8116 * exp_atag.ads, exp_atag.adb
8117 (Build_DT): New subprogram that displaces the pointer to reference the
8118 base of the wrapper record.
8119 (Build_Typeinfo_Offset): Removed.
8120 (RTE_Tag_Node): Removed.
8121 (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
8122 (Build_Get_RC_Offset): Removed.
8123 (Build_Inherit_Predefined_Prims): Removed.
8124 (Build_Inherit_TSD: Removed.
8125 (Build_New_TSD): Removed.
8126 (Build_Set_External_Tag): Removed.
8127 (Build_Set_Predefined_Prim_Op_Address): Add documentation.
8128 (Build_Set_Prim_Op_Address): Add documentation.
8129 (Build_Set_TSD): Removed.
8130
8131 * rtsfind.ads, rtsfind.adb
8132 (Load_Fail): If load fails and we are not in configurable run-time
8133 mode, then raise Unrecoverable_Error.
8134 (Text_IO_Kludge): Generate an error message if a run-time library is
8135 not available in a given run-time (ie. zfp run-time).
8136 (RTE_Record_Component): Add code to check that the component we search
8137 for is not found in two records in the given run-time package.
8138 (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
8139 (RE_DT_Predef_Prims_Offset): New entity
8140 (RE_Static_Offset_To_Top): New entity
8141 (RE_HT_Link): New entity.
8142 (System_Address_Image): Addition of this run-time package.
8143 (RE_Address_Image): New entity.
8144 (RE_Abstract_Interface): Removed.
8145 (RE_Default_Prim_Op_Count): Removed.
8146 (RE_DT_Entry_Size): Removed.
8147 (RE_DT_Min_Prologue_Size): Removed.
8148 (RE_DT_Prologue_Size): Removed.
8149 (RE_Ifaces_Table_Ptr): Removed.
8150 (RE_Interface_Data_Ptr): Removed.
8151 (RE_Type_Specific_Data): Removed.
8152 (RE_Primary_DT): Removed.
8153 (RE_Register_Interface_Tag): Removed.
8154 (RE_Set_Offset_Index): Removed.
8155 (RE_Set_OSD): Removed.
8156 (RE_Set_SSD): Removed.
8157 (RE_Set_Signature): Removed.
8158 (RE_Set_Tagged_Kind): Removed.
8159 (RE_Address_Array): New entity.
8160 (RE_DT): New entity.
8161 (RE_Iface_Tag): New entity.
8162 (RE_Interfaces_Table): New entity.
8163 (RE_No_Dispatch_Table): New entity.
8164 (RE_NDT_Prims_Ptr): New entity.
8165 (RE_NDT_TSD): New entity.
8166 (RE_Num_Prims): New entity.
8167 (RE_Offset_To_Top_Function_Ptr): New entity.
8168 (RE_OSD_Table): New entity.
8169 (RE_OSD_Num_Prims): New entity.
8170 (RE_Predef_Prims): New entity
8171 (RE_Predef_Prims_Table_Ptr): New entity.
8172 (RE_Primary_DT): New entity.
8173 (RE_Signature): New entity.
8174 (RE_SSD): New entity.
8175 (RE_TSD): New entity.
8176 (RE_Type_Specific_Data): New entity.
8177 (RE_Tag_Kind): New entity.
8178
81792007-06-06 Thomas Quinot <quinot@adacore.com>
8180
8181 * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
8182 C imported variable.
8183 (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
8184 on entry.
8185
81862007-06-06 Robert Dewar <dewar@adacore.com>
8187
8188 * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
8189 character
8190
81912007-06-06 Vincent Celier <celier@adacore.com>
8192
8193 * a-tifiio.adb (Put, internal): For negative numbers, check that there
8194 is room for at least one digit and the minus sign.
8195 (Put.Put_Character): Never put a character outside of the range of
8196 string To.
8197
81982007-06-06 Olivier Hainque <hainque@adacore.com>
8199 Eric Botcazou <ebotcazou@adacore.com>
8200
8201 * utils2.c (build_allocator): Provide the extra arguments to
8202 make_aligning_type for super-aligned objects allocated from the default
8203 pool. Leave enough room for a pointer before the aligning field, and
8204 store the system's allocator return value there.
8205 (build_call_alloc_dealloc): When releasing a super-aligned object,
8206 retrieve the system's allocator return value from where build_allocator
8207 has stored it, just ahead of the adjusted address we are passed.
8208 (build_call_raise): Handle properly the generation of line numbers when
8209 the node is marked No_Location.
8210 (compare_elmt_bitpos): Use tree_int_cst_compare. Stabilize the sort
8211 by using DECL_UID on ties.
8212 (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
8213 main variant.
8214 (build_call_raise): Handle converting exception into goto; support new
8215 argument KIND.
8216 (build_component_ref): Add new arg to build_call_raise.
8217
82182007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
8219
8220 * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
8221 "." in the case of nnn.xxx when nnn terminates with an underscore.
8222 Parse the remaining "#" or ":" in the case of nnn#.xxx#
8223
82242007-06-06 Robert Dewar <dewar@adacore.com>
8225
8226 * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
8227
82282007-06-06 Arnaud Charlet <charlet@adacore.com>
8229 Vincent Celier <celier@adacore.com>
8230 Robert Dewar <dewar@adacore.com>
8231
8232 * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
8233 needed.
8234 (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
8235 ((destructor)) for adafinal, even when switch -a is used.
8236 Do not issue pragma Linker_Destructor for adafinal when switch -a is
8237 used.
8238 (Gen_Object_Files_Options): Add formatting of Linker Options, when
8239 Output_Linker_Option_List is set. Suppress this formatting when
8240 Zero_Formatting is set.
8241 Add case for CLI_Target.
8242 (System_Restrictions_Used): New flag, used to avoid generating with of
8243 System_Restrictions and initialization of the data unless there is
8244 some use of System.Restrictions in the partition.
8245 (Check_System_Restrictions_Used): New procedure
8246
8247 * s-stalib.adb: Remove with of System.Restrictions. No longer needed
8248 since we only with this unit in the binder file if it is used elsewhere
8249 in the partition.
8250
82512007-06-06 Vincent Celier <celier@adacore.com>
8252
8253 * bindusg.adb: Add line for @<response file>
8254 Add lines for new switches -R and -Z
8255
8256 * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
8257 hierarchy in the list of files of the closure when -R is used
8258 (Gnatbind): Accept arguments starting with '@' to indicate response
8259 files and take the arguments from the response files.
8260 If List_Closure is set, display the referenced files
8261
82622007-06-06 Javier Miranda <miranda@adacore.com>
8263 Robert Dewar <dewar@adacore.com>
8264 Ed Schonberg <schonberg@adacore.com>
8265
8266 * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
8267 which the address-clause is applied to in-mode actuals (allowed by
8268 13.1(22)).
8269 (Apply_Discriminant_Check): Do not generate a check if the type is
8270 constrained by a current instance.
8271 (Activate_Division_Check): New procedure
8272 (Activate_Overflow_Check): New procedure
8273 (Activate_Range_Check): New procedure
8274 Call these new Activate procedures instead of setting flags directly
8275 (Apply_Array_Size_Check): Removed, no longer needed.
8276 Code clean up: remove obsolete code related to GCC 2.
8277 (Get_E_Length): Protect against bomb in case scope is standard
8278 (Selected_Range_Checks): If the node to be checked is a conversion to
8279 an unconstrained array type, and the expression is a slice, use the
8280 bounds of the slice to construct the required constraint checks.
8281 Improve NOT NULL error messages
8282 (Apply_Constraint_Check): If the context is a null-excluding access
8283 type, diagnose properly the literal null.
8284
82852007-06-06 Pascal Obry <obry@adacore.com>
8286
8287 * clean.adb (Clean_Archive): Use untouched casing for the archive name
8288 and the corresponding .deps file.
8289 (Clean_Interface_Copy_Directory): Use untouched casing for the library
8290 src directory. Minor code-clean-up. Use untouched casing for files
8291 read into the library src dir.
8292 (Clean_Library_Directory): Idem.
8293 (Parse_Cmd_Line): Accept new switch -aP
8294
82952007-06-06 Javier Miranda <miranda@adacore.com>
8296 Ed Schonberg <schonberg@adacore.com>
8297 Robert Dewar <dewar@adacore.com>
8298 Eric Botcazou <ebotcazou@adacore.com>
8299 Arnaud Charlet <charlet@adacore.com>
8300
8301 * einfo.ads, einfo.adb (Available_View): New synthesized attribute
8302 applicable to types that have the With_Type flag set. Returns the
8303 non-limited view of the type, if available, otherwise the type itself.
8304 For class-wide types, there is no direct link in the tree, so we have
8305 to retrieve the class-wide type of the non-limited view of the Etype.
8306 New attributes Static_Initialization and Static_Elaboration_Desired.
8307 Remove the pragma Thread_Body, and the associated flag
8308 Is_Thread_Body in entities, and all related code.
8309 (Suppress_Value_Tracking_On_Call): New flag
8310 E_Exception has Esize and Alignment fields
8311 (Universal_Aliasing): New function.
8312 (Set_Universal_Aliasing): New procedure.
8313 (Write_Entity_Flags): Deal with Universal_Aliasing flag.
8314 (Check_Nested_Access): New procedure.
8315 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
8316 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
8317 (Related_Interface): New attribute. Present in dispatch table pointer
8318 components of records. Set to point to the entity of the corresponding
8319 interface type.
8320 (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
8321 (Original_Access_Type): Remove, not needed.
8322 (Root_Type): Handle properly subtypes of class-wide-types.
8323 Update comments.
8324
8325 * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
8326 class-wide types visible through limited-with clauses.
8327 (Try_Primitive_Operation): When examining all primitive operations of a
8328 tagged type, do not consider subprograms labeled as hidden unless they
8329 belong to a private generic type with a tagged parent.
8330 (Try_Object_Operation): Extensive rewriting, to handle properly various
8331 overloading cases, when several ancestors may have class-wide operations
8332 that are possible candidates, and when the overloaded functions return
8333 array types and have defaulted parameters so that the call may be
8334 interpreted as an indexing.
8335 (Analyze_Allocator): Remove Mark_Allocator and its invocation.
8336 (Process_Function_Call): use Next, rather than Next_Actual, to analyze
8337 successive actuals before analyzing the call itself.
8338 (Try_Primitive_Operation): A primitive operation is compatible with the
8339 prefix if the prefix has a synchronized type and the type of the formal
8340 is its corresponding record, as can be the case when the primitive
8341 operation is declared outside of the body of the type.
8342 (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
8343 perform homonym traversal, looking for class-wide operation matches
8344 (formerly done in statements of Try_Class_Wide_Operation). Matches on
8345 access parameters are now restricted to anonymous access types.
8346 (Mark_Allocator): An allocator with a discriminant association parent is
8347 a coextension.
8348 (Try_One_Prefix_Interpretation): If the type of the object is
8349 incomplete, as can be happen when it is a limited view obtained through
8350 a limited_with_clause, the selected component is not part of a prefixed
8351 call.
8352 (Complete_Object_Operation): Diagnose properly an object that is not
8353 aliased when the corresponding controlling formal is an access
8354 parameter.
8355 (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
8356 ambiguous calls in prefixed notation, where two primitives differ only
8357 in that the controlling argument of one is an access parameter.
8358
8359 * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
8360 whether a function that returns an unconstrained type can be inlined.
8361 (Process_Formals): Diagnose properly the illegal use of an incomplete
8362 type in the profile of an access_to_subprogram declaration.
8363 (Check_Synchronized_Overriding): Nothing check for concurrent types, the
8364 operations are attached to the corresponding record.
8365 (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
8366 When processing a primitive of a concurrent type which implements an
8367 interface change the type of all controlling formals to that of the
8368 corresponding record type.
8369 (Check_Synchronized_Overriding): Relax the conditional logic when trying
8370 to determine the tagged type to which a primitive belongs.
8371 (Check_Conventions): Capture condition to ignore a primitive operation
8372 (which is shared between the loop in Check_Conventions and the one in
8373 Check_Convention) in a new local function Skip_Check.
8374 (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
8375 confusion with Check_Conventions' own Prim_Op local variable.
8376 (Create_Extra_Formals): Test for a tagged result type rather than a
8377 controlling result when determining whether to add a BIP_Alloc_Form
8378 formal and a BIP_Final_List formal to the function.
8379 (Check_Conformance); For parameters that are anonymous access types,
8380 subtype conformance requires that the not null and the constant
8381 indicators must match
8382 (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
8383 to retrieve the appropriate type when processing a concurrent type
8384 declared within a generic. Minor comment reformatting. Change invocation
8385 of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
8386 mitive.
8387 (Analyze_Subprogram_Body): If the return type of a function is an
8388 anonymous access to the limited view of a class-wide type, and the
8389 non-limited view of the type is available, update the type of the
8390 function so that code can be generated.
8391 (Process_Formals): In case of access-subtype itype whose designated
8392 type is also an itype (situation that happens now with access to
8393 subprograms) we mark the access-type itype with the Has_Delayed_Freeze
8394 attribute to avoid backend problems.
8395 (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
8396 init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
8397 anonymous types' designated types are same before testing
8398 Subtypes_Statically_Match.
8399 (Create_Extra_Formals): Test for a named access parameter that is a
8400 controlling formal as an additional condition for adding an
8401 accessibility level formal. This can occur in the subp type created for
8402 dispatching calls in Expand_Dispatching_Call, and allows calling
8403 Create_Extra_Formals from that procedure rather than special-casing the
8404 extra formals there.
8405 (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
8406 when the function has a controlling result.
8407 (Check_Returns): Add much more knowledge of the optimization of local
8408 raise statements to gotos, to retain proper warnings in this case.
8409 (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
8410 nodes when looking for last statement.
8411
8412 * sem_type.ads, sem_type.adb (Specific_Type): Add support for
8413 class-wide types visible through limited with clauses.
8414 (Add_One_Interp): If the operands are anonymous access types, the
8415 predefined operator on universal_access is immediately visibles
8416 (Find_Unique_Type): Handle anonymous access to subprogram types just as
8417 other anonymous access types.
8418 (Disambiguate): Take into account CIL convention.
8419 (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
8420
84212007-06-06 Robert Dewar <dewar@adacore.com>
8422
8423 * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
8424 sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
8425 elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
8426 Fix lower bound of tables.
8427 Add rep clauses.
8428
8429 * nlists.adb: Ditto.
8430 (Prev_Node, Next_Node): Change index type to Int so that it properly
8431 covers the range First_Node_Id - 1 up.
8432
84332007-06-06 Javier Miranda <miranda@adacore.com>
8434 Ed Schonberg <schonberg@adacore.com>
8435 Bob Duff <duff@adacore.com>
8436 Hristian Kirtchev <kirtchev@adacore.com>
8437
8438 * exp_aggr.ads, exp_aggr.adb:
8439 (Build_Record_Aggr_Code): Add missing initialization of secondary tags
8440 in extension aggregates.
8441 (Flatten): Other conditions being met, an aggregate is static if the
8442 low bound given by component associations is different from the low
8443 bound of the base index type.
8444 (Packed_Array_Aggregate_Handled): If the component type is itself a
8445 packed array or record, the front-end must expand into assignments.
8446 (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
8447 Init_Pr, instead of Ancestor_Is_Expression.
8448 (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
8449 coextension chain root, either generate a list controller or use the
8450 already existing one.
8451 (Static_Array_Aggregate): New procedure to construct a positional
8452 aggregate that can be handled by the backend, when all bounds and
8453 components are compile-time known constants.
8454 (Expand_Record_Aggregate): Force conversion of aggregates of tagged
8455 types covering interface types into assignments.
8456 (Replace_Type): move to Build_Record_Aggr_Code.
8457 (Expand_Record_Aggr_Code): if the target of the aggregate is an
8458 interface type, convert to the definite type of the aggregate itself,
8459 so that needed components are visible.
8460 (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
8461 components and the context is an extended return statement do not
8462 create a transient block for it, to prevent premature finalization
8463 before the return is executed.
8464 (Gen_Assign): Do not generate a call to deep adjust routine if the
8465 component type is itself an array of controlled (sub)-components
8466 initialized with an inner aggregate.
8467 (Component_Check): New name for Static_Check. This name is now more
8468 appropriate, and documentation is added which was missing.
8469 (Component_Check): Add test for bit aligned component value
8470 (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
8471 Tagged_Comps, name is more appropriate given added function below.
8472 (Component_Not_OK_For_Backend): Check for bit aligned component ref.
8473
84742007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
8475 Javier Miranda <miranda@adacore.com>
8476 Robert Dewar <dewar@adacore.com>
8477
8478 * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
8479 Terminated: Add unchecked type conversion from System.Address to
8480 System.Tasking.Task_Id when calling the predefined primitive
8481 _disp_get_task_id.
8482 Disable new Ada 05 accessibility check for JVM.NET targets, which
8483 cannot be implemented in a practical way.
8484 (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
8485 the sources always references the tag of the actual object. Therefore,
8486 if 'Tag is applied in the sources to class-wide interface objects we
8487 generate code that displaces "this" to reference the base of the object.
8488 (Expand_N_Attribute_Reference, case Size): Return specified size if
8489 known to front end.
8490 (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
8491 has code that displaces the pointer of the object to manage interface
8492 types. However this code must not be executed when the prefix is a
8493 subprogram. This bug caused the wrong expansion of the internally
8494 generated assignment that fills the dispatch table when the primitive
8495 is a function returning a class-wide interface type.
8496 (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
8497 Set_Attribute_Name for Name_Unaligned_Valid.
8498
84992007-06-06 Ed Schonberg <schonberg@adacore.com>
8500 Gary Dismukes <dismukes@adacore.com>
8501
8502 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
8503 If the initialization is the equivalent aggregate of the initialization
8504 procedure of the type, do not remove it.
8505 (Expand_N_Attribute_Definition_Clause): Exclude access variables
8506 initialized to null from having their expression reset to empty and
8507 note this exception in the comment.
8508
85092007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
8510 Robert Dewar <dewar@adacore.com>
8511 Ed Schonberg <schonberg@adacore.com>
8512 Gary Dismukes <dismukes@adacore.com>
8513
8514 * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
8515 Add "with" and "use" clauses for Sem_Attr.
8516 (Expand_Current_Value): Do not replace occurences of attribute
8517 references where the prefix must be a simple name.
8518
8519 * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
8520 Namet. Add new arrays Attribute_Name_Modifies_Prefix and
8521 Attribute_Requires_Simple_Name_Prefix.
8522 (Name_Modifies_Prefix): Body of new function.
8523 (Requires_Simple_Name_Prefix): Body of new function.
8524 (Resolve_Attribute, case Access): Improve error message for case of
8525 mismatched conventions.
8526 (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
8527 incomplete type.
8528 (Analyze_Attribute, case 'Access): If the type of the prefix is a
8529 constrained subtype for a nominal unconstrained type, use its base type
8530 to check for conformance with the context.
8531 (Resolve_Attribute): Remove test of the access type being associated
8532 with a return statement from condition for performing accessibility
8533 checks on access attributes, since this case is now captured by
8534 Is_Local_Anonymous_Access.
8535 (Analyze_Access_Attribute): Set Address_Taken on entity
8536 (Analyze_Attribute, case Address): Set Address_Taken on entity
8537 (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
8538 validating an access attribute whose prefix is a current instance.
8539 (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
8540 applied to dispatching operations, if freezing is required then we set
8541 the attribute Has_Delayed_Freeze in the prefix's entity.
8542 (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
8543 current scope if access of local subprogram taken
8544 (Analyze_Access_Attribute): Check legality of self-reference even if the
8545 expression comes from source, as when a single component association in
8546 an aggregate has a box association.
8547 (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
8548 the prefix if it is a protected operation and the attribute is
8549 Unrestricted_Access.
8550 (Resolve_Attribute, case 'Access): Set the Etype of the attribute
8551 reference to the base type of the context, to force a constraint check
8552 when the context is an access subtype with an explicit constraint.
8553 (Analyze_Attribute, case 'Class): If the prefix is an interface and the
8554 node is rewritten as an interface conversion. leave unanalyzed after
8555 resolution, to ensure that type checking against the context will take
8556 place.
8557
85582007-06-06 Ed Schonberg <schonberg@adacore.com>
8559 Javier Miranda <miranda@adacore.com>
8560 Robert Dewar <dewar@adacore.com>
8561
8562 * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
8563 wrapper when the full view of the controlling type of an inherited
8564 function that dispatches on result implements interfaces.
8565 (Expand_N_Object_Declaration): In cases where the type of the
8566 declaration is anonymous access, create finalization list for it.
8567 (Expand_N_Object_Declaration): Generate a persistent_bss directive only
8568 if the object has no explicit initialization, to match description of
8569 functionality of pragam Persistent_BSS.
8570 (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
8571 new function to build static aggregates, to replace initialization call
8572 when static initialization is desired.
8573 (Freeze_Type): Generate a list controller for an access type whenever
8574 its designated type has controlled anonymous access discriminants.
8575 (Build_Equivalent_Aggregate): New procedure to compute a static
8576 aggregate to be used as default initialization for composite types,
8577 instead of a generating a call to the initialization procedure for the
8578 type.
8579 (Build_Initialization_Call): When available, replace a call to the
8580 initialization procedure with a copy of the equivalent static aggregate
8581 for the type.
8582 (Expand_N_Object_Declaration): Use New_Occurrence_Of in generated
8583 declarations for objects of a class-wide interface type, rather than
8584 just identifiers, to prevent visibility problems.
8585 (Expand_N_Object_Declaration): When expanding the declaration for an
8586 object of a class-wide interface type, preserve the homonym chain of
8587 the original entity before exchanging it with that of the generated
8588 renaming declaration.
8589 (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
8590 active, because there is no way to handle the exception.
8591 (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
8592 to do a minimum decoration of the Access_Disp_Table list.
8593 (Expand_Record_Controller): Avoid the addition of the controller between
8594 the component containing the tag of a secondary dispatch table and its
8595 adjacent component that stores the offset to the base of the object.
8596 This latter component is only generated when the parent type has
8597 discriminants ---documented in Add_Interface_Tag_Components).
8598 (Apply_Array_Size_Check): Removed, no longer needed.
8599 (Expand_N_Full_Type_Declaration): If the type has anonymous access
8600 components, create a Master_Entity for it only if it contains tasks.
8601 (Build_Init_Procedure): Suppress the tag assignment compiling under
8602 no run-time mode.
8603 (Freeze_Record_Type): Remove code associated with creation of dispatch
8604 table.
8605 (Init_Secondary_Tags): Update type of actuals when generating calls to
8606 Ada.Tags.Set_Offset_To_Top
8607 (Stream_Operation_OK): Disable use of streams compiling under no
8608 run-time mode
8609 (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
8610 if Has_Init_Expression set.
8611 (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
8612 Register_Primitive, which provides the same functionality.
8613 (Requires_Init_Proc): Return false in case of interface types.
8614 (Add_Secondary_Tables): Use the new attribute Related_Interface to
8615 cleanup the code.
8616 (Predefined_Primitive_Freeze): Do not assume that an internal entity
8617 is always associated with a predefined primitive because the internal
8618 entities associated with interface types are not predefined primitives.
8619 Therefore, the call to Is_Internal is replaced by a call to the
8620 function Is_Predefined_Dispatching_Operation.
8621 (Make_Eq_If): When generating the list of comparisons for the
8622 components of a given variant, omit the controller component that is
8623 present if the variant has controlled components.
8624
86252007-06-06 Javier Miranda <miranda@adacore.com>
8626 Hristian Kirtchev <kirtchev@adacore.com>
8627 Bob Duff <duff@adacore.com>
8628
8629 * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
8630 handle the creation of finalization lists and calls for nested
8631 coextensions when the root of the chains is part of a return statement.
8632 (Inside_A_Return_Statement): New function inside Complete_Coextension_
8633 Finalization.
8634 (Expand_Record_Equality): Skip components that are interface types.
8635 (Displace_Allocator_Pointer): Add missing support for interface subtypes
8636 (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
8637 with Rewrite_Coextension. Change the condition for detecting coextension
8638 root nodes.
8639 (Is_Local_Access_Discriminant): Removed.
8640 (Rewrite_Coextension): New routine which rewrites a static coextension
8641 as a temporary and uses its unrestricted access in the construction of
8642 the outer object.
8643 (Complete_Coextension_Finalization): New routine. Generate finalization
8644 attachment calls to all delayed coextensions.
8645 (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
8646 the allocator is not a coextension itself and has delayed coextensions.
8647 If the current allocator is controlled, but also a coextension, delay
8648 the generation of the finalization attachment call.
8649 Rename local variable "Node" to "Nod" in order to avoid confusion with
8650 "Elists.Node".
8651 (Expand_Allocator_Expression): Call Adjust for initialized allocators of
8652 limited types that are not inherently limited. Such an allocator is
8653 illegal, but is generated by the expander for a return statement, to
8654 copy the result onto the secondary stack. This is the only case where a
8655 limited object can be copied. Generate code to displace the pointer
8656 to the object if the qualified expression is a class-wide interface
8657 object. Such displacement was missing and hence the copy of the object
8658 was wrong.
8659 (Apply_Accessibility_Check): Handle allocated objects initialized in
8660 place.
8661 (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
8662 and Expand_Allocator_Expression. Allocating class-wide interface objects
8663 this routine displaces the pointer to the allocated object to reference
8664 the component referencing the corresponding secondary dispatch table.
8665 Expand_Allocator_Expression): Add missing support to allocate class-wide
8666 interface objects initialized with a qualified expression.
8667 (Get_Allocator_Final_List): Test for an anonymous access type that is a
8668 function result type, and use the finalization list associated with the
8669 function scope in that case (such an anonymous type should not be
8670 treated like an access parameter's type).
8671
86722007-06-06 Ed Schonberg <schonberg@adacore.com>
8673 Gary Dismukes <dismukes@adacore.com>
8674 Javier Miranda <miranda@adacore.com>
8675
8676 * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
8677 controlled type, use Make_Handler_For_Ctrl_Operation to construct the
8678 required exception handler.
8679 (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
8680 properly the case of a function whose return type is a limited
8681 class-wide interface type. Modify the code of the accessibility
8682 check to handle class-wide interface objects. In this case we need to
8683 displace "this" to reference the primary dispatch table to get access
8684 to the TSD of the object (to evaluate its accessibility level).
8685 (Expand_N_Extended_Return_Statement): Test for a tagged result type
8686 rather than a controlling result as one of the conditions for
8687 generating tests of the implicit BIP_Alloc_Form formal. The
8688 initialization assignment is also handled according to whether the
8689 result is tagged instead of controlling.
8690 In the case where the init assignment is inserted in the "then" part of
8691 the allocation conditional, rewrite the target to be a dereference of
8692 the implicit BIP_Object_Access formal.
8693 If the returned value is unconstrained and created on the secondary
8694 stack, mark the enclosing block and function so that the secondary
8695 stack is not reclaimed on return.
8696 Treat returns from functions with controlling results similarly to
8697 returns from functions with unconstrained result subtypes.
8698 If the object returned is unconstrained, and an allocator must be
8699 created for it, analyze the allocator once the block for the extended
8700 return is installed, to ensure that finalizable components
8701 of the expression use the proper finalization list. Guard the call to
8702 Move_Final_List with a check that there is something to finalize.
8703 (Make_Tag_Ctrl_Assignment): Use "old" handling
8704 of controlled type assignment for virtual machines, since new code uses
8705 unsupported features (such as direct access to bytes in memory).
8706
87072007-06-06 Gary Dismukes <dismukes@adacore.com>
8708 Ed Schonberg <schonberg@adacore.com>
8709
8710 * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
8711 accessibility actual, check for the case of an aliased object that has
8712 been rewritten as an Access attribute, and assign Prev to Prev_Orig so
8713 we fall into processing for the attribute rather than the name of the
8714 object.
8715 (Expand_Inline_Call): If an actual is a literal, and the corresponding
8716 formal has its address taken in the body, create a temporary to capture
8717 value. If the return type is a limited interface, do not treat the
8718 return value as Controlled.
8719 (Is_In_Place_Function): If the return type is a limited interface,
8720 treat as returning in place. The actual returned object may not always
8721 be limited, but the caller has to assume that it is returned in place.
8722 (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
8723 context of an allocator, use the correct finalization chain (that is,
8724 the chain belonging to the access type, rather than the chain belonging
8725 to the current scope).
8726 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
8727 result type rather than a controlling result as a precondition for
8728 adding an allocation form actual to a build-in-place call.
8729 (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
8730 (Freeze_Subprogram): Code cleanup. Remove all the code that register the
8731 primitive in the dispatch tables. This work is now done by Make_DT when
8732 the type is frozen.
8733 (Register_Predefined_DT_Entry): Removed.
8734 (Add_Return): If end label is not present, use sloc of last statement
8735 for generated return statement in procedure, for better gdb behavior
8736 on expanded code.
8737 (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
8738 object address nodes to ensure proper processing by routines like
8739 Insert_After*.
8740 (Expand_Call): Fix generation of validity check for parameter
8741 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
8742 the allocation form parameter if the result subtype is constrained,
8743 except when the function has a controlling result.
8744 (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
8745 rather than Is_Controlled and Has_Controlled_Component, since we want to
8746 include class-wide result types in this treatment. Also test for a
8747 controlling result, since that also requires passing a finalization
8748 list.
8749 (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
8750 even when the result subtype is constrained, to handle calls involving
8751 controlling results.
8752 (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
8753 is now called even when the result subtype is constrained, to handle
8754 calls involving controlling results.
8755 (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
8756 on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
8757 now performs the test).
8758 (Make_Build_In_Place_Call_In_Object_Declaration):
8759 Add_Alloc_Form_Actual_* is now called even when the result subtype is
8760 constrained, to handle calls involving controlling results.
8761 (Add_Return): Accomodate rewritten pattern from local raise to goto
8762 transformation, so that we still recognize an transfer statement
8763 and do the right thing here in that case.
8764 (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
8765 and end of subprogram code.
8766 (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
8767 support for primitives that are functions (without formals) with a
8768 controlling result.
8769 (Inherited_From_Formal): If the actual subtype has not generic parent
8770 type, it is not an actual for a formal derived type, and there is no
8771 operation to inherit from the formal.
8772
87732007-06-06 Ed Schonberg <schonberg@adacore.com>
8774 Thomas Quinot <quinot@adacore.com>
8775
8776 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
8777 inserted cleanup code appropriately for GDB use.
8778 (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
8779 exception handler for Deep_Adjust or Deep_Finalize.
8780 (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
8781 Raise_From_Controlled_Operation is available, use a call to that
8782 subprogram instead of a plain "raise Program_Error" node to raise
8783 Program_Error if an exception is propagated from an Adjust or Finalize
8784 operation.
8785 (Insert_Actions_In_Scope_Around): If the statement to be wrapped
8786 appears in the optional statement list of a triggering alternative, the
8787 scope actions can be inserted directly there, and not in the list that
8788 includes the asynchronous select itself.
8789
87902007-06-06 Ed Schonberg <schonberg@adacore.com>
8791 Robert Dewar <dewar@adacore.com>
8792 Hristian Kirtchev <kirtchev@adacore.com>
8793
8794 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
8795 generated exception handler appropriately when debugging generated code.
8796 Deal properly with No_Exception_Propagation restriction mode.
8797 (Expand_N_Abort_Statement): Add an unchecked type conversion from
8798 System.Address to System.Tasking.Task_Id when processing the result of
8799 the predefined primitive _disp_get_task_id.
8800 (Expand_N_Asynchronous_Select): Clarify comment.
8801 (Expand_N_Protected_Type_Declaration): Minor code cleanup.
8802 (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
8803 (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
8804 (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
8805 privals and for generated call to Complete_Entry_Body, for better gdb
8806 behavior.
8807 (Copy_Result_Type): Utility to construct a parameter and result profile
8808 for protected functions whose return type is an anonymous access to
8809 subprogram.
8810 (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
8811 call the above.
8812 (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
8813 point when the local-raise-to-goto transformation has taken place.
8814
88152007-06-06 Javier Miranda <miranda@adacore.com>
8816 Nicolas Setton <setton@adacore.com>
8817
8818 * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
8819 functionality when the backend is generating code.
8820 Otherwise any serious error
8821 reported by the backend calling the frontend routine Error_Msg
8822 changes the Compilation_Mode to Check_Semantics, disables the
8823 functionality of this routine and causes the generation of
8824 spureous additional errors.
8825
8826 * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
8827 debugging information now generated by the compiler for fat-pointer
8828 types.
8829 Document the contents of DW_AT_producer in the GNAT Vendor extensions to
8830 DWARF2/3.
8831 Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
8832
88332007-06-06 Thomas Quinot <quinot@adacore.com>
8834
8835 * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
8836 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
8837 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
8838 For a remote call to a function with a classwide return type, apply an
8839 E.4(18) check to the returned value.
8840 (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
8841 stream attributes of the designated type of an RACW, as they are not
8842 dispatching primitive operations.
8843
88442007-06-06 Geert Bosch <bosch@adacore.com>
8845
8846 * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
8847 negative literal
8848 (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
8849 positive
8850 (Do_Divide_Fixed_Universal): Handle case of negative Frac.
8851 (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
8852 positive
8853 (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
8854
88552007-06-06 Javier Miranda <miranda@adacore.com>
8856
8857 * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
8858 attribute compiling package Ada.Tags under No_Run_Time_Mode.
8859
88602007-06-06 Javier Miranda <miranda@adacore.com>
8861
8862 * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
8863 deallocation of class-wide interface objects.
8864 (Expand_Dispatching_Constructor_Call): Take into account that if the
8865 result of the dispatching constructor is an interface type, the
8866 function returns a class-wide interface type; otherwise the returned
8867 object would be actual. The frontend previously accepted returning
8868 interface types because Expand_Interface_Actuals silently performed
8869 the management of the returned type "as if" it were a class-wide
8870 interface type.
8871 (Expand_Dispatching_Constructor_Call): Replace call to
8872 Make_DT_Access_Action by direct call to Make_Function_Call.
8873
88742007-06-06 Robert Dewar <dewar@adacore.com>
8875 Ed Schonberg <schonberg@adacore.com>
8876
8877 * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
8878 compute masking constant, since we now set Esize properly to the
8879 underlying size.
8880 (Create_Packed_Array_Type): Set proper Esize value adjusted as required
8881 to match the alignment.
8882 (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
8883 packed arrays of 8 bits or less.
8884
8885 * freeze.adb (Freeze_Entity): When freezing the formals of a
8886 subprogram, freeze the designated type of a parameter of an access type
8887 only if it is an access parameter.
8888 Increase size of C convention enumeration object
8889 (Freeze_Entity, array type case): Make sure Esize value is properly
8890 adjusted for the alignment if it is known.
8891 (Freeze_Entity, array type case): When checking bit packed arrays for
8892 the size being incorrect, check RM_Size, not Esize.
8893 (Freeze_Record_Type): Check for bad discriminated record convention
8894 (In_Exp_Body): Return true if the body is generated for a subprogram
8895 renaming, either an attribute renaming or a renaming as body.
8896 (Check_Itype): If the designated type of an anonymous access component
8897 is a non-protected subprogram type, indicate that it is frozen, to
8898 prevent out-of-scope freeze node at some subsequent call.
8899 (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
8900 only if the subprogram is neither imported nor exported, as well as the
8901 NCA descriptor class if the subprogram is exported.
8902
89032007-06-06 Ed Schonberg <schonberg@adacore.com>
8904 Arnaud Charlet <charlet@adacore.com>
8905 Robert Dewar <dewar@adacore.com>
8906 Gary Dismukes <dismukes@adacore.com>
8907
8908 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
8909 default initialization on an imported object, when there is no
8910 initialization call generated for it.
8911 (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
8912 restriction
8913
8914 * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
8915 Static_Elaboration_Desired.
8916 Remove pragma Thread_Body.
8917 Implement a new pragma No_Body
8918 Removes the Explicit_Overriding pragma
8919 Remove Optional_Overriding pragma
8920 (Prag): Deal with Universal_Aliasing.
8921 (Name_CIL, Name_CIL_Constructor, Convention_CIL,
8922 Pragma_CIL_Constructor): New names.
8923
8924 * sem_cat.adb (Validate_Object_Declaration): An initialization that
8925 uses the equivalent aggregate of a type must be treated as an implicit
8926 initialization.
8927 (Get_Categorization): Check a unit for pragma Preelaborate only if it
8928 has none of the other categories.
8929 (Process_Import_Or_Interface_Pragma): Report an error for an attempt
8930 to apply Import to an object renaming declaration.
8931
8932 * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
8933 from a C++ class should be declared as limited and that it will be
8934 considererd limited.
8935 (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
8936 should be declared as limited and that it will be considererd limited.
8937 (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
8938 (Analyze_Pragma, case Export): Diagnose export of enumeration literal
8939 (Analyze_Pragma): Deal with Universal_Aliasing.
8940 (Sig_Flags): Likewise.
8941 (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
8942 (Overflow_Checks_Unsuppressed): New flag.
8943 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
8944 (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
8945 case of JVM or .NET targets, and compiling user code.
8946 Add debugging convenience routine rv
8947
89482007-06-06 Robert Dewar <dewar@adacore.com>
8949
8950 * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
8951 are interface type.
8952 (Build_Elementary_Input_Call): For floating-point use right type in the
8953 absence of strange size or stream size clauses.
8954 (Build_Elementary_Write_Call): Same fix
8955 (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
8956 set to value that does not match base type size.
8957
89582007-06-06 Ed Schonberg <schonberg@adacore.com>
8959
8960 * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
8961 object of a limited type can be initialized with a call to a function
8962 that returns in place. If the limited type has unknown discriminants,
8963 and the underlying type is a constrained composite type, build an actual
8964 subtype from the function call, as is done for private types.
8965 (Side_Effect_Free): An expression that is the renaming of an object or
8966 whose prefix is the renaming of a object, is not side-effect free
8967 because it may be assigned through the renaming and its value must be
8968 captured in a temporary.
8969 (Has_Controlled_Coextensions): New routine.
8970 (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
8971 as is done for other limited types.
8972 (Non_Limited_Designated_Type): new predicate.
8973 (Make_CW_Equivalent_Type): Modified to handle class-wide interface
8974 objects.
8975 Remove all handling of with_type clauses.
8976
8977 * par-ch10.adb: Remove all handling of with_type clauses.
8978
8979 * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
8980 checksum if the main source could not be parsed.
8981 (Loat_Unit): When processing a child unit, determine properly whether
8982 the parent unit is a renaming when the parent is itself a child unit.
8983 Remove handling of with_type clauses.
8984
8985 * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
8986 (Set_Is_Static_Coextension): New procedure.
8987 (Has_Local_Raise): New function
8988 (Set_Has_Local_Raise): New procedure
8989 (Renaming_Exception): New field
8990 (Has_Init_Expression): New flag
8991 (Delay_Finalize_Attach): Remove because flag is obsolete.
8992 (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
8993 Remove all handling of with_type clauses.
8994 (Exception_Junk): Can now be set in N_Block_Statement
8995
89962007-06-06 Vincent Celier <celier@adacore.com>
8997 Robert Dewar <dewar@adacore.com>
8998
8999 * frontend.adb (Frontend): Return immediately if the main source could
9000 not be parsed, because of preprocessing errors.
9001
9002 * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
9003 (Gnat1drv): Exit with errors if the main source could not be parsed,
9004 because of preprocessing errors.
9005 (Check_Rep_Info): New procedure
9006
90072007-06-06 Robert Dewar <dewar@adacore.com>
9008
9009 * g-hesorg.ads, g-heasor.ads,
9010 g-busorg.ads, g-bubsor.ads: Update documentation
9011 GNAT.Heap/Bubble_Sort_G is now pure
9012
90132007-06-06 Robert Dewar <dewar@adacore.com>
9014
9015 * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
9016
90172007-06-06 Robert Dewar <dewar@adacore.com>
9018 Ed Schonberg <schonberg@adacore.com>
9019
9020 * g-comlin.ads, g-comlin.adb:
9021 Add new warning for renaming of function return objects
9022
9023 * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
9024 (Tree_Read): Use size of object instead of type'object_size, since the
9025 latter is incorrect for packed array types.
9026 (Tree_Write): Same fix
9027
9028 * opt.ads: Add new warning for renaming of function return objects
9029 (Generating_Code): New boolean variable used to indicate that the
9030 frontend as finished its work and has called the backend to process
9031 the tree and generate the object file.
9032 (GCC_Version): Is now private
9033 (Static_Dispatch_Tables): New constant declaration.
9034 (Overflow_Checks_Unsuppressed): New flag.
9035 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
9036 (List_Closure): New flag for gnatbind (-R)
9037 Zero_Formatting: New flag for gnatbind (-Z)
9038 (Special_Exception_Package_Used): New flag.
9039 (Warn_On_Unrepped_Components): New flag.
9040
9041 * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
9042 unit is a compilation unit, rather than relying on its scope, so that
9043 Standard can be renamed.
9044 (Analyze_Object_Renaming): Add new warning for renaming of function
9045 return objects.
9046 Also reject attempt to rename function return object in Ada 83 mode.
9047 (Attribute_Renaming): In case of tagged types, add the body of the
9048 generated function to the freezing actions of the type.
9049 (Find_Type): A protected type is visible right after the reserved word
9050 "is" is encountered in its type declaration. Set the entity and type
9051 rather than emitting an error message.
9052 (New_Scope): Properly propagate Discard_Names to inner scopes
9053 (Check_Nested_Access): New procedure.
9054 (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
9055 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
9056
9057 * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
9058 Add new warning for renaming of function return objects
9059 (Check_References): Suppress warnings for objects whose type or
9060 base type has Warnings suppressed.
9061 (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
9062 (Set_Warning_Switch): Include new -gnatwc in -gnatwa
9063
90642007-06-06 Vincent Celier <celier@adacore.com>
9065 Emmanuel Briot <briot@adacore.com>
9066 Olivier Hainque <hainque@adacore.com>
9067
9068 * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
9069 absolute value of Header.Block_Size when displaying the freed physical
9070 memory in traces.
9071 (Allocate): Compute Storage_Address using Integer_Address, not
9072 Storage_Offset, because the range of Storage_Offset may not be large
9073 enough.
9074 (Configure): New parameter Low_Level_Traces
9075 (Allocate, Deallocation, Free_Physically): Added low-level traces
9076 (Configure): new parameter Errors_To_Stdout.
9077 (Output_File): new subprogram
9078 (Deallocate, Dereference): Send error messages to the proper stream
9079 (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
9080 documented. Previous code would send it to the current output file
9081 defined in GNAT.IO, which might not be stdout
9082 (Is_Valid): Adjust comment to mention that a positive reply means that
9083 Header_Of may be used to retrieve the allocation header associated with
9084 the subprogram Storage address argument. Return False early if this
9085 address argument is misaligned.
9086
90872007-06-06 Vincent Celier <celier@adacore.com>
9088
9089 * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
9090 switch -P
9091 (ASIS_Main): New global variable
9092 (Get_Closure): New procedure
9093 (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
9094 check, metric or pretty. Call Get_Closure in this case.
9095 (Check_Files): For GNAT LIST, check all sources of all projects when
9096 All_Projects is True.
9097 (GNATCmd): Accept -U for GNAT LIST
9098
90992007-06-06 Vincent Celier <celier@adacore.com>
9100
9101 * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
9102 has been specified
9103 Correct error message when invocation of the linker fails
9104 Add explicit size clause for the C imported variables
9105 Object_List_File_Supported and Using_GNU_Linker to emphasize that
9106 we expect char size.
9107 Read target parameters earlier, since this is needed to set
9108 Target_VM properly. Also do not use -static/shared-libgcc for non GCC
9109 targets.
9110
91112007-06-06 Vincent Celier <celier@adacore.com>
9112
9113 * gnatls.adb:
9114 Add 3 spaces before the default project directory when displaying
9115 the project search path.
9116 Add new command line switch '-l' to display license information.
9117
91182007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
9119
9120 * gmem.c: Add support for timestamps on memory operations.
9121
9122 * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
9123 operations (not used currently, just foundation for future
9124 enhancements). Add possibility to perform full dump of gmem.out file.
9125 (Print_Back_Traces): Declare accesses to root arrays constants since
9126 they aren't modified.
9127 (Print_Back_Traces): allocate root arrays on the heap rather than stack.
9128
91292007-06-06 Vincent Celier <celier@adacore.com>
9130
9131 * gnatsym.adb: Update Copyright notice
9132 (Parse_Cmd_Line): Accept new switch -D
9133 (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
9134 file.
9135
9136 * prj.ads (Policy): New policy Direct
9137 (Yes_No_Unknown): New enumeration type
9138 (Project_Data): New component Libgnarl_Needed
9139
9140 * prj-nmsc.adb (Check_For_Source): When recording a source file make
9141 use the untouched pathname casing.
9142 (Get_Directories): Ensure that the Display_Exec_Directory is using the
9143 proper casing on non case-sensitive platforms like Windows.
9144 (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
9145 on all platforms, as it is not possible to know which one is allowed
9146 before processing the project files.
9147 (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
9148 specified when symbol policy is Direct. Check that when there is a
9149 symbol file defined (either by default or with attribute
9150 Library_Symbol_File) it is not the same as the reference symbol file.
9151 (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
9152 (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
9153 extending projects.
9154 (Record_Ada_Source): Record a source that has been locally removed in an
9155 imported project.
9156
9157 * symbols.ads (Policy): New policy Direct
9158
9159 * symbols-vms.adb (Initialize): Take new policy Direct in case
9160 statement
9161
91622007-06-06 Vincent Celier <celier@adacore.com>
9163
9164 * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
9165 Correct obvious bug (return Dir; instead of return Directory;).
9166 (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
9167
91682007-06-06 Thomas Quinot <quinot@adacore.com>
9169
9170 * g-pehage.adb (Produce): Open output files in Binary mode, so that
9171 they have UNIX line endings (LF only) even on Windows, and thus pass
9172 all GNAT style checks.
9173
91742007-06-06 Emmanuel Briot <briot@adacore.com>
9175
9176 * g-regpat.adb (Quote): Fix improper quoting of '.'
9177
91782007-06-06 Thomas Quinot <quinot@adacore.com>
9179
9180 * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
9181 default, set False on a per-runtime basis.
9182 (Need_Netdb_Buffer): New constant.
9183
9184 * g-socket.ads, g-socket.adb: Import new package
9185 GNAT.Sockets.Thin.Task_Safe_NetDB.
9186 (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
9187 binding to obtain proper message.
9188 (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
9189 Replace various occurrences of Arry (Arry'First)'Address with the
9190 equivalent Arry'Address (GNAT always follows implementation advice from
9191 13.3(14)).
9192 (Get_Host_By_Address, Get_Host_By_Name,
9193 Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
9194 instead, rely on platform-specific task safe netdb operations provided
9195 by g-socthi.
9196
9197 * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
9198 parameter Process_Blocking_IO.
9199 (Host_Error_Messages): Add stub body.
9200 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
9201 (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
9202 Safe_Getservbyport): Move functions into new child package
9203 Task_Safe_NetDB.
9204 (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
9205 Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
9206 (In_Addr): Add alignment clause.
9207
92082007-06-06 Robert Dewar <dewar@adacore.com>
9209
9210 * g-trasym.ads, g-traceb.ads: Update list of supported targets
9211 Add note about symbolic traceback
9212
92132007-06-06 Pascal Obry <obry@adacore.com>
9214
9215 * hostparm.ads (Normalized_CWD): Use the host directory separator
9216 instead of the hardcoded forward slash which is not the proper
9217 character on Windows for example.
9218 (Java_VM): Removed.
9219
92202007-06-06 Vincent Celier <celier@adacore.com>
9221 Arnaud Charlet <charlet@adacore.com>
9222
9223 * a-clrefi.adb, a-clrefi.ads: New files
9224
9225 * impunit.adb: Add s-os_lib in the list of user visible units.
9226 (Non_Imp_File_Names_95): Add a-clrefi to this list
9227 Remove obsolete run-time entries.
9228 (Non_Imp_File_Names_05): Add Ada 2005 entries for:
9229 "a-exetim" -- Ada.Execution_Time
9230 "a-extiti" -- Ada.Execution_Time.Timers
9231
9232 * mlib-prj.ads, mlib-prj.adb
9233 (Build_Library): Use untouched object dir and library dir. At the
9234 same time makes sure that the checks are done using the canonical
9235 form. Removes hard-coded directory separator and use the proper host
9236 one instead.
9237 (Process_Project): Do not look in object directory to check if libgnarl
9238 is needed for a library, if there is no object directory.
9239 (Build_Library): Scan the ALI files to decide if libgnarl is needed for
9240 linking.
9241 (Build_Library): When invoking gnatbind, use a response file if the
9242 total size of the arguments is too large.
9243
9244 * Makefile.rtl: (g-sttsne): New object file.
9245 Add entry for a-clrefi, s-utf_32, System.Exceptions
9246
9247 * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
9248 (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
9249 (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
9250 Change g-string to s-string, g-os_lib to s-os_lib
9251 Change all g-utf_32 references to s-utf_32
9252
92532007-06-06 Tristan Gingold <gingold@adacore.com>
9254 Olivier Hainque <hainque@adacore.com>
9255
9256 * init.c: Do not adjust IP of an imported VMS exception of ia64.
9257 LIB$STOP is called to raise an exception and the IP of the exception
9258 is the instruction right after the call.
9259 (__gnat_adjust_context_for_raise, AIX): Implement.
9260 (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
9261 adjust_context_for_raise before Raise_From_Signal_Hanler.
9262 (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
9263 siginfo is passed to the handler, necessary to let the zcx propagation
9264 engine unwind past it.
9265
92662007-06-06 Olivier Hainque <hainque@adacore.com>
9267
9268 * initialize.c (__gnat_initialize for vxworks): Update documentation
9269 on the ZCX support, using different sets of crtstuff objects than with
9270 GCC 3.4.
9271
92722007-06-06 Robert Dewar <dewar@adacore.com>
9273
9274 * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
9275 spec from body
9276 (Layout_Type): Fix recomputation of size from alignment.
9277
92782007-06-06 Ed Schonberg <schonberg@adacore.com>
9279 Javier Miranda <miranda@adacore.com>
9280
9281 * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
9282 association in an instance.
9283 (Copy_Generic_Node): If the node is a string literal, no need to copy
9284 its descendants.
9285 (Is_Generic_Formal): For a formal subprogram, the declaration is the
9286 grandparent of the entity.
9287 (Analyze_Formal_Interface_Type): Transform into a full type declaration,
9288 to simplify handling of formal interfaces that derive from other formal
9289 interfaces.
9290 (Instantiate_Subprogram_Body): The defining unit name of the body of
9291 the instance should be a defining identifier.
9292 (Install_Formal_Packages): make global to the package, for use in
9293 instantiations of child units.
9294 (Analyze_Package_Instantiation): Do not attempt to set information on an
9295 enclosing master of an entry when expansion is disabled.
9296 (Instantiate_Type): If the actual is a tagged synchronized type and the
9297 generic ancestor is an interface, create a generic actual for the
9298 corresponding record.
9299 (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
9300 declaration, to ensure that the interface list is processed correctly.
9301 (Inline_Instance_Body): If enclosing scope is an instance body, remove
9302 its entities from visibiility as well.
9303 (Pre_Analyze_Actuals): if the actual is an allocator with constraints
9304 given with a named association, analyze the expression only, not the
9305 discriminant association itself.
9306 (Reset_Entity): If the analysis of a selected component is transformed
9307 into an expanded name in the prefix of a call with parameters, do not
9308 transform the original node into an expanded name, to prevent visibility
9309 errors in the case of nested generics.
9310 (Check_Private_View): For an array type, check whether the index types
9311 may need exchanging.
9312
93132007-06-06 Arnaud Charlet <charlet@adacore.com>
9314 Vincent Celier <celier@adacore.com>
9315
9316 * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
9317 since both are separated.
9318 Add support for imported CIL packages.
9319 Add further special handling of "value_type" for CIL.
9320 Add special handling of pragma Import for CIL.
9321
9322 * make.ads, make.adb: When switch -eS is used, direct all outputs to
9323 standard output instead of standard error, except errors.
9324 (Absolute_Path): Use untouched casing for the parent directory.
9325 (Add_Library_Search_Dir): Use the untouched directory name.
9326 (Add_Source_Search_Dir): Idem.
9327 (Change_To_Object_Directory): Update output to use proper casing.
9328 (Create_Binder_Mapping_File): Use the untouched filename to set
9329 ALI_Name.
9330 (Gnatmake): Use untouched library and executable directory names.
9331 (Insert_Project_Sources): Use untouched filename for spec and body.
9332 (Is_In_Object_Directory): Use untouched object directory.
9333 (Mark_Directory): Idem.
9334 (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
9335 contains the non-canonical filename in all cases.
9336 (Change_To_Object_Directory): In verbose mode, display the name of the
9337 object directory we're changing to.
9338 (Compile_Sources): Make sure, when a project file is used, to compile
9339 the body of the unit, when there is one, even when only the spec is
9340 recorded in an ALI file.
9341 (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
9342 spec to the body.
9343 (Report_Compilation_Failed): New procedure
9344 (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
9345 procedures moved from the spec to the body.
9346 (Extract_Failure): Removed, not used
9347 Replace explicit raises of exception Bind_Failed and Link_Failed with
9348 calls to Make_Failed with the proper message.
9349 Replace explicit raises of exception Compilation_Failed with calls to
9350 procedure Report_Compilation_Failed.
9351 (Initialize): Create mapping files unconditionally when using project
9352 files.
9353
9354 * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
9355 Pragma_CIL_Constructor): New names.
9356
9357 * targparm.ads, targparm.adb
9358 (Compiler_System_Version): Removed, no longer used.
9359 (Get_Target_Parameters): Relax checks on system.ads validity. Add
9360 handling of two new system flags: JVM and CLI.
9361
93622007-06-06 Jose Ruiz <ruiz@adacore.com>
9363 Arnaud Charlet <charlet@adacore.com>
9364
9365 * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
9366 time, use the default s-interr body that provides interrupt support
9367 based on signals.
9368 (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
9369 a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
9370 g-soccon.ads, and s-taprop.adb for the marte run time.
9371 (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
9372 timers are supported on marte.
9373 (EH_MECHANISM for marte): Do not use ZCX.
9374 (THREADSLIB for marte): Use -lmarte.
9375 Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
9376 Add mlib-tgt-specific.o to gnatmake objects
9377 mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
9378 longer of MLib.Tgt.
9379 (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
9380 6, either kernel or rtp, use a specialized version of s-osinte.ads.
9381
93822007-06-06 Pascal Obry <obry@adacore.com>
9383
9384 * mkdir.c (__gnat_mkdir): Add support for UTF-8.
9385
93862007-06-06 Vincent Celier <celier@adacore.com>
9387
9388 * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
9389 separator, use instead the proper host directory separator.
9390 (Copy_ALI_Files): Make sure that an already existing ALI file in the
9391 ALI copy dir is writable, before doing the copy.
9392
9393 * mlib-utl.ads, mlib-utl.adb:
9394 (Gcc): If length of command line is too long, put the list of object
9395 files in a response file, if this is supported by the platform.
9396 (Ar): If invocation of the archive builder is allowed to be done in
9397 chunks and building it in one shot would go above an OS dependent
9398 limit on the number of characters on the command line, build the archive
9399 in chunks.
9400
94012007-06-06 Vincent Celier <celier@adacore.com>
9402
9403 * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
9404 of specified object file is not equal to base name of source.
9405
94062007-06-06 Javier Miranda <miranda@adacore.com>
9407 Hristian Kirtchev <kirtchev@adacore.com>
9408 Ed Schonberg <schonberg@adacore.com>
9409
9410 * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
9411 the full type declaration.
9412 (Analyze_Component_Declaration): Add local variable E to capture the
9413 initialization expression of the declaration. Replace the occurences of
9414 Expression (N) with E.
9415 (OK_For_Limited_Init_In_05): Allow initialization of class-wide
9416 limited interface object with a function call.
9417 (Array_Type_Declaration): If the declaration lacks subtype marks for
9418 indices, create a simple index list to prevent cascaded errors.
9419 (Is_Null_Extension): Ignore internal components created for secondary
9420 tags when checking whether a record extension is a null extension.
9421 (Check_Abstract_Interfaces): Add missing support for interface subtypes
9422 and generic formals.
9423 (Derived_Type_Declaration): Add missing support for interface subtypes
9424 and generic formals.
9425 (Analyze_Object_Declaration): If an initialization expression is
9426 present, traverse its subtree and mark all allocators as static
9427 coextensions.
9428 (Add_Interface_Tag_Component): When looking for components that may be
9429 secondary tags, ignore pragmas that can appear within a record
9430 declaration.
9431 (Check_Abstract_Overriding): an inherited function that dispatches on
9432 result does not need to be overriden if the controlling type is a null
9433 extension.
9434 (Mentions_T): Handle properly a 'class attribute in an anonymous access
9435 component declaration, when the prefix is an expanded name.
9436 (Inherit_Component): If the derivation is for a private extension,
9437 inherited components remain visible and their ekind should not be set
9438 to Void.
9439 (Find_Type_Of_Object): In the case of an access definition, always set
9440 Is_Local_Anonymous_Access. We were previously not marking the anonymous
9441 access type of a return object as a local anonymous type.
9442 (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
9443 range with character literal bounds.
9444 (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
9445 (Access_Subprogram_Declaration): Indicate that the type declaration
9446 depends on an incomplete type only if the incomplete type is declared
9447 in an open scope.
9448 (Analyze_Subtype_Declaration): Handle properly subtypes of
9449 synchronized types that are tagged, and that may appear as generic
9450 actuals.
9451 (Access_Subprogram_Declaration): An anonymous access to subprogram can
9452 appear as an access discriminant in a private type declaration.
9453 (Add_Interface_Tag_Components): Complete decoration of the component
9454 containing the tag of a secondary dispatch table and the component
9455 containing the offset to the base of the object (this latter component
9456 is only generated when the parent type has discriminants --as documented
9457 in this routine).
9458 (Inherit_Components): Use the new decoration of the tag components to
9459 improve the condition that avoids inheriting the components associated
9460 with secondary tags of the parent.
9461 (Build_Discriminanted_Subtype): Indicate to the backend that the
9462 size of record types associated with dispatch tables is known at
9463 compile time.
9464 (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
9465 (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
9466 to include task, protected, and synchronized interfaces as limited
9467 interfaces.
9468 (Process_Discriminants): Remove the setting of
9469 Is_Local_Anonymous_Access on the type of (anonymous) access
9470 discriminants of nonlimited types.
9471 (Analyze_Interface_Type_Declaration): Complete the decoration of the
9472 class-wide entity it is is already present. This situation occurs if
9473 the limited-view has been previously built.
9474 (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
9475 field.
9476 (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
9477 Related_Interface.
9478
94792007-06-06 Ed Schonberg <schonberg@adacore.com>
9480
9481 * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
9482 of the type that specify the position of interface tags when the type
9483 inherits discriminated array components from the parent type.
9484 If a component is initialized with a box, check for the presence of a
9485 default expression in its declaration before using its default
9486 initialization procedure.
9487 (Resolve_Record_Aggregate): If a component is box-initialized, and the
9488 component type has a discriminants, create a partial aggregate for it
9489 by copying the discriminants of the component subtype.
9490 Reject attempt to initialize a discriminant with a box.
9491 (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
9492 associated with dispatch tables is known at compile time.
9493 (Get_Value): If an association in a record aggregate has a box
9494 association, and the corresponding record component has a default
9495 expression, always copy the default expression, even when the
9496 association has a single choice, in order to create a proper
9497 association for the expanded aggregate.
9498
94992007-06-06 Ed Schonberg <schonberg@adacore.com>
9500 Robert Dewar <dewar@adacore.com>
9501
9502 * par-ch12.adb (P_Generic_Associations): The source position of an
9503 Others association is that of the others keyword, not that of the token
9504 that follows the box.
9505 (P_Formal_Type_Definition): Handle formal access types that carry a
9506 not null indicator.
9507
9508 * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
9509 multiple identifier are present, save Scan_State before scanning the
9510 colon, to ensure that separate trees are constructed for each
9511 declaration.
9512 (P_Identifier_Declarations): For object declaration, set new flag
9513 Has_Init_Expression if initialization expression present.
9514 (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
9515 Improve NOT NULL error messages
9516
95172007-06-06 Robert Dewar <dewar@adacore.com>
9518
9519 * par-ch4.adb: (P_Name): Recover from literal used as name
9520
95212007-06-06 Vincent Celier <celier@adacore.com>
9522
9523 * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
9524 defaulted to False.
9525 In the "not" case, recursive call with Complemented set to True.
9526 Do not allow "or" or "and" operators when Complemented is True.
9527
95282007-06-06 Vincent Celier <celier@adacore.com>
9529
9530 * prj.adb (Project_Empty): Gives default value for new component
9531 Libgnarl_Needed
9532
9533 * prj-attr.ads: Minor reformatting
9534
9535 * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
9536 directory using the untouched casing.
9537 (For_All_Source_Dirs): Idem.
9538
9539 * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
9540 directories specified with switches -aP.
9541 (Add_Search_Project_Directory): New procedure
9542 (Initialize_Project_Path): Put the directories in table
9543 Search_Directories in the project search path.
9544 (Initialize_Project_Path): For VMS, transform into canonical form the
9545 project path.
9546
95472007-06-06 Arnaud Charlet <charlet@adacore.com>
9548
9549 * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
9550 true if configurable run-time or No_Run_Time is set.
9551 (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
9552 processing an unit which is not the one being compiled.
9553
95542007-06-06 Arnaud Charlet <charlet@adacore.com>
9555
9556 * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
9557 Replace UC by Ada.UC
9558
9559 * s-bitops.adb: Get rid of System.Pure_Exceptions.
9560 Replace UC by Ada.UC
9561
95622007-06-06 Robert Dewar <dewar@adacore.com>
9563
9564 * scng.adb: (Check_End_Of_Line): Deal with very long lines
9565
95662007-06-06 Robert Dewar <dewar@adacore.com>
9567
9568 * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
9569 Remove no longer used nodes.
9570
95712007-06-06 Javier Miranda <miranda@adacore.com>
9572 Ed Schonberg <schonberg@adacore.com>
9573 Robert Dewar <dewar@adacore.com>
9574
9575 * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
9576 on obsolescent withed unit in case of limited-withed units.
9577 (Analyze_Compilation_Unit): Add guard to code that removed an
9578 instantiation from visibility, to prevent compiler aborts when
9579 instantiation is abandoned early on.
9580 (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
9581 current unit being analyzed, and Distinguish local incomplete types
9582 from limited views of types declared elsewhere.
9583 (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
9584 to state that the class-wide entity is shared by the limited-view
9585 and the full-view.
9586 (Analyze_With_Clause): Improve placement of flag for case of
9587 unimplemented unit.
9588 (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
9589 manner similar to GNAT.Current_Exception. This is a violation of
9590 restriction (No_Exception_Propagation), and also inhibits the
9591 optimization of local raise to goto.
9592 (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
9593 and if so set Most_Recent_Exception_Used flag in Opt, and also check
9594 for violation of restriction No_Exception_Propagation.
9595
95962007-06-06 Javier Miranda <miranda@adacore.com>
9597 Hristian Kirtchev <kirtchev@adacore.com>
9598 Gary Dismukes <dismukes@adacore.com>
9599
9600 * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
9601 use of entity Exception_Occurrence if it is not available in the
9602 target run-time.
9603
9604 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
9605 concurrent types are declared within an Ada 2005 generic, build their
9606 corresponding record types since they are needed for overriding-related
9607 semantic checks.
9608 (Analyze_Protected_Type): Rearrange and simplify code for testing that a
9609 protected type does not implement a task interface or a nonlimited
9610 interface.
9611 (Analyze_Task_Type): Rearrange and simplify code for testing that a task
9612 type does not implement a protected interface or a nonlimited interface.
9613 (Single_Task_Declaration, Single_Protected_Declaration): use original
9614 entity for variable declaration, to ensure that debugging information
9615 is correcty generated.
9616 (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
9617 routines if the expander is not active.
9618 (Analyze_Task_Body): Mark all handlers to stop optimization of local
9619 raise, since special things happen for task exception handlers.
9620
9621 * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
9622 concurrent types declared within a generic.
9623 (Check_Dispatching_Operation): Do not emit warning about late interface
9624 operations in the context of an instance.
9625 (Check_Dispatching_Call): Remove restriction against calling a
9626 dispatching operation with a limited controlling result.
9627 (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
9628 Register_Interface_DT_Entry by calls to Register_Primitive.
9629 (Check_Dispatching_Formals): Handle properly a function with a
9630 controlling access result.
9631
96322007-06-06 Robert Dewar <dewar@adacore.com>
9633 Arnaud Charlet <charlet@adacore.com>
9634
9635 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
9636 Check for restriction No_Implementation_Attributes if in Ada 95 mode.
9637 (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
9638 (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
9639 message when using a VM, since this attribute is not supported.
9640 (Analyze_Record_Representation_Clause): Give unrepped component warnings
9641
9642 * usage.adb: Add new warning for renaming of function return objects
9643 Indicate that -gnatwp and -gnatwP concern front-end inlining
9644 Add line for -gnatyg
9645 Add usage information for -gnatw.c/C
9646
96472007-06-06 Robert Dewar <dewar@adacore.com>
9648 Ed Schonberg <schonberg@adacore.com>
9649
9650 * sem_ch5.adb
9651 (Find_Var): Do not consider function call in test for infinite loop
9652 warning if warnings set off for function entity.
9653 (One_Bound): Do not create a temporary for a loop bound if it is a
9654 character literal.
9655 (Analyze_Assignment): Traverse the right hand side of an assignment and
9656 mark all allocators as static coextensions.
9657 (Analyze_Assignment): Exempt assignments involving a dispatching call
9658 to a function with a controlling access result from the check requiring
9659 the target to be class-wide.
9660
96612007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
9662 Ed Schonberg <schonberg@adacore.com>
9663 Robert Dewar <dewar@adacore.com>
9664 Javier Miranda <miranda@adacore.com>
9665
9666 * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
9667 chain of coextensions when an allocator serves as the root of such a
9668 chain.
9669 (Propagate_Coextensions): Remove the test for the root being an
9670 allocator.
9671 (Resolve_Allocator): Add condition to ensure that all future decoration
9672 occurs on an allocator node. Add processing and cleanup for static
9673 coextensions.
9674 (Valid_Conversion): If the operand type is the limited view of a
9675 class-wide type, use the non-limited view is available to determine
9676 legality of operation.
9677 (Ambiguous_Character): move to spec, for use elsewhere.
9678 (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
9679 (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
9680 character literals.
9681 (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
9682 Do_Division_Check flag explicitly.
9683 (Resolve_Actuals): If the actual is of a synchronized type, and the
9684 formal is of the corresponding record type, this is a call to a
9685 primitive operation of the type, that is declared outside of the type;
9686 the actual must be unchecked-converted to the type of the actual
9687 (Resolve_Call): Kill all current values for any subprogram call if
9688 flag Suppress_Value_Tracking_On_Call is set.
9689 (Resolve_Type_Conversion): Generate error message the the operand
9690 or target of interface conversions come from a limited view.
9691 (Check_Infinite_Recursion): Ignore generated calls
9692 (Check_Allocator_Discrim_Accessibility): New procedure for checking
9693 that an expression that constrains an access discriminant in an
9694 allocator does not denote an object with a deeper level than the
9695 allocator's access type.
9696 (Resolve_Allocator): In the case of an allocator initialized by an
9697 aggregate of a discriminated type, check that associations for any
9698 access discriminants satisfy accessibility requirements by calling
9699 Check_Allocator_Discrim_Accessibility.
9700 (Resolve_Equality_Op): Handle comparisons of anonymous access to
9701 subprogram types in the same fashion as other anonymous access types.
9702 (Resolve_Concatenation_Arg): Remove initial character '\' in an error
9703 message that is not a continuation message.
9704 (Resolve_Type_Conversion): Add missing support for conversion to
9705 interface type.
9706 (Resolve_Actuals): Introduce a transient scope around the call if an
9707 actual is a call to a function returning a limited type, because the
9708 resulting value must be finalized after the call.
9709 (Resolve_Actuals): If the call was given in prefix notations, check
9710 whether an implicit 'Access reference or implicit dereference must be
9711 added to make the actual conform to the controlling formal.
9712
97132007-06-06 Robert Dewar <dewar@adacore.com>
9714 Javier Miranda <miranda@adacore.com>
9715
9716 * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
9717 (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
9718 overriding of an inherited private subprogram now there is no need to
9719 inherit its dispatching slot and reduce the size of the dispatch table.
9720 Set_All_DT_Position now ensures that the same slot is now assigned to
9721 both entities. This is required to statically build the dispatch table.
9722 (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
9723 of calling Set_All_DT_Position to re-evaluate the position of the
9724 entries in the dispatch table. Such reevaluation is not desired if
9725 the tagged type is already frozen.
9726
97272007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
9728 Gary Dismukes <dismukes@adacore.com>
9729 Robert Dewar <dewar@adacore.com>
9730 Javier Miranda <miranda@adacore.com>
9731
9732 * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
9733 reference acts as an lvalue when the attribute name modifies the prefix
9734 (Is_Coextension_Root): New routine.
9735 (Mark_Static_Coextensions): New routine.
9736 (Type_Access_Level): Revise code for checking the level of the
9737 anonymous access type of a return object.
9738 (Safe_To_Capture_Value): Not safe to capture if Address_Taken
9739 (Matches_Prefixed_View_Profile): Remove the no longer necessary
9740 retrieval of the corresponding controlling record type.
9741 (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
9742 concurrent types declared within a generic as well as class wide types.
9743 Emit a mode incompatibility error whenever a protected entry or routine
9744 override an interface routine whose first parameter is not of mode
9745 "out", "in out" or access to variable.
9746 (Overrides_Synchronized_Primitive): Rename to
9747 Find_Overridden_Synchronized_Primitive.
9748 (Collect_Interface_Components): New subprogram that collects all the
9749 components of a tagged record containing tags of secondary dispatch
9750 tables.
9751 (Add_Global_Declaration): New procedure
9752 (Abstract_Interface_List): Handle properly the case of a subtype of a
9753 private extension.
9754 (Type_Access_Level): In the case of a type whose parent scope is a
9755 return statement, call Type_Access_Level recursively on the enclosing
9756 function's result type to determine the level of the return object's
9757 type.
9758 (Build_Elaboration_Entity): Build name of elaboration entity from the
9759 scope chain of the entity, rather than the unit name of the file name.
9760 (Check_Nested_Access): New procedure.
9761 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
9762 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
9763 (Get_Renamed_Entity): Utility routine for performing common operation
9764 of chasing the Renamed_Entity field of an entity.
9765
97662007-06-06 Robert Dewar <dewar@adacore.com>
9767
9768 * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
9769 elaboration model
9770 (Check_A_Call): Add check for entry call which was causing blowup
9771
97722007-06-06 Olivier Hainque <hainque@adacore.com>
9773
9774 * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
9775 special code on ia64-vms to handle major incompatibilities between the
9776 GCC unwinding ABI and the VMS Condition Handling Facility, both calling
9777 this routine with a very different set of arguments and expectations on
9778 the return value.
9779
97802007-06-06 Thomas Quinot <quinot@adacore.com>
9781
9782 * socket.c (__gnat_close_signalling_fd): New function.
9783 (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
9784 __gnat_safe_getservbyname, __gnat_safe_getservbyport):
9785 New supporting functions for task safe Netdb operations.
9786
97872007-06-06 Thomas Quinot <quinot@adacore.com>
9788 Olivier Hainque <hainque@adacore.com>
9789
9790 * a-except-2005.ads, a-except-2005.adb
9791 (Raise_From_Controlled_Operation): New procedure in
9792 (private part of) Ada.Exceptions (standard runtime version). Used to
9793 provide informational exception message when Program_Error is raised as
9794 a result of an Adjust or Finalize operation propagating an exception.
9795 (Rmsg_28): Fix description for E.4(18) check.
9796 (Raise_Current_Excep): Call Debug_Raise_Exception just before
9797 propagation starts, to let debuggers know about the event in a reliable
9798 fashion.
9799 Take the address of E and dereference to make sure it is homed on stack
9800 and prevent the stores from being deleted, necessary for proper
9801 debugger behavior on "break exception" hits.
9802 (Local_Raise): Moved to System.Exceptions
9803
9804 * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
9805 exception message from the current occurrence and raise Program_Error
9806 has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
9807
98082007-06-06 Jose Ruiz <ruiz@adacore.com>
9809 Arnaud Charlet <charlet@adacore.com>
9810
9811 * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
9812 lock, if needed.
9813
9814 * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
9815 priority associated to a lock.
9816
9817 * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
9818 assertion to take into account case of no abort restriction.
9819 (Initialize_Protection_Entries): Add initialization for the field
9820 New_Ceiling associated to the protected object.
9821 (Unlock_Entries): Change the ceiling priority of the underlying lock, if
9822 needed.
9823
9824 * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
9825 since this function needs to be set consistently with Update_Exception.
9826
9827 * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
9828 since this function needs to be set consistently with Update_Exception.
9829
9830 * s-taskin.ads: Update comments on
9831 Interrupt_Server_Blocked_On_Event_Flag.
9832 (Unbind_Handler): Fix handling of server_task wakeup
9833 (Server_Task): Set self's state so that Unbind_Handler can take
9834 appropriate actions.
9835 (Common_ATCB): Now use a constant from System.Parameters to determine
9836 the max size of the Task_Image field.
9837
9838 * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
9839 Initialize_Analyzer function.
9840 ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
9841 take into account case of no abort restriction.
9842 ([Vulnerable_]Complete_Master): Modify assertion.
9843
9844 * s-tataat.adb (Finalize): Use the nestable versions of
9845 Defer/Undefer_Abort.
9846
9847 * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
9848
9849 * s-tpobop.ads: Update comments.
9850
9851 * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
9852 of locking the object manually, to avoid inconsistencies between
9853 Lock/Unlock_Entry assertions.
9854
9855 * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
9856 terminating
9857 application and System.Parameters.No_Abort is True.
9858 Update comments on Interrupt_Server_Blocked_On_Event_Flag.
9859 (Unbind_Handler): Fix handling of server_task wakeup
9860 (Server_Task): Set self's state so that Unbind_Handler can take
9861 appropriate actions.
9862
98632007-06-06 Thomas Quinot <quinot@adacore.com>
9864
9865 * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
9866 declarations instead of an explicit null body, for conciseness.
9867
98682007-06-06 Robert Dewar <dewar@adacore.com>
9869
9870 * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
9871 illegal aggregate and the type is still Any_Composite.
9872 (Subtypes_Statically_Match): Fix problem of empty discriminant list
9873
98742007-06-06 Ed Schonberg <schonberg@adacore.com>
9875
9876 * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
9877 to prevent subsequent expansion.
9878
98792007-06-06 Robert Dewar <dewar@adacore.com>
9880
9881 * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
9882
98832007-06-06 Ed Schonberg <schonberg@adacore.com>
9884 Robert Dewar <dewar@adacore.com>
9885
9886 * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
9887 exceptions.
9888 (Write_Itype): Handle case of string literal subtype, which
9889 comes up in this context.
9890 (Update_Itype): when debugging expanded code, update sloc of itypes
9891 associated with defining_identifiers and ranges, for gdb use.
9892 (Sprint_Node_Actual): Add static keyword to object or exception
9893 declaration output if Is_Statically_Allocated is True.
9894 (Sprint_End_Label): Set entity of end marker for a subprogram, package,
9895 or task body, so that the tree carries the proper Sloc information for
9896 debugging use.
9897 (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
9898
98992007-06-06 Arnaud Charlet <charlet@adacore.com>
9900
9901 * s-secsta.adb (Chunk): Ensure this object has a static size known at
9902 compile time, to avoid dynamic memory allocation
9903 (Elaboration code): Only use dynamic memory allocation when needed.
9904
99052007-06-06 Quentin Ochem <ochem@adacore.com>
9906
9907 * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
9908 "Overflow_Guard".
9909 (Stack_Analyzer): Added field "Overflow_Guard"
9910 (Task_Result): Added field "Overflow_Guard".
9911 (Index_Str): New constant.
9912 (Task_Name_Str): New constant.
9913 (Actual_Size_Str): New constant.
9914 (Pattern_Array_Element_Size): New constant.
9915 (Get_Usage_Range): New subprogram.
9916 (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
9917 Now align the output.
9918 Added comments.
9919 (Initialize): Added value for Overflow_Guard.
9920 (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
9921 Update the value of the overflow guard according to the actual
9922 beginning of the pattern array.
9923 (Initialize_Analyzer): Added parameter Overflow_Guard.
9924 Take this parameter into accound when computing the max size.
9925 (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
9926 (Report_Result): Removed extra useless procedure.
9927 Updated call to Output_Result.
9928 Moved full computation of the Task_Result here.
9929
99302007-06-06 Thomas Quinot <quinot@adacore.com>
9931
9932 * g-soccon-darwin.ads, gen-soccon.c: Add new constant
9933 Thread_Blocking_IO, always True by default, set False on a per-runtime
9934 basis.
9935 Add Windows-specific constants
9936 Add new constant Need_Netdb_Buffer.
9937 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
9938 not, whether to use getXXXbyYYY_r.
9939
9940 * gsocket.h: Add new constant Need_Netdb_Buffer.
9941 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
9942 not, whether to use getXXXbyYYY_r.
9943
99442007-06-06 Eric Botcazou <ebotcazou@adacore.com>
9945
9946 * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
9947 than their first call.
9948 Add type Dummy_Communication_Block used in the generation of the pre-
9949 defined dispatching primitive _disp_asynchronous_select.
9950 (Storage_Element): Put Pragma Universal_Aliasing on it.
9951
99522007-06-06 Vincent Celier <celier@adacore.com>
9953
9954 * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
9955 function.
9956
9957 * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
9958 letter if it is not followed by a '/' or a '\'.
9959 (Windows): New Boolean function
9960
9961 * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
9962 Ada 2005.
9963 (Containing_Directory): On Windows, keep at least one '/' or '\' after a
9964 drive letter.
9965 (Containing_Directory): Raise Use_Error when the directory is a root
9966 directory.
9967 (Extension): When returning the result, use a conversion to Result_Type,
9968 not a qualification.
9969
99702007-06-06 Robert Dewar <dewar@adacore.com>
9971
9972 * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
9973 (Set_Style_Check_Options): Recognize new -gnatyg style switch
9974
9975 * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
9976 Warn_On_Non_Local_Exception to False, to turn off warnings for
9977 No_Exception_Propagation in ZFP runtime.
9978 (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
9979 back-ends.
9980 (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
9981
99822007-06-06 Vincent Celier <celier@adacore.com>
9983
9984 * switch-b.adb (Scan_Binder_Switches): Add processing for new
9985 switches -R and -Z
9986
9987 * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
9988 (Scan_Make_Switches): Recognize new switch -aP
9989
99902007-06-06 Matthew Gingell <gingell@adacore.com>
9991 Jose Ruiz <ruiz@adacore.com>
9992
9993 * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
9994 VxWorks task descriptor in the Ada run time, call a C subprogram
9995 (__gnat_get_stack_info) that extracts the required information.
9996
9997 * sysdep.c: Back out temporary lynxos workaround.
9998 (__gnat_get_stack_info): Add this procedure that passes to the Ada run
9999 time the stack information associated to the currently executing task.
10000 Only VxWorks systems require this function.
10001
100022007-06-06 Eric Botcazou <ebotcazou@adacore.com>
10003
10004 * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
10005 add the stack bias if the offset is computed from a frame address.
10006 (__gnat_backtrace): Adjust for above change.
10007
100082007-06-06 Thomas Quinot <quinot@adacore.com>
10009
10010 * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
10011 PE_Non_Transportable_Actual.
10012 (By_Descriptor_Last): New constant.
10013 (By_Copy_Return): Likewise.
10014
100152007-06-06 Vincent Celier <celier@adacore.com>
10016
10017 * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
10018 is.
10019
10020 * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
10021 /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
10022 /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
10023 Add missing comment for /OPTIMIZE=SPACE
10024 Add entry for OPTIMIZE=SPACE
10025 Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
10026 Add documentation for new qualifiers corresponding to -gnatw.c/.C
10027
100282007-06-06 Vincent Celier <celier@adacore.com>
10029 Robert Dewar <dewar@adacore.com>
10030
10031 * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
10032 -gnatw.C)
10033
10034 * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
10035 Document gnatbind switch -a
10036 (case Constructions): Document that variables declarations are allowed
10037 for previously declared variables.
10038 Fix external lib project example
10039 -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
10040 Indicate that "#if not X or Y then" is not allowed in input files to
10041 gnatprep.
10042 Document gnatw.x and gnatw.X warning flags
10043 Mention -Winline switch to activate warnings when back-end inlining is
10044 ineffective.
10045 Add gnatcheck rule descriptions
10046 Describe how to use the GNAT driver to call a tool on a closure.
10047 Describe how to run project-wide checks or metrics.
10048 Document gnatbind's -R option
10049 Updated to account for Ada 2005 support
10050
10051 * gnat_rm.texi (Case Construction): Allow variable declarations for
10052 previously declared variables.
10053 (Representation Clauses and Pragmas): Lift restriction on alignment
10054 clauses for record types.
10055 (Ada.Characters.*): Fix typo in reference to A.3.3(27).
10056 Document No_Exception_Propagation restriction
10057 Document No_Body pragma
10058 Updated to account for Ada 2005 support; corrected some typos
10059 (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
10060
10061 * gnat-style.texi: Make it clear that we never use mode IN for
10062 procedures or functions
10063
10064 * ug_words: Add entries for -gnatw.x and -gnatw.X
10065 Add entries for -gnatw.c/.C
10066
100672007-06-06 Pascal Obry <obry@adacore.com>
10068 Vincent Celier <celier@adacore.com>
10069
10070 * makegpr.adb (Add_Archive_Path): Use untouched object and library
10071 dirs and library name.
10072 (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
10073 comments.
10074 (Build_Library): Idem.
10075 (Compile_Individual_Sources): Idem.
10076 (Compile_Link_With_Gnatmake): Idem.
10077 (Compile_Sources): Idem.
10078 (Get_Imported_Directories): Idem.
10079 (Link_Executables): Idem. Same change for the executable dir.
10080 (Check_Compilation_Needed): C_Source_Path new variable containing
10081 the canonical form of Source_Path to check against the source names
10082 in the dependency file.
10083 (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
10084 verbose mode, display the name of the object directory we're changing
10085 to.
10086 (Saved_Switches): New name of table X_Switches
10087 (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
10088 (Usage): New line for switch -aP
10089 (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
10090 testing if a directory should be added to the search path.
10091
100922007-06-06 Javier Miranda <miranda@adacore.com>
10093
10094 * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
10095 a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
10096 declaration after freezing point of all its associated tagged types;
10097 otherwise such types are frozen too early.
10098
100992007-06-06 Robert Dewar <dewar@adacore.com>
10100
10101 * a-reatim.adb: Documentation addition
10102
10103 * g-cgideb.adb: Minor code reorganization
10104
10105 * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
10106 mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
10107 s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
10108
10109 * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
10110 function. Change name New_Scope to Push_Scope
10111 (Get_Debug_Flag_K): Remove unused obsolete function.
10112
10113 * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
10114 Push_Scope.
10115
10116 * makeusg.adb: Update Copyright notice
10117 Add line for switch -aP
10118
10119 * makeusg.adb: Fix wording of some usage messages
10120
10121 * s-assert.adb (Raise_Assert_Failure): Add call to
10122 Debug_Raise_Assert_Failure.
10123
10124 * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
10125 (2, Standard'Alignment) for compatibility with AAMP (where alignment
10126 is restricted to 1).
10127
10128 * s-wchjis.adb: Remove use of System.Pure_Exceptions
10129
10130 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
10131 node location to No_Location when we're not debugging the expanded
10132 code.
10133
dbc30a96
AO
101342007-05-22 Alexandre Oliva <aoliva@redhat.com>
10135
10136 * misc.c (enumerate_modes): Consider log2_b to always be one.
10137
ca5ba2a3
RAE
101382007-05-14 Rafael Avila de Espindola <espindola@google.com>
10139
10140 * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
10141
d7598e11
PO
101422007-05-02 Pascal Obry <obry@adacore.com>
10143
10144 * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
10145 to use Stream_IO.File_Type. This is needed to make use of the UTF-8
10146 encoding support of Stream_IO.
10147 (Write_Unit): Idem.
10148
10149 * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
10150 filename and corresponding encoding to match the OS requirement.
10151 (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
10152 routine will fail on specific devices like CON: AUX: ...
10153
10154 PR ada/29856: Add missing braces
10155
1be52f61
AP
101562007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
10157
10158 PR ada/31660
10159 * ada-tree.h (lang_tree_node): Fix typo in chain_next.
10160
395a40e0
JH
101612007-04-21 Jan Hubicka <jh@suse.cz>
10162
10163 * misc.c (gnat_expand_body): Don't call target for destructors,
10164 avoid redundant check on syntax errors.
10165
3d95caa4
AP
101662007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
10167
10168 * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
10169 instead of checking GIMPLE_STMT_P in chain_next.
10170
ea30850a
AK
101712007-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
10172
10173 PR ada/31576
10174 * system-linux-alpha.ads: Disable constant condition warning for the
10175 Default_Bit_Order variable.
10176 * system-linux-s390.ads: Likewise.
10177 * system-linux-s390x.ads: Likewise.
10178 * system-linux-sparc.ads: Likewise.
10179
4b437c6b
AC
101802007-04-06 Javier Miranda <miranda@adacore.com>
10181 Matt Heaney <heaney@adacore.com>
10182 Robert Dewar <dewar@adacore.com>
10183
10184 a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
10185 a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
10186 a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
10187 a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
10188 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
10189 a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
10190 a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
10191 a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
10192 a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
10193 a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
10194 a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
10195 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
10196 a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
10197 a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
10198 a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
10199 a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
10200 a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
10201 i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
10202 unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
10203 a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
10204 a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
10205 a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
10206 expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
10207 s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
10208 s-taprop-tru64.adb, s-taprop-irix.adb,
10209 s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
10210 s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
10211 s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
10212 s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
10213 s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
10214 a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
10215 a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
10216 g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
10217 s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
10218 s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
10219 s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
10220 s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
10221 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
10222 s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
10223 a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
10224 a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
10225 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
10226 a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
10227 a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
10228 a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
10229 access types.
10230 Update documentation.
10231 Minor rewording.
10232
102332007-04-06 Robert Dewar <dewar@adacore.com>
10234
10235 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
10236 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
10237 system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
10238 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
10239 system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
10240 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
10241 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
10242 system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
10243 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
10244 system-hpux-ia64.ads, targparm.adb,
10245 targparm.ads (Functions_Return_By_DSP_On_Target): Removed
10246
10247 * system.ads: Move Functions_Return_By_DSP to obsolete section,
10248 kept for bootstrap purposes only.
10249
102502007-04-06 Arnaud Charlet <charlet@adacore.com>
10251
10252 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
10253 s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
10254 s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
10255 (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
10256
102572007-04-06 Robert Dewar <dewar@adacore.com>
10258
10259 * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
10260 (Local_Raise): New dummy procedure called when a raise is converted
10261 to a local goto. Used for debugger to detect that the exception
10262 is raised.
10263
10264 * debug.adb: Document new d.g flag (expand local raise statements to
10265 gotos even if pragma Restriction (No_Exception_Propagation) is not set)
10266
10267 * exp_sel.adb: Use Make_Implicit_Exception_Handler
10268
10269 * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
10270 suppress warnings for unused handlers.
10271 (Warn_If_No_Propagation): Use new flag -gnatw.x to suppress
10272 warnings for raise statements not handled locally.
10273 (Get_RT_Exception_Entity): New function
10274 (Get_Local_Call_Entity): New function
10275 (Find_Local_Handler): New function
10276 (Warn_If_No_Propagation): New procedure
10277 (Expand_At_End_Handler): Call Make_Implicit_Handler
10278 (Expand_Exception_Handlers): Major additions to deal with local handlers
10279 (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
10280 Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
10281 for local raise
10282
10283 * exp_ch11.ads (Get_RT_Exception_Entity): New function
10284 (Get_Local_Call_Entity): New function
10285
10286 * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
10287 of restrictions that the binder will never suggest adding.
10288
10289 * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
10290 to No_Elist.
10291
10292 * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
10293 be with'ed in the presence of pragma Restriction
10294 (No_Exception_Propagation).
10295
10296 * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
10297
10298 * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
10299 parameter, then the handler is not a suitable target for a local raise,
10300 and this is a violation of restriction No_Exception_Propagation.
10301 (Analyze_Handled_Statements): Analyze choice parameters in exception
10302 handlers before analyzing statement sequence (needed for proper
10303 detection of local raise statements).
10304 (Analyze_Raise_Statement): Reraise statement is a violation of the
10305 No_Exception_Propagation restriction.
10306
10307 * s-rident.ads: Add new restriction No_Exception_Propagation
10308
10309 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
10310 function, like Make_Exception_Handler but sets Local_Raise_Statements
10311 to No_List.
10312 (Add_Unique_Serial_Number): Deal with case where this is called during
10313 processing of configuration pragmas.
10314
103152007-04-06 Thomas Quinot <quinot@adacore.com>
10316 Pat Rogers <rogers@adacore.com>
10317 Pascal Obry <obry@adacore.com>
10318
10319 * g-stsifd-sockets.adb: New file.
10320
10321 * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
10322 g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
10323 g-socthi-vms.adb: Move signalling
10324 fd management to a nested package, so that they can conveniently be
10325 moved to a subunit that is shared across Windows, VMS, and VxWorks
10326 (Ada implementation) or completed with imported bodies from socket.c
10327 (UNIX case).
10328 (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
10329 subprograms.
10330 (Check_Selector): Use Read_Signalling_Fd to read and discard data from
10331 the signalling file descriptor.
10332 (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
10333 signalling file descriptor.
10334 (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
10335 instead of creating a pair of sockets for signalling here.
10336
10337 * g-socthi.adb: Ditto.
10338 Set the runtime process to ignore SIGPIPEs on platforms that support
10339 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
10340
10341 * g-socthi-mingw.adb: Ditto.
10342 (WS_Version): Use Windows 2.2.
10343 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
10344
10345 * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
10346 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
10347
10348 * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
10349 added GNAT byte swapping facility
10350 Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
10351
10352 * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
10353
10354 * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
10355 New subprograms.
10356 (__gnat_create_signalling_fds): New subprogram.
10357 Set the runtime process to ignore SIGPIPEs on platforms that support
10358 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
10359
103602007-04-06 Hristian Kirtchev <kirtchev@adacore.com>
10361 Vincent Celier <celier@adacore.com>
10362
10363 * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
10364 New version of Ada.Calendar which supports the new upper bound of Ada
10365 time (2399-12-31 86_399.999999999).
10366 The following modifications have been made to the package:
10367 - New representation of time as count of nanoseconds since the start of
10368 Ada time (1901-1-1 0.0).
10369 - Target independent Split and Time_Of routines which service both
10370 Ada 95 and Ada 2005 code.
10371 - Target independent interface to the Ada 2005 children of Calendar.
10372 - Integrated leap seconds into Ada 95 and Ada 2005 mode.
10373 - Handling of non-leap centenial years.
10374 - Updated clock function.
10375 - Updated arithmetic and comparison operators.
10376
10377 * a-caldel.adb (To_Duration): Add call to target independent routine in
10378 Ada.Calendar to handle the conversion of time to duration.
10379
10380 * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
10381 (UTC Offset).
10382 If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
10383 set off to 0.
10384 (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
10385 targets do not have a natural time zone, GMT is used as a default.
10386 (__gnat_get_task_options): New.
10387
10388 * a-direct.adb (Modification_Time): Add with and use clauses for
10389 Ada.Calendar and Ada.
10390 Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
10391 since it is no longer needed.
10392 (Duration_To_Time): Removed.
10393 (OS_Time_To_Long_Integer): Removed.
10394 (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
10395 Formatting Time_Of routines which automatically handle time zones,
10396 buffer periods and leap seconds.
10397
10398 * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
10399 target independent routines in Ada.Calendar.
10400
10401 * a-calfor.ads, a-calfor.adb:
10402 Code cleanup and addition of validity checks in various routines.
10403 (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
10404 Ada.Calendar.
10405
10406 * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
10407 independent routine in Ada.Calendar.
10408
104092007-04-06 Olivier Hainque <hainque@adacore.com>
10410
10411 * adaint.c:
10412 (convert_addresses): Adjust prototype and dummy definition to expect an
10413 extra file_name argument.
10414
10415 * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
10416 filling the now expected file_name argument with the appropriate
10417 argv[0] expansion.
10418 (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
10419 (tracebk): Array of void * instead of char *, corresponding to what
10420 convert_addresses expects.
10421 (exename): New static global, to hold the executable file name to be
10422 used in all convert_addresses invocations.
10423 (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
10424 change.
10425 (__gnat_gmem_a2l_initialize): Resolve exename.
10426 (__gnat_convert_addresses): Use exename as the convert_addresses
10427 file_name argument.
10428
10429 * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
10430 "convert_addresses", now expecting a filename argument. Import the
10431 necessary entities to compute the filename to use and pass it to
10432 convert_addresses.
10433
104342007-04-06 Matt Gingell <gingell@adacore.com>
10435
10436 * system-aix.ads: Back out previous change.
10437 (Functions_Return_By_DSP): Removed
10438
104392007-04-06 Pascal Obry <obry@adacore.com>
10440
10441 * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
10442 or the monotonic used by Ada.Real_Time) to compute the sleep duration
10443 on Windows.
10444
104452007-04-06 Jose Ruiz <ruiz@adacore.com>
10446
10447 * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
10448 function. Its value changes in different VxWorks versions, and it is
10449 now handled by the function __gnat_get_task_options.
10450
10451 * s-taprop-vxworks.adb (Create_Task): Call the function
10452 __gnat_get_task_options to get the required options for creating a task.
10453
104542007-04-06 Pascal Obry <obry@adacore.com>
10455 Thomas Quinot <quinot@adacore.com>
10456
10457 * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
10458 dealing with filename.
10459 (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
10460 filename from a standard string to a wide-string depending on the
10461 encoding value.
10462 (__gnat_freopen): Idem.
10463 (__gnat_current_time): New function (wrapper for time(3) standard C
10464 function).
10465
10466 * g-os_lib.ads (Current_Time): New function. Returns the current
10467 system time as an OS_Time value.
10468
10469 * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
10470 (Monotonic_Clock): Same.
10471
104722007-04-06 Quentin Ochem <ochem@adacore.com>
10473
10474 * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
10475 not on a natural.
10476 (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
10477
104782007-04-06 Jose Ruiz <ruiz@adacore.com>
10479
10480 * a-retide.adb: Add elaboration code to ensure that the tasking run
10481 time is initialized when using delay operations even when no task is
10482 created.
10483
104842007-04-06 Javier Miranda <miranda@adacore.com>
10485
10486 * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
10487 component Num_Prim_Ops.
10488 (Set_Num_Prim_Ops): Removed.
10489 Remove all the assertions because all the routines of this
10490 package are inline always.
10491 (Get_Offset_Index): Add support to primary dispatch tables.
10492 Move the documentation about the dispatch table to a-tags.ads
10493 (Set_External_Tag): Removed
10494 (Inherit_TSD): Removed.
10495 (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
10496 moved to a-tags.ads
10497 (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
10498 Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
10499 of the TSD field "Table" because this field has been renamed to
10500 "Ifaces_Table".
10501 (Inherit_CPP_DT): Removed.
10502 (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
10503 Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
10504 declarations have been moved to a-tags.ads
10505 (Check_Size): Removed.
10506 (Expanded_Name): Updated to get access to the new field of TSD
10507 containing the address of the expanded name.
10508 (Get_Access_Level/Set_Access_Level): Removed.
10509 (Get_Predefined_Prim_Op_Address): Removed.
10510 (Set_Predefined_Prim_Op_Address): Removed.
10511 (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
10512 (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
10513 (Set_Expanded_Name): Removed.
10514 (Inherit_DT): Removed.
10515 (Inherit_CPP_DT): Removed.
10516 (Set_RC_Offset): Removed.
10517 (Set_TSD): Removed.
10518 (Base_Address): New function that displaces "this" to point to the base
10519 of the object (that is, to point to the primary tag of the object).
10520
105212007-04-06 Ed Schonberg <schonberg@adacore.com>
10522 Javier Miranda <miranda@adacore.com>
10523
10524 * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
10525 anonymous access component, do not create a master_id if type already
10526 has one, as may happen if the type is a subcomponent of a packed array
10527 type.
10528 (Build_Init_Procedure, Component_Needs_Simple_Initialization,
10529 Initialize_Tag): Remove code associated with the old CPP pragmas.
10530 CPP_Virtual and CPP_Vtable are no longer supported.
10531 (Build_Offset_To_Top_Internal): Add support for concurrent record types
10532 (Build_Offset_To_Top_Functions): Add support for concurrent record types
10533 (Freeze_Record_Type): Remove call to
10534 Init_Predefined_Interface_Primitives.
10535 (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
10536 code required to initialize the tags of the secondary dispatch tables.
10537 This leaves the algoritm more clear.
10538 (Init_Secondary_Tags): Add support for concurrent record types
10539 (Make_Predefined_Primitive_Specs): Code cleanup.
10540 (Predefined_Primitive_Bodies): Code cleanup.
10541 (Build_Master_Renaming): New local subprogram.
10542 (Expand_N_Full_Type_Declaration): Build the master_id associated with
10543 anonymous access to task type components.
10544 (Expand_N_Subtype_Indication): The bounds of a range constraint in a
10545 subtype indication are resolved during analysis, and must not be done
10546 here.
10547 (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
10548
105492007-04-06 Geert Bosch <bosch@adacore.com>
10550 Ed Schonberg <schonberg@adacore.com>
10551 Javier Miranda <miranda@adacore.com>
10552 Bob Duff <duff@adacore.com>
10553
10554 * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
10555 for conversion of a Float_Type'Truncation to integer.
10556
10557 * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
10558 check if a node is an attribute that can be handled directly by the
10559 back end.
10560 (Expand_N_Attribute_Reference): Suppress expansion of floating-point
10561 attributes that can be handled directly by the back end.
10562 (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
10563 use new predicate Is_Access_Protected_Subprogram_Type.
10564 (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
10565 and Unchecked_Union if it is generated as part of the default Output
10566 procedure for a type with default discriminants.
10567 (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
10568 if we are compiling under restriction No_Dispatching_Calls.
10569 (Constrained): Use Underlying_Type, in case the type is private without
10570 discriminants, but the full type has discriminants.
10571 (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
10572 call to Build_Get_Access_Level.
10573 (Expand_N_Attribute_Reference): The use of 'Address with class-wide
10574 interface objects requires a call to the run-time subprogram that
10575 returns the base address of the object.
10576 (Valid_Conversion): Improve error message on illegal attempt to store
10577 an anonymous access to subprogram value into a record component.
10578
10579 * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
10580 null".
10581 (Simplify_Type_Conversion): New procedure that performs simplification
10582 of Int_Type (Float_Type'Truncation (X)).
10583 (Resolve_Type_Conversion): Call above procedure after resolving operand
10584 and before performing checks. This replaces the existing ineffective
10585 code in Exp_Ch4.
10586 (Set_String_Literal_Subtype): When creating the internal static lower
10587 bound subtype for a string literal, use a newly created copy of the
10588 subtree representing the lower bound.
10589 (Resolve_Call): Exclude build-in-place function calls from transient
10590 scope treatment. Update comments to describe this exception.
10591 (Resolve_Equality_Op): In case of dispatching call check violation of
10592 restriction No_Dispatching_Calls.
10593 (Resolve_Call): If the call returns an array, the context imposes the
10594 component type of the array, and the function has one non-defaulted
10595 parameter, rewrite the call as the indexing of a call with a single
10596 parameter, to handle an Ada 2005 syntactic ambiguity for calls written
10597 in prefix form.
10598 (Resolve_Actuals): If an actual is an allocator for an access parameter,
10599 the master of the created object is the innermost enclosing statement.
10600 (Remove_Conversions): For a binary operator, check if type of second
10601 formal is numeric, to check if an abstract interpretation is present
10602 in the case of exponentiation as well.
10603
106042007-04-06 Ed Schonberg <schonberg@adacore.com>
10605 Bob Duff <duff@adacore.com>
10606
10607 * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
10608 copying a parameter list in a call, set properly the First_Named_Formal
10609 and Next_Named_Formal fields in the new list and in the enclosing call.
10610 (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
10611 names, to ease typing in the debugger. Improve comments.
10612 (Watch_Node): New variable, intended to be set in the debugger.
10613 (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
10614 called when the watched node is created.
10615 (New_Node_Debugging_Output): Combined version of local procedures
10616 New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
10617 with a parameter so that conditional breakpoints like "if Node = 12345"
10618 work.
10619 (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
10620 Add Elist1 function
10621
106222007-04-06 Thomas Quinot <quinot@adacore.com>
10623 Ed Schonberg <schonberg@adacore.com>
10624 Gary Dismukes <dismukes@adacore.com>
10625
10626 * checks.ads, checks.adb (Selected_Range_Checks): No range check is
10627 required for a conversion between two access-to-unconstrained-array
10628 types.
10629 (Expr_Known_Valid): Validity checks do not apply to discriminants, but
10630 to discriminant constraints on discriminant objects. This rule must
10631 apply as well to discriminants of protected types in private components.
10632 (Null_Exclusion_Static_Checks): If No_Initialization is set on an
10633 object of a null-excluding access type then don't require the
10634 the object declaration to have an expression and don't emit a
10635 run-time check.
10636
106372007-04-06 Arnaud Charlet <charlet@adacore.com>
9e94c78f 10638 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
10639
10640 * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
10641 and made constant.
10642
10643 * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
10644 Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
10645 carry any.
10646
10647 * fe.h (Compiler_Abort): Add third parameter.
10648
10649 * misc.c (internal_error_function): Build third argument from current
10650 input location and pass it to Compiler_Abort.
10651
106522007-04-06 Gary Dismukes <dismukes@adacore.com>
10653
10654 * cstand.adb (Create_Standard): When the target's storage unit size is
10655 greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
10656 Standard_String.
10657
106582007-04-06 Nicolas Roche <roche@adacore.com>
10659
10660 * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
10661 absolute path can have the following form: device:/a/b. In this case
10662 '/' should be inserted between the path and the filename.
10663
106642007-04-06 Olivier Hainque <hainque@adacore.com>
9e94c78f 10665 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
10666
10667 * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
10668 VAR_DECL to a CONST_DECL we make for a public constant when we know the
10669 corresponding definition has created the so made visible variable.
10670 Handle anonymous access to protected subprogram.
10671 (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
10672 object with an address clause volatile. Re-enable original fix.
10673 <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
10674 too.
10675 (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
10676 associated with either the Equivalent or Root type, instead of the
10677 naked type node.
10678 (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
10679 subtree for every field of a global record type.
10680 (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
10681 discriminants, invoke again variable_size on its newly computed sizes.
10682
106832007-04-06 Robert Dewar <dewar@adacore.com>
10684 Thomas Quinot <quinot@adacore.com>
10685 Ed Schonberg <schonberg@adacore.com>
10686 Bob Duff <duff@adacore.com>
10687
10688 * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
10689 (Next_Component_Or_Discriminant): New function and procedure
10690 (First_Index, First_Literal, Master_Id,
10691 Set_First_Index, Set_First_Literal, Set_Master_Id):
10692 Add missing Ekind assertions.
10693 (Is_Access_Protected_Subprogram_Type): New predicate.
10694 (Has_RACW): New entity flag, set on package entities to indicate that
10695 the package contains the declaration of a remote accecss-to-classwide
10696 type.
10697 (E_Return_Statement): This node type has the Finalization_Chain_Entity
10698 attribute, in case the result type has controlled parts.
10699 (Requires_Overriding): Add this new flag, because "requires
10700 overriding" is subtly different from "is abstract" (see AI-228).
10701 (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
10702 Is_Abstract_Type. Make sure these are called only when appropriate.
10703 (Has_Pragma_Unreferenced_Objects): New flag
10704
10705 * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
10706 class-wide, the tag of the right-hand side must be an exact match, not
10707 an ancestor of that of the object on left-hand side.
10708 (Move_Activation_Chain): New procedure to create the call to
10709 System.Tasking.Stages.Move_Activation_Chain.
10710 (Expand_N_Extended_Return_Statement): Generate code to call
10711 System.Finalization_Implementation.Move_Final_List at the end of a
10712 return statement if the function's result type has controlled parts.
10713 Move asserts to Build_In_Place_Formal.
10714 (Move_Final_List): New function to create the call statement.
10715 (Expand_N_Assignment_Statement): In case of assignment to a class-wide
10716 tagged type, replace generation of call to the run-time subprogram
10717 CW_Membership by call to Build_CW_Membership.
10718 (Expand_N_Return_Statement): Replace generation of call to the run-time
10719 subprogram Get_Access_Level by call to Build_Get_Access_Level.
10720 (Expand_N_Simple_Function_Return): Replace generation of call to the
10721 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
10722
10723 * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
10724 Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
10725 access to protected operations.
10726 (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
10727 master and chain actual parameters to a build-in-place function call
10728 involving tasks.
10729 (BIP_Formal_Suffix): Add new enumeration literals to complete the case
10730 statement.
10731 (Make_Build_In_Place_Call_In_Allocator,
10732 Make_Build_In_Place_Call_In_Anonymous_Context,
10733 Make_Build_In_Place_Call_In_Assignment,
10734 Make_Build_In_Place_Call_In_Object_Declaration): Call
10735 Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
10736 (Expand_Inlined_Call): If the subprogram is a null procedure, or a
10737 stubbed procedure with a null body, replace the call with a null
10738 statement without using the full inlining machinery, for efficiency
10739 and to avoid invalid values in source file table entries.
10740
10741 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
10742 renamings of calls to build-in-place functions.
10743
10744 * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
10745 provides the functionality of RTE_Available to record components.
10746 (RTU_Entity): The function Entity has been renamed to RTU_Entity
10747 to avoid undesired overloading.
10748 (Entity): New subprogram that returns the entity for the referened
10749 unit. If this unit has not been loaded, it returns Empty.
10750 (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
10751 Remove no longer used entities.
10752 (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
10753 (RE_Type_Specific_Data): New entity.
10754 (RE_Move_Any_Value): New entity.
10755 (RE_TA_A, RE_Get_Any_Type): New entities.
10756 (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
10757 RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
10758 RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
10759 (Entity): New subprogram that returns the entity for the referened
10760 unit. If this unit has not been loaded, it returns Empty.
10761 (RTE): Addition of a new formal that extends the search to the scopes
10762 of the record types found in the chain of the package.
10763
10764 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
10765 "abstract subprograms must be visible" message, whether or not the type
10766 is an interface; that is, remove the special case for interface types.
10767 (Analyze_Function_Return): Remove error message "return of task objects
10768 is not yet implemented" because this is now implemented.
10769 (Create_Extra_Formals): Add the extra master and activation chain
10770 formals in case the result type has tasks.
10771 Remove error message "return of limited controlled objects is not yet
10772 implemented".
10773 (Create_Extra_Formals): Add the extra caller's finalization list formal
10774 in case the result type has controlled parts.
10775 (Process_Formals): In case of access formal types there is no need
10776 to continue with the analysis of the formals if we already notified
10777 errors.
10778 (Check_Overriding_Indicator): Add code to check overriding of predefined
10779 operators.
10780 (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
10781 flags for formals that do not require them,.
10782 (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
10783 hidden entity is use visible or directly visible.
10784 (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
10785 Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
10786 Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
10787 New_Overloaded_Entity): Split Is_Abstract flag into
10788 Is_Abstract_Subprogram and Is_Abstract_Type.
10789
10790 * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
10791 a return statement's finalization list to the caller's list, used for
10792 build-in-place functions with result type with controlled parts.
10793 Remove no longer used entities.
10794
10795 * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
10796 longer needed, because the full type is now limited, and therefore a
10797 pass-by-reference type.
10798 (Foreign_Task_Level): New constant.
10799
10800 * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
10801 move tasks from the activation chain belonging to a return statement to
10802 the one passed in by the caller, and update the master to the one
10803 passed in by the caller.
10804 (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
10805 of unactivated tasks, so we don't kill the ones that are being returned
10806 by a build-in-place function.
10807 (Create_Task): Ignore AI-280 for foreign threads.
10808
108092007-04-06 Ed Schonberg <schonberg@adacore.com>
10810 Robert Dewar <dewar@adacore.com>
10811 Bob Duff <duff@adacore.com>
10812 Gary Dismukes <dismukes@adacore.com>
10813
10814 * errout.adb (Unwind_Internal_Type): Use predicate
10815 Is_Access__Protected_Subprogram_Type.
10816
10817 * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
10818 (Freeze_Entity, packed array case): Do not override explicitly set
10819 alignment and size clauses.
10820 (Freeze_Entity): An entity declared in an outer scope can be frozen if
10821 the enclosing subprogram is a child unit body that acts as a spec.
10822 (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
10823 (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
10824 Remove all code for DSP option
10825
10826 * layout.adb (Layout_Record_Type): Use First/
10827 Next_Component_Or_Discriminant
10828 (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
10829 to handle properly the anonymous access case.
10830
10831 * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
10832 for all access attributes, because overload resolution should work the
10833 same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
10834 causes the error message for the ambiguous "X'Access = Y'Access" and
10835 "X'Unrestricted_Access = Y'Access" and so forth to match.
10836 (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
10837 now that anonymous access to protected operations have their own kind.
10838 (Resolve_Attribute): In case of dispatching call check the violation of
10839 restriction No_Dispatching_Calls.
10840 (Check_Array_Type): Check new -gnatyA array index style option
10841
10842 * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
10843 attempt to derive from a synchronized tagged type.
10844 (Analyze_Type_Declaration): If there is a incomplete tagged view of the
10845 type, inherit the class-wide type already created, because it may
10846 already have been used in a self-referential anonymous access component.
10847 (Mentions_T): Recognize self-referential anonymous access components
10848 that use (a subtype of) the class-wide type of the enclosing type.
10849 (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
10850 Derived_Type for Prev formal on call to
10851 Check_Anonymous_Access_Components rather than Empty.
10852 (Make_Incomplete_Type_Declaration): Add test for case where the type has
10853 a record extension in deciding whether to create a class-wide type,
10854 rather than just checking Tagged_Present.
10855 (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
10856 to stand-alone object declarations as well as component declarations.
10857 (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
10858 prevent accidental overwriting when enclosing package appears in
10859 a limited_with_clause.
10860 (Array_Type_Declaration): If the component type is an anonymous access,
10861 the associated_node for the itype is the type declaration itself.
10862 (Add_Interface_Tag_Components): Modified to support concurrent
10863 types with abstract interfaces.
10864 (Check_Abstract_Interfaces): New subprogram that verifies the ARM
10865 rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
10866 (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
10867 to complete the decoration of synchronized interface types. Add also
10868 a call to Check_Abstract_Interfaces to verify the ARM rules.
10869 (Derive_Interface_Subprograms): Modified to support concurrent types
10870 with abstract interfaces.
10871 (Analyze_Subtype_Indication): Resolve the range with the given subtype
10872 mark, rather than delaying the full resolution depending on context.
10873 (Analyze_Component_Declaration,Analyze_Interface_Declaration,
10874 Analyze_Object_Declaration,Analyze_Subtype_Declaration,
10875 Array_Type_Declaration,Build_Derived_Record_Type,
10876 Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
10877 Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
10878 Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
10879 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
10880 called only when appropriate.
10881 (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
10882 to private type.
10883 (Analyze_Subtype_Declaration): For an access subtype declaration, create
10884 an itype reference for the anonymous designated subtype, to prevent
10885 scope anonmalies in gigi.
10886 (Build_Itype_Reference): New utility, to simplify construction of such
10887 references.
10888
108892007-04-06 Vincent Celier <celier@adacore.com>
10890
10891 * errutil.adb (Initialize): Initialize warnings table, if all warnings
10892 are suppressed, supply an initial dummy entry covering all possible
10893 source locations.
10894
10895 * make.adb (Scan_Make_Arg): Reject options that should start with "--"
10896 and start with only one, such as "-RTS=none".
10897 (Collect_Arguments): Do not check for sources outside of projects.
10898 Do not collect arguments if project is externally built.
10899 (Compile_Sources): Do nothing, not even check if the source is up to
10900 date, if its project is externally built.
10901 (Compile): When compiling a predefined source, add -gnatpg
10902 as the second switch, after -c.
10903 (Compile_Sources): Allow compilation of Annex J renames without -a
10904 (Is_In_Object_Directory): Check if the ALI file is in the object
10905 even if there is no project extension.
10906 (Create_Binder_Mapping_File): Only put a unit in the mapping file for
10907 gnatbind if the ALI file effectively exists.
10908 (Initialize): Add the directory where gnatmake is invoked in front of
10909 the path if it is invoked from a bin directory, even without directory
10910 information, so that the correct GNAT tools will be used when spawned
10911 without directory information.
10912
10913 * makeusg.adb: Change switch -S to -eS
10914 Add lines for new switches -we, -wn and -ws
10915 Add line for new switch -p
10916
10917 * prj-proc.adb (Process): Set Success to False when Warning_Mode is
10918 Treat_As_Error and there are warnings.
10919
10920 * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
10921 -gnatww Change gnatmake switch -S to -eS
10922 (Scan_Make_Switches): Code reorganisation. Process separately multi
10923 character switches and single character switches.
10924 (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
10925 False when switch is not recognized by gnatmake.
10926 (Scan_Make_Switches): Set Setup_Projects True when -p or
10927 --create-missing-dirs is specified.
10928
10929 * fname.adb (Is_Predefined_File_Name): Return True for annex J
10930 renamings Calendar, Machine_Code, Unchecked_Conversion and
10931 Unchecked_Deallocation only when Renamings_Included is True.
10932
10933 * par.adb: Allow library units Calendar, Machine_Code,
10934 Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
10935 when -gnatg is not specified.
10936 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
10937 there is no need to generate always a record_definition_node in case
10938 of synchronized interface types.
10939 (SIS_Entry_Active): Initialize global variable to False
10940 (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
10941 indicate cases where AI-447 says "not null" is legal.
10942
10943 * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
10944
10945 * makegpr.adb (Check_Compilation_Needed): Take into account dependency
10946 files with with several lines starting with the object fileb name.
10947 (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
10948 is specified.
10949 (Initialize): Add the directory where gprmake is invoked in front of the
10950 path, if it is invoked from a bin directory or with directory
10951 information, so that the correct GNAT tools will be used when invoked
10952 directly.
10953 (Check_Compilation_Needed): Process correctly backslashes on Windows.
10954
10955 * vms_data.ads: Update switches/qualifiers
10956
109572007-04-06 Ed Schonberg <schonberg@adacore.com>
10958 Thomas Quinot <quinot@adacore.com>
10959
10960 * exp_aggr.adb:
10961 If the array component is a discriminated record, the array aggregate
10962 is non-static even if the component is given by an aggregate with
10963 static components.
10964 (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
10965 (Convert_Aggr_In_Allocator): If the allocator is for an access
10966 discriminant and the type is controlled. do not place on a finalization
10967 list at this point. The proper list will be determined from the
10968 enclosing object.
10969 (Build_Record_Aggr_Code): If aggregate has box-initialized components,
10970 initialize record controller if needed, before the components, to ensure
10971 that they are properly finalized.
10972 (Build_Record_Aggr_Code): For the case of an array component that has a
10973 corresponding array aggregate in the record aggregate, perform sliding
10974 if required.
10975
109762007-04-06 Javier Miranda <miranda@adacore.com>
10977 Gary Dismukes <dismukes@adacore.com>
10978 Ed Schonberg <schonberg@adacore.com>
10979
10980 * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
10981 run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
10982
10983 * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
10984 accessibility on class-wide allocators if the allocator occurs at the
10985 same scope level as the allocator's type. The check is guaranteed to
10986 succeed in that case, even when the expression originates from a
10987 parameter of the containing subprogram.
10988 (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
10989 under No_Dispatching_Calls restriction. During the semantic analysis
10990 we already notified such violation.
10991 (Tagged_Membership): Constant folding. There is no need to check
10992 the tag at run-time if the type of the right operand is non
10993 class-wide abstract.
10994 Replace call to Is_Ancestor by call to Is_Parent
10995 to support concurrent types with interface types.
10996 (Expand_N_Allocator): Add an assertion associated with the generation
10997 of the master_id.
10998 (Expand_N_Slice): Do not enable range check to nodes associated
10999 with the frontend expansion of the dispatch table.
11000 (Is_Local_Access_Discriminant): Subsidiary function to
11001 Expand_N_Allocator.
11002 (Tagged_Membership): Replace generation of call to the run-time
11003 subprogram CW_Membership by call to Build_CW_Membership.
11004 (Expand_Allocator_Expression): Replace generation of call to the
11005 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
11006
11007 * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
11008 initialize most the TSD components by means of an aggregate.
11009 Modify the declaration of the object containing the TSD
11010 because we now expand code that has a higher level of abstraction.
11011 The TSD has a discriminant containing the Inheritance Depth Level,
11012 value that is used in the membership test but also to fix the size
11013 of the table of ancestors.
11014 (Expand_Interface_Conversion): Insert function body at the closest place
11015 to the conversion expression, to prevent access-before-elaboration
11016 errors in the backend.
11017 Code improved to reduce the size of the dispatch table if
11018 compiling under restriction No_Dispatching_Calls plus code cleanup.
11019 Code reorganization plus removal of calls to Set_Num_Prim_Ops
11020 (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
11021 (Expand_Dispatching_Call): Minor code reorganization plus addition of
11022 code to return immediately if compiling under No_Dispatching_Calls
11023 restriction.
11024 (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
11025 CPP_Virtual and CPP_Vtable are no longer supported.
11026 (Expand_Interface_Conversion): Add missing support for interface type
11027 derivations.
11028 (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
11029 Is_Parent to support concurrent types with interfaces.
11030 (Init_Predefined_Interface_Primitives): Removed.
11031 (Make_Secondary_DT): Modified to support concurrent record types.
11032 (Set_All_DT_Position): Modified to support concurrent record types.
11033 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
11034 with Get_External_Tag, Inherit_TSD, Set_External_Tag.
11035 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
11036 with CW_Membership.
11037 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
11038 with Get_Access_Level, Get_Predefined_Prim_Op_Address,
11039 Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
11040 Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
11041 Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
11042 (Expand_Dispatching_Call): Replace generation of call to the run-time
11043 subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
11044 calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
11045 Address.
11046 (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
11047 the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
11048 Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
11049 Build_Set_Prim_Op_Address.
11050 (Get_Remotely_Callable): Subprogram removed.
11051 (Init_Predefined_Interface_Primitives): Replace generation of call to
11052 the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
11053 Prims.
11054
11055 * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
11056 First (Parameter_Associations ()) with the call to First_Actual that
11057 returns an actual parameter expression for both named and positional
11058 associations.
11059
11060 * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
11061 check violation of restriction No_Dispatching_Calls.
11062 (Check_Controlling_Type): A formal of a tagged incomplete type is a
11063 controlling argument.
11064
11065 * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
11066 First/Next_Component_Or_Discriminant
11067 (Insert_Actions): Add entries for new N_Push and N_Pop nodes
11068 (Find_Implemented_Interface): Removed. All the calls to this subprogram
11069 specify Any_Limited_Interface, and this functionality is already
11070 provided by the function Has_Abstract_Interfaces.
11071 (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
11072 support concurrent types implementing interfaces.
11073 (Find_Implemented_Interface): Removed. All the calls to this subprogram
11074 specify kind Any_Limited_Interface, and this functionality is already
11075 provided by the function Has_Abstract_Interfaces.
11076 (Remove_Side_Effects): replace Controlled_Type by
11077 CW_Or_Controlled_Type whenever the issue is related to
11078 using or not the secondary stack.
11079
11080 * par-ch12.adb (P_Formal_Type_Definition): Update calls to
11081 P_Interface_Type_Definition to fulfill the new interface (the formal
11082 Is_Synchronized is no longer required).
11083
11084 * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
11085 Update dependencies.
11086
11087 * exp_atag.ads, exp_atag.adb: New file
11088
110892007-04-06 Ed Schonberg <schonberg@adacore.com>
11090 Bob Duff <duff@adacore.com>
11091 Cyrille Comar <comar@adacore.com>
11092
11093 * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
11094 anonymous, use finalization list of enclosing dynamic scope.
11095 (Expand_N_Package_Declaration): For a library package declaration
11096 without a corresponding body, generate RACW subprogram bodies in the
11097 spec (just as we do for the task activation call).
11098 (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
11099 Is_Abstract_Type. Make sure these are called only when appropriate.
11100 Remove all code for DSP option
11101 (CW_Or_Controlled_Type): new subprogram.
11102
9e94c78f 111032007-04-06 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
11104 Ed Schonberg <schonberg@adacore.com>
11105 Gary Dismukes <dismukes@adacore.com>
11106
11107 * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
11108 parameter. If it is set to true, return a result capped according to
11109 the global upper bound for the index of an entry family.
11110 (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
11111 (Build_Find_Body_Index): Adjust for above change.
11112 (Entry_Index_Expression): Likewise.
11113 (Is_Potentially_Large_Family): New function extracted from...
11114 (Collect_Entry_Families): ...here. Call it to detect whether the family
11115 is potentially large.
11116 (Build_Entry_Count_Expression): If the family is potentially large, call
11117 Family_Size with 'Cap' set to true.
11118 (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
11119 a protected version of an operation declared in the private part of
11120 a protected object, because they may be invoked through a callback.
11121 (Set_Privals): If the type of a private component is an anonymous access
11122 type, do not create a new itype for each protected body.
11123 If the body of a protected operation creates
11124 controlled types (including allocators for class-widetypes), the
11125 body of the corresponding protected subprogram must include a
11126 finalization list.
11127 (Build_Activation_Chain_Entity): Build the chain entity for extended
11128 return statements.
11129 (Type_Conformant_Parameters): Use common predicate Conforming_Types
11130 to determine whether operation overrides an inherited primitive.
11131 (Build_Wrapper_Spec): Add code to examine the parents while looking
11132 for a possible overriding candidate.
11133 (Build_Simple_Entry_Call): Set No_Initialization on the object used to
11134 hold an actual parameter value since its initialization is separated
11135 from the the declaration. Prevents errors on null-excluding access
11136 formals.
11137
111382007-04-06 Thomas Quinot <quinot@adacore.com>
8a57e48f 11139 Pablo Oliveira <oliveira@adacore.com>
4b437c6b
AC
11140
11141 * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
11142 Do an Unchecked_Conversion to handle the passage from the Underlying
11143 Type to the Base Type when calling Build_To_Any_Call and
11144 Build_From_Any_Call.
11145 (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
11146 E_Constant, depending upon Variable formal.
11147 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
11148 PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
11149 parameter that requires an extra constrained parameter, declare
11150 temporary for actual as a variable, not a constant.
11151 (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
11152 the unit being compiled is the one that contains the stub type.
11153 Change primitive operation name for the RACW associated with a RAS
11154 from Call to _Call so it cannot clash with any legal identifier.
11155 (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
11156 Is_RAS.
11157 (Append_RACW_Bodies): New subprogram.
11158 (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
11159 Add_Receiving_Stubs_To_Declarations functions.
11160 When expanding a package body, this list correspond to the
11161 statements in the HSS at the end of the pacakge.
11162 When expanding a package spec, this list correspond to the
11163 spec declarations.
11164 (Add_Receiving_Stubs_To_Declarations): Append the function
11165 registering the receiving stubs at the end of the 'Stmts' list.
11166 (RCI_Package_Locator): Pass the new Version generic formal when
11167 instantiating a RCI_Locator package.
11168 (Build_From_Any_Function): To compute the High bound for an
11169 unconstrained array actual, we add the Low bound with the length.
11170 Thus we must convert the low bound and the length to an appropriate
11171 type before doing the sum.
11172 (Build_Subprogram_Receiving_Stubs, PolyORB):
11173 * Retrieve the extra formals parameters at the
11174 end of the parameter stream.
11175 * Use Move_Any_Value to write back out parameters
11176 after executing the request as it is more efficient
11177 than Copy_Any_Value.
11178 * Build the any containing Extra Formals with the
11179 appropriate typecode.
11180 (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
11181 empty Component_List.
11182 (Build_Actual_Object_Declaration): New subprogram. Build and insert into
11183 the tree the declaration for an object that serves as actual parameter
11184 in server-side stubs.
11185 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
11186 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
11187 Use Build_Actual_Object_Declaration to prepare the actuals.
11188 (Add_Parameter_To_NVList): Set the parameter mode to In for
11189 Extra Constrained Parameters.
11190 (Build_General_Calling_Stubs): Set the parameter type to boolean for
11191 Extra Constrained parameters.
11192 (Build_To_Any_Function, Build_From_Any_Function,
11193 Built_TypeCode_Function): When Typ is implicit, call the correct
11194 function with the first not implicit parent type.
11195 (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
11196 (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
11197 typecode from the Etype. Therefore we retrieve the correct typecode
11198 with a call to Get_Any_Type.
11199 (Copy_Specification): Do controlling formal type substitution based on
11200 Is_Controlling_Formal flag, instead of caller-provided object type.
11201 (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
11202 a RACW primitive operation, we might get a subprogram declaration for an
11203 ancestor of the RACW designated type (not for the designated type
11204 itself), in the case where this operation is inherited. In this case we
11205 have no easy means of determining the original tagged type for which
11206 the primitive was declared, so instead we now rely on
11207 Copy_Specification to use the Is_Controlling_Formal flag to determine
11208 which formals require type substitution.
11209
112102007-04-06 Robert Dewar <dewar@adacore.com>
11211 Ed Schonberg <schonberg@adacore.com>
11212
11213 * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
11214 GNAT.Current_Exception are not allowed if pragma Restrictions
11215 (No_Exception_Propagation) is set and in any case make the associated
11216 handler unsuitable as a target for a local raise statement.
11217 (Expand_Dispatching_Constructor_Call): Replace generation of call to the
11218 run-time subprogram CW_Membership by call to Build_CW_Membership.
11219 (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
11220 by a function call, a temporary must be created before expanding the
11221 Constructor_Call itself, to prevent out-of-order elaboration in the
11222 back-end when stack checking is enabled..
11223
112242007-04-06 Ed Schonberg <schonberg@adacore.com>
11225
11226 * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
11227 result are the bounds of the left operand, not the right.
11228
112292007-04-06 Ed Schonberg <schonberg@adacore.com>
11230
11231 * exp_strm.adb
11232 (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
11233 discriminant defaults.
11234 (Build_Record_Or_Elementary_Output_Procedure): Ditto.
11235 (Make_Component_List_Attributes): Ditto.
11236
112372007-04-06 Ed Schonberg <schonberg@adacore.com>
11238 Bob Duff <duff@adacore.com>
11239
11240 * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
11241 an association with a box as providing a value even though the
11242 initialization procedure for the type is not available.
11243 (Resolve_Record_Aggregate): Check that a choice of an association with a
11244 box corresponds to a component of the type.
11245 (Resolve_Record_Aggregate): Split Is_Abstract flag into
11246 Is_Abstract_Subprogram and Is_Abstract_Type.
11247
11248 * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
11249 assert.
11250
11251 * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
11252 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
11253 called only when appropriate.
11254
112552007-04-06 Olivier Hainque <hainque@adacore.com>
11256
11257 * g-alleve.ads (Low Level Vector type definitions): Map each to the
11258 associated vector view instead of all to the unsigned char view.
11259
11260 * g-altcon.adb (Generic_Conversions): New internal generic package,
11261 offering facilities for all the Vector/View conversion routines
11262 implemented by this unit.
11263 (To_View/To_Vector - all versions): Reimplemented in a systematic
11264 manner, using the internal Generic_Conversions facilities.
11265
112662007-04-06 Pascal Obry <obry@adacore.com>
11267
11268 * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
11269 string.
11270 (Create): Free the source string before storing the new one.
11271
112722007-04-06 Vincent Celier <celier@adacore.com>
11273
11274 * g-debpoo.adb (Validity): New package with a complete new
11275 implementation of subprograms Is_Valid and Set_Valid.
11276 (Is_Valid): Move to local package Validity
11277 (Set_Valid): Move to local package Validity
11278
112792007-04-06 Arnaud Charlet <charlet@adacore.com>
8a57e48f 11280 Pablo Oliveira <oliveira@adacore.com>
4b437c6b
AC
11281
11282 * g-expect.adb (Get_Command_Output): When expanding the output buffer
11283 we must ensure that there is enough place for the new data we are going
11284 to copy in.
11285
112862007-04-06 Thomas Quinot <quinot@adacore.com>
11287
11288 * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
11289 computation.
11290
112912007-04-06 Jose Ruiz <ruiz@adacore.com>
11292 Vincent Celier <celier@adacore.com>
11293
11294 * gnatcmd.adb (B_Start): Add prefix of binder generated file.
11295 (Stack_String): Add this String that contains the name of the Stack
11296 package in the project file.
11297 (Packages_To_Check_By_Stack): Add this list that contains the packages
11298 to be checked by gnatstack, which are the naming and the stack packages.
11299 (Check_Files): If no .ci files were specified for gnatstack we add all
11300 the .ci files belonging to the projects, including binder generated
11301 files.
11302 (Non_VMS_Usage): Document that gnatstack accept project file switches.
11303 (GNATCmd): Update the B_Start variable if we are in a VMS environment.
11304 Add gnatstack to the list of commands that use project file related
11305 switches, and get the single attribute Switches from the stack package
11306 in a project file when calling gnatstack. Parse the -U flag for
11307 processing files belonging to all projects in the project tree.
11308 Remove all processing for command Setup
11309
11310 * prj-attr.adb: Add new package Stack with single attribute Switches
11311
11312 * vms_conv.ads (Command_Type): Add command Stack.
11313 Move to body declarations that are only used in the body: types Item_Id,
11314 Translation_Type, Item_Ptr, Item and its subtypes.
11315
11316 * vms_conv.adb: (Initialize): Add data for new command Stack.
11317 Add declarations moved from the spec: types Item_Id, Translation_Type,
11318 Item_Ptr, Item and its subtypes.
11319 (Cargs_Buffer): New table
11320 (Cargs): New Boolean global variable
11321 (Process_Buffer): New procedure to create arguments
11322 (Place): Put character in table Buffer or Cargs_Buffer depending on the
11323 value of Cargs.
11324 (Process_Argument): Set Cargs when processing qualifiers for GNAT
11325 COMPILE
11326 (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
11327 empty, for table Cargs_Buffer.
11328 (Initialize): Remove component Setup in Command_List
11329
113302007-04-06 Vincent Celier <celier@adacore.com>
11331
11332 * gprep.adb (Process_Files.Process_One_File): Use full file name when
11333 issuing pragma Source_Reference.
11334
113352007-04-06 Emmanuel Briot <briot@adacore.com>
11336
11337 * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
11338 [[:xdigit:]] character class.
11339 Also raise an exception when an invalid character class is used.
11340
113412007-04-06 Pascal Obry <obry@adacore.com>
11342
11343 * i-cstrea.ads: (fopen): Add encoding parameter.
11344 (freopen): Idem.
11345 Change reference from a-sysdep.c to sysdep.c in comment.
11346 Update copyright notice.
11347 This set of patch add support for the encoding form parameter.
11348
11349 * mingw32.h (S2WSU): New macro to convert from a string to a
11350 wide-string using the UTF-8 encoding. The S2WS macro supports now only
11351 standard 8bits encoding.
11352 (WS2SU): As above but converting from wide-sring to string.
11353 This is needed as it is necessary to have access to both versions in the
11354 runtime for the form parameter encoding support.
11355 This set of patch add support for the encoding form parameter.
11356 (S2WS): Improve implementation to handle cases where the filename is not
11357 UTF-8 encoded. In this case we default to using the current code page
11358 for the conversion.
11359
11360 * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
11361 type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
11362 the constants defined in adaint.h.
11363 (fopen): Add encoding parameter.
11364 (freopen): Idem.
11365
11366 * s-ficobl.ads (AFCB): Add Encoding field to record the filename
11367 encoding. This is needed for the Reset routine (freopen low level-call).
11368
11369 * s-fileio.adb (Open): Decode encoding form parameter and set the
11370 corresponding encoding value into AFCB structure.
11371 (Reset): Pass the encoding value to freopen.
11372 (Close): Move the call to Lock_Task to the beginning of the procedure.
11373
113742007-04-06 Geert Bosch <bosch@adacore.com>
11375 Robert Dewar <dewar@adacore.com>
11376
11377 * i-fortra.ads: Add Double_Complex type.
11378
11379 * impunit.adb: (Is_Known_Unit): New function
11380 Add Gnat.Byte_Swapping
11381 Add GNAT.SHA1
11382 Add new Ada 2005 units
11383 Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
11384 Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
11385 Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
11386 Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
11387
11388 * impunit.ads (Is_Known_Unit): New function
11389
11390 * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
11391 a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
11392 a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
11393 g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
11394 s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
11395 s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
11396 New files.
11397
11398 * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
11399
11400 * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
11401
9e94c78f 114022007-04-06 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
11403 Arnaud Charlet <charlet@adacore.com>
11404
11405 * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
11406 __gnat_adjust_context_for_raise.
11407 (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
11408 implementation of floating point operations as native x86 targets.
11409 So the FPU should be initialized in the same way using finit. Fix
11410 floating point operations accuracy issues.
11411 (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
11412 member in struct sigaction, so as to avoid warning for incompatible
11413 pointer types.
11414
9e94c78f 114152007-04-06 Serguei Rybin <rybin@adacore.com>
4b437c6b
AC
11416
11417 * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
11418 switches from previously loaded tree
11419
114202007-04-06 Thomas Quinot <quinot@adacore.com>
11421
11422 * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
11423 cases where a given dependency has a body or not.
11424 (Write_With_File_Names): New subprogram, common code for the two cases
11425 above.
11426
114272007-04-06 Ed Schonberg <schonberg@adacore.com>
11428 Javier Miranda <miranda@adacore.com>
11429
11430 * lib-xref.ads, lib-xref.adb:
11431 Modify the loop that collects type references, to include interface
11432 types that the type implements. List each of these interfaces when
11433 building the entry for the type.
11434 (Generate_Definition): Initialize component Def and Typ of new entry
11435 in table Xrefs, to avoid to have these components unitialized.
11436 (Output_References): Split Is_Abstract flag into
11437 Is_Abstract_Subprogram and Is_Abstract_Type.
11438 (Generate_Reference): Add barrier to do not generate the warning
11439 associated with Ada 2005 entities with entities generated by the
11440 expander.
11441
114422007-04-06 Robert Dewar <dewar@adacore.com>
11443 Arnaud Charlet <charlet@adacore.com>
11444 Vincent Celier <celier@adacore.com>
11445
11446 * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
11447 Update 'Exception Handling Control' chapter which was outdated.
11448 Minor fix to documentation of -gnatwq
11449 Remove section "Adapting the Run Time to a New C++ Compiler" because
11450 it is now obsolete.
11451 Add passage on need of -nostart-files in some non-ada-main cases.
11452 Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
11453 Update documentation about Interfacing with C++
11454 Add documentation for new gnatmake switch -p
11455 Add missing protocol part in URLs.
11456 Document -gnatyA
11457 Document pragma Compile_Time_Error
11458 Add documentation for Object_Size indicating that stand alone
11459 objects can have a larger size in some cases.
11460 Add node for GNAT.Byte_Swapping, GNAT.SHA1
11461 Update reference to the Ravenscar profile.
11462 Document pragma Unreferenced_Objects
11463
11464 * gnat-style.texi: Fix typo
11465
114662007-04-06 Vincent Celier <celier@adacore.com>
11467
11468 * mlib.adb (Building_Library): Only output "building a library..." in
11469 verbose mode
11470
11471 * mlib-prj.adb (Build_Library): Only output lists of object and ALI
11472 files in verbose mode.
11473
11474 * mlib-utl.adb (Ar): Only output the first object files when not in
11475 verbose mode.
11476 (Gcc): Do not display all the object files if not in verbose mode, only
11477 the first one.
11478
114792007-04-06 Robert Dewar <dewar@adacore.com>
11480
11481 * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
11482 it no longer destroys the contents of Name_Buffer or Name_Len and
11483 non-standard and invalid names are handled better.
11484 (Get_Decoded_Name_String): Improve performance by using
11485 Name_Has_No_Encodings flag in the name table.
11486 (Is_Valid_Name): New function to determine whether a Name_Id is valid.
11487 Used for debugging printouts.
11488
114892007-04-06 Robert Dewar <dewar@adacore.com>
11490 Javier Miranda <miranda@adacore.com>
11491 Bob Duff <duff@adacore.com>
11492
11493 * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
11494 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
11495 there is no need to generate always a record_definition_node in case
11496 of synchronized interface types.
11497 (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
11498 (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
11499 illegal in Ada 95, in cases where it is legal. Change the warnings to
11500 errors in other cases. Don't give the error unless the "not null"
11501 parses properly. Correct the source position at which the error occurs.
11502 (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
11503 P_Null_Exclusion, to suppress "not null" warnings.
11504 (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
11505 associated goto statements.
11506
11507 * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
11508 of END RECORD
11509
11510 * scans.ads (Type_Token_Location): New flag
11511
11512 * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
11513 (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
11514 P_Null_Exclusion, to suppress "not null" warnings.
11515
115162007-04-06 Robert Dewar <dewar@adacore.com>
11517 Javier Miranda <miranda@adacore.com>
11518 Bob Duff <duff@adacore.com>
11519 Vincent Celier <celier@adacore.com>
11520
11521 * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
11522 (Extensions_Allowed): No longer sets Ada_Version
11523 Entry for pragma Unreferenced_Objects
11524
11525 * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
11526 system.tasking if pragma priority used in a procedure
11527 (Analyze_Pragma, case Warning): Handle dot warning switches
11528 (Process_Compile_Time_Warning_Or_Error): New procedure
11529 (Analyze_Pragma): Add processing for Compile_Time_Error
11530 Add support for extra arguments External_Name and Link_Name.
11531 Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
11532 (Process_Import_Or_Interface): Add support for the use of pragma Import
11533 with tagged types.
11534 (Extensions_Allowed): No longer affects Ada_Version
11535 (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
11536 Is_Abstract_Type. Make sure these are called only when appropriate.
11537 Add processing for pragma Unreferenced_Objects
11538
11539 * snames.h, snames.ads, snames.adb: Add entry for pragma
11540 Compile_Time_Error
11541 Add new standard name Minimum_Binder_Options for new gprmake
11542 Add new standard names for gprmake: Archive_Suffix,
11543 Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
11544 Library_Support, Library_Version_Options,
11545 Shared_Library_Minimum_Options,
11546 Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
11547 Change Name_Call to Name_uCall so that it cannot clash with a legal
11548 subprogram name.
11549 Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
11550 Append C_Plus_Plus to convention identifiers as synonym for CPP
11551 Add new standard names Stack and Builder_Switches
11552 Add new standard names: Compiler_Minimum_Options, Global_Config_File,
11553 Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
11554 Run_Path_Option, Toolchain_Version.
11555 Entry for pragma Unreferenced_Objects
11556
11557 * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
11558 switches, without repetition of "eD". Make sure that last character of
11559 -gnatep= switch is not taken as -gnat switch character.
11560 Complete rewrite of circuit for handling saving compilation options
11561 Occasioned by need to support dot switchs for -gnatw, but cleans up
11562 things in general.
11563 -gnatX does not affect Ada_Version
11564 Include -gnatyA in -gnatg style switches
11565
11566 * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
11567 warnings on return objects.
11568 (Warn_On_Useless_Assignment): Exclude warnings on return objects
11569 (Set_Dot_Warning_Switch): New procedure
11570 (Check_References): Add missing case of test for
11571 Has_Pragma_Unreferenced_Objects
11572 (Output_Unreferenced_Messages): Implement effect of new pragma
11573 Unreferenced_Objects, remove special casing of limited controlled
11574 variables.
11575
115762007-04-06 Vincent Celier <celier@adacore.com>
11577
11578 * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
11579 the default project path, initially done during elaboration of the
11580 package.
11581 If the prefix returned by Sdefault is null, get the prefix from a call
11582 to Executable_Prefix_Path.
11583 (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
11584 null.
11585
11586 * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
11587 canonical directory name to open the directory from which files are
11588 retrieved.
11589 (Record_Other_Sources): Idem.
11590 (Locate_Directory): Add the possibility to create automatically missing
11591 directories when Setup_Projects is True.
11592 Call Locate_Directory so that the directory will be created when
11593 Setup_Projects is True, for object dir, library dir, library ALI dir,
11594 library source copy dir and exec dir.
11595
11596 * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
11597 versions of GNAT.
11598
115992007-04-06 Robert Dewar <dewar@adacore.com>
11600
11601 * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
11602 Use First/Next_Component_Or_Discriminant
11603 (Analyze_Record_Representation_Clause):
11604 Use First/Next_Component_Or_Discriminant
11605 (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
11606 (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
11607 definition if type is unconstrained.
11608 (Adjust_Record_For_Reverse_Bit_Order): New procedure
11609 (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
11610 Is_Abstract_Subprogram and Is_Abstract_Type.
11611 (Adjust_Record_For_Reverse_Bit_Order): New procedure
11612
11613 * repinfo.adb (List_Record_Info): Use First/
11614 Next_Component_Or_Discriminant.
11615
11616 * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
11617 New procedure.
11618
11619 * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
11620 Include -gnatyA in default switches
11621
11622 * opt.ads: (Warn_On_Non_Local_Exception): New flag
11623 (Warn_On_Reverse_Bit_Order): New flag
11624 (Extensions_Allowed): Update the documentation.
11625 (Warn_On_Questionable_Missing_Parens): Now on by default
11626
11627 * usage.adb: Add documentation of -gnatw.x/X switches
11628 Document new -gnatyA style switch
11629 -gnatq warnings are on by default
11630
116312007-04-06 Ed Falis <falis@adacore.com>
11632
11633 * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
11634 full word is no longer compared twice.
11635
116362007-04-06 Ed Schonberg <schonberg@adacore.com>
11637
11638 * sem_ch10.adb (Install_Limited_Context_Clauses.
11639 Expand_Limited_With_Clause): Use a new copy of selector name in the
11640 call to Make_With_Clause. This fixes the tree structure for ASIS
11641 purposes. Nothing is changed in the compiler behaviour.
11642 (Process_Body_Clauses): Handle properly use clauses whose prefix is
11643 a package renaming.
11644 (Install_Limited_With_Clauses): Do not install non-limited view when it
11645 is still incomplete.
11646
116472007-04-06 Ed Schonberg <schonberg@adacore.com>
11648 Gary Dismukes <dismukes@adacore.com>
11649
11650 * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
11651 when capturing size information, instead of base type, which for a
11652 formal array type will be the unconstrained type.
11653 (Analyze_Formal_Object_Declaration): Add check for illegal default
11654 expressions for a formal in object of a limited type.
11655 (Instantiate_Object): Ditto.
11656 (Check_Formal_Package_Instance): Skip entities that are formal objects,
11657 because they were defaulted in the formal package and no check applies
11658 to them.
11659 (Check_Formal_Package_Instance): Extend conformance check to other
11660 discrete types beyond Integer.
11661 (Process_Default): Copy directly the unmatched formal. A generic copy
11662 has already been performed in Analyze_Formal_Package.
11663 (Analyze_Associations): If a formal subprogram has no match, check for
11664 partial parametrization before looking for a default, to prevent
11665 spurious errors.
11666 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
11667 not set the instantiation environment before analyzing the actuals.
11668 Fixes regression on 8515-003 with implementation of AI-133.
11669 Set_Instance_Env checks whether the generic unit is a predefined
11670 unit, in which case the instance must be analyzed with the latest Ada
11671 mode. This setting must take place after analysis of the actuals,
11672 because the actuals must be analyzed and frozen in the Ada mode extant
11673 outside of the current instantiation.
11674 (Save_Env, Restore_Env): Preserve and restore the configuration
11675 parameters so that predefined units can be compiled in the proper Ada
11676 mode.
11677 (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
11678 Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
11679 and Is_Abstract_Type.
11680 (Analyze_Formal_Package): For better error recovery, Add exception
11681 handler to catch Instantion_Error, which can be raised in
11682 Analyze_Associations
11683
116842007-04-06 Ed Schonberg <schonberg@adacore.com>
11685 Bob Duff <duff@adacore.com>
11686 Gary Dismukes <dismukes@adacore.com>
11687
11688 * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
11689 prefix type is a discriminated subtype of the type of the formal.
11690 (Analyze_Allocator): Collect all coextensions regardless of the context.
11691 Whether they can be allocated statically is determined in exp_ch4.
11692 (Analyze_Selected_Component): If the prefix is a limited view and the
11693 non-limited view is available, use the non-limited one.
11694 (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
11695 therefore illegal), suggest a qualified expression rather than a type
11696 conversion, because a type conversion would be illegal in this context.
11697 (Anayze_Allocator): Trace recursively all nested allocators so that all
11698 coextensions are on the corresponding list for the root. Do no mark
11699 coextensions if the root allocator is within a declaration for a stack-
11700 allocated object, because the access discriminants will be allocated on
11701 the stack as well.
11702 (Analyze_Call): Remove restriction on calls to limited functions for the
11703 cases of generic actuals for formal objects, defaults for formal objects
11704 and defaults for record components.
11705 (Analyze_Allocator): Before analysis, chain coextensions on the proper
11706 element list. Their expansion is delayed until the enclosing allocator
11707 is processed and its finalization list constructed.
11708 (Try_Primitive_Operation): If the prefix is a concurrent type, looks
11709 for an operation with the given name among the primitive operations of
11710 the corresponding record type.
11711 (Analyze_Selected_Component): If the prefix is a task type that
11712 implements an interface, and there is no entry with the given name,
11713 check whether there is another primitive operation (e.g. a function)
11714 with that name.
11715 (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
11716 properly the indexing of a function call written in prefix form, where
11717 the function returns an array type, and all parameters of the function
11718 except the first have defaults.
11719 (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
11720 the original operands, rather than relocating them, for efficiency and
11721 to work properly when an operand is overloaded.
11722 (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
11723 Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
11724 (Analyze_Selected_Component): If the prefix is a private extension, only
11725 scan the visible components, not those of the full view.
11726 (Try_Primitive_Operation): If the operation is a procedure, collect all
11727 possible interpretations, as for a function, because in the presence of
11728 classwide parameters several primitive operations of the type can match
11729 the given arguments.
11730
117312007-04-06 Ed Schonberg <schonberg@adacore.com>
11732 Robert Dewar <dewar@adacore.com>
11733
11734 * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
11735 tag-indeterminate call to an abstract function, when the left-hand side
11736 is not classwide.
11737 (Analyze_Loop_Statement): Improve detection of infinite loops
11738
117392007-04-06 Ed Schonberg <schonberg@adacore.com>
11740 Thomas Quinot <quinot@adacore.com>
11741
11742 * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
11743 out of Analyze_Package_Declaration, because processing must be applied
11744 to package bodies as well, for deferred constants completed by pragmas.
11745 (Analyze_Package_Declaration): When the package declaration being
11746 analyzed does not require an explicit body, call Check_Completion.
11747 (May_Need_Implicit_Body): An implicit body is required when a package
11748 spec contains the declaration of a remote access-to-classwide type.
11749 (Analyze_Package_Body): If the package contains RACWs, append the
11750 pending subprogram bodies generated by exp_dist at the end of the body.
11751 (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
11752 Is_Abstract_Subprogram and Is_Abstract_Type.
11753 (Preserve_Full_Attributes): The full entity list is not an attribute
11754 that must be preserved from full to partial view.
11755
11756 * sem_dist.adb (Add_RAS_Dereference_TSS):
11757 Change primitive name to _Call so it cannot clash with any legal
11758 identifier, and be special-cased in Check_Completion.
11759 Mark the full view of the designated type for the RACW associated with
11760 a RAS as Comes_From_Source to get proper view switching when installing
11761 private declarations.
11762 Provite a placeholder nested package body along with the nested spec
11763 to have a place for Append_RACW_Bodies to generate the calling stubs
11764 and stream attributes.
11765
117662007-04-06 Ed Schonberg <schonberg@adacore.com>
11767 Robert Dewar <dewar@adacore.com>
11768
11769 * sem_ch8.adb (Has_Components): If the argument is an incomplete type
11770 that is a limited view, check the non-limited view if available.
11771 (Undefined): Refine error message for missing with of Text_IO
11772 (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
11773 to distinguish real missing with cases.
11774 Fix format of all missing with messages
11775 (Analyze_Subprogram_Renaming): Emit proper error message on illegal
11776 renaming as body when renamed entity is abstract.
11777
117782007-04-06 Ed Schonberg <schonberg@adacore.com>
11779 Javier Miranda <miranda@adacore.com>
11780
11781 * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
11782 predicate recursive, to handle complex expressions on literals whose
11783 spurious ambiguity comes from the abstract interpretation of some
11784 subexpression.
11785 (Interface_Present_In_Ancestor): Add support to concurrent record
11786 types.
11787 (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
11788 Is_Abstract_Subprogram and Is_Abstract_Type.
11789
117902007-04-06 Ed Schonberg <schonberg@adacore.com>
11791 Javier Miranda <miranda@adacore.com>
11792
11793 * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
11794 dereference of a local object R created as a reference to another
11795 object O, use the access level of O.
11796 (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
11797 rather than local Same_Formal_Type, to check whether protected operation
11798 overrides an inherited one.
11799 (Same_Formal_Type): New predicate, used when matching signatures of
11800 overriding synchronized operations, to handle the case when a formal
11801 has a type that is a generic actual.
11802 (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
11803 predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
11804 (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
11805 syntactic ambiguities involving indexing of function calls that return
11806 arrays.
11807 (Abstract_Interface_List): New subprogram that returns the list of
11808 abstract interfaces associated with a concurrent type or a
11809 concurrent record type.
11810 (Interface_Present_In_Parent): New subprogram used to check if a
11811 given type or some of its parents implement a given interface.
11812 (Collect_Abstract_Interfaces): Add support for concurrent types
11813 with interface types.
11814 (Has_Abstract_Interfaces): Add support for concurrent types with
11815 interface types.
11816 (Is_Parent): New subprogram that determines whether E1 is a parent
11817 of E2. For a concurrent type its parent is the first element of its
11818 list of interface types; for other types this function provides the
11819 same result than Is_Ancestor.
11820 (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
11821 (Collect_Synchronized_Interfaces): Removed because the subprogram
11822 Collect_Abstract_Interfaces provides this functionality.
11823 (Collect_Abstract_Interfaces): Minor update to give support to
11824 concurrent types and thus avoid undesired code duplication.
11825 (Get_Subprogram_Entity): Handle entry calls.
11826 (May_Be_Lvalue): Include actuals that appear as in-out parameters in
11827 entry calls.
11828 (Enter_Name): Do not give -gnatwh hiding warning for record component
11829 entities, they never result in hiding.
11830
118312007-04-06 Ed Schonberg <schonberg@adacore.com>
11832 Robert Dewar <dewar@adacore.com>
11833
11834 * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
11835 to chain nested components that are allocators for access discriminants
11836 of the enclosing object.
11837 Add N_Push and N_Pop nodes
11838 New field Exception_Label added
11839 (Local_Raise_Statements): New field in N_Exception_Handler_Node
11840 (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
11841 (Is_Coextension): New flag for allocators, to mark allocators that
11842 correspond to access discriminants of dynamically allocated objects.
11843 (N_Block_Statement): Document the fact that the corresponding entity
11844 can be an E_Return_Statement.
11845 (Is_Coextension): New flag for allocators.
11846 Remove all code for DSP option
11847
11848 * sprint.ads, sprint.adb: Display basic information for class_wide
11849 subtypes. Add handling of N_Push and N_Pop nodes
11850
118512007-04-06 Arnaud Charlet <charlet@adacore.com>
11852
11853 * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
11854 before propagating exception.
11855
118562007-04-06 Olivier Hainque <hainque@adacore.com>
11857
11858 * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
11859 an address always within the call instruction from a return address.
11860
118612007-04-06 Olivier Hainque <hainque@adacore.com>
9e94c78f 11862 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
11863
11864 * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
11865 expression with a COMPOUND_EXPR including the call instead of emitting
11866 the call directly here.
11867 (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
11868 high bound is constant and the slice is empty. Tidy.
11869 (tree_transform, case N_Op_Not): Handle properly the case where the
11870 operation applies to a private type whose full view is a modular type.
11871 (Case_Statement_To_gnu): If an alternative is an E_Constant with an
11872 Address_Clause, use the associated Expression as the GNAT tree
11873 representing the choice value to ensure the corresponding GCC tree is
11874 of the proper kind.
11875 (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
11876 instead of just the operands, as the base GCC stabilize_reference does.
11877 <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
11878 requested; otherwise fail.
11879 (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
11880
118812007-04-06 Thomas Quinot <quinot@adacore.com>
11882
11883 * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
11884 implementation of UI_Div.
11885 (UI_Div): Reimplement as a call to UI_Div_Rem.
11886 (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
11887 remainder, avoiding the cost of a multiplication and a subtraction.
11888 (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
11889 provides both quotient and remainder in a single computation.
11890 (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
11891 functions for uint.
11892 (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
11893 is undefined if the given n is not inversible.
11894
118952007-04-06 Olivier Hainque <hainque@adacore.com>
11896
11897 * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
11898 BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
11899 opcodes.
11900
9e94c78f 119012007-04-06 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
11902 Olivier Hainque <hainque@adacore.com>
11903
11904 * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
11905 when updating the contents of the old pointer to an unconstrained array.
11906 (end_subprog_body): Set error_gnat_node to Empty.
11907 (write_record_type_debug_info): Do not be unduly sparing with our bytes.
11908 (unchecked_convert): For subtype to base type conversions, require that
11909 the source be a subtype if it is an integer type.
11910 (builtin_decls): New global, vector of available builtin functions.
11911 (gnat_pushdecl): Add global builtin function declaration nodes to the
11912 builtin_decls list.
11913 (gnat_install_builtins): Adjust comments.
11914 (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
11915 calling gnat_pushdecl, so that it knows when it handed a builtin
11916 function declaration node.
11917 (builtin_decl_for): Search the builtin_decls list.
11918
9e94c78f 119192007-04-06 Eric Botcazou <botcazou@adacore.com>
4b437c6b
AC
11920
11921 * s-stchop-vxworks.adb:
11922 (Stack_Check): Raise Storage_Error if the argument has wrapped around.
11923
119242007-04-06 Robert Dewar <dewar@adacore.com>
11925 Arnaud Charlet <charlet@adacore.com>
11926
11927 * a-diroro.ads: Inserted the pragma Unimplemented_Unit
11928
11929 * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
11930 of files
11931 Add mention of -Sev (set initialize_scalars option from environment
11932 variable at run time) in gnatbind usage message.
11933
11934 * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
11935
11936 * fname-uf.ads: Minor comment fix
11937
11938 * osint.ads: Change pragma Elaborate to Elaborate_All
11939
11940 * par-load.adb: Add documentation.
11941
11942 * sem_cat.ads, sem_cat.adb: Minor code reorganization
11943
11944 * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
11945
11946 * s-secsta.ads: Extra comments
11947
11948 * s-soflin.ads: Minor comment fixes
11949
11950 * s-stratt.ads (Block_Stream_Ops_OK): Removed.
11951
11952 * s-wchcon.ads: Minor comment addition
11953
11954 * treepr.adb: Minor change in message
11955 (Print_Name,Print_Node): Make these debug printouts more robust: print
11956 "no such..." instead of crashing on bad input.
11957
47ecd38d
RAE
119582007-03-30 Rafael Avila de Espindola <espindola@google.com>
11959
11960 * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
11961 instead of gnat_signed_or_unsigned_type.
11962 * utils.c (gnat_signed_or_unsigned_type): Remove.
11963 * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
11964 * gigi.h (gnat_signed_or_unsigned_type): Remove
11965
9645c3c5
RS
119662007-03-09 Roger Sayle <roger@eyesopen.com>
11967
11968 * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
11969 fold with the result of buildN.
11970 * decl.c (gnat_to_gnu_entity): Likewise.
11971 * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
11972 * utils.c (finish_record_type, merge_sizes, max_size, convert):
11973 Likewise.
11974 * utils2.c (gnat_truthvalue_conversion, compare_arrays,
11975 nonbinary_modular_operation, build_binary_op, build_unary_op,
11976 build_cond_expr): Likewise.
11977
11978 * utils.c (convert): Use fold_build1 when casting values to void.
11979 * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
11980 fold_convert instead of convert when appropriate.
11981
c279aa90
BM
119822007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
11983
11984 * Make-lang.in: Add install-pdf target as copied from
11985 automake v1.10 rules.
11986
c2615f30
AS
119872007-02-28 Andreas Schwab <schwab@suse.de>
11988
11989 * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
11990 $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
11991 (doc/gnat-style.info): Likewise.
11992
7771bb62
BM
119932007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
11994
11995 * gnat-style.texi: Standardize title page.
11996 * gnat_rm.texi: Likewise.
11997 * gnat_ugn.texi: Likewise.
11998
ae19c041
MM
119992007-02-25 Mark Mitchell <mark@codesourcery.com>
12000
12001 * decl.c (annotate_value): Adjust for refactoring of tree_map
12002 hierarchy.
12003
fc8600f9
MM
120042007-02-24 Mark Mitchell <mark@codesourcery.com>
12005
12006 * decl.c (annotate_value): Adjust for refactoring of tree_map
12007 hierarchy.
12008
c0bca7e1
EB
120092007-02-21 Ed Schonberg <schonberg@adacore.com>
12010
12011 PR ada/18819
12012 * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
12013 untagged derived type, add hidden components to keep discriminant
12014 layout consistent, when a given discriminant of the derived type
12015 constraints several discriminants of the parent type.
12016
9f3432b8 120172007-02-16 Eric Botcazou <ebotcazou@adacore.com>
6f7f72f9 12018 Sandra Loosemore <sandra@codesourcery.com>
9f3432b8
EB
12019
12020 * trans.c (call_to_gnu): Use build_call_list instead of build3 to
12021 build the call expression.
12022 (gnat_stabilize_reference_1): Handle tcc_vl_exp.
12023 * utils.c (max_size) <tcc_exceptional>: Delete.
12024 <tcc_vl_exp>: New case.
12025 <tcc_expression>: Delete CALL_EXPR subcase.
12026 (build_global_cdtor): Use build_call_nary instead of build3.
12027 * utils2.c (build_call_1_expr): Likewise.
12028 (build_call_2_expr): Likewise.
12029 (build_call_0_expr): Likewise.
12030 (build_call_alloc_dealloc): Likewise.
12031
8438091f
AK
120322007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
12033
12034 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
ed41063a 12035 get_action_description_for): Replace _Unwind_Word with _uleb128_t
8438091f
AK
12036 and _Unwind_SWord with _sleb128_t.
12037
0802f6a2
PB
120382007-02-06 Paolo Bonzini <bonzini@gnu.org>
12039
12040 * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
12041 * decl.c: Include gt-ada-decl.h.
12042 (annotate_value_cache): New.
12043 (annotate_value): Use it instead of TREE_COMPLEXITY.
12044
326f9a75
KH
120452007-02-03 Kazu Hirata <kazu@codesourcery.com>
12046
12047 * misc.c, utils2.c: Fix comment typos.
12048
cd259a98
RS
120492007-01-24 Roger Sayle <roger@eyesopen.com>
12050
12051 * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
12052 TREE_CONSTANT_OVERFLOW.
12053 (allocatable_size_p, annotate_value): Likewise.
12054 * trans.c (gnat_to_gnu): Likewise.
12055 * utils.c (unchecked_convert): Likewise.
12056 * utils2.c (build_simple_component_ref): Likewise.
12057
5305be7e
RG
120582007-01-23 Richard Guenther <rguenther@suse.de>
12059
12060 PR bootstrap/30541
12061 * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
12062 (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
12063 (gnatboot3): Likewise.
12064 (GNATBIND): Do not define.
12065 * Makefile.in (GNATBIND): Do not define.
12066
2ac7cbb5
RG
120672007-01-08 Richard Guenther <rguenther@suse.de>
12068
12069 * cuintp.c (build_cst_from_int): Use built_int_cst_type.
12070 * trans.c (gnat_to_gnu): Likewise.
12071
2989d30c
GK
120722006-12-07 Geoffrey Keating <geoffk@apple.com>
12073
12074 * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
12075 * adaint.c: Likewise.
12076
5848e34a
EB
120772006-12-05 Aldy Hernandez <aldyh@redhat.com>
12078
6f7f72f9 12079 Merge from gimple-tuples-branch:
5848e34a 12080 2006-11-02 Aldy Hernandez <aldyh@redhat.com>
6f7f72f9 12081
5848e34a
EB
12082 * ada-tree.h (lang_tree_node): Handle gimple tuples.
12083 * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
12084 GIMPLE_MODIFY_STMT.
12085
d3c56bc8
KH
120862006-12-02 Kazu Hirata <kazu@codesourcery.com>
12087
12088 * Makefile.in, mingw32.h, trans.c: Fix comment typos.
12089 * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
12090 Fix typos.
12091
9fa25ead
EB
120922006-11-17 Eric Botcazou <ebotcazou@adacore.com>
12093
12094 PR ada/27936
12095 * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
12096 if the initializer takes into account the padding.
12097
f9f770a8
RG
120982006-11-11 Richard Guenther <rguenther@suse.de>
12099
12100 * trans.c (maybe_stabilize_reference): Remove handling of
12101 FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
12102
75c0ed05
AC
121032006-11-05 Arnaud Charlet <charlet@adacore.com>
12104
ed41063a 12105 PR ada/29707
75c0ed05
AC
12106 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
12107 (To_Target_Priority): New function.
75c0ed05 12108
70198b9f
AC
121092006-10-31 Robert Dewar <dewar@adacore.com>
12110
12111 * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
12112 a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
12113 s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
12114 a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
12115 a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
12116 a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
12117 a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
12118 a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
12119 a-szbzha.adb: Minor reformatting. Fix header.
12120
12121 * a-numaux-x86.adb: Add parentheses for use of unary minus
12122 * a-ngcefu.adb: Supply missing parentheses for unary minus
12123 * a-ngcoty.adb: Add parens for use of unary minus
12124 * a-ngelfu.adb: Add missing parens for unary minus
12125 * a-tifiio.adb: Add parentheses for uses of unary minus
12126
121272006-10-31 Robert Dewar <dewar@adacore.com>
12128 Bob Duff <duff@adacore.com>
12129 Ed Schonberg <schonberg@adacore.com>
12130
6f7f72f9 12131 * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
70198b9f
AC
12132 with multiplying operator.
12133 (Expected_Type_Is_Any_Real): New function to determine from the Parent
12134 pointer whether the context expects "any real type".
12135 (Resolve_Arithmetic_Op): Do not give an error on calls to the
12136 universal_fixed "*" and "/" operators when they are used in a context
12137 that expects any real type. Also set the type of the node to
12138 Universal_Real in this case, because downstream processing requires it
12139 (mainly static expression evaluation).
12140 Reword some continuation messages
12141 Add some \\ sequences to continuation messages
12142 (Resolve_Call): Refine infinite recursion case. The test has been
12143 sharpened to eliminate some false positives.
12144 Check for Current_Task usage now includes entry barrier, and is now a
12145 warning, not an error.
12146 (Resolve): If the call is ambiguous, indicate whether an interpretation
12147 is an inherited operation.
12148 (Check_Aggr): When resolving aggregates, skip associations with a box,
12149 which are priori correct, and will be replaced by an actual default
12150 expression in the course of expansion.
12151 (Resolve_Type_Conversion): Add missing support for conversion from
12152 a class-wide interface to a tagged type. Minor code cleanup.
12153 (Valid_Tagged_Converion): Add support for abstact interface type
12154 conversions.
12155 (Resolve_Selected_Component): Call Generate_Reference here rather than
12156 during analysis, and use May_Be_Lvalue to distinguish read/write.
12157 (Valid_Array_Conversion): New procedure, abstracted from
12158 Valid_Conversion, to incorporate accessibility checks for arrays of
12159 anonymous access types.
12160 (Valid_Conversion): For a conversion to a numeric type occurring in an
12161 instance or inlined body, no need to check that the operand type is
12162 numeric, since this has been checked during analysis of the template.
12163 Remove legacy test for scope name Unchecked_Conversion.
12164
12165 * sem_res.ads: Minor reformatting
12166
12167 * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
12168 (PE_Current_Task_In_Entry_Body): New exception code
12169 (SE_Restriction_Violation): Removed, not used
12170
12171 * a-except.ads: Update comments.
12172
12173 * types.h, types.ads: Add definition for Validity_Check
12174 (PE_Current_Task_In_Entry_Body): New exception code
12175 (SE_Restriction_Violation): Removed, not used
12176
121772006-10-31 Thomas Quinot <quinot@adacore.com>
12178
12179 * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
12180 error status.
12181
121822006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
12183 Jose Ruiz <ruiz@adacore.com>
12184
12185 * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
12186 part of Ada.Calendar: all subprogram raise Unimplemented.
12187 (Split_W_Offset): Temp function body, raising Unimplemented
12188
12189 * a-calend.ads, a-calend-vms.ads:
12190 Add imported variable Invalid_TZ_Offset used to designate targets unable
12191 to support time zones.
12192 (Unimplemented): Temporary function raised by the body of new
12193 subprograms below.
12194 (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
12195 unit provides handling of leap seconds and is used by the new Ada 2005
12196 packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
12197 (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
12198 version returns an extra value which is the offset to UTC.
12199
12200 * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
12201 (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
12202 (Split_W_Offset): New function body.
12203 (Time_Of): When a date is close to UNIX epoch, compute the time for
12204 that date plus one day (that amount is later substracted after
12205 executing mktime) so there are no problems with time zone adjustments.
12206
12207 * a-calend-mingw.adb: Remove Windows specific version no longer needed.
12208
12209 * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
12210 a-catizo.ads, a-catizo.adb: New files.
12211
6f7f72f9 12212 * impunit.adb: Add new Ada 2005 entries
70198b9f
AC
12213
12214 * sysdep.c: Add external variable __gnat_invalid_tz_offset.
12215 Rename all occurences of "__gnat_localtime_r" to
12216 "__gnat_localtime_tzoff".
12217 (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
12218 zone data and calculate the GMT offset.
12219 (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
12220 Use the field "tm_gmtoff" to extract the GMT offset.
12221 (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
12222 the external variable "timezone" to calculate the GMT offset.
12223
122242006-10-31 Arnaud Charlet <charlet@adacore.com>
12225 Jose Ruiz <ruiz@adacore.com>
12226
12227 * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
12228 s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
12229 s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
12230 s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
12231 System.Any_Priority to a POSIX priority on the target.
12232
12233 * system-linux-ia64.ads:
12234 Extend range of Priority types on Linux to use the whole range made
12235 available by the system.
12236
12237 * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
12238 function maps from System.Any_Priority to a POSIX priority on the
12239 target.
12240 (PTHREAD_PRIO_PROTECT): Set real value.
12241 (PTHREAD_PRIO_INHERIT): Now a function.
12242 (SIGCPUFAIL): New signal.
12243 (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
12244 are documented as reserved by the OS.
12245
12246 * system-aix.ads: Use the full range of priorities provided by the
12247 system on AIX.
12248
12249 * s-taprop-posix.adb: Call new function To_Target_Priority.
12250 (Set_Priority): Take into account Task_Dispatching_Policy and
12251 Priority_Specific_Dispatching pragmas when determining if Round Robin
12252 must be used for scheduling the task.
12253
12254 * system-linux-x86_64.ads, system-linux-x86.ads,
12255 system-linux-ppc.ads: Extend range of Priority types on Linux to use
12256 the whole range made available by the system.
12257
12258 * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
12259 s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
12260 s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
12261 when deallocating the TCB in order to avoid potential references to
12262 deallocated data.
12263 (Set_Priority): Take into account Task_Dispatching_Policy and
12264 Priority_Specific_Dispatching pragmas when determining if Round Robin
12265 or FIFO within priorities must be used for scheduling the task.
12266
12267 * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
12268 the Thread field (to be used internally by the run-time system) and the
12269 kernel-level task id in the LWP field (to be used by the debugger).
12270 (Create_Task): Reorganize to unify the calls to taskSpawn into a single
12271 instance, and propagate the current task options to the spawned task.
12272 (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
12273 (Initialize): Set Round Robin dispatching when the corresponding pragma
12274 is in effect.
12275
122762006-10-31 Robert Dewar <dewar@adacore.com>
12277
12278 * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
12279 system-linux-hppa.ads, system-hpux-ia64.ads,
12280 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
12281 system-vxworks-sparcv9.ads, system-solaris-x86.ads,
12282 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
12283 system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
12284 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
12285 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
12286 system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
12287 Default_Bit_Order) to kill constant condition warnings for references
12288 to this switch.
12289
122902006-10-31 Vincent Celier <celier@adacore.com>
12291 Eric Botcazou <ebotcazou@adacore.com>
12292
12293 * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
12294 mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
12295 mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
12296 Ext_To, when building the library file name
12297
12298 * mlib-tgt-vxworks.adb: ditto.
12299 (Get_Target_Suffix): Add support for x86 targets.
12300
12301 * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
12302
12303 * mlib-tgt-darwin.adb:
12304 Use Append_To, instead of Ext_To, when building the library file name
12305 (Flat_Namespace): New global variable.
12306 (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
12307 (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
12308 (Link_Shared_Libgcc): Delete.
12309 (Build_Dynamic_Library): Adjust for above changes.
12310 Use Opt package.
12311 (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
12312
123132006-10-31 Eric Botcazou <ebotcazou@adacore.com>
12314
12315 * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
12316 (Initialize): Add type conversions required by above change.
12317
123182006-10-31 Jose Ruiz <ruiz@adacore.com>
12319
12320 * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
12321 (getpid): New body for this function that uses the underlying taskIdSelf
12322 function for VxWorks 5 and VxWorks 6 in kernel mode.
12323 (unsigned_int): New type, modular to allow logical bit operations.
12324 (taskOptionsGet): New imported function.
12325
12326 * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
12327 field to be compliant with the type used by the corresponding operating
12328 system primitive.
12329
123302006-10-31 Pascal Obry <obry@adacore.com>
12331 Eric Botcazou <ebotcazou@adacore.com>
12332 Vincent Celier <celier@adacore.com>
12333
12334 * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
12335 ASCII version of the registry API. This is needed as the GNAT runtime
12336 is now UNICODE by default.
12337 Include version.h.
12338 (get_gcc_version): Do not hardcode the return value.
12339 (__gnat_file_time_name): On Windows properly set the default returned
12340 value to -1 which corresponds to Invalid_Time.
12341 (__gnat_fopen): New routine. A simple wrapper on all plateforms
12342 except on Windows where it does conversion for unicode support.
12343 (__gnat_freopen): Idem.
12344 (__gnat_locate_exec_on_path): If environment variable PATH does not
12345 exist, return a NULL pointer
12346
12347 * adaint.h: (__gnat_fopen): Declare.
12348 (__gnat_freopen): Likewise.
12349
12350 * mingw32.h (_tfreopen): Define this macro here for older MingW
12351 version.
12352 Activate the unicode support on platforms using a MingW runtime
12353 version 3.9 or newer.
12354
12355 * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
12356 This is needed for proper unicode support on Windows.
12357 (freopen): Idem.
12358
123592006-10-31 Eric Botcazou <ebotcazou@adacore.com>
12360 Nicolas Setton <setton@adacore.com>
12361 Olivier Hainque <hainque@adacore.com>
12362 Gary Dismukes <dismukes@adacore.com>
12363
12364 * gigi.h: (tree_code_for_record_type): Declare.
12365 (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
12366 (get_global_renaming_pointers): Rename to
12367 invalidate_global_renaming_pointers.
12368 (static_ctors): Delete.
12369 (static_dtors): Likewise.
12370 (gnat_write_global_declarations): Declare.
12371 (create_var_decl): Adjust descriptive comment to indicate that the
12372 subprogram may return a CONST_DECL node.
12373 (create_true_var_decl): Declare new function, similar to
12374 create_var_decl but forcing the creation of a VAR_DECL node.
12375 (get_global_renaming_pointers): Declare.
12376 (add_global_renaming_pointer): Likewise.
12377
12378 * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
12379
12380 * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
12381 tree before setting TREE_ADDRESSABLE for by-reference return mechanism
12382 processing.
12383 (gnat_to_gnu_entity): Remove From_With_Type from computation for
12384 imported_p.
12385 <E_Access_Type>: Use the Non_Limited_View as the full view of the
12386 designated type if the pointer comes from a limited_with clause. Make
12387 incomplete designated type if it is in the main unit and has a freeze
12388 node.
12389 <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
12390 Underlying_Full_View similarly. Return earlier if the full view already
12391 has an associated tree.
12392 (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
12393 (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
12394 (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
12395 reference type built for objects with an address clause.
12396 Use create_true_var_decl with const_flag set for
12397 DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
12398 TREE_READONLY set.
12399 (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
12400 for Character and Wide_Character types. This info is read by the
12401 dwarf-2 writer, and is needed to be able to use the command "ptype
12402 character" in the debugger.
12403 (gnat_to_gnu_entity): When generating a type representing
12404 a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
12405 so that debug writers can distinguish it from ordinary integers.
12406 (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
12407 addition to TREE_READONLY to assert the constantness of variables for
12408 elaboration purposes.
12409 (gnat_to_gnu_entity, subprogram cases): Change loops on formal
12410 parameters to call new Einfo function First_Formal_With_Extras.
12411 (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
12412 protected type with its corresponding discriminant, to obtain a usable
12413 declaration
12414 (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
12415 for a multiple elaboration of the "equivalent" type.
12416 (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
12417 into record_global_renaming_pointer.
12418 (gnat_to_gnu_entity) <E_Array_Type>: Do not force
12419 TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
12420 <E_Array_Subtype>: Likewise.
12421 (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
12422 incomplete subtypes and incomplete subtypes of incomplete types visible
12423 through a limited with clause.
12424 (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
12425 the base index type for the maximum size of the array only if they are
12426 constant.
12427 (gnat_to_gnu_entity, renaming object case): Do not wrap up the
12428 expression into a SAVE_EXPR if stabilization failed.
12429
12430 * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
12431 a result decl into DECL_BY_REFERENCE on this decl, now what is expected
12432 by lower level compilation passes.
12433 (gnat_genericize): New function, lowering a function body to GENERIC.
12434 Turn the type of RESULT_DECL into a real reference type if the decl
12435 has been marked DECL_BY_REFERENCE, and adjust references to the latter
12436 accordingly.
12437 (gnat_genericize_r): New function. Tree walking callback for
12438 gnat_genericize.
12439 (convert_from_reference, is_byref_result): New functions. Helpers for
12440 gnat_genericize_r.
12441 (create_type_decl): Call gnat_pushdecl before calling
12442 rest_of_decl_compilation, to make sure that field TYPE_NAME of
12443 type_decl is properly set before calling the debug information writers.
12444 (write_record_type_debug_info): The heuristics which compute the
12445 alignment of a field in a variant record might not be accurate. Add a
12446 safety test to make sure no alignment is set to a smaller value than
12447 the alignment of the field type.
12448 (make_dummy_type): Use the Non_Limited_View as the underlying type if
12449 the type comes from a limited_with clause. Do not loop on the full view.
12450 (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
12451 (dummy_node_table): New global variable, moved from decl.c.
12452 (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
12453 (save_gnu_tree): Use above macros.
12454 (get_gnu_tree): Likewise.
12455 (present_gnu_tree): Likewise.
12456 (init_dummy_type): New function, moved from decl.c. Use above macros.
12457 (make_dummy_type): Likewise.
12458 (tree_code_for_record_type): New function extracted from make_dummy_type
12459 (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
12460 (static_ctors): Change it to a vector, make static.
12461 (static_dtors): Likewise.
12462 (end_subprog_body): Adjust for above change.
12463 (build_global_cdtor): Moved from trans.c.
12464 (gnat_write_global_declarations): Emit global constructor and
12465 destructor, and call cgraph_optimize before emitting debug info for
12466 global declarations.
12467 (global_decls): New global variable.
12468 (gnat_pushdecl): Store the global declarations in global_decls, for
12469 later use.
12470 (gnat_write_global_declarations): Emit debug information for global
12471 declarations.
12472 (create_var_decl_1): Former create_var_decl, with an extra argument to
12473 state whether the creation of a CONST_DECL is allowed.
12474 (create_var_decl): Behavior unchanged. Now a wrapper around
12475 create_var_decl_1 allowing CONST_DECL creation.
12476 (create_true_var_decl): New function, similar to create_var_decl but
12477 forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
12478 (create_field_decl): Do not always mark the field as addressable
12479 if its type is an aggregate.
12480 (global_renaming_pointers): New static variable.
12481 (add_global_renaming_pointer): New function.
12482 (get_global_renaming_pointers): Likewise.
12483
12484 * misc.c (gnat_dwarf_name): New function.
12485 (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
12486 (gnat_post_options): Add comment about structural alias analysis.
12487 (gnat_parse_file): Do not call cgraph_optimize here.
12488 (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
12489
12490 * trans.c (process_freeze_entity): Don't abort if we already have a
12491 non dummy GCC tree for a Concurrent_Record_Type, as it might
12492 legitimately have been elaborated while processing the associated
12493 Concurrent_Type prior to this explicit freeze node.
12494 (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
12495 exception handler volatile if it is of variable size.
12496 (process_type): Remove bypass for types coming from a limited_with
12497 clause.
12498 (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
12499 actual, convert the corresponding gnu_actual to the real destination
12500 type when necessary.
12501 (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
12502 originally TREE_READONLY but whose elaboration cannot be performed
12503 statically.
12504 Part of fix for F504-021.
12505 (tree_transform, subprogram cases): Change loops on formal parameters to
12506 call new Einfo function First_Formal_With_Extras.
12507 (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
12508 stemming from type conversion for the lhs.
12509 (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
12510 number of bits per unit for components of records.
12511 (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
12512 (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
12513 with At_End_Proc after the SJLJ EH cleanup.
12514 (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
12515 compilation unit.
12516 (elaborate_all_entities): Do not retest type_annotate_only.
12517 (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
12518 result type of an abstract subprogram, which may be an itype associated
12519 with an anonymous access result (related to AI-318-02).
12520 (build_global_cdtor): Move to utils.c.
12521 (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
12522 this choice is not a null tree nor an integer constant.
12523 (gigi): Run unshare_save_expr via walk_tree_without_duplicates
12524 on the body of elaboration routines instead of mark_unvisited.
12525 (add_stmt): Do not mark the tree.
12526 (add_decl_expr): Tweak comment.
12527 (mark_unvisited): Delete.
12528 (unshare_save_expr): New static function.
12529 (call_to_gnu): Issue an error when making a temporary around a
12530 procedure call because of non-addressable actual parameter if the
12531 type of the formal is by_reference.
12532 (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
12533 after building the elaboration routine.
12534
125352006-10-31 Bob Duff <duff@adacore.com>
12536
12537 * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
12538 as finalization-started, so we can raise Program_Error on 'new'.
12539
12540 * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
12541 collection has already started.
12542
12543 * s-finimp.ads (Collection_Finalization_Started): Added new special
12544 flag value for indicating that a collection's finalization has started.
12545
12546 * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
12547 create a task whose master has already waited for dependent tasks.
12548
125492006-10-31 Robert Dewar <dewar@adacore.com>
12550
12551 * lib.adb, lib.ads: (In_Predefined_Unit): New functions
12552
12553 * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
12554 a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
12555 a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
12556 a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
12557 a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
12558 a-except-2005.ads: Add pragma Preelaborable_Warning
12559
125602006-10-31 Robert Dewar <dewar@adacore.com>
12561 Jose Ruiz <ruiz@adacore.com>
12562
12563 * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
12564
12565 * ali.adb (Get_Name): Properly handle scanning of wide character names
12566 encoded with brackets notation.
12567 (Known_ALI_Lines): Add S lines to this list.
12568 (Scan_ALI): Acquire S (priority specific dispatching) lines.
12569 New flag Elaborate_All_Desirable in unit table
12570
12571 * ali.ads (Priority_Specific_Dispatching): Add this range of
12572 identifiers to be used for Priority_Specific_Dispatching table entries.
12573 (ALIs_Record): Add First_Specific_Dispatching and
12574 Last_Specific_Dispatching that point to the first and last entries
12575 respectively in the priority specific dispatching table for this unit.
12576 (Specific_Dispatching): Add this table for storing each S (priority
12577 specific dispatching) line encountered in the input ALI file.
12578 New flag Elaborate_All_Desirable in unit table
12579
12580 * bcheck.adb: (Check_Configuration_Consistency): Add call to
12581 Check_Consistent_Dispatching_Policy.
12582 (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
12583 verifying that the use of Priority_Specific_Dispatching,
12584 Task_Dispatching_Policy, and Locking_Policy is consistent across the
12585 partition.
12586
12587 * bindgen.adb: (Public_Version_Warning): function removed.
12588 (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
12589 required information from ALI files in order to initialize the table
12590 containing the specific dispatching policy.
12591 (Gen_Adainit_Ada): Generate the variables required for priority specific
12592 dispatching entries (__gl_priority_specific_dispatching and
12593 __gl_num_specific_dispatching).
12594 (Gen_Adainit_C): Generate the variables required for priority specific
12595 dispatching entries (__gl_priority_specific_dispatching and
12596 __gl_num_specific_dispatching).
12597 (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
12598 pragma entries.
12599 (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
12600 (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
12601 (Tab_To): Removed.
12602 (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
12603 a call to gnat_set_globals.
12604 Generate a string containing settings from
12605 Priority_Specific_Dispatching pragma entries.
12606 (Gen_Object_Files_Options): Do not include the runtime libraries when
12607 pragma No_Run_Time is specified.
12608
12609 * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
12610 consistency with s-intman-posix.adb.
12611 (__gnat_error_handler, case FreeBSD): Account for the fact that the
12612 handler is installed with SA_SIGINFO.
12613 (__gnat_adjust_context_for_raise, FreeBSD case): New function for
12614 FreeBSD ZCX support, copied from Linux version.
12615 Add MaRTE-specific definitions for the linux target. Redefine sigaction,
12616 sigfillset, and sigemptyset so the routines defined by MaRTE.
12617 (__gl_priority_specific_dispatching): Add this variable that stores the
12618 string containing priority specific dispatching policies in the
12619 partition.
12620 (__gl_num_specific_dispatching): Add this variable that indicates the
12621 highest priority for which a priority specific dispatching pragma
12622 applies.
12623 (__gnat_get_specific_dispatching): Add this routine that returns the
12624 priority specific dispatching policy, as set by a
12625 Priority_Specific_Dispatching pragma appearing anywhere in the current
12626 partition. The input argument is the priority number, and the result
12627 is the upper case first character of the policy name.
12628 (__gnat_set_globals): Now a dummy function.
12629 (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
12630 mechargs instead of sigargs, as the latter can be retrieved from the
12631 former and sigargs is not what we want on ia64.
12632 (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
12633 mechargs argument.
12634 (__gnat_adjust_context_for_raise, ia64-vms): New function.
12635 (tasking_error): Remove unused symbol.
12636 (_abort_signal): Move this symbol to the IRIX specific part since this
12637 is the only target that uses this definition.
12638 (Check_Abort_Status): Move this symbol to the IRIX specific part since
12639 this is the only target that uses this definition.
12640 (Lock_Task): Remove unused symbol.
12641 (Unlock_Task): Remove unused symbol.
12642
12643 * lib-writ.adb (Write_ALI): Output new S lines for
12644 Priority_Specific_Dispatching pragmas.
12645 Implement new flag BD for elaborate body desirable
12646
12647 * lib-writ.ads: Document S lines for Priority Specific Dispatching.
12648 (Specific_Dispatching): Add this table for storing the entries
12649 corresponding to Priority_Specific_Dispatching pragmas.
12650 Document new BD flag for elaborate body desirable
12651
12652 * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
12653 of known pragmas.
12654
126552006-10-31 Javier Miranda <miranda@adacore.com>
12656
12657 * a-tags.ads, a-tags.adb:
12658 (Predefined_DT): New function that improves readability of the code.
12659 (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
12660 Inherit_DT): Use the new function Predefined_DT to improve code
12661 readability.
12662 (Register_Interface_Tag): Update assertion.
12663 (Set_Interface_Table): Update assertion.
12664 (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
12665 determining progenitor interfaces in Tags.
12666 (Inherit_CPP_DT): New subprogram.
12667
6f7f72f9 12668 * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
70198b9f 12669 analysis of the thunk code.
6f7f72f9
EB
12670 (Expand_Interface_Conversion): Handle run-time conversion of
12671 access to class wide types.
70198b9f
AC
12672 (Expand_Dispatching_Call): When generating the profile for the
12673 subprogram itype for a dispatching operation, properly terminate the
12674 formal parameters chaind list (set the Next_Entity of the last formal
12675 to Empty).
12676 (Collect_All_Interfaces): Removed. This routine has been moved to
12677 sem_util and renamed as Collect_All_Abstract_Interfaces.
12678 (Set_All_DT_Position): Hidden entities associated with abstract
12679 interface primitives are not taken into account in the check for
12680 3.9.3(10); this check is done with the aliased entity.
12681 (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
12682 interfacing with CPP by default.
12683 (Expand_Interface_Conversion): Add missing support for static conversion
12684 from an interface to a tagged type.
12685 (Collect_All_Interfaces): Add new out formal containing the list of
12686 abstract interface types to cleanup the subprogram Make_DT.
12687 (Make_DT): Update the code to generate the table of interfaces in case
12688 of abstract interface types.
12689 (Is_Predefined_Dispatching_Alias): New function that returns true if
12690 a primitive is not a predefined dispatching primitive but it is an
12691 alias of a predefined dispatching primitive.
12692 (Make_DT): If the ancestor of the type is a CPP_Class and we are
12693 compiling under full ABI compatibility mode we avoid the generation of
12694 calls to run-time services that fill the dispatch tables because under
12695 this mode we currently inherit the dispatch tables in the IP subprogram.
12696 (Write_DT): Emit an "is null" indication for a null procedure primitive.
12697 (Expand_Interface_Conversion): Use an address as the type of the formal
12698 of the internally built function that handles the case in which the
12699 target type is an access type.
12700
127012006-10-31 Robert Dewar <dewar@adacore.com>
12702
12703 * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
12704
127052006-10-31 Robert Dewar <dewar@adacore.com>
12706
12707 * bindusg.ads, bindusg.adb:
12708 Change to package and rename procedure as Display, which
12709 now ensures that it only outputs usage information once.
12710
127112006-10-31 Jose Ruiz <ruiz@adacore.com>
12712
12713 * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
12714 using RTPs.
12715
12716 * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
12717 when using RTPs.
12718
127192006-10-31 Robert Dewar <dewar@adacore.com>
12720 Ed Schonberg <schonberg@adacore.com>
12721
12722 * treepr.adb: Use new subtype N_Membership_Test
12723
6f7f72f9
EB
12724 * checks.ads, checks.adb: Add definition for Validity_Check
12725 (Range_Or_Validity_Checks_Suppressed): New function
12726 (Ensure_Valid): Test Validity_Check suppressed
12727 (Insert_Valid_Check): Test Validity_Check suppressed
12728 (Insert_Valid_Check): Preserve Do_Range_Check flag
70198b9f
AC
12729 (Validity_Check_Range): New procedure
12730 (Expr_Known_Valid): Result of membership test is always valid
12731 (Selected_Range_Checks): Range checks cannot be applied to discriminants
12732 by themselves. Disabling those checks must also be done for task types,
12733 where discriminants may be used for the bounds of entry families.
12734 (Apply_Address_Clause_Check): Remove side-effects if address expression
12735 is non-static and is not the name of a declared constant.
12736 (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
12737 Code cleanup and new error messages.
12738 (Enable_Range_Check): Test for some cases of suppressed checks
12739 (Generate_Index_Checks): Suppress index checks if index checks are
12740 suppressed for array object or array type.
12741 (Apply_Selected_Length_Checks): Give warning for compile-time detected
12742 length check failure, even if checks are off.
12743 (Ensure_Valid): Do not generate a check on an indexed component whose
12744 prefix is a packed boolean array.
12745 * checks.adb: (Alignment_Checks_Suppressed): New function
12746 (Apply_Address_Clause_Check): New procedure, this is a completely
12747 rewritten replacement for Apply_Alignment_Check
12748 (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
12749 we request a discriminal value only in case of discriminants.
12750 (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
12751 assignments where the target subtype is unconstrained and the target
12752 object is a parameter or dereference (other aliased cases are known
12753 to be unconstrained).
12754
127552006-10-31 Robert Dewar <dewar@adacore.com>
12756
12757 * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
12758 prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
12759 vms_conv.adb: Fix bad table increment values (much too small)
12760
12761 * table.adb (Realloc): Make sure we get at least some new elements
12762 Defends against silly small values for table increment
12763
127642006-10-31 Robert Dewar <dewar@adacore.com>
12765 Ed Schonberg <schonberg@adacore.com>
12766 Bob Duff <duff@adacore.com>
12767
12768 * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
12769 entities. Move other fields around to make this possible
12770 (Is_Derived_Type): Add missing call to Is_Type.
12771 (Extra_Formals): New function for subprograms, entries, subprogram
12772 types.
12773 (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
12774 (First_Formal_With_Extras): New function for subprogs, entries, subp
12775 types.
12776 (Write_Field28_Name): New procedure for node display of "Extra_Formals".
12777 Add node information for E_Return_Statement.
12778 (Elaborate_Body_Desirable): New flag
12779 (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
12780 to be Is_Inherently_Limited_Type, because return-by-reference has
12781 no meaning in Ada 2005.
12782 (E_Return_Statement): New entity kind.
12783 (Return_Applies_To): Field of E_Return_Statement.
12784 (Is_Return_Object): New flag in object entities.
12785 (Is_Dynamic_Scope): Make it True for E_Return_Statement.
12786 (Must_Have_Preelab_Init): New flag
12787 (Known_To_Have_Preelab_Init): New flag
12788 (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
12789 (Is_Visible_Formal): New flag on entities in formal packages.
12790 (Low_Bound_Known): New flag
12791 (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
12792 Incomplete_Kind.
12793 (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
12794 output when Id is an incomplete subtype.
12795
127962006-10-31 Robert Dewar <dewar@adacore.com>
12797
12798 * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
12799 Avoid abbreviation Creat
12800 (Finalize): List all sources in extended mail source if -gnatl
12801 switch is active.
12802 Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
12803 (Finalize): Implement new -gnatl=xxx switch to output listing to file
12804 (Set_Specific_Warning_On): New procedure
12805 (Set_Specific_Warning_Off): New procedure
12806 Add implementation of new insertion \\
12807 (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
12808 (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
12809 types.
12810 (Error_Msg_Internal): Make sure that we set Last_Killed to
12811 True when a message from another package is suppressed.
12812 Implement insertion character ~ (insert string)
12813 (First_Node): Minor adjustments to get better placement.
12814
12815 * frontend.adb:
12816 Implement new -gnatl=xxx switch to output listing to file
12817
12818 * gnat1drv.adb:
12819 Implement new -gnatl=xxx switch to output listing to file
12820
6f7f72f9 12821 * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
70198b9f
AC
12822 (Commands_To_Stdout): New flag
12823 Implement new -gnatl=xxx switch to output listing to file
12824 New switch Dump_Source_Text
12825 (Warn_On_Deleted_Code): New warning flag for -gnatwt
12826 Define Error_Msg_Line_Length
12827 (Warn_On_Assumed_Low_Bound): New switch
12828
12829 * osint.ads, osint.adb
12830 (Normalize_Directory_Name): Fix bug.
12831 Implement new -gnatl=xxx switch to output listing to file
12832 (Concat): Removed, replaced by real concatenation
12833 Make use of concatenation now allowed in compiler
12834 (Executable_Prefix.Get_Install_Dir): First get the full path, so that
12835 we find the 'lib' or 'bin' directory even when the tool has been
12836 invoked with a relative path.
12837 (Executable_Name): New function taking string parameters.
12838
12839 * osint-c.ads, osint-c.adb:
12840 Implement new -gnatl=xxx switch to output listing to file
12841
12842 * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
12843
12844 * switch-c.adb:
12845 Implement new -gnatl=xxx switch to output listing to file
12846 Recognize new -gnatL switch
12847 (no longer keep in old warning about old style usage)
12848 Use concatenation to simplify code
12849 Recognize -gnatjnn switch
12850 (Scan_Front_End_Switches): Clean up handling of -gnatW
12851 (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
12852
128532006-10-31 Robert Dewar <dewar@adacore.com>
12854
12855 * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
12856 (Set_Specific_Warning_Off): New procedure
12857 (Warning_Specifically_Suppressed): New function
12858 (Validate_Specific_Warnings): New procedure
12859 (Output_Msg_Text): Complete rewrite to support -gnatjnn
12860
12861 * err_vars.ads: Implement insertion character ~ (insert string)
12862
128632006-10-31 Bob Duff <duff@adacore.com>
12864 Ed Schonberg <schonberg@adacore.com>
12865
12866 * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
12867 the parent part is a build-in-place function call, generate assignments.
12868 (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
12869 are build-in-place function calls.
12870 (Replace_Self_Reference): New subsidiary of
12871 Make_OK_Assignment_Statement, to replace an access attribute that is a
12872 self-reference into an access to the appropriate component of the
12873 target object. Generalizes previous mechanism to handle self-references
12874 nested at any level.
12875 (Is_Self_Referential_Init): Remove, not needed.
12876 (Is_Self_Referential_Init): New predicate to simplify handling of self
12877 referential components in record aggregates.
12878 (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
12879 check for presence of entity before checking for self-reference.
12880 (Has_Default_Init_Comps): Return True if a component association is a
12881 self-reference to the enclosing type, which can only come from a
12882 default initialization.
12883 (Make_OK_Assignment_Statement): If the expression is of the form
12884 Typ'Acc, where Acc is an access attribute, the expression comes from a
12885 default initialized self-referential component.
12886 (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
12887 that has been derived from several abstract interfaces we must also
12888 initialize the tags of the secondary dispatch tables.
12889
128902006-10-31 Ed Schonberg <schonberg@adacore.com>
12891 Thomas Quinot <quinot@adacore.com>
12892 Javier Miranda <miranda@adacore.com>
12893 Robert Dewar <dewar@adacore.com>
6f7f72f9
EB
12894
12895 * exp_attr.adb:
12896 (Expand_Access_To_Protected_Op): If the context indicates that an access
12897 to a local operation may be transfered outside of the object, create an
12898 access to the wrapper operation that must be used in an external call.
70198b9f
AC
12899 (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
12900 target, pass the Valid attribute applied to a floating-point prefix on
12901 to the back end without expansion.
12902 (Storage_Size): Use the new run-time function Storage_Size to retrieve
12903 the allocated storage when it is specified by a per-object expression.
12904 (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
12905 Nothing to do here, the attribute has been rewritten during semantic
12906 analysis.
12907 (Expand_Attribute_Reference): Handle expansion of the new Priority
12908 attribute
12909 (Find_Fat_Info): Handle case of universal real
12910 (Expand_Access_To_Protected_Op): Fix use of access to protected
12911 subprogram from inside the body of a protected entry.
12912 (Expand_Access_To_Protected_Op): Common procedure for the expansion of
12913 'Access and 'Unrestricted_Access, to transform the attribute reference
12914 into a fat pointer.
12915 (Is_Constrained_Aliased_View): New predicate to help determine whether a
12916 subcomponent's enclosing variable is aliased with a constrained subtype.
12917 (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
12918 test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
12919 an aliased prefix must be known to be constrained in order to use True
12920 for the attribute value, and now it's possible for some aliased views
12921 to be unconstrained.
12922
129232006-10-31 Robert Dewar <dewar@adacore.com>
12924
12925 * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
12926 (Expand_Entity_Reference): Correct error of not handling subprogram
12927 formals in current_value processing.
12928
129292006-10-31 Javier Miranda <miranda@adacore.com>
12930 Robert Dewar <dewar@adacore.com>
12931 Ed Schonberg <schonberg@adacore.com>
12932 Gary Dismukes <dismukes@adacore.com>
12933
6f7f72f9 12934 * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
70198b9f
AC
12935 register in the final list objects containing class-wide interfaces;
12936 otherwise we incorrectly register the tag of the interface in the final
12937 list.
6f7f72f9
EB
12938 (Make_Controlling_Function_Wrappers): Add missing barrier to do not
12939 generate the wrapper if the parent primitive is abstract. This is
12940 required to report the correct error message.
12941 (Expand_N_Subtype_Indication): Do validity checks on range
70198b9f
AC
12942 (Clean_Task_Names): If an initialization procedure includes a call to
12943 initialize a task (sub)component, indicate that the procedure will use
12944 the secondary stack.
12945 (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
12946 compatibility for interfacing with CPP by default.
12947 (Expand_N_Object_Declaration): Only build an Adjust call when the
12948 object's type is a nonlimited controlled type.
12949 * exp_ch3.adb: Add with and use of Exp_Ch6.
12950 (Expand_N_Object_Declaration): Check for object initialization that is a
12951 call to build-in-place function and apply Make_Build_In_Place_Call_In_
12952 Object_Declaration to the call.
12953 (Freeze_Type): When the designated type of an RACW was not frozen at the
12954 point where the RACW was declared, validate the primitive operations
12955 with respect to E.2.2(14) when it finally is frozen.
12956 (Build_Initialization_Call,Expand_Record_Controller): Rename
12957 Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
12958 return-by-reference has no meaning in Ada 2005.
12959 (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
12960 to register tag of the immediate ancestor interfaces in the
12961 run-time structure.
12962 (Init_Secondary_Tags): Moved to the specification to allow the
12963 initialization of extension aggregates with abstract interfaces.
12964 (Build_Master_Renaming): Make public, for use by function declarations
12965 whose return type is an anonymous access type.
12966 (Freeze_Record_Type): Replace call to Insert_List_Before by call to
12967 Insert_List_Before_And_Analyze after the generation of the specs
12968 associated with null procedures.
12969 (Expand_Tagged_Root): Update documentation in its specification.
12970 (Init_Secondary_Tags): Update documentation.
12971 (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
12972 tibility mode and the immediate ancestor is a CPP_Pragma tagged type
12973 then generate code to inherit the contents of the dispatch table
12974 directly from the ancestor.
12975 (Expand_Record_Controller): Insert controller component after tags of
12976 implemented interfaces.
12977 (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
12978 create null procedure overridings when null procedures are inherited
12979 from interfaces.
12980 (Make_Null_Procedure_Specs): New procedure to generate null procedure
12981 declarations for overriding null primitives inherited from interfaces.
12982 (Is_Null_Interface_Procedure): New function in
12983 Make_Null_Procedure_Specs.
12984 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
12985 immediate ancestor of a tagged type is an abstract interface type we
12986 must generate the specification of the predefined primitives associated
12987 with controlled types (because the dispatch table of the ancestor is
12988 null and hence these entries cannot be inherited). This is required to
12989 elaborate well the dispatch table.
12990
129912006-10-31 Javier Miranda <miranda@adacore.com>
12992 Ed Schonberg <schonberg@adacore.com>
12993 Bob Duff <duff@adacore.com>
12994 Gary Dismukes <dismukes@adacore.com>
12995 Robert Dewar <dewar@adacore.com>
6f7f72f9
EB
12996
12997 * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
70198b9f 12998 conversion.
6f7f72f9 12999 (Expand_N_In): Do validity checks on range
70198b9f
AC
13000 (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
13001 (Expand_N_Allocator): For "new T", if the object is constrained by
13002 discriminant defaults, allocate the right amount of memory, rather than
13003 the maximum for type T.
13004 (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
13005 when the allocator is initialized by a build-in-place call, since the
13006 allocator is already rewritten as a reference to the function result,
13007 and this prevents an unwanted duplication of the function call.
13008 Add with and use of Exp_Ch6.
13009 (Expand_Allocator_Expresssion): Check for an allocator whose expression
13010 is a call to build-in-place function and apply
13011 Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
13012 untagged designated types).
13013 (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
13014 optimization if source or target is biased.
13015 (Expand_N_Allocator): Add comments for case of an allocator within a
13016 function that returns an anonymous access type designating tasks.
13017 (Expand_N_Allocator): apply discriminant checks for access
13018 discriminants of anonymous access types (AI-402, AI-416)
13019
130202006-10-31 Bob Duff <duff@adacore.com>
13021 Robert Dewar <dewar@adacore.com>
13022 Gary Dismukes <dismukes@adacore.com>
13023 Ed Schonberg <schonberg@adacore.com>
13024
13025 * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
13026
6f7f72f9 13027 * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
70198b9f
AC
13028 (Expand_N_Assignment_Statement): Call
13029 Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
13030 build-in-place function call. Currently, this can happen only for
13031 assignments that come from aggregates.
13032 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
13033 in order to alleviate the upward compatibility introduced by AI-318.
13034 (Expand_N_Extended_Return_Statement): Add support for handling the
13035 return object as a build-in-place result.
13036 (Expand_Non_Function_Return): Implement simple return statements nested
13037 within an extended return.
13038 (Enable_New_Return_Processing): Turn on the new processing of return
13039 statements.
13040 (Expand_Non_Function_Return): For a return within an extended return,
13041 don't raise Program_Error, because Sem_Ch6 now gives a warning.
13042 (Expand_N_Extended_Return_Statement): Implement AI-318
13043 (Expand_Simple_Function_Return): Ditto.
13044 (Expand_N_If_Statement): Handle new -gnatwt warning
13045 (Expand_N_Case_Statement): Handle new -gnatwt warning
13046 (Expand_N_Assignment): Handle assignment to the Priority attribute of
13047 a protected object.
13048 (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
13049 validity checking of assignments to elementary record components.
13050 (Expand_N_Return_Statement): return Class Wide types on the secondary
13051 stack independantly of their controlled status since with HIE runtimes,
13052 class wide types are not potentially controlled anymore.
13053
13054 * expander.adb (Expand): Add case for new N_Extended_Return_Statement
13055 node kind.
13056
13057 * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
13058 Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
13059 it expects a block, procedure, or task. The return statement will get
13060 turned into a block, and Expand_Cleanup_Actions will happen then.
13061
130622006-10-31 Robert Dewar <dewar@adacore.com>
13063 Ed Schonberg <schonberg@adacore.com>
13064 Bob Duff <duff@adacore.com>
13065 Gary Dismukes <dismukes@adacore.com>
13066
13067 * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
13068 capability.
13069 (Expand_Inlined_Call): Tagged types are by-reference types, and
13070 therefore should be replaced by a renaming declaration in the expanded
13071 body, as is done for limited types.
13072 (Expand_Call): If this is a call to a function with dispatching access
13073 result, propagate tag from context.
13074 (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
13075 CPP by default.
13076 (Make_Build_In_Place_Call_In_Assignment): New procedure to do
13077 build-in-place when the right-hand side of an assignment is a
13078 build-in-place function call.
13079 (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
13080 of the explicit dereference of the allocator to the result subtype of
13081 the build-in-place function. This is needed to satisfy type checking
13082 in cases where the caller's return object is created by an allocator for
13083 a class-wide access type and the type named in the allocator is a
13084 specific type.
13085 (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
13086 conversion of the reference to the declared object to the result subtype
13087 of the build-in-place function. This is needed to satisfy type checking
13088 in cases where the declared object has a class-wide type. Also, in the
13089 class-wide case, change the type of the object entity to the specific
13090 result subtype of the function, to avoid passing a class-wide object
13091 without explicit initialization to the back end.
13092 (Register_Interface_DT_Entry): Moved outside the body of
13093 Freeze_Subprogram because this routine is now public; it is called from
13094 Check_Dispatching_Overriding to handle late overriding of abstract
13095 interface primitives.
13096 (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
13097 adding an implicit access actual on a call to a build-in-place function.
13098 (Expand_Actuals): Test for an actual parameter that is a call to a
13099 build-in-place function and apply
13100 Make_Build_In_Place_Call_In_Anonymous_Context to the call.
13101 (Is_Build_In_Place_Function): New function to determine whether an
13102 entity is a function whose calls should be handled as build-in-place.
13103 (Is_Build_In_Place_Function_Call): New function to determine whether an
13104 expression is a function call that should handled as build-in-place.
13105 (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
13106 calls to build-in-place functions as the initialization of an allocator.
13107 (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
13108 handling calls to build-in-place functions in contexts that do not
13109 involve init of a separate object (for example, actuals of subprogram
13110 calls).
13111 (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
13112 handling calls to build-in-place functions as the initialization of an
13113 object declaration.
13114 (Detect_Infinite_Recursion): Add explicit parameter Process to
13115 instantiation of Traverse_Body to avoid unreferenced warning.
13116 (Check_Overriding_Inherited_Interfaces): Removed.
13117 (Register_Interface_DT_Entry): Code cleanup.
13118 (Register_Predefined_DT_Entry): Code cleanup.
13119 (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
13120 inlined statements if within a transient scope.
13121 (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
13122 formal parameters with occurrences of actuals in inlined body, establish
13123 visibility on the proper view of the actual's subtype for the body's
13124 context.
13125 (Freeze_Subprogram): Do nothing if we are compiling under full ABI
13126 compatibility mode and we have an imported CPP subprogram because
13127 for now we assume that imported CPP primitives correspond with
13128 objects whose constructor is in the CPP side (and therefore we
13129 don't need to generate code to register them in the dispatch table).
13130 (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
13131 aligned selected component.
13132 (Add_Call_By_Copy_Node): Add missing code to handle the case in which
13133 the actual of an in-mode parameter is a type conversion.
13134 (Expand_Actuals): If the call does not come from source and the actual
13135 is potentially misaligned, let gigi handle it rather than rejecting the
13136 (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
13137 Class Wide types as returning by reference independantly of their
13138 controlled status since with HIE runtimes class wide types are not
13139 potentially controlled anymore.
13140
6f7f72f9 131412006-10-31 Ed Schonberg <schonberg@adacore.com>
70198b9f 13142
6f7f72f9 13143 * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
70198b9f
AC
13144 references that are private components of the protected object.
13145 (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
13146 (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
13147 instantiation to deal with warnings.
13148 (Initialize_Protection): If expression for priority is non-static, use
13149 System_Priority as its expected type, in case the expression has not
13150 been analyzed yet.
13151
131522006-10-31 Robert Dewar <dewar@adacore.com>
13153
13154 * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
13155 initialization of Homonym_Len.
13156 (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
13157 names from fully qualified name. Fixes problem of duplicate
13158 external names differing only in the presence of such a block name.
13159
131602006-10-31 Thomas Quinot <quinot@adacore.com>
13161 Pablo Oliveira <oliveira@adacore.com>
6f7f72f9
EB
13162
13163 * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
70198b9f
AC
13164 subprogram Ids, even if they are not yet assigned.
13165 (Build_Subprogram_Id): It is now this function that will take care of
13166 calling Assign_Subprogram_Ids if necessary.
13167 (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
13168 should be done only once they are assigned.
13169 (Build_From_Any_Function, case of tagged types): Add missing call to
13170 Allocate_Buffer.
13171 (Corresponding_Stub_Type): New subprogram. Returns the associated stub
13172 type for an RACW type.
13173 (Add_RACW_Features): When processing an RACW declaration for which the
13174 designated type is already frozen, enforce E.2.2(14) rules immediately.
13175 (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
13176 special reordering of controlling formals.
13177
13178 * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
13179 associated stub type for an RACW type.
13180
131812006-10-31 Ed Schonberg <schonberg@adacore.com>
13182
13183 * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
13184 fixed-point operations in an integer context, i.e. as operands of a
13185 conversion to an integer type, indicate that result must be rounded.
13186
131872006-10-31 Robert Dewar <dewar@adacore.com>
13188
13189 * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
13190 cases, pass the encoding method, since it is now required by the run
13191 time.
13192
13193 * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
13194 assumption that Str'First = 1.
13195 (Value_Wide_Character): Takes EM (encoding method) parameter and passes
13196 it on to the Value_Wide_Wide_Character call.
13197 (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
13198 properly handles a string of the form quote-encoded_wide_char-quote.
13199
13200 * s-wchcnv.adb: Minor reformatting
13201
132022006-10-31 Javier Miranda <miranda@adacore.com>
6f7f72f9 13203
70198b9f
AC
13204 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
13205 run-time membership test to ensure that the constructed object
13206 implements the target abstract interface.
13207
132082006-10-31 Robert Dewar <dewar@adacore.com>
13209
13210 * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
13211 Machine_Attribute pragma internally to implement the user pragma.
13212 Add processing for pragma Interface so that it is now completely
13213 equivalent to pragma Import.
13214
13215 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
13216 so that it can be applied to all entities, including record components
13217 and enumeration literals.
13218 (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
13219 priority ranges are correct, verify compatibility against task
13220 dispatching and locking policies, and if everything is correct an entry
13221 is added to the table containing priority specific dispatching entries
13222 for this compilation unit.
13223 (Delay_Config_Pragma_Analyze): Delay processing
13224 Priority_Specific_Dispatching pragmas because when processing the
13225 pragma we need to access run-time data, such as the range of
13226 System.Any_Priority.
13227 (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
13228 Allow pragma Unreferenced as a context item
13229 Add pragma Preelaborable_Initialization
13230 (Analyze_Pragma, case Interface): Interface is extended so that it is
13231 now syntactically and semantically equivalent to Import.
13232 (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
13233 insertion characters.
13234 Add handling for Pragma_Wide_Character_Encoding
13235 (Process_Restrictions_Restriction_Warnings): Ensure that a warning
13236 never supercedes a real restriction, and that a real restriction
13237 always supercedes a warning.
13238 (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
13239 appropriate form.
13240
132412006-10-31 Bob Duff <duff@adacore.com>
13242 Ed Schonberg <schonberg@adacore.com>
13243 Robert Dewar <dewar@adacore.com>
13244
13245 * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
13246 Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
13247 Is_Inherently_Limited_Type, because return-by-reference has no meaning
13248 in Ada 2005.
13249 (Find_Node_To_Be_Wrapped): Use new method of determining the result
13250 type of the function containing a return statement, because the
13251 Return_Type field was removed. We now use the Return_Applies_To field.
13252
6f7f72f9 13253 * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
70198b9f
AC
13254 (Build_Task_Image_Decl): If procedure is not called from an
13255 initialization procedure, indicate that function that builds task name
13256 uses the sec. stack. Otherwise the enclosing initialization procedure
13257 will carry the indication.
13258 (Insert_Actions): Remove N_Return_Object_Declaration. We now use
13259 N_Object_Declaration instead.
13260 (Kill_Dead_Code): New interface to implement -gnatwt warning for
13261 conditional dead code killed, and change implementation accordingly.
13262 (Insert_Actions): Add N_Return_Object_Declaration case.
13263 Correct comment to mention N_Extension_Aggregate node.
13264 (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
13265 attempts to save information for global variables which cannot be
13266 safely tracked.
13267 (Get_Current_Value_Condition): Handle conditions the other way round
13268 (constant on left). Also handle right operand of AND and AND THEN
13269 (Set_Current_Value_Condition): Corresponding changes
13270 (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
13271 (Get_Current_Value_Condition): Handle simple boolean operands
13272 (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
13273 (Get_Current_Value_Condition): If the variable reference is within an
13274 if-statement, does not appear in the list of then_statments, and does
13275 not come from source, treat it as being at unknown location.
13276 (Get_Current_Value_Condition): Enhance to allow while statements to be
13277 processed as well as if statements.
13278 (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
13279 come from source.
13280 (OK_To_Do_Constant_Replacement): Allow constant replacement within body
13281 of loop. This is safe now that we fixed Kill_Current_Values.
13282 (OK_To_Do_Constant_Replacement): Check whether current scope is
13283 Standard, before examining outer scopes.
13284
132852006-10-31 Vincent Celier <celier@adacore.com>
13286
13287 * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
13288 When True, apply VMS treatment to children of packages A, G, I and S.
13289 For F320-016
13290
13291 * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
13292
132932006-10-31 Robert Dewar <dewar@adacore.com>
13294 Ed Schonberg <schonberg@adacore.com>
13295
13296 * freeze.adb: Add handling of Last_Assignment field
13297 (Warn_Overlay): Supply missing continuation marks in error msgs
13298 (Freeze_Entity): Add check for Preelaborable_Initialization
13299
13300 * g-comlin.adb: Add Warnings (Off) to prevent new warning
13301
13302 * g-expect.adb: Add Warnings (Off) to prevent new warning
13303
13304 * lib-xref.adb: Add handling of Last_Assignment field
13305 (Generate_Reference): Centralize handling of pragma Obsolescent here
13306 (Generate_Reference): Accept an implicit reference generated for a
13307 default in an instance.
13308 (Generate_Reference): Accept a reference for a node that is not in the
13309 main unit, if it is the generic body corresponding to an subprogram
13310 instantiation.
13311
13312 * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
13313
6f7f72f9 13314 * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
70198b9f
AC
13315 -gnatwq/Q.
13316 (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
13317 exception handler.
13318 (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
13319 use clauses, to avoid messages on packages used to qualify, and also
13320 to avoid messages from obsolescent units.
13321 (Warn_On_Useless_Assignments): Don't generate messages for imported
13322 and exported variables.
13323 (Warn_On_Useless_Assignments): New procedure
13324 (Output_Obsolescent_Entity_Warnings): New procedure
13325 (Check_Code_Statement): New procedure
13326
6f7f72f9 13327 * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
70198b9f
AC
13328 Change name Is_Ada_2005 to Is_Ada_2005_Only
13329 (Last_Assignment): New field for useless assignment warning
13330
133312006-10-31 Olivier Hainque <hainque@adacore.com>
13332
13333 * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
13334 closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
13335
133362006-10-31 Bob Duff <duff@adacore.com>
13337 Robert Dewar <dewar@adacore.com>
13338 Ed Schonberg <schonberg@adacore.com>
13339
13340 * g-awk.adb (Default_Session, Current_Session): Compile this file in
13341 Ada 95 mode, because it violates the new rules for AI-318.
13342
13343 * g-awk.ads: Use overloaded subprograms in every case where we used to
13344 have a default of Current_Session. This makes the code closer to be
13345 correct for both Ada 95 and 2005.
13346
13347 * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
13348 code, relying on the fact that the compiler generates a warning
13349 instead of an error in -gnatg mode.
13350
13351 * lib-xref.ads (Xref_Entity_Letters): Add entry for new
13352 E_Return_Statement entity kind.
13353 Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
13354
13355 * par.adb (P_Interface_Type_Definition): Addition of one formal to
13356 report an error if the reserved word abstract has been previously found.
13357 (SS_End_Type): Add E_Return for new extended_return_statement syntax.
6f7f72f9
EB
13358
13359 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
70198b9f
AC
13360 parenthesized range attribute usage
13361 (P_Expression_No_Right_Paren): Add missing comment about error recovery.
13362
13363 * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
13364 in the syntax for extended_return_statement. This is not in the latest
13365 RM, but the ARG is expected to issue an AI allowing this.
13366 (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
13367 N_Return_Object_Declaration. We now use N_Object_Declaration instead.
13368 (P_Return_Object_Declaration, P_Return_Subtype_Indication,
13369 P_Return_Statement): Parse the new syntax for extended_return_statement.
13370
13371 * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
13372 Output_End_Missing): Add error-recovery code for the new
13373 extended_return_statement syntax; that is, the new E_Return entry on
13374 the scope stack.
13375
13376 * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
13377 limited to nonlimited, because otherwise we violate the new Ada 2005
13378 rules about returning limited types in function Create_AST_Handler in
13379 s-asthan.adb.
13380
13381 * sem.adb (Analyze): Add cases for new node kinds
13382 N_Extended_Return_Statement and N_Return_Object_Declaration.
13383
13384 * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
13385 type is in the same category as type of context before applying check,
13386 to prevent anomalies in instantiations.
13387 (Resolve_Aggregate): Remove test for limited components in aggregates.
13388 It's unnecessary in Ada 95, because if it has limited components, then
13389 it must be limited. It's wrong in Ada 2005, because limited aggregates
13390 are now allowed.
13391 (Resolve_Record_Aggregate): Move check for limited types later, because
13392 OK_For_Limited_Init requires its argument to have been resolved.
13393 (Get_Value): When copying the component default expression for a
13394 defaulted association in an aggregate, use the sloc of the aggregate
13395 and not that of the original expression, to prevent spurious
13396 elaboration errors, when the expression includes function calls.
13397 (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
13398 were missing. We also didn't handle qualified expressions. Now also
13399 allow function calls. Use new common routine OK_For_Limited_Init.
13400 (Resolve_Extension_Aggregate): Minor fix to bad error message (started
13401 with space can upper case letter).
13402
6f7f72f9 13403 * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
70198b9f 13404 Has_Static_Discriminants flag
6f7f72f9
EB
13405 (Record_Type_Declaration): Diagnose an attempt to declare an interface
13406 type with discriminants.
13407 (Process_Range_Expr_In_Decl): Do validity checks on range
70198b9f
AC
13408 (Build_Discriminant_Constraints): Use updated form of
13409 Denotes_Discriminant.
13410 (Process_Subtype): If the subtype is a private subtype whose full view
13411 is a concurrent subtype, introduce an itype reference to prevent scope
13412 anomalies in gigi.
13413 (Build_Derived_Record_Type, Collect_Interface_Primitives,
13414 Record_Type_Declaration): The functionality of the subprograms
13415 Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
13416 is now performed by a single routine.
13417 (Build_Derived_Record_Type): If the type definition includes an explicit
13418 indication of limitedness, then the type must be marked as limited here
13419 to ensure that any access discriminants will not be treated as having
13420 a local anonymous access type.
13421 (Check_Abstract_Overriding): Issue a detailed error message when an
13422 abstract subprogram was not overridden due to incorrect mode of its
13423 first parameter.
13424 (Analyze_Private_Extension_Declaration): Add support for the analysis of
13425 synchronized private extension declarations. Verify that the ancestor is
13426 a limited or synchronized interface or in the generic case, the ancestor
13427 is a tagged limited type or synchronized interface and all progenitors
13428 are either limited or synchronized interfaces.
13429 Derived_Type_Declaration): Check for presence of private extension when
13430 dealing with synchronized formal derived types.
13431 Process_Full_View): Enchance the check done on the usage of "limited" by
13432 testing whether the private view is synchronized.
13433 Verify that a synchronized private view is completed by a protected or
13434 task type.
13435 (OK_For_Limited_Init_In_05): New function.
13436 (Analyze_Object_Declaration): Move check for limited types later,
13437 because OK_For_Limited_Init requires its argument to have been resolved.
13438 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
13439 in order to alleviate the upward compatibility introduced by AI-318.
13440 (Constrain_Corresponding_Record): If the constraint is for a component
13441 subtype, mark the itype as frozen, to avoid out-of-scope references to
13442 discriminants in the back-end.
13443 (Collect_Implemented_Interfaces): Protect the recursive algorithm of
13444 this subprogram against wrong sources.
13445 (Get_Discr_Value, Is_Discriminant): Handle properly references to a
13446 discriminant of limited type completed with a protected type, when the
13447 discriminant is used to constrain a private component of the type, and
13448 expansion is disabled.
13449 (Find_Type_Of_Object): Do not treat a return subtype that is an
13450 anonymous subtype as a local_anonymous_type, because its accessibility
13451 level is the return type of the enclosing function.
13452 (Check_Initialization): In -gnatg mode, turn the error "cannot
13453 initialize entities of limited type" into a warning.
13454 (OK_For_Limited_Init): Return true for generated nodes, since it
13455 sometimes violates the legality rules.
13456 (Make_Incomplete_Declaration): If the type for which an incomplete
13457 declaration is created happens to be the currently visible entity,
13458 preserve the homonym chain when removing it from visibility.
13459 (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
13460 inherited subprograms.
13461 (Access_Definition): If this is an access to function that is the return
13462 type of an access_to_function definition, context is a type declaration
13463 and the scope of the anonymous type is the current one.
13464 (Analyze_Subtype_Declaration): Add the defining identifier of a regular
13465 incomplete subtype to the set of private dependents of the original
13466 incomplete type.
13467 (Constrain_Discriminated_Type): Emit an error message whenever an
13468 incomplete subtype is being constrained.
13469 (Process_Incomplete_Dependents): Transform an incomplete subtype into a
13470 corresponding subtype of the full view of the original incomplete type.
13471 (Check_Incomplete): Properly detect invalid usage of incomplete types
13472 and subtypes.
13473
134742006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
13475
13476 * g-catiio.ads, g-catiio.adb (Value): New function.
13477 Given an input String, try and parse a valid Time value.
13478
134792006-10-31 Vincent Celier <celier@adacore.com>
13480
13481 * g-debpoo.adb (Is_Valid): Correctly compute Offset using
13482 Integer_Address arithmetic, as in Set_Valid.
13483
134842006-10-31 Arnaud Charlet <charlet@adacore.com>
13485 Robert Dewar <dewar@adacore.com>
13486
13487 * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
13488 handling executable extension manually and duplicating code.
13489
13490 * make.adb: Implement new -S switch
13491 (Gnatmake): Use new function Osint.Executable_Name instead
13492 of handling executable extension manually.
13493
13494 * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
13495 is specified, the executable name ends with this suffix.
13496 Take advantage of Osint.Executable_Name instead of duplicating code.
13497
13498 * switch-m.adb: Recognize new gnatmake -S switch
13499
13500 * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
13501 variable.
13502 (Get_Target_Parameters): Set Executable_Extension_On_Target if
13503 available.
13504
13505 * makeusg.adb: Add line for gnatmake -S switch
13506
135072006-10-31 Vincent Celier <celier@adacore.com>
13508
13509 * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
13510 call it with -static-libgcc, as there are some platforms, such as
13511 Darwin, where one of these two switches is compulsory to link.
13512
135132006-10-31 Vincent Celier <celier@adacore.com>
6f7f72f9 13514
70198b9f
AC
13515 * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
13516 instead of ADA_PROJECT_PATH, for the project path.
13517 (Gnatls): When displaying the project path directories, use host dir
13518 specs.
13519
13520 * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
13521 names in the project path, as absolute paths may correspond to
13522 multi-valued VMS logical names.
13523
135242006-10-31 Vincent Celier <celier@adacore.com>
13525
13526 * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
13527 absolute path name.
13528 (Locate_Regular_File): Ditto
13529 (Change_Dir): Remove, no longer used
13530 (Normalize_Pathname): Do not use Change_Dir to get the drive letter
13531 on Windows. Get it calling Get_Current_Dir.
13532 (OpenVMS): Remove imported boolean, no longer needed.
13533 (Normalize_Pathname)[VMS]: Do not resolve directory names.
13534 (Pid_To_Integer): New function to convert a Process_Id to Integer
13535
135362006-10-31 Thomas Quinot <quinot@adacore.com>
13537
13538 * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
13539 sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
13540 to No_Socket.
13541 (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
13542 W_Sig_Socket.
13543
135442006-10-31 Robert Dewar <dewar@adacore.com>
13545
13546 * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
13547 initial letter o as a zero.
13548
135492006-10-31 Robert Dewar <dewar@adacore.com>
13550
13551 * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
13552
135532006-10-31 Robert Dewar <dewar@adacore.com>
13554
6f7f72f9
EB
13555 * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
13556 variant records
13557 (Layout_Variant_Record): Retrieve the discriminants from the entity
70198b9f
AC
13558 rather than from the type definition, because in the case of a full
13559 type for a private type we need to take the discriminants from the
13560 partial view.
6f7f72f9
EB
13561 (Layout_Component_List): When applying the Max operator to variants with
13562 a nonstatic size, check whether either operand is static and scale that
13563 operand from bits to storage units before applying Max.
70198b9f
AC
13564 (Layout_Type): In VMS, if a C-convention access type has no explicit
13565 size clause (and does not inherit one in the case of a derived type),
13566 then the size is reset to 32 from 64.
13567
135682006-10-31 Vincent Celier <celier@adacore.com>
13569
13570 * lib-load.adb (Load_Unit): Skip the test for a unit not found when
13571 its file has already been loaded, according to the unit being loaded,
13572 not to the current value of Multiple_Unit_Index.
13573
135742006-10-31 Thomas Quinot <quinot@adacore.com>
13575 Eric Botcazou <ebotcazou@adacore.com>
13576 Arnaud Charlet <charlet@adacore.com>
13577
13578 * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
13579 (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
13580 possible.
13581 (a-except.o): Pass it to the compiler.
13582 (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
13583 (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
13584 a-calend-mingw.adb version.
13585
6f7f72f9 13586 * Makefile.rtl: Added s-dsaser.
70198b9f
AC
13587 Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
13588 (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
13589 Ada.Dispatching.Round_Robin.
13590 Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
13591
13592 * Make-lang.in: Remove all references to gt-ada-decl.h.
13593 Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
13594 sources.
13595 Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
13596 Update dependencies.
13597
13598 * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
13599
136002006-10-31 Vincent Celier <celier@adacore.com>
13601
13602 * mlib-utl.adb (Initialized): Remove, no longer used
13603 (Initialize): Remove, no longer used
13604 (Ar): If Ar_Exec is null, get the location of the archive builder and,
13605 if there is one, the archive indexer. Fail if the archive builder cannot
13606 be found.
13607 (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
13608 be found.
13609
136102006-10-31 Ed Schonberg <schonberg@adacore.com>
13611
13612 * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
13613 Process_Body_Clauses): If the context of a body includes a use clause
13614 for P.Q then a with_clause for P in the same body is not redundant,
13615 even if the spec also has a with_clause on P.
13616 Add missing continuation mark to error msg
13617 (Build_Limited_Views): A limited view of a type is tagged if its
13618 declaration includes a record extension.
13619 (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
13620 node, even if the subunit has errors. This avoids malfunction by
13621 Lib.Check_Same_Extended_Unit in the presence of syntax errors.
13622 (Analyze_Compilation_Unit): Add circuit to make sure we get proper
13623 generation of obsolescent messages for with statements (cannot do
13624 this too early, or we cannot implement avoiding the messages in the
13625 case of obsolescent units withing obsolescent units).
13626 (Install_Siblings): If the with_clause is on a remote descendant of
13627 an ancestor of the current compilation unit, find whether there is
13628 a sibling child unit that is immediately visible.
13629 (Remove_Private_With_Clauses): New procedure, invoked after completing
13630 the analysis of the private part of a nested package, to remove from
13631 visibility the private with_clauses of the enclosing package
13632 declaration.
13633 (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
13634 now centralized in Generate_Reference.
13635 (Install_Limited_Context_Clauses): Remove superfluous error
13636 message associated with unlimited view visible through use
13637 and renamings. In addition, at the point in which the error
13638 is reported, we add the backslash to the text of the error
13639 to ensure that it is reported as a single error message.
13640 Use new // insertion for some continuation messages
13641 (Expand_Limited_With_Clause): Use copy of name rather than name itself,
13642 to create implicit with_clause for parent unit mentioned in original
13643 limited_with_clause.
13644 (Install_Limited_With_Unit): Set entity of parent identifiers if the
13645 unit is a child unit. For ASIS queries.
13646 (Analyze_Subunit): If the subunit appears within a child unit, make all
13647 ancestor child units directly visible again.
13648
136492006-10-31 Robert Dewar <dewar@adacore.com>
13650
13651 * par-ch10.adb (P_Context_Clause): Minor error message fix
13652
136532006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
13654 Javier Miranda <miranda@adacore.com>
13655
13656 * par-ch12.adb: Grammar update and cleanup.
13657 (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
13658 support for synchronized derived type definitions.
13659 Add the new actual Abstract_Present to every call to
13660 P_Interface_Type_Definition.
13661 (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
13662 a formal object declaration with an access definition or a subtype mark
13663 with a null exclusion.
13664 (P_Generic_Association): Handle association with box, and others_choice
13665 with box, to support Ada 2005 partially parametrized formal packages.
13666
136672006-10-31 Robert Dewar <dewar@adacore.com>
13668 Javier Miranda <miranda@adacore.com>
6f7f72f9 13669
70198b9f
AC
13670 * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
13671 (P_Type_Declaration): Remove barrier against the reserved word "limited"
13672 after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
13673 (P_Type_Declaration): Minor code cleanup. Add support for synchronized
13674 private extensions.
13675 (P_Type_Declaration): Add the new actual Abstract_Present to every call
13676 to P_Interface_Type_Definition.
13677 (P_Interface_Type_Definition): Addition of one formal to report an error
13678 if the reserved word abstract has been previously found.
13679 (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
13680 object renaming declaration with an access definition or subtype mark
13681 with a possible null exclusion.
13682
13683 * par-ch9.adb: Minor error msg fix
13684
13685 * par-load.adb: Add missing continuation mark to error msg
13686
13687 * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
13688
136892006-10-31 Vincent Celier <celier@adacore.com>
13690
13691 * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
13692 unknown attribute in unknown package or in package that does not need
13693 to be checked.
13694 (Parse_Package_Declaration): Do not issue warning for unknown package in
13695 quiet output.
13696
136972006-10-31 Vincent Celier <celier@adacore.com>
13698
13699 * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
13700 (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
13701 Packages_To_Check.
13702
137032006-10-31 Vincent Celier <celier@adacore.com>
13704
13705 * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
13706 on VMS, change "__" to '.' before checking the name.
13707 (Record_Ada_Source): Always add the source file name in the list of
13708 of sources, even if it is not the first time, as it is for another
13709 source index.
13710 (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
13711 dot, instead of replacing only the first '_'.
13712
13713 * prj-part.adb (Parse): Convert project file path to canonical form
13714
13715 * prj-proc.adb (Recursive_Process): Make sure that, when a project is
13716 extended, the project id of the project extending it is recorded in its
13717 data, even when it has already been processed as an imported project.
13718
137192006-10-31 Robert Dewar <dewar@adacore.com>
13720
13721 * repinfo.adb (List_Entities): Don't list entities from renaming
13722 declarations.
13723
137242006-10-31 Arnaud Charlet <charlet@adacore.com>
13725 Robert Dewar <dewar@adacore.com>
13726
13727 * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
13728 only a restriction warning is active for the given restriction. This is
13729 desirable because we do not want to modify code in the case where only
13730 a warning is set.
13731 (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
13732 causes overriding of real restrictions.
13733 Take advantage of new No_Restrictions constant.
13734
13735 * raise.h: (__gnat_set_globals): Change profile.
13736
137372006-10-31 Arnaud Charlet <charlet@adacore.com>
70198b9f 13738
6f7f72f9
EB
13739 * rtsfind.adb: Remove s-polint from comment as it exists no more.
13740
13741 * rtsfind.ads:
13742 Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
13743 Move all the entities in obsolete package System.PolyORB_Interface to
13744 System.Partition_Interface.
70198b9f
AC
13745 (RE_Storage_Size): New function in System.Tasking.
13746 (RE_Get_Ceiling): New entity.
13747 (RE_Set_Ceiling): New entity.
13748 (RO_PE_Get_Ceiling): New entity.
13749 (RO_RE_Set_Ceiling): New entity.
13750 (Inherit_CPP_DT): New entity
13751
137522006-10-31 Robert Dewar <dewar@adacore.com>
13753
13754 * scng.adb (Scan, case of numeric literal): Better msg for identifier
13755 starting with a digit.
13756
137572006-10-31 Ed Schonberg <schonberg@adacore.com>
13758 Thomas Quinot <quinot@adacore.com>
13759 Javier Miranda <miranda@adacore.com>
13760 Gary Dismukes <dismukes@adacore.com>
13761
13762 * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
13763 properly an attempt to apply Unchecked_Access to a protected operation.
13764 (OK_Self_Reference): New subprogram to check the legality of an access
13765 attribute whose prefix is the type of an enclosing aggregate.
13766 Generalizes previous mechanism to handle attribute references nested
13767 arbitrarily deep within the aggregate.
13768 (Analyze_Access_Attribute): An access attribute whose prefix is a type
13769 can appear in an aggregate if this is a default-initialized aggregate
13770 for a self-referential type.
13771 (Resolve_Attribute, case Access): Ditto.
13772 Add support for new implementation defined attribute Stub_Type.
13773 (Eval_Attribute, case Attribute_Stub_Type): New case.
13774 (Analyze_Attribute, case Attribute_Stub_Type): New case.
13775 (Stream_Attribute_Available): Implement using new subprogram from
13776 sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
13777 Has_Specified_Stream_Attribute flag.
13778 Disallow Storage_Size and Storage_Pool for access to subprogram
13779 (Resolve_Attribute, case 'Access et al): Take into account anonymous
13780 access types of return subtypes in extended return statements. Remove
13781 accessibility checks on anonymous access types when Unchecked_Access is
13782 used.
13783 (Analyze_Attribute): Add support for the use of 'Class to convert
13784 a class-wide interface to a tagged type.
13785 Add support for the attribute Priority.
13786 (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
13787 whether the designated type is discriminated with a constrained partial
13788 view and require static matching in that case.
13789 Add local variable Des_Btyp. The Designated_Type
13790 of an access to incomplete subtype is either its non-limited view if
13791 coming from a limited with or its etype if regular incomplete subtype.
13792
13793 * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
13794 Fix predicate to identify and allow cases of (expander-generated)
13795 references to tag of designated object of a RACW.
13796 (Validate_Static_Object_Name): In Ada 2005, a formal object is
13797 non-static, and therefore cannot appear as a primary in a preelaborable
13798 package.
13799 (Has_Stream_Attribute_Definition): New subprogram, abstracted from
13800 Has_Read_Write_Attributes.
13801 (Has_Read_Write_Attributes): Reimplement in termes of
13802 Has_Stream_Attribute_Definition.
13803 (Missing_Read_Write_Attributes): When checking component types in a
13804 record, unconditionally call Missing_Read_Write_Attributes recursively
13805 (remove guard checking for Is_Record_Type / Is_Access_Type).
13806
138072006-10-31 Robert Dewar <dewar@adacore.com>
13808
13809 * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
13810 useless assignments here and conditionalize it on absence of exception
13811 handlers.
13812 (Analyze_Exception_Handlers): Small code reorganization of error
13813 detection code, for new handling of formal packages.
13814
138152006-10-31 Ed Schonberg <schonberg@adacore.com>
13816 Hristian Kirtchev <kirtchev@adacore.com>
6f7f72f9
EB
13817
13818 * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
70198b9f
AC
13819 that has been constant-folded, preserve information of original tree,
13820 for ASIS uses.
13821 (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
13822 generated private extension declaration if the formal derived type is
13823 synchronized. Carry synchronized present over to the generated private
13824 extension.
13825 (Validate_Derived_Type_Instance): Ensure that the actual of a
13826 synchronized formal derived type is a synchronized tagged type.
13827 (Instantiate_Formal_Package): When creating the instantiation used to
13828 validate the actual package of a formal declared without a box, check
13829 whether the formal itself depends on a prior actual.
13830 (Instantiate_Formal_Subprogram): Create new entities for the defining
13831 identifiers of the formals in the renaming declaration, for ASIS use.
13832 (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
13833 a renaming declaration or a subtype declaration for an actual in an
13834 instance, capture location information of declaration in generic, for
13835 ASIS use.
13836 (Instantiate_Formal_Package): Add comments on needed additional tests.
13837 AI-317 (partial parametrization) is fully implemented.
13838 (Validate_Private_Type_Instance): Add check for actual which
13839 must have preelaborable initialization
13840 Use new // insertion for some continuation messages
13841 (Analyze_Formal_Object_Declaration): Change usage of Expression to
13842 Default_Expression. Add type retrieval when the declaration has an
13843 access definition. Update premature usage of incomplete type check.
13844 (Check_Access_Definition): New subsidiary routine. Check whether the
13845 current compilation version is Ada 05 and the supplied node has an
13846 access definition.
13847 (Instantiate object): Alphabetize local variables. Handle the creation
13848 of new renaming declarations with respect to the kind of definition
13849 used - either an access definition or a subtype mark. Guard against
13850 unnecessary error message in the context of anonymous access types after
13851 they have been resolved. Add check for required null exclusion in a
13852 formal object declaration.
13853 (Switch_View): A private subtype of a non-private type needs to be
13854 switched (the base type can have been switched without its private
13855 dependents because of the last branch of Check_Private_View.
13856 (Check_Private_View): Do not recompute Base_Type (T), instead use cached
13857 value from BT.
13858 (Instantiate_Type): Emit an error message whenever a class-wide type of
13859 a tagged incomplete type is used as a generic actual.
13860 (Find_Actual_Type): Extend routine to handle a component type in a child
13861 unit that is imported from a formal package in a parent.
13862 (Validate_Derived_Type_Instance): Check that analyzed formal and actual
13863 agree on constrainedness, rather than checking against ultimate ancestor
13864 (Instantiate_Subprogram_Body): Create a cross-reference link to the
13865 generic body, for navigation purposes.
13866
138672006-10-31 Robert Dewar <dewar@adacore.com>
13868 Thomas Quinot <quinot@adacore.com>
13869
13870 * sem_ch13.adb: Storage pool cannot be given for access to subprogram
13871 type.
13872 (New_Stream_Subprogram): When processing an attribute definition clause
13873 for a stream-oriented subprogram, record an entity node occurring at
13874 the point of clause to use for checking the visibility of the clause,
13875 as defined by 8.3(23) as amended by AI-195.
13876 (New_Stream_Subprogram): New procedure, factoring behaviour from both
13877 New_Stream_Function and New_Stream_Procedure.
13878 (New_Stream_Function, New_Stream_Procedure): Removed.
13879 (Analyze_Attribute_Definition_Clause, case Address): Check new
13880 Alignment_Check check
13881
138822006-10-31 Ed Schonberg <schonberg@adacore.com>
13883 Javier Miranda <miranda@adacore.com>
13884 Robert Dewar <dewar@adacore.com>
13885
13886 * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
13887 generate the same errors compiling under -gnatc.
13888 (Try_Object_Operation): If no candidate interpretation succeeds, but
13889 there is at least one primitive operation with the right name, report
13890 error in call rather than on a malformed selected component.
13891 (Analyze_Selected_Component): If the prefix is an incomplete type from
13892 a limited view, and the full view is available, use the full view to
13893 determine whether this is a prefixed call to a primitive operation.
13894 (Operator_Check): Verify that a candidate interpretation is a binary
13895 operation before checking the type of its second formal.
13896 (Analyze_Call): Add additional warnings for function call contexts not
13897 yet supported.
13898 (Analyze_Allocator): Move the check for "initialization not allowed for
13899 limited types" after analyzing the expression. This is necessary,
13900 because OK_For_Limited_Init looks at the structure of the expression.
13901 Before analysis, we don't necessarily know what sort of expression it
13902 is. For example, we don't know whether F(X) is a function call or an
13903 indexed component; the former is legal in Ada 2005; the latter is not.
13904 (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
13905 were missing. We also didn't handle qualified expressions. Now also
13906 allow function calls. Use new common routine OK_For_Limited_Init.
13907 (Analyze_Type_Conversion): Do not perform some legality checks in an
13908 instance, because the error message will be redundant or spurious.
13909 (Analyze_Overloaded_Selected_Component): Do not do style check when
13910 setting an entity, since we do not know it is the right entity yet.
13911 (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
13912 (Analyze_Overloaded_Selected_Component): Same change
13913 (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
13914 since regular incomplete subtypes are transformed into corresponding
13915 subtypes of their full views.
13916 (Complete_Object_Operation): Treat name of transformed subprogram call
13917 as coming from source, for browsing purposes.
13918 (Try_Primitive_Operation): If formal is an access parameter, compare
13919 with base type of object to determine whether it is a primitive
13920 operation.
13921 (Operator_Check): If no interpretation of the operator matches, check
13922 whether a use clause on any candidate might make the operation legal.
13923 (Try_Class_Wide_Operation): Check whether the first parameter is an
13924 access type whose designated type is class-wide.
13925
139262006-10-31 Robert Dewar <dewar@adacore.com>
13927 Ed Schonberg <schonberg@adacore.com>
13928 Gary Dismukes <dismukes@adacore.com>
13929
13930 * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
13931 warn on infinite loops.
13932 Add \\ to some continuation messages
13933 (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
13934 (Process_Bounds): If the bounds are integer literals that result from
13935 constant-folding, and they carry a user-defined type, preserve that type
13936 rather than treating this as an integer range.
13937 (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
13938 (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
13939 (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
13940 left hand side of assignment.
13941 (Analyze_Assignment): Add suport to manage assigments to the attribute
13942 priority of a protected object.
13943 (Check_Possible_Current_Value_Condition): Allow fully qualified names
13944 not just identifiers.
13945 (Check_Possible_Current_Value_Condition): Acquire left operand of AND
13946 or AND THEN for possible tracking.
13947 (Analyze_Iteration_Scheme): Check for setting Current_Value for the
13948 case of while loops so we can track values in the loop body.
13949
139502006-10-31 Ed Schonberg <schonberg@adacore.com>
13951 Hristian Kirtchev <kirtchev@adacore.com>
13952 Bob Duff <duff@adacore.com>
6f7f72f9 13953
70198b9f
AC
13954 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
13955 procedure cannot be a protected operation (it is a basic_declaration,
13956 not a subprogram_declaration).
13957 (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
13958 Subp. Add logic for entry processing.
13959 (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
13960 Determine whether an entry or subprogram of a protected or task type
13961 override an inherited primitive of an implemented interface.
13962 (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
13963 Update the actual used in calls to Check_Overriding_Indicator.
13964 (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
13965 generate the proper reference to the parent unit, for cross-reference.
13966 (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
13967 Is_Formal.
13968 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
13969 (Add_Extra_Formal): Revise procedure to allow passing in associated
13970 entity, scope, and name suffix, and handle setting of the new
13971 Extra_Formals field.
13972 (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
13973 pass new parameters. Add support for adding the new extra access formal
13974 for functions whose calls are treated as build-in-place.
13975 (Analyze_A_Return_Statement): Correct casing in error message.
13976 Move Pop_Scope to after Analyze_Function_Return, because an extended
13977 return statement really is a full-fledged scope. Otherwise, visibility
13978 doesn't work right. Correct use of "\" for continuation messages.
13979 (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
13980 evilly trying to call Analyze_Object_Declaration directly. Otherwise,
13981 the node doesn't get properly marked as analyzed.
13982 (Analyze_Subprogram_Body): If subprogram is a function that returns
13983 an anonymous access type that denotes a task, build a Master Entity
13984 for it.
13985 (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
13986 proper usage of null exclusion in a result definition.
13987 (Process_Formals): Code cleanup and new error message.
13988 (Process_Formals): Detect incorrect application of null exclusion to
13989 non-access types.
13990 (Conforming_Types): Handle conformance between [sub]types and itypes
13991 generated for entities that have null exclusions applied to them.
13992 (Maybe_Primitive_Operation): Add an additional type retrieval when the
13993 base type is an access subtype. This case arrises with null exclusions.
13994 (New_Overloaded_Entity): Do not remove the overriden entity from the
13995 homonym chain if it corresponds with an abstract interface primitive.
13996 (Process_Formals): Replace membership test agains Incomplete_Kind with a
13997 call to the synthesized predicate Is_Incomplete_Type.
13998 (Analyze_Subprogram_Body): Check wrong placement of abstract interface
13999 primitives.
14000 (Analyze_Subprogram_Declaration): Check that abstract interface
14001 primitives are abstract or null.
14002 (Analyze_Subprogram_Specification): Remove previous check for abstract
14003 interfaces because it was not complete.
14004 (Has_Interface_Formals): Removed.
14005
140062006-10-31 Ed Schonberg <schonberg@adacore.com>
14007 Javier Miranda <miranda@adacore.com>
14008
14009 * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
14010 of Analyze_Package_Body, to create Itype references for anonymous
14011 access types created in the package declaration, whose designated types
14012 may have only a limited view.
14013 (Analyze_Package_Specification): For the private part of a nested
14014 package, install private_with_clauses of enclosing compilation unit if
14015 we are in its visible part.
14016 (Declare_Inherited_Private_Subprograms): Complete barrier
14017 to ensure that the primitive operation has an alias to some parent
14018 primitive. This is now required because, after the changes done for the
14019 implementation of abstract interfaces, the contents of the list of
14020 primitives has entities whose alias attribute references entities of
14021 such list of primitives.
14022 (Analyze_Package_Specification): Simplify code that handles parent units
14023 of instances and formal packages.
14024 (Uninstall_Declarations): Check the convention consistency among
14025 primitive overriding operations of a tagged record type.
14026
140272006-10-31 Robert Dewar <dewar@adacore.com>
14028 Hristian Kirtchev <kirtchev@adacore.com>
14029 Javier Miranda <miranda@adacore.com>
14030 Ed Schonberg <schonberg@adacore.com>
6f7f72f9 14031
70198b9f
AC
14032 * sem_ch8.adb: Minor error msg rewording
14033 (Undefined): When checking for misspellings, invert arguments (to get
14034 expected and found set right)
14035 (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
14036 (Analyze_Generic_Renaming): Same fix
14037 (Use_One_Package): Do not take into account the internal entities of
14038 abstract interfaces during the analysis of entities that are marked
14039 as potentially use-visible.
14040 (Find_Type): Handle the case of an attribute reference for
14041 implementation defined attribute Stub_Type (simply let the analysis of
14042 the attribute reference rewrite it).
14043 (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
14044 type that appears in a Use_Type clause.
14045 (Analyze_Object_Renaming): Add support for renaming of the Priority
14046 attribute.
14047 (Find_Type): In Ada 2005, a task type can be used within its own body,
14048 when it appears in an access definition.
14049 (Analyze_Object_Renaming): Remove warning on null_exclusion.
14050 (Analyze_Object_Renaming): Introduce checks for required null exclusion
14051 in a formal object declaration or in a subtype declaration.
14052 (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
14053 (Check_Null_Exclusion): New local routine to
14054 Analyze_Subprogram_Renaming. Check whether the formals and return
14055 profile of a renamed subprogram have required null exclusions when
14056 their counterparts of the renaming already impose them.
14057 (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
14058 Determine whether an entity is inside a generic scope.
14059 (In_Open_Scope): First pass of documentation update.
14060 (Find_Expanded_Name): Add support for shadow entities associated with
14061 limited withed packages. This is required to handle nested packages.
14062 (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
14063 that makes a renaming of a limited withed package illegal.
14064
140652006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
14066 Ed Schonberg <schonberg@adacore.com>
14067
14068 * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
14069 Check_Overriding_Indicator.
14070 (Analyze_Task_Definition): Ditto.
14071 (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
14072 (Check_Overriding_Indicator): To find overridden interface operation,
14073 examine only homonyms that have an explicit subprogram declaration, not
14074 inherited operations created by an unrelated type derivation.
14075 (Check_Overriding_Indicator): When checking for the presence of "null"
14076 in a procedure, ensure that the queried node is a procedure
14077 specification.
14078 (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
14079 type when the formal is an access to variable.
14080 (Analyze_Protected_Type): Add check for Preelaborable_Initialization
14081 (Analyze_Task_Type): Same addition
14082 (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
14083 provide navigation capabilities for entries.
14084
140852006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
14086 Ed Schonberg <schonberg@adacore.com>
14087 Javier Miranda <miranda@adacore.com>
14088 Gary Dismukes <dismukes@adacore.com>
14089
14090 * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
14091 inherited from an interface ancestor by another interface in the
14092 context of an instance as 'late'.
14093 (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
14094 of a call to a function that dispatches on access result.
14095 (Check_Dispatching_Operation): In case of late overriding of a primitive
14096 that covers abstract interface subprograms we register it in all the
14097 secondary dispatch tables associated with abstract interfaces.
14098 (Check_Dispatching_Call): Add check that a dispatching call is not made
14099 to a function with a controlling result of a limited type. This is a
14100 current implementation restriction.
14101 (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
14102 (Check_Dispatching_Operation): Do no emit a warning if the controlling
14103 argument is an interface type that is a generic formal.
14104 (Is_Interface_Subprogram): Removed.
14105 (Check_Dispatching_Operation): If the subprogram is not a dispatching
14106 operation, check the formals to handle the case in which it is
14107 associated with an abstract interface type.
14108
141092006-10-31 Robert Dewar <dewar@adacore.com>
14110 Ed Schonberg <schonberg@adacore.com>
14111
14112 * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
14113 Add new calls to this procedure during traversal
14114 (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
14115 another unit if expansion is disabled.
14116
141172006-10-31 Robert Dewar <dewar@adacore.com>
14118
14119 * sem_eval.adb (Compile_Time_Compare): Make use of information from
14120 Current_Value in the conditional case, to evaluate additional
14121 comparisons at compile time.
14122
141232006-10-31 Ed Schonberg <schonberg@adacore.com>
14124 Hristian Kirtchev <kirtchev@adacore.com>
14125 Javier Miranda <miranda@adacore.com>
14126
14127 * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
14128 subprogram type to provide better diagnostics in case of ambiguity.
14129 (Covers): Handle coverage of formal and actual anonymous access types in
14130 the context of generic instantiation.
14131 (Covers/Interface_Present_In_Ancestors): Use the base type to manage
14132 abstract interface types; this is required to handle concurrent types
14133 with discriminants and abstract interface types.
14134 (Covers): Include type coverage of both regular incomplete subtypes and
14135 incomplete subtypes of incomplete type visibles through a limited with
14136 clause.
14137
141382006-10-31 Robert Dewar <dewar@adacore.com>
14139 Hristian Kirtchev <kirtchev@adacore.com>
14140 Ed Schonberg <schonberg@adacore.com>
6f7f72f9
EB
14141
14142 * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
70198b9f
AC
14143 messages for entities in packages which are not used.
14144 (Collect_Synchronized_Interfaces): New procedure.
14145 (Overrides_Synchronized_Primitive): New function.
14146 (Denotes_Discriminant): Extend predicate to apply to task types.
14147 Add missing continuation marks in error msgs
14148 (Unqualify): New function for removing zero or more levels of
14149 qualification from an expression. There are numerous places where this
14150 ought to be used, but we currently only deal properly with zero or one
14151 level.
14152 (In_Instance); The analysis of the actuals in the instantiation of a
14153 child unit is not within an instantiation, even though the parent
14154 instance is on the scope stack.
14155 (Safe_To_Capture_Value): Exclude the case of variables that are
14156 renamings.
14157 (Check_Obsolescent): Removed
14158 (Is_Aliased_View): A reference to an enclosing instance in an aggregate
14159 is an aliased view, even when rewritten as a reference to the target
14160 object in an assignment.
14161 (Get_Subprogram_Entity): New function
14162 (Known_To_Be_Assigned): New function
14163 (Type_Access_Level): Compute properly the access level of a return
14164 subtype that is an anonymous access type.
14165 (Explain_Limited_Type): Correct use of "\" for continuation messages.
14166 (Is_Transfer): The new extended_return_statement causes a transfer of
14167 control.
14168 (Has_Preelaborable_Initialization): New function
14169 (Has_Null_Exclusion): New function. Given a node N, determine whether it
14170 has a null exclusion depending on its Nkind.
14171 Change Is_Lvalue to May_Be_Lvalue
14172 (May_Be_Lvalue): Extensive additional code to deal with subprogram
14173 arguments (IN parameters are not Lvalues, IN OUT parameters are).
14174 (Safe_To_Capture_Value): Extend functionality so it can be used for
14175 the current value condition case.
14176 (Has_Compatible_Alignment): New function
14177 (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
14178 objects to handle the Ada 2005 case, where aliasedness no longer implies
14179 that the object is constrained. In particular, for dereferenced names,
14180 the designated object must be assumed to be unconstrained.
14181 (Kill_Current_Values): Properly deal with the case where we encounter
14182 a loop in the scope chain.
14183 (Safe_To_Capture_Value): Do not let a loop stop us from capturing
14184 a value.
14185 (Compile_Time_Constraint_Error): Improve error message in error case
14186
14187 * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
14188 associated with entities of abstract interface primitives.
14189 Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
14190
141912006-10-31 Robert Dewar <dewar@adacore.com>
14192
14193 * s-osinte-tru64.adb:
14194 Mark Asm statements Volatile to prevent warnings (seems a
14195 reasonable change anyway)
14196 Fixes new warnings
14197
14198 * s-mastop-irix.adb: Add Volatile to Asm statements
14199 Suppresses warning, and seems appropriate in any case
14200
14201 * s-osinte-vms.adb: Add Volatile to Asm statement
14202
14203 * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
14204
14205 * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
14206 returned.
14207 Add call to Check_Code_Statement
14208
142092006-10-31 Robert Dewar <dewar@adacore.com>
14210 Ed Schonberg <schonberg@adacore.com>
14211 Bob Duff <duff@adacore.com>
14212
14213 * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
14214 Synchronized_Present): Add Formal_Derived_Type_Definition and
14215 Private_Extension_Declaration to the list of assertions.
14216 (Is_Entry_Barrier_Function): New flag
14217 (Has_Self_Reference): New flag on aggregates, to indicate that they
14218 contain a reference to the enclosing type, inserted through a default
14219 initialization.
14220 (Next_Rep_Item): Move from Node4 to Node5.
14221 (Entity): Add this field for N_Attribute_Definition_Clause.
14222 (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
14223 (N_Return_Object_Declaration): Remove this node kind. We now use
14224 N_Object_Declaration instead.
14225 (Actual_Designated_Subtype): Move to a different place to make room in
14226 N_Extended_Return_Statement.
14227 (Procedure_To_Call): Move to a different place to make room in
14228 N_Extended_Return_Statement.
14229 (Return_Type): Removed this field to make room in return statements
14230 (both kinds).
14231 (Return_Statement_Entity): New field in return statements, in part to
14232 replace Return_Type, and in part to support the fact that return
14233 statements are now pushed on the scope stack during semantic analysis.
14234 (Return_Object_Declarations): New field to support extended return
14235 statements.
14236 (N_Extended_Return_Statement): New node for extended_return_statement
14237 nonterminal.
14238 (N_Return_Object_Declaration): New node for part of
14239 extended_return_statement nonterminal. Needed because all the necessary
14240 fields won't fit in N_Extended_Return_Statement.
14241 Generic_associations now carry the Box_Present flag, to indicate a
14242 default for an actual in a partially parametrized formal package.
14243
6f7f72f9 14244 * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
70198b9f
AC
14245 (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
14246 and for the new predefined dispatching policies: EDF_Across_Priorities,
14247 Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
14248 Introduce new name Stub_Type for implementation defined attribute.
14249 Add pragma Preelaborable_Initialization
14250 Add entry for Priority attribute.
14251 Add Pragma_Wide_Character_Encoding
14252 (Get_Convention_Name): Given a convention id, this function returns the
14253 corresponding name id from the names table.
14254
142552006-10-31 Ed Schonberg <schonberg@adacore.com>
14256 Robert Dewar <dewar@adacore.com>
14257 Bob Duff <duff@adacore.com>
14258
14259 * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
14260 print null exclusion twice in the case of an access definition,
14261 Implement new -gnatL switch
14262 Remove N_Return_Object_Declaration. We now use
14263 N_Object_Declaration instead. Implement the case for
14264 N_Extended_Return_Statement. Alphabetize the cases.
14265 Add cases for new nodes N_Extended_Return_Statement and
14266 N_Return_Object_Declaration. The code is not yet written.
14267 Update the output for N_Formal_Object_Declaration
14268 and N_Object_Renaming_Declaration.
14269 (Write_Itype): Account for the case of a modular integer subtype whose
14270 base type is private.
14271
142722006-10-31 Arnaud Charlet <charlet@adacore.com>
14273
14274 * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
14275 Remove elaboration code, now done in the binder.
14276
14277 * s-rident.ads: Make this unit Preelaborate.
14278 (No_Restrictions): New constant used to clean up code and follow
14279 preelaborate constraints.
14280
14281 * s-stalib.adb:
14282 Add System.Restrictions dependence, referenced directly from the
14283 binder generated file.
14284
142852006-10-31 Gary Dismukes <dismukes@adacore.com>
14286
14287 * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
14288 True when AAMP extended floating-point is in use (48-bit). Change type
14289 ByteLF to ByteLLF, add new array type ByteLF and condition the size of
14290 the two byte array types on AFloat. Change type of IV_Ilf overlay
14291 variable from Byte8 to ByteLF. Add appropriate initializations of
14292 floating-point overlays for AAMP cases.
14293
142942006-10-31 Javier Miranda <miranda@adacore.com>
14295
14296 * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
14297 (Get_Ceiling): New subprogram that returns
14298 the ceiling priority of the protected object.
14299 (Set_Ceiling): New subprogram that sets the new ceiling priority of
14300 the protected object.
14301
14302 * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
14303
14304 * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
14305
143062006-10-31 Jose Ruiz <ruiz@adacore.com>
14307
14308 * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
14309 requeuing to the same protected object to give higher priority tasks
14310 the opportunity to execute.
14311
143122006-10-31 Robert Dewar <dewar@adacore.com>
14313
14314 * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
14315 add more precise check for the character sequence that follows '[' to
14316 avoid possible confusion in case if '[' is the last character of a
14317 string literals.
14318 (Scan_Wide): Always allow brackets encoding
14319
143202006-10-31 Olivier Hainque <hainque@adacore.com>
14321
14322 * s-stchop.ads: make this unit preelaborate. This is desirable in
14323 general and made mandatory by the use of this unit by s-taprop which
14324 is itself preelaborate.
14325
14326 * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
14327 Td_Events component.
14328
143292006-10-31 Vincent Celier <celier@adacore.com>
14330
14331 * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
14332 in file names.
14333
143342006-10-31 Vincent Celier <celier@adacore.com>
14335
14336 * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
14337
143382006-10-31 Vincent Celier <celier@adacore.com>
14339
14340 * makegpr.adb (Check_Compilation_Needed): Take into account path names
14341 with spaces.
14342 (Check_Compilation_Needed): When checking a C or C++ source, do not
14343 resolve symbolic links.
14344 (Display_Command): New Boolean parameter Ellipse, defaulted to False.
14345 When not in verbose mode and Ellipse is True, display "..." for the
14346 first argument with Display set to False.
14347 (Build_Global_Archive): Always set Display True for the first object
14348 file. Call Display_Command with Ellipse set to True.
14349
143502006-10-31 Matt Heaney <heaney@adacore.com>
14351
14352 * a-crbtgo.ads: Commented each subprogram
14353
14354 * a-crbtgo.adb: Added reference to book from which algorithms were
14355 adapted.
14356
6f7f72f9 14357 * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
70198b9f
AC
14358 indicate which child.
14359 (Generic_Conditional_Insert): changed parameter name from "Success" to
14360 "Inserted".
14361 (Generic_Unconditional_Insert_With_Hint): improved algorithm
14362
14363 * a-coorse.adb (Replace_Element): changed parameter name in call to
14364 conditional insert operation.
14365
14366 * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
14367
14368 * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
14369 Generic_Iteration
14370
14371 * a-ciorse.adb (Replace_Element): changed parameter name in call to
14372 conditional insert operation.
14373
14374 * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
14375 Generic_Iteration.
14376
14377 * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
14378 instead of mode inout.
14379
14380 * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
14381 draft
14382 (Generic_Read): preserve existing buckets array if possible
14383 (Generic_Write): don't send buckets array length anymore
14384
14385 * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
14386 instead of mode inout.
14387
14388 * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
14389 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
14390
14391 * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
14392 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
14393 (Replace_Element): local operation is now an instantiation
14394
14395 * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
14396 check current length.
14397 (Generic_Replace_Element): new operation
14398
143992006-10-31 Doug Rupp <rupp@adacore.com>
14400
14401 * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
14402 Call TBK$SYMBOLIZE without omitting parameters.
14403
144042006-10-31 Vincent Celier <celier@adacore.com>
14405
14406 * symbols-processing-vms-ia64.adb,
14407 symbols-processing-vms-alpha.adb (Process): Do not include symbols
14408 that come from generic instantiations in bodies.
14409
144102006-10-31 Pat Rogers <rogers@adacore.com>
14411
14412 * a-rttiev.ads, a-rttiev.adb:
14413 This is a significant redesign primarily for the sake of automatic
14414 timer task termination but also to fix a design flaw.
14415 Therefore we are now using an RTS lock, instead of a protected
14416 object, to provide mutual exclusion to the queue of pending events
14417 and the type Timing_Event is no longer a protected type.
14418
144192006-10-31 Robert Dewar <dewar@adacore.com>
14420 Cyrille Comar <comar@adacore.com>
14421 Ben Brosgol <brosgol@adacore.com>
14422
14423 * debug.adb: Update flags documentation
14424
6f7f72f9
EB
14425 * gnat_ugn.texi: Add documentation for new -gnatwq switch
14426 Clean up documentation for several other warning switches
14427 Clarify how task stack size can be specified with various
14428 versions of Windows.
14429 Add note that -gnatVo includes ranges including loops
70198b9f
AC
14430 Add documentation for -gnatL switch
14431 Add note on elaboration warning for initializing variables
14432 Add documentation for new -gnatwt warning switch
14433 Document new form of pragma Warnings (On|Off, string)
14434 Add comment on use of pragma Warnings to control warnings
14435 Add documentation for -gnatjnn switch
14436 Modify section on interfacing with C for VMS 64-bit.
14437 Add doc for -gnatVe/E
14438 Add documentation of new warning flags -gnatww/-gnatwW
14439 Add warnings about address clause overlays to list of warnings
14440 (Exception Handling Control): Document that the option --RTS must be
14441 used consistently for gcc and gnatbind.
14442 Clarify that inlining is not always possible
14443 Update documentation on pragma Unchecked_Union.
14444
14445 * gnat_rm.texi:
14446 Add documentation for new extended version of pragma Obsolescent
14447 Add documentation for implementation defined attribute 'Stub_Type.
14448 Add note on use of Volatile in asm statements
14449 Add documentation on use of pragma Unreferenced in context clause
14450 Document new form of pragma Warnings (On|Off, pattern)
14451 Document pragma Wide_Character_Encoding
14452 Add note that pragma Restrictions (No_Elaboration_Code) is only fully
14453 enforced if code generation is active.
14454 Add section on pragma Suppress to document GNAT specific check
14455 Alignment_Check
14456 Clarify difference between No_Dispatching_Calls & No_Dispatch.
14457 Add documentation for pragma Restrictions (No_Elaboration_Code)
14458
14459 * gnat-style.texi:
14460 Add comments on layout of subprogram local variables in the
14461 presence of nested subprograms.
14462
6f7f72f9 14463 * ug_words: Resync.
70198b9f
AC
14464
14465 * elists.ads: Minor reformatting
14466 Node returns Node_Or_Entity_Id (doc change only)
14467
14468 * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
14469
14470 * g-arrspl.ads (Create): Update comments.
14471
14472 * sem.ads: Add details on the handling of the scope stack.
14473
6f7f72f9 14474 * usage.adb: Update documentation.
70198b9f
AC
14475
14476 * validsw.ads, validsw.adb:
14477 Add definition of Validity_Check_Components and implement -gnatVe/E
14478
6f7f72f9 14479 * vms_data.ads: Add missing VMS qualifiers.
70198b9f
AC
14480
14481 * s-addope.ads: Add documentation on overflow and divide by zero
14482
144832006-10-31 Robert Dewar <dewar@adacore.com>
14484 Thomas Quinot <quinot@adacore.com>
14485 Arnaud Charlet <charlet@adacore.com>
14486
14487 * fmap.adb: Put routines in alpha order
14488
14489 * g-boumai.ads: Remove redundant 'in' keywords
14490
14491 * g-cgi.adb: Minor reformatting
14492
14493 * g-cgi.ads: Remove redundant 'in' keywords
14494
14495 * get_targ.adb: Put routines in alpha order
14496
14497 * prj-attr.ads: Minor reformatting
14498
14499 * s-atacco.ads: Minor reformatting
14500
14501 * scn.adb: Put routines in alpha order
14502
14503 * sinput-l.adb: Minor comment fix
14504
14505 * sinput-p.adb: Minor comment fix
14506
14507 * s-maccod.ads: Minor reformatting
14508
14509 * s-memory.adb: Minor reformatting
14510
14511 * s-htable.adb: Fix typo in comment.
14512
14513 * s-secsta.adb: Minor comment update.
14514
14515 * s-soflin.adb: Minor reformatting
14516
14517 * s-stoele.ads:
14518 Add comment about odd qualification in Storage_Offset declaration
14519
14520 * s-strxdr.adb:
14521 Remove unnecessary 'in' keywords for formal parameters.
14522
14523 * treeprs.adt: Minor reformatting
14524
14525 * urealp.adb: Put routines in alpha order
14526
14527 * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
14528 taking string.
14529
14530 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
14531
14532 * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
14533
14534 * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
14535 workaround as on other platforms.
14536
14537 * g-eacodu-vms.adb: Remove redundant 'in' keywords
14538 * g-expect-vms.adb: Remove redundant 'in' keywords
14539
14540 * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
14541 clear error message if the list-of-files file cannot be opened.
14542
14543 * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
14544 equality operator is always visible.
14545
14546 * lang.opt: Woverlength-strings: New option.
14547
14548 * nmake.adt:
14549 Update copyright, since nmake.ads and nmake.adb have changed.
14550
14551 * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
14552 (Binder_Output_Time_Stamps_Set): removed.
14553 (Old_Binder_Output_Time_Stamp): idem.
14554 (New_Binder_Output_Time_Stamp): idem.
14555 (Recording_Time_From_Last_Bind): idem.
14556 (Recording_Time_From_Last_Bind): Make constant.
14557
14558 * output.ads, output.adb (Write_Str): Allow LF characters
14559 (Write_Spaces): New procedure
14560
14561 * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
14562
14563 * inline.adb: Minor reformatting
14564
14565 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
14566
14567 * s-mastop-vms.adb: Remove redundant 'in' keywords
14568
14569 * s-osprim-vms.adb: Remove redundant 'in' keywords
14570
14571 * s-trafor-default.adb: Remove redundant 'in' keywords
14572
14573 * 9drpc.adb: Remove redundant 'in' keywords
14574
14575 * s-osinte-mingw.ads: Minor reformatting
14576
14577 * s-inmaop-posix.adb: Minor reformatting
14578
14579 * a-direio.ads: Remove quotes from Compile_Time_Warning message
14580
14581 * a-exexda.adb: Minor code reorganization
14582
14583 * a-filico.adb: Minor reformatting
14584
14585 * a-finali.adb: Minor reformatting
14586
14587 * a-nudira.ads: Remove quote from Compile_Time_Warning message
14588
14589 * a-numeri.ads: Minor reformatting
14590
14591 * a-sequio.ads: Remove quotes from Compile_Time_Warning message
14592
14593 * exp_pakd.ads: Fix obsolete comment
14594
14595 * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
14596 a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
14597 Probably not a bug, but certainly neater and more efficient.
14598
14599 * a-tienio.adb: Minor reformatting
14600
14601 * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
14602 Avoid assuming low bound of string is 1.
14603
14604 * gnatbind.adb: Change Bindusg to package and rename procedure as
14605 Display, which now ensures that it only outputs usage information once.
14606 (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
14607
14608 * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
14609 Table'First.
14610
14611 * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
14612 warning.
14613 (Match): Add pragma Assert to ensure that Matches'First is zero
14614
14615 * g-regpat.ads (Match): Document that Matches lower bound must be zero
14616
14617 * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
14618 documented preconditions (also kills warnings about bad indexes).
14619
14620 * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
14621 is 1.
14622 (Build_Import_Library): Ditto;
14623
14624 * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
14625
14626 * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
14627
14628 * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
14629 lower bound of choice table is 1.
14630
14631 * sem_case.ads (Analyze_Choices): Document that lower bound of
14632 Choice_Table is 1.
14633
14634 * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
14635 string is 1.
14636
14637 * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
14638 and add appropriate Assert pragma to suppress warnings.
14639
14640 * atree.h, atree.ads, atree.adb
14641 Change Elist24 to Elist25
14642 Add definitions of Field28 and Node28
14643 (Traverse_Field): Use new syntactic parent table in sinfo.
14644
14645 * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
14646
14647 * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
14648
14649 * exp_tss.adb: Put routines in alpha order
14650
14651 * fe.h: Remove redundant declarations.
14652
c79efc4d 146532006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
ed41063a 14654
c79efc4d
RÁE
14655 * utils.c (builtin_function): Rename to gnat_builtin_function.
14656 Move common code to add_builtin_function.
14657 * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
14658 gnat_builtin_function.
14659 * gigi.h (builtin_function): Rename to gnat_builtin_function.
14660 Change the signature.
14661
a8384928
BM
146622006-10-16 Brooks Moses <bmoses@stanford.edu>
14663
14664 * Makefile.in: Add TEXI2PDF definition.
14665 * Make-lang.in: Add "ada.pdf" target.
14666
2285b053
KH
146672006-10-03 Kazu Hirata <kazu@codesourcery.com>
14668
14669 * decl.c, utils.c: Fix comment typos.
c0a69967
KH
14670 * utils.c: Fix a typo.
14671
b55e7f34
EB
146722006-09-28 Eric Botcazou <ebotcazou@adacore.com>
14673
14674 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
14675 on "pure" Ada subprograms if SJLJ exceptions are used.
14676 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
14677 on the declaration node of JMPBUF_SAVE.
14678 * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
14679 of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
14680 * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
14681
9e94c78f 146822006-08-20 Laurent Guerby <laurent@guerby.net>
d2b40c09 14683
7a197678
EB
14684 PR ada/28716
14685 g-socket.adb (Bind_Socket): Call Set_Address.
14686
41d9adc7
EB
146872006-09-15 Eric Botcazou <ebotcazou@adacore.com>
14688
14689 PR ada/15802
14690 * decl.c (same_discriminant_p): New static function.
14691 (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
14692 subtype and we have discriminants, fix up the COMPONENT_REFs
14693 for the discriminants to make them reference the corresponding
14694 fields of the parent subtype after it has been built.
14695
21cc3719
RS
146962006-09-15 Roger Sayle <roger@eyesopen.com>
14697
14698 PR ada/18817
14699 * utils.c (max_size): Perform constant folding of (A ? B : C) - D
14700 into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
14701
6f2789da
OH
147022006-09-13 Olivier Hainque <hainque@adacore.com>
14703
14704 PR ada/29025
14705 * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
14706 of a SAVE_EXPR, just make the operand addressable/not-readonly and
14707 let the common gimplifier code make and propagate a temporary copy.
14708 (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
14709 out/in-out actuals and defer setting the addressable/readonly bits
14710 to the gimplifier.
14711
efaa616e
EB
147122006-09-13 Eric Botcazou <ebotcazou@adacore.com>
14713
14714 PR ada/28591
14715 * decl.c (components_to_record): Defer emitting debug info for the
14716 record type associated with the variant until after we are sure to
14717 actually use it.
14718
2655f1c6
EB
147192006-09-13 Eric Botcazou <ebotcazou@adacore.com>
14720
14721 PR ada/21952
14722 * gigi.h (gnat_internal_attribute_table): Declare.
14723 * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
14724 * utils.c (gnat_internal_attribute_table): New global variable.
14725 (builtin_function): Always call decl_attributes on the builtin.
14726 (handle_const_attribute): New static function.
14727 (handle_nothrow_attribute): Likewise.
14728
48779194
VR
147292006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
14730
14731 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
14732
8df7d439
EB
147332006-06-23 Olivier Hainque <hainque@adacore.com>
14734
14735 * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
14736 not been able to get a constant upper bound from TYPE_SIZE_UNIT.
14737
83fdc7c4 147382006-06-20 James A. Morrison <phython@gcc.gnu.org>
6f7f72f9 14739 Eric Botcazou <ebotcazou@adacore.com>
83fdc7c4
JM
14740
14741 PR ada/18692
14742 * Make-lang.in: Add check-gnat to lang_checks. Rename existing
14743 check-gnat into check-acats.
14744
5f516f59
KB
147452006-06-17 Karl Berry <karl@gnu.org>
14746
6f7f72f9 14747 * gnat-style.texi (@dircategory): Use "Software development"
5f516f59
KB
14748 instead of "Programming", following the Free Software Directory.
14749
ce0d1b88
JDA
147502006-06-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14751
14752 PR ada/27944
14753 * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
14754
9e94c78f 147552006-06-06 Laurent Guerby <laurent@guerby.net>
8c60f779 14756
6f7f72f9
EB
14757 PR ada/27769
14758 mlib-utl.adb: Use Program_Name.
14759
ce2e12c2
KH
147602006-05-28 Kazu Hirata <kazu@codesourcery.com>
14761
14762 * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
14763 sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
14764 trans.c, utils.c: Fix comment typos. Follow spelling
14765 conventions.
14766 * gnat_rm.texi, gnat_ugn.texi, : Fix typos. Follow spelling
14767 conventions.
14768
ba4ac682
EB
147692006-05-19 Nicolas Setton <setton@adacore.com>
14770
14771 * misc.c (gnat_dwarf_name): New function.
14772 (LANG_HOOKS_DWARF_NAME): Define to it.
14773
05b44921
L
147742006-05-14 H.J. Lu <hongjiu.lu@intel.com>
14775
14776 * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
14777 (ada/misc.o): Likewise.
14778 (ada/utils.o): Likewise.
14779
a3bd7058
AJ
147802006-04-08 Aurelien Jarno <aurel32@debian.org>
14781
14782 * Makefile.in: Add Ada support for GNU/kFreeBSD.
14783 * s-osinte-kfreebsd-gnu.ads: New file.
14784
ad3a7ce3
CD
147852006-03-29 Carlos O'Donell <carlos@codesourcery.com>
14786
14787 * Make-lang.in: Rename docdir to gcc_docdir.
14788
936a6fa7
EB
147892006-03-04 Eric Botcazou <ebotcazou@adacore.com>
14790
14791 * gigi.h (get_ada_base_type): Delete.
14792 * utils2.c (get_ada_base_type): Likewise.
14793 * trans.c (convert_with_check): Operate in the real base type.
14794
93f978b7
RK
147952006-03-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
14796
14797 * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
14798
434aeebb
RS
147992006-03-02 Richard Sandiford <richard@codesourcery.com>
14800
14801 * utils.c (create_var_decl): Use have_global_bss_p when deciding
14802 whether to make the decl common.
14803
9e94c78f 14804