]>
Commit | Line | Data |
---|---|---|
57f80aa9 RE |
1 | 2008-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 |
7 | 2008-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 |
13 | 2008-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 |
19 | 2008-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 |
63 | 2008-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 |
68 | 2008-04-12 Arnaud Charlet <charlet@adacore.com> |
69 | ||
70 | * s-linux-hppa.ads: Fix syntax errors. | |
71 | ||
276e95ca RW |
72 | 2008-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 |
100 | 2008-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 |
106 | 2008-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 |
153 | 2008-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 |
174 | 2008-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 |
180 | 2008-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 |
191 | 2008-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 |
205 | 2008-04-08 Eric Botcazou <ebotcazou@adacore.com> |
206 | ||
207 | * decl.c (adjust_packed): Expand comment. | |
208 | ||
ea081ad7 AC |
209 | 2008-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 |
228 | 2008-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 | ||
249 | 2008-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 | ||
332 | 2008-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 | ||
341 | 2008-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 | ||
355 | 2008-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 |
382 | 2008-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 | ||
391 | 2008-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 | ||
403 | 2008-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 | ||
605 | 2008-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 | ||
715 | 2008-04-08 Tristan Gingold <gingold@adacore.com> | |
716 | ||
717 | * s-fileio.adb: Name_Error shouldn't be raised for a tempory file. | |
718 | ||
719 | 2008-04-08 Tristan Gingold <gingold@adacore.com> | |
720 | ||
721 | PR 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 | ||
728 | 2008-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 | ||
751 | 2008-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 | ||
766 | 2008-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 | ||
776 | 2008-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 | ||
782 | 2008-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 | ||
788 | 2008-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 | ||
796 | 2008-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 | ||
892 | 2008-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 | ||
897 | 2008-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 | ||
923 | 2008-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 | ||
1019 | 2008-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 | ||
1035 | 2008-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 | ||
1041 | 2008-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 | ||
1097 | 2008-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 | ||
1178 | 2008-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 | ||
1197 | 2008-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 | ||
1211 | 2008-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 | ||
1267 | 2008-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 | ||
1293 | 2008-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 | ||
1300 | 2008-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 | ||
1311 | 2008-04-08 Vincent Celier <celier@adacore.com> | |
1312 | ||
1313 | * gnat1drv.adb: Send all messages indicating an error to standard error | |
1314 | ||
1315 | 2008-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 | ||
1320 | 2008-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 | ||
1329 | 2008-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 | ||
1341 | 2008-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 | ||
1369 | 2008-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 | ||
1388 | 2008-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 | ||
1394 | 2008-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 | ||
1401 | 2008-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 | ||
1406 | 2008-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 | ||
1414 | 2008-04-08 Robert Dewar <dewar@adacore.com> | |
1415 | ||
1416 | * par-ch11.adb (P_Exception_Handler): Check indentation level for | |
1417 | handler | |
1418 | ||
1419 | 2008-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 | ||
1425 | 2008-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 | ||
1440 | 2008-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 | ||
1445 | 2008-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 | ||
1454 | 2008-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 | ||
1476 | 2008-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 | ||
1484 | 2008-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 | ||
1493 | 2008-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 | ||
1502 | 2008-04-08 Robert Dewar <dewar@adacore.com> | |
1503 | ||
1504 | * stringt.adb (Write_String_Table_Entry): Handle wide characters | |
1505 | properly | |
1506 | ||
1507 | 2008-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 | ||
1512 | 2008-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 | ||
1519 | 2008-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 | ||
1524 | 2008-04-08 Bob Duff <duff@adacore.com> | |
1525 | ||
1526 | * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9). | |
1527 | ||
1528 | 2008-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 | ||
1533 | 2008-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 | ||
1539 | 2008-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 | ||
1595 | 2008-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 | ||
1601 | 2008-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 | ||
1606 | 2008-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 | ||
1652 | 2008-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 | ||
1658 | 2008-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 | ||
1668 | 2008-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 |
1682 | 2008-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 |
1689 | 2008-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 |
1698 | 2008-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 |
1711 | 2008-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 |
1715 | 2008-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 |
1723 | 2008-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 |
1728 | 2008-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 |
1737 | 2008-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 |
1742 | 2008-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 |
1749 | 2008-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 |
1758 | 2008-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 |
1763 | 2008-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 |
1790 | 2008-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 | 1795 | 2008-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 |
1801 | 2008-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 |
1838 | 2008-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 |
1843 | 2008-03-26 Arnaud Charlet <charlet@adacore.com> |
1844 | ||
1845 | * adaint.c: Fix warnings. | |
1846 | ||
0afae63b AC |
1847 | 2008-03-26 Arnaud Charlet <charlet@adacore.com> |
1848 | ||
1849 | * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec. | |
1850 | ||
afc5f979 AC |
1851 | 2008-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 |
1856 | 2008-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 |
1865 | 2008-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 | ||
1878 | 2008-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 | ||
1913 | 2008-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 | ||
1932 | 2008-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 | ||
1939 | 2008-03-26 Arnaud Charlet <charlet@adacore.com> | |
1940 | ||
1941 | * gnatvsn.ads (Library_Version): Bump to 4.4. | |
1942 | (Current_Year): Bump to 2008. | |
1943 | ||
1944 | 2008-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 | ||
1986 | 2008-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 | ||
1991 | 2008-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 | ||
1997 | 2008-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 | ||
2002 | 2008-03-26 Robert Dewar <dewar@adacore.com> | |
2003 | ||
2004 | * checks.adb (Ensure_Valid): Capture valid status if possible | |
2005 | (eliminate checks) | |
2006 | ||
2007 | 2008-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 | ||
2013 | 2008-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 | ||
2031 | 2008-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 | ||
2040 | 2008-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 | ||
2061 | 2008-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 | ||
2067 | 2008-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 | ||
2094 | 2008-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 | ||
2110 | 2008-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 | ||
2128 | 2008-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 | ||
2133 | 2008-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 | ||
2151 | 2008-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 | ||
2198 | 2008-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 | ||
2213 | 2008-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 | ||
2220 | 2008-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 | ||
2238 | 2008-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 | ||
2244 | 2008-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 | ||
2278 | 2008-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 | ||
2286 | 2008-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 | ||
2291 | 2008-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 | ||
2300 | 2008-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 | ||
2323 | 2008-03-26 Robert Dewar <dewar@adacore.com> | |
2324 | ||
2325 | * scn.adb (Initialize_Scanner): Format messages belong on standard error | |
2326 | ||
2327 | 2008-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 | ||
2342 | 2008-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 | ||
2347 | 2008-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 | ||
2358 | 2008-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 | ||
2371 | 2008-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 | ||
2378 | 2008-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 | ||
2387 | 2008-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 | ||
2392 | 2008-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 | ||
2398 | 2008-03-26 Robert Dewar <dewar@adacore.com> | |
2399 | ||
2400 | * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized | |
2401 | ||
2402 | 2008-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 | ||
2419 | 2008-03-26 Tristan Gingold <gingold@adacore.com> | |
2420 | ||
2421 | * init.c: Do not adjust pc for HPARITH on alpha/vms. | |
2422 | ||
2423 | 2008-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 | ||
2429 | 2008-03-26 Robert Dewar <dewar@adacore.com> | |
2430 | ||
2431 | * alloc.ads: Add entries for Warnings_Off_Pragmas table | |
2432 | ||
2433 | 2008-03-26 GNAT Script <nobody@adacore.com> | |
2434 | ||
2435 | * Make-lang.in: Makefile automatically updated | |
2436 | ||
2437 | 2008-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 | ||
2449 | 2008-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 |
2469 | 2008-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 |
2477 | 2008-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 |
2482 | 2008-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 |
2503 | 2008-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 |
2522 | 2008-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 |
2541 | 2008-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 |
2546 | 2008-03-21 Eric Botcazou <ebotcazou@adacore.com> |
2547 | ||
2548 | * trans.c (addressable_p): Add notes on addressability issues. | |
2549 | ||
457b629a OH |
2550 | 2008-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 |
2560 | 2008-03-18 Paolo Bonzini <bonzini@gnu.org> |
2561 | ||
e1da2b17 EB |
2562 | * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete. |
2563 | ||
79f34d07 RW |
2564 | 2008-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 |
2572 | 2008-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 |
2577 | 2008-03-08 Eric Botcazou <ebotcazou@adacore.com> |
2578 | ||
2579 | * decl.c (maybe_pad_type): Use value_factor_p. | |
2580 | ||
7934d781 EB |
2581 | 2008-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 |
2591 | 2008-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 |
2596 | 2008-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 |
2602 | 2008-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 |
2609 | 2008-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 |
2616 | 2008-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 |
2621 | 2008-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 |
2628 | 2008-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 |
2635 | 2008-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 |
2641 | 2008-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 |
2675 | 2008-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 |
2681 | 2008-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 |
2697 | 2008-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 |
2702 | 2008-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 |
2708 | 2008-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 |
2715 | 2008-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 |
2732 | 2008-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 |
2747 | 2008-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 | 2761 | 2008-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 |
2774 | 2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
2775 | ||
2776 | PR other/35107 | |
2777 | * Make-lang.in (gnat1): Add $(GMPLIBS). | |
2778 | ||
8fa07a56 EB |
2779 | 2008-01-26 Eric Botcazou <ebotcazou@adacore.com> |
2780 | ||
2781 | * decl.c (components_to_record): Improve comment. | |
2782 | ||
0bf38239 EB |
2783 | 2008-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 |
2789 | 2008-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 |
2795 | 2008-01-17 Eric Botcazou <ebotcazou@adacore.com> |
2796 | ||
2797 | * utils.c (build_function_stub): Properly build the call expression. | |
2798 | ||
052cec9b EB |
2799 | 2008-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 |
2806 | 2008-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 |
2815 | 2008-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 |
2821 | 2008-01-12 Eric Botcazou <ebotcazou@adacore.com> |
2822 | ||
2823 | * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression. | |
2824 | ||
3fa87ef8 JDA |
2825 | 2008-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 | 2837 | 2008-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 |
2858 | 2007-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 |
2864 | 2007-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 |
2870 | 2007-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 | ||
2899 | 2007-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 | ||
2916 | 2007-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 | ||
2943 | 2007-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 | ||
2950 | 2007-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 | ||
2956 | 2007-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 | ||
2962 | 2007-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 | ||
2969 | 2007-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 | ||
2974 | 2007-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 | ||
2980 | 2007-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 | ||
2988 | 2007-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 | ||
3002 | 2007-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 | ||
3018 | 2007-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 | ||
3024 | 2007-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 | ||
3033 | 2007-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 | ||
3046 | 2007-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 | ||
3051 | 2007-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 | ||
3057 | 2007-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 | ||
3062 | 2007-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 |
3072 | 2007-12-19 Samuel Tardieu <sam@rfc1149.net> |
3073 | ||
3074 | * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target. | |
3075 | ||
5287c2bc AC |
3076 | 2007-12-17 Arnaud Charlet <charlet@adacore.com> |
3077 | ||
3078 | * s-vxwork-alpha.ads: Removed, no longer used. | |
3079 | ||
6343804d JJ |
3080 | 2007-12-15 Jakub Jelinek <jakub@redhat.com> |
3081 | ||
3082 | * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line. | |
3083 | ||
3958c9c8 ST |
3084 | 2007-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 |
3090 | 2007-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 |
3096 | 2007-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 | ||
3118 | 2007-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 | ||
3146 | 2007-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 | ||
3192 | 2007-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 | ||
3225 | 2007-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 | ||
3246 | 2007-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 | ||
3284 | 2007-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 | ||
3370 | 2007-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 | ||
3378 | 2007-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 | ||
3408 | 2007-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 | ||
3420 | 2007-12-13 Robert Dewar <dewar@adacore.com> | |
3421 | ||
3422 | * back_end.adb: Recognize -fno-inline | |
3423 | ||
3424 | 2007-12-13 Robert Dewar <dewar@adacore.com> | |
3425 | ||
3426 | * checks.adb: Fix optimization problem with short-circuited form | |
3427 | ||
3428 | 2007-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 | ||
3449 | 2007-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 | ||
3466 | 2007-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 | ||
3471 | 2007-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 | ||
3480 | 2007-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 | ||
3495 | 2007-12-13 Ed Schonberg <schonberg@adacore.com> | |
3496 | ||
3497 | * expander.adb: Take into account N_Subprogram_Renaming_Declaration | |
3498 | ||
3499 | 2007-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 | ||
3531 | 2007-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 | ||
3539 | 2007-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 | ||
3549 | 2007-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 | ||
3555 | 2007-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 | ||
3574 | 2007-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 | ||
3591 | 2007-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 | ||
3597 | 2007-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 | ||
3607 | 2007-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 | ||
3630 | 2007-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 | ||
3642 | 2007-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 | ||
3669 | 2007-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 | ||
3676 | 2007-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 | ||
3682 | 2007-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 | ||
3706 | 2007-12-13 Robert Dewar <dewar@adacore.com> | |
3707 | ||
3708 | * g-spipat.adb (Break): Fix accessibility error (vsn taking not null | |
3709 | access Vstring) | |
3710 | ||
3711 | 2007-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 | ||
3740 | 2007-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 | ||
3837 | 2007-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 | ||
3843 | 2007-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 | ||
3852 | 2007-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 | ||
3859 | 2007-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 | ||
3870 | 2007-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 | ||
3890 | 2007-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 | ||
3901 | 2007-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 | ||
3921 | 2007-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 | ||
3947 | 2007-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 | ||
3963 | 2007-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 | ||
3984 | 2007-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 | ||
3991 | 2007-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 | ||
3996 | 2007-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 | ||
4001 | 2007-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 | ||
4025 | 2007-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 | ||
4031 | 2007-12-13 Thomas Quinot <quinot@adacore.com> | |
4032 | ||
4033 | * sinput-l.adb (Load_File): Disable style checks when preprocessing. | |
4034 | ||
4035 | 2007-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 | ||
4040 | 2007-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 | ||
4056 | 2007-12-13 Robert Dewar <dewar@adacore.com> | |
4057 | ||
4058 | * s-stoele.adb ("mod"): mod negative value raises Constraint_Error | |
4059 | ||
4060 | 2007-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 | ||
4066 | 2007-12-13 Robert Dewar <dewar@adacore.com> | |
4067 | ||
4068 | * styleg.adb (Check_Comment): More liberal rules for comment placement | |
4069 | ||
4070 | 2007-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 | ||
4086 | 2007-12-13 Robert Dewar <dewar@adacore.com> | |
4087 | ||
4088 | * tbuild.ads, tbuild.adb: | |
4089 | Fix location of flag for unrecognized pragma message | |
4090 | ||
4091 | 2007-12-13 Robert Dewar <dewar@adacore.com> | |
4092 | ||
4093 | * treepr.ads, treepr.adb: (pl): implement use of positive value | |
4094 | shorthands | |
4095 | ||
4096 | 2007-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 | ||
4134 | 2007-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 | ||
4139 | 2007-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 | ||
4165 | 2007-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 | ||
4170 | 2007-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 | ||
4175 | 2007-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 | ||
4180 | 2007-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 | ||
4189 | 2007-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 | ||
4197 | 2007-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 | ||
4203 | 2007-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 | ||
4213 | 2007-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 | ||
4218 | 2007-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 | ||
4223 | 2007-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 |
4232 | 2007-12-10 Eric Botcazou <ebotcazou@adacore.com> |
4233 | ||
4234 | * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around. | |
4235 | ||
5320014a ST |
4236 | 2007-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 |
4247 | 2007-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 |
4253 | 2007-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 |
4259 | 2007-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 |
4272 | 2007-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 |
4283 | 2007-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 |
4289 | 2007-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 |
4298 | 2007-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 | 4304 | 2007-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 |
4311 | 2007-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 |
4320 | 2007-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 |
4326 | 2007-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 |
4331 | 2007-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 |
4362 | 2007-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 |
4369 | 2007-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 |
4374 | 2007-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 |
4385 | 2007-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 |
4393 | 2007-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 |
4399 | 2007-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 | 4404 | 2007-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 |
4409 | 2007-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 |
4423 | 2007-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 |
4431 | 2007-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 |
4437 | 2007-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 |
4446 | 2007-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 |
4457 | 2007-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 |
4463 | 2007-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 |
4490 | 2007-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 |
4495 | 2007-11-01 Eric Botcazou <ebotcazou@adacore.com> |
4496 | ||
4497 | * lang-specs.h: Move translation of -fRTS= after -gnatez switch. | |
4498 | ||
6d1e8bff EB |
4499 | 2007-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 |
4508 | 2007-10-23 Richard Guenther <rguenther@suse.de> |
4509 | ||
4510 | PR bootstrap/33608 | |
4511 | * tracebak.c: #undef abort after including system.h. | |
4512 | ||
9e94c78f | 4513 | 2007-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 |
4520 | 2007-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 | ||
4530 | 2007-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 | ||
4561 | 2007-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 | ||
4568 | 2007-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 | ||
4581 | 2007-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 | ||
4587 | 2007-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 | ||
4601 | 2007-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 | ||
4609 | 2007-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 | ||
4615 | 2007-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 | ||
4620 | 2007-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 | ||
4626 | 2007-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 | ||
4632 | 2007-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 | ||
4653 | 2007-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 | ||
4683 | 2007-10-15 Robert Dewar <dewar@adacore.com> | |
4684 | ||
4685 | * rtsfind.adb: (Load_RTU): Turn off style checks for Load call | |
4686 | ||
4687 | 2007-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 | ||
4697 | 2007-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 | ||
4704 | 2007-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 | ||
4710 | 2007-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 | ||
4718 | 2007-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 | ||
4724 | 2007-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 | ||
4731 | 2007-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 | ||
4737 | 2007-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 | ||
4754 | 2007-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 | ||
4759 | 2007-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 | ||
4767 | 2007-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 | ||
4785 | 2007-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 | ||
4798 | 2007-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 |
4820 | 2007-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 |
4829 | 2007-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 |
4839 | 2007-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 |
4865 | 2007-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 | ||
4878 | 2007-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 | ||
4899 | 2007-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 | ||
4917 | 2007-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 | ||
4927 | 2007-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 | ||
4944 | 2007-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 | ||
4984 | 2007-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 | ||
4997 | 2007-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 | ||
5029 | 2007-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 | ||
5035 | 2007-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 | ||
5041 | 2007-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 | ||
5063 | 2007-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 | ||
5076 | 2007-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 | ||
5108 | 2007-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 | ||
5115 | 2007-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 | ||
5123 | 2007-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 | ||
5128 | 2007-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 | ||
5134 | 2007-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 | ||
5147 | 2007-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 | ||
5175 | 2007-09-26 Vincent Celier <celier@adacore.com> | |
5176 | ||
5177 | * Make-lang.in: Update dependencies.. | |
5178 | ||
5179 | 2007-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 | ||
5185 | 2007-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 | ||
5191 | 2007-09-26 Robert Dewar <dewar@adacore.com> | |
5192 | ||
5193 | * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of | |
5194 | Address_Taken. | |
5195 | ||
5196 | 2007-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 | ||
5204 | 2007-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 | ||
5210 | 2007-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 | ||
5218 | 2007-09-26 Robert Dewar <dewar@adacore.com> | |
5219 | ||
5220 | * sem_warn.adb (Check_References): Catch more cases of unreferenced | |
5221 | packages. | |
5222 | ||
5223 | 2007-09-26 Vincent Celier <celier@adacore.com> | |
5224 | ||
5225 | * snames.adb, snames.ads: Change Include_Option to Include_Switches | |
5226 | ||
5227 | 2007-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 | ||
5235 | 2007-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 | ||
5246 | 2007-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 |
5251 | 2007-09-25 Eric Botcazou <ebotcazou@adacore.com> |
5252 | ||
5253 | * trans.c: Fix misplaced #define. | |
5254 | ||
b235734c EB |
5255 | 2007-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 |
5260 | 2007-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 |
5265 | 2007-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 |
5270 | 2007-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 |
5277 | 2007-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 | ||
5300 | 2007-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 | ||
5305 | 2007-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 | ||
5313 | 2007-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 | ||
5324 | 2007-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 | ||
5330 | 2007-09-12 Robert Dewar <dewar@adacore.com> | |
5331 | ||
5332 | * a-swuwha.adb: Remove junk RM header | |
5333 | ||
5334 | 2007-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 | ||
5341 | 2007-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 | ||
5348 | 2007-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 | ||
5353 | 2007-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 |
5360 | 2007-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 |
5366 | 2007-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 |
5377 | 2007-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 | 5398 | 2007-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 |
5403 | 2007-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 | ||
5489 | 2007-09-10 Emmanuel Briot <briot@adacore.com> | |
5490 | ||
5491 | * s-regpat.adb (Parse_Character_Class): Fix handling of empty character | |
5492 | classes ("[]"). | |
5493 | ||
5494 | 2007-09-10 Vasiliy Fofanov <fofanov@adacore.com> | |
5495 | ||
5496 | * adaint.c (__gnat_translate_vms): new function. | |
5497 | ||
5498 | 2007-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 | ||
5518 | 2007-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 | ||
5523 | 2007-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 | ||
5539 | 2007-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 | ||
5545 | 2007-09-10 Sergey Rybin <rybin@adacore.com> | |
5546 | ||
5547 | * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option | |
5548 | ||
5549 | 2007-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 | ||
5554 | 2007-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 | ||
5559 | 2007-09-10 Olivier Hainque <hainque@adacore.com> | |
5560 | ||
5561 | * Makefile.in: (mips-irix section): Activate build of libgmem. | |
5562 | ||
a56955b1 EB |
5563 | 2007-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 |
5568 | 2007-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 |
5573 | 2007-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 |
5582 | 2007-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 | 5587 | 2007-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 |
5597 | 2007-09-06 Eric Botcazou <ebotcazou@adacore.com> |
5598 | ||
5599 | * trans.c (convert_with_check): Update call to real_2expN. | |
5600 | ||
db2960f4 SL |
5601 | 2007-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 |
5606 | 2007-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 |
5617 | 2007-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 | ||
5642 | 2007-08-31 Javier Miranda <miranda@adacore.com> | |
5643 | ||
5644 | * a-tags.adb (Internal_Tag): Protect the run-time against wrong | |
5645 | internal tags. | |
5646 | ||
5647 | 2007-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 | ||
5654 | 2007-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 | ||
5671 | 2007-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 | ||
5676 | 2007-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 | ||
5682 | 2007-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 | ||
5697 | 2007-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 | ||
5702 | 2007-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 | ||
5714 | 2007-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 | ||
5736 | 2007-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 | ||
5745 | 2007-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 | ||
5751 | 2007-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 | ||
5768 | 2007-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 | ||
5773 | 2007-08-31 Vincent Celier <celier@adacore.com> | |
5774 | ||
5775 | * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR | |
5776 | ||
5777 | 2007-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 | ||
5783 | 2007-08-31 Vincent Celier <celier@adacore.com> | |
5784 | ||
5785 | * fmap.ads: Minor comment updates | |
5786 | ||
5787 | 2007-08-31 GNAT Script <nobody@adacore.com> | |
5788 | ||
5789 | * Make-lang.in: Makefile automatically updated | |
5790 | ||
5791 | 2007-08-31 Bob Duff <duff@adacore.com> | |
5792 | ||
5793 | * sinfo.ads: Minor comment fix. | |
5794 | ||
5795 | 2007-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 | ||
5801 | 2007-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 |
5811 | 2007-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 |
5817 | 2007-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 |
5822 | 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
5823 | ||
5824 | * misc.c (gnat_type_max_size): Constify. | |
5825 | ||
833eddff AC |
5826 | 2007-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 | ||
5852 | 2007-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 | ||
5906 | 2007-08-16 Javier Miranda <miranda@adacore.com> | |
5907 | ||
5908 | * exp_attr.adb (Attribute_Priority): Add missing support for entries | |
5909 | and entry barriers. | |
5910 | ||
5911 | 2007-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 | ||
5917 | 2007-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 | ||
5922 | 2007-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 | ||
5934 | 2007-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 | ||
5941 | 2007-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 | ||
5954 | 2007-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 | ||
5960 | 2007-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 | ||
5969 | 2007-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 | ||
5974 | 2007-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 | ||
5980 | 2007-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 | ||
6004 | 2007-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 | ||
6009 | 2007-08-16 Robert Dewar <dewar@adacore.com> | |
6010 | ||
6011 | * gnat_ugn.texi: Add note on preprocessing (output file not written) | |
6012 | ||
6013 | 2007-08-16 Thomas Quinot <quinot@adacore.com> | |
6014 | ||
6015 | * a-tags.adb: Minor reformatting. | |
6016 | ||
6017 | 2007-08-16 Bob Duff <duff@adacore.com> | |
6018 | ||
6019 | * sem_type.ads, sem_ch4.adb: Minor reformatting. | |
6020 | ||
ab6328d0 AC |
6021 | 2007-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 | ||
6026 | 2007-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 | ||
6033 | 2007-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 | ||
6043 | 2007-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 | ||
6062 | 2007-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 | ||
6114 | 2007-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 | ||
6138 | 2007-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 | ||
6159 | 2007-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 | ||
6169 | 2007-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 | ||
6224 | 2007-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 | ||
6244 | 2007-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 | ||
6313 | 2007-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 | ||
6350 | 2007-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 | ||
6385 | 2007-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 | ||
6477 | 2007-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 | ||
6534 | 2007-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 | ||
6605 | 2007-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 | ||
6614 | 2007-08-14 Robert Dewar <dewar@adacore.com> | |
6615 | ||
6616 | * par-tchk.adb (TF_Semicolon): Improve error recovery | |
6617 | ||
6618 | 2007-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 | ||
6631 | 2007-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 | ||
6661 | 2007-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 | ||
6689 | 2007-08-14 Robert Dewar <dewar@adacore.com> | |
6690 | ||
6691 | * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for | |
6692 | dispatching operation | |
6693 | ||
6694 | 2007-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 | ||
6715 | 2007-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 | ||
6722 | 2007-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 | ||
6747 | 2007-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 | ||
6771 | 2007-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 | ||
6803 | 2007-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 | ||
6817 | 2007-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 | ||
6832 | 2007-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 | ||
6853 | 2007-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 | ||
6864 | 2007-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 | ||
6895 | 2007-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 | ||
6917 | 2007-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 | ||
6995 | 2007-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 | ||
7007 | 2007-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 | ||
7025 | 2007-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 | ||
7053 | 2007-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 | ||
7072 | 2007-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 | ||
7088 | 2007-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 | ||
7107 | 2007-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 | ||
7130 | 2007-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 | ||
7141 | 2007-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 | ||
7153 | 2007-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 | ||
7160 | 2007-08-14 Emmanuel Briot <briot@adacore.com> | |
7161 | ||
7162 | * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing | |
7163 | switches. | |
7164 | ||
7165 | 2007-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 | ||
7173 | 2007-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 | ||
7189 | 2007-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 | ||
7200 | 2007-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 | ||
7207 | 2007-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 | ||
7215 | 2007-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 | ||
7220 | 2007-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 | ||
7229 | 2007-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 | ||
7234 | 2007-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 | ||
7243 | 2007-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 | ||
7248 | 2007-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 | ||
7254 | 2007-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 | ||
7267 | 2007-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 | ||
7277 | 2007-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 | ||
7285 | 2007-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 | ||
7293 | 2007-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 | ||
7302 | 2007-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 | ||
7311 | 2007-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 | ||
7325 | 2007-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 | ||
7330 | 2007-08-14 Tristan Gingold <gingold@adacore.com> | |
7331 | ||
7332 | * g-trasym.ads: AIX now supports symbolic backtraces. | |
7333 | ||
7334 | 2007-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 | ||
7349 | 2007-08-14 Nicolas Setton <setton@adacore.com> | |
7350 | ||
7351 | * link.c (FreeBSD): Add "const" keyword where needed, to eliminate | |
7352 | warnings. | |
7353 | ||
7354 | 2007-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 | ||
7376 | 2007-08-14 Pascal Obry <obry@adacore.com> | |
7377 | ||
7378 | * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries | |
7379 | naming scheme. | |
7380 | ||
7381 | 2007-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 | ||
7386 | 2007-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 | ||
7392 | 2007-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 | ||
7399 | 2007-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 | ||
7415 | 2007-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 | ||
7421 | 2007-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 |
7428 | 2007-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 |
7433 | 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
7434 | ||
7435 | * decl.c, utils2.c: Fix whitespace in last change. | |
7436 | ||
39595763 KG |
7437 | 2007-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 |
7442 | 2007-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 | 7448 | 2007-07-05 Joel Sherrill <joel.sherrill@oarcorp.com> |
83983455 JS |
7449 | |
7450 | * s-osinte-rtems.ads: Correct prototype of pthread_sigmask. | |
7451 | ||
a8257e58 EB |
7452 | 2007-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 |
7457 | 2007-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 |
7472 | 2007-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 |
7478 | 2007-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 |
7486 | 2007-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 |
7496 | 2007-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 | ||
7525 | 2007-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 | ||
7561 | 2007-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 | ||
7574 | 2007-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 | ||
7584 | 2007-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 | |
7594 | 2007-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 | ||
7629 | 2007-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 | ||
7685 | 2007-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 | ||
7712 | 2007-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 | |
7728 | 2007-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 | |
7733 | 2007-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 | ||
7740 | 2007-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 | |
7745 | 2007-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 | ||
7828 | 2007-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 | ||
7926 | 2007-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 | ||
7938 | 2007-06-06 Robert Dewar <dewar@adacore.com> | |
7939 | ||
7940 | * a-chahan.ads: Remove obsolescent pragmas | |
7941 | ||
7942 | * a-chlat1.ads: Minor reformatting | |
7943 | ||
7944 | 2007-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 | ||
7961 | 2007-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 | ||
8003 | 2007-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 | ||
8010 | 2007-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 | ||
8041 | 2007-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 | ||
8048 | 2007-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 | ||
8179 | 2007-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 | ||
8186 | 2007-06-06 Robert Dewar <dewar@adacore.com> | |
8187 | ||
8188 | * a-tienio.adb (Get): Adjust buffer size to accomodate one extra | |
8189 | character | |
8190 | ||
8191 | 2007-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 | ||
8198 | 2007-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 | ||
8218 | 2007-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 | ||
8224 | 2007-06-06 Robert Dewar <dewar@adacore.com> | |
8225 | ||
8226 | * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT | |
8227 | ||
8228 | 2007-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 | ||
8251 | 2007-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 | ||
8262 | 2007-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 | ||
8285 | 2007-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 | ||
8295 | 2007-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 | ||
8421 | 2007-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 | ||
8433 | 2007-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 | ||
8474 | 2007-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 | ||
8499 | 2007-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 | ||
8509 | 2007-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 | ||
8558 | 2007-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 | ||
8625 | 2007-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 | ||
8672 | 2007-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 | ||
8707 | 2007-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 | ||
8773 | 2007-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 | ||
8790 | 2007-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 | ||
8815 | 2007-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 | ||
8833 | 2007-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 | ||
8844 | 2007-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 | ||
8855 | 2007-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 | ||
8860 | 2007-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 | ||
8874 | 2007-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 | ||
8903 | 2007-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 | ||
8948 | 2007-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 | ||
8958 | 2007-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 | ||
8996 | 2007-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 | ||
9007 | 2007-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 | ||
9013 | 2007-06-06 Robert Dewar <dewar@adacore.com> | |
9014 | ||
9015 | * g-catiio.ads, g-catiio.adb (Image): Check for null picture string | |
9016 | ||
9017 | 2007-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 | ||
9064 | 2007-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 | ||
9087 | 2007-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 | ||
9099 | 2007-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 | ||
9111 | 2007-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 | ||
9118 | 2007-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 | ||
9129 | 2007-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 | ||
9162 | 2007-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 | ||
9168 | 2007-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 | ||
9174 | 2007-06-06 Emmanuel Briot <briot@adacore.com> | |
9175 | ||
9176 | * g-regpat.adb (Quote): Fix improper quoting of '.' | |
9177 | ||
9178 | 2007-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 | ||
9208 | 2007-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 | ||
9213 | 2007-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 | ||
9220 | 2007-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 | ||
9253 | 2007-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 | ||
9266 | 2007-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 | ||
9272 | 2007-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 | ||
9278 | 2007-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 | ||
9313 | 2007-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 | ||
9362 | 2007-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 | ||
9382 | 2007-06-06 Pascal Obry <obry@adacore.com> | |
9383 | ||
9384 | * mkdir.c (__gnat_mkdir): Add support for UTF-8. | |
9385 | ||
9386 | 2007-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 | ||
9401 | 2007-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 | ||
9406 | 2007-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 | ||
9479 | 2007-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 | ||
9499 | 2007-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 | ||
9517 | 2007-06-06 Robert Dewar <dewar@adacore.com> | |
9518 | ||
9519 | * par-ch4.adb: (P_Name): Recover from literal used as name | |
9520 | ||
9521 | 2007-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 | ||
9528 | 2007-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 | ||
9547 | 2007-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 | ||
9554 | 2007-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 | ||
9562 | 2007-06-06 Robert Dewar <dewar@adacore.com> | |
9563 | ||
9564 | * scng.adb: (Check_End_Of_Line): Deal with very long lines | |
9565 | ||
9566 | 2007-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 | ||
9571 | 2007-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 | ||
9596 | 2007-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 | ||
9632 | 2007-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 | ||
9647 | 2007-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 | ||
9661 | 2007-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 | ||
9713 | 2007-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 | ||
9727 | 2007-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 | ||
9766 | 2007-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 | ||
9772 | 2007-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 | ||
9780 | 2007-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 | ||
9787 | 2007-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 | ||
9808 | 2007-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 | ||
9863 | 2007-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 | ||
9868 | 2007-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 | ||
9874 | 2007-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 | ||
9879 | 2007-06-06 Robert Dewar <dewar@adacore.com> | |
9880 | ||
9881 | * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body | |
9882 | ||
9883 | 2007-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 | ||
9899 | 2007-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 | ||
9905 | 2007-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 | ||
9930 | 2007-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 | ||
9944 | 2007-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 | ||
9952 | 2007-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 | ||
9970 | 2007-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 | ||
9982 | 2007-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 | ||
9990 | 2007-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 | ||
10002 | 2007-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 | ||
10008 | 2007-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 | ||
10015 | 2007-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 | ||
10028 | 2007-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 | ||
10067 | 2007-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 | ||
10092 | 2007-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 | ||
10099 | 2007-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 |
10134 | 2007-05-22 Alexandre Oliva <aoliva@redhat.com> |
10135 | ||
10136 | * misc.c (enumerate_modes): Consider log2_b to always be one. | |
10137 | ||
ca5ba2a3 RAE |
10138 | 2007-05-14 Rafael Avila de Espindola <espindola@google.com> |
10139 | ||
10140 | * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove. | |
10141 | ||
d7598e11 PO |
10142 | 2007-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 |
10156 | 2007-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 |
10161 | 2007-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 |
10166 | 2007-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 |
10171 | 2007-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 |
10180 | 2007-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 | ||
10233 | 2007-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 | ||
10250 | 2007-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 | ||
10257 | 2007-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 | ||
10315 | 2007-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 | ||
10360 | 2007-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 | ||
10409 | 2007-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 | ||
10434 | 2007-04-06 Matt Gingell <gingell@adacore.com> | |
10435 | ||
10436 | * system-aix.ads: Back out previous change. | |
10437 | (Functions_Return_By_DSP): Removed | |
10438 | ||
10439 | 2007-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 | ||
10445 | 2007-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 | ||
10454 | 2007-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 | ||
10472 | 2007-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 | ||
10478 | 2007-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 | ||
10484 | 2007-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 | ||
10521 | 2007-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 | ||
10549 | 2007-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 | ||
10604 | 2007-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 | ||
10622 | 2007-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 | ||
10637 | 2007-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 | ||
10652 | 2007-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 | ||
10658 | 2007-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 | ||
10664 | 2007-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 | ||
10683 | 2007-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 | ||
10809 | 2007-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 | ||
10889 | 2007-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 | ||
10957 | 2007-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 | ||
10976 | 2007-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 | ||
11089 | 2007-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 | 11103 | 2007-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 | ||
11138 | 2007-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 | ||
11210 | 2007-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 | ||
11224 | 2007-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 | ||
11229 | 2007-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 | ||
11237 | 2007-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 | ||
11255 | 2007-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 | ||
11266 | 2007-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 | ||
11272 | 2007-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 | ||
11279 | 2007-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 | ||
11286 | 2007-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 | ||
11291 | 2007-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 | ||
11330 | 2007-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 | ||
11335 | 2007-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 | ||
11341 | 2007-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 | ||
11374 | 2007-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 | 11402 | 2007-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 | 11415 | 2007-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 | ||
11420 | 2007-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 | ||
11427 | 2007-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 | ||
11442 | 2007-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 | ||
11466 | 2007-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 | ||
11479 | 2007-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 | ||
11489 | 2007-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 | ||
11516 | 2007-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 | ||
11576 | 2007-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 | ||
11599 | 2007-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 | ||
11631 | 2007-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 | ||
11636 | 2007-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 | ||
11647 | 2007-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 | ||
11684 | 2007-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 | ||
11731 | 2007-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 | ||
11739 | 2007-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 | ||
11766 | 2007-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 | ||
11778 | 2007-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 | ||
11790 | 2007-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 | ||
11831 | 2007-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 | ||
11851 | 2007-04-06 Arnaud Charlet <charlet@adacore.com> | |
11852 | ||
11853 | * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion | |
11854 | before propagating exception. | |
11855 | ||
11856 | 2007-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 | ||
11861 | 2007-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 | ||
11881 | 2007-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 | ||
11895 | 2007-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 | 11901 | 2007-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 | 11919 | 2007-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 | ||
11924 | 2007-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 |
11958 | 2007-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 |
11966 | 2007-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 |
11982 | 2007-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 |
11987 | 2007-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 |
11993 | 2007-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 |
11999 | 2007-02-25 Mark Mitchell <mark@codesourcery.com> |
12000 | ||
12001 | * decl.c (annotate_value): Adjust for refactoring of tree_map | |
12002 | hierarchy. | |
12003 | ||
fc8600f9 MM |
12004 | 2007-02-24 Mark Mitchell <mark@codesourcery.com> |
12005 | ||
12006 | * decl.c (annotate_value): Adjust for refactoring of tree_map | |
12007 | hierarchy. | |
12008 | ||
c0bca7e1 EB |
12009 | 2007-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 | 12017 | 2007-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 |
12032 | 2007-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 |
12038 | 2007-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 |
12045 | 2007-02-03 Kazu Hirata <kazu@codesourcery.com> |
12046 | ||
12047 | * misc.c, utils2.c: Fix comment typos. | |
12048 | ||
cd259a98 RS |
12049 | 2007-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 |
12058 | 2007-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 |
12067 | 2007-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 |
12072 | 2006-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 |
12077 | 2006-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 |
12086 | 2006-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 |
12092 | 2006-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 |
12098 | 2006-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 |
12103 | 2006-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 |
12109 | 2006-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 | ||
12127 | 2006-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 | ||
12177 | 2006-10-31 Thomas Quinot <quinot@adacore.com> | |
12178 | ||
12179 | * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned | |
12180 | error status. | |
12181 | ||
12182 | 2006-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 | ||
12224 | 2006-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 | ||
12276 | 2006-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 | ||
12290 | 2006-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 | ||
12313 | 2006-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 | ||
12318 | 2006-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 | ||
12330 | 2006-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 | ||
12359 | 2006-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 | ||
12535 | 2006-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 | ||
12549 | 2006-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 | ||
12560 | 2006-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 | ||
12655 | 2006-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 | ||
12701 | 2006-10-31 Robert Dewar <dewar@adacore.com> | |
12702 | ||
12703 | * binde.adb (Better_Choice, Worse_Choice): Implement new preferences. | |
12704 | ||
12705 | 2006-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 | ||
12711 | 2006-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 | ||
12719 | 2006-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 | ||
12755 | 2006-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 | ||
12764 | 2006-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 | ||
12796 | 2006-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 | ||
12853 | 2006-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 | ||
12863 | 2006-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 | ||
12890 | 2006-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 | ||
12923 | 2006-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 | ||
12929 | 2006-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 | ||
12991 | 2006-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 | ||
13020 | 2006-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 | ||
13062 | 2006-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 | 13141 | 2006-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 | ||
13152 | 2006-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 | ||
13160 | 2006-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 | ||
13181 | 2006-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 | ||
13187 | 2006-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 | ||
13202 | 2006-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 | ||
13208 | 2006-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 | ||
13241 | 2006-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 | ||
13285 | 2006-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 | ||
13293 | 2006-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 | ||
13331 | 2006-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 | ||
13336 | 2006-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 | ||
13474 | 2006-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 | ||
13479 | 2006-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 | ||
13484 | 2006-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 | ||
13507 | 2006-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 | ||
13513 | 2006-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 | ||
13524 | 2006-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 | ||
13536 | 2006-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 | ||
13544 | 2006-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 | ||
13549 | 2006-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 | ||
13553 | 2006-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 | ||
13568 | 2006-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 | ||
13574 | 2006-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 | ||
13600 | 2006-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 | ||
13610 | 2006-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 | ||
13649 | 2006-10-31 Robert Dewar <dewar@adacore.com> | |
13650 | ||
13651 | * par-ch10.adb (P_Context_Clause): Minor error message fix | |
13652 | ||
13653 | 2006-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 | ||
13667 | 2006-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 | ||
13689 | 2006-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 | ||
13697 | 2006-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 | ||
13703 | 2006-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 | ||
13719 | 2006-10-31 Robert Dewar <dewar@adacore.com> | |
13720 | ||
13721 | * repinfo.adb (List_Entities): Don't list entities from renaming | |
13722 | declarations. | |
13723 | ||
13724 | 2006-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 | ||
13737 | 2006-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 | ||
13752 | 2006-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 | ||
13757 | 2006-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 | ||
13807 | 2006-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 | ||
13815 | 2006-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 | ||
13867 | 2006-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 | ||
13882 | 2006-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 | ||
13926 | 2006-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 | ||
13950 | 2006-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 | ||
14006 | 2006-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 | ||
14027 | 2006-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 | ||
14065 | 2006-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 | ||
14085 | 2006-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 | ||
14109 | 2006-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 | ||
14117 | 2006-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 | ||
14123 | 2006-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 | ||
14138 | 2006-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 | ||
14191 | 2006-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 | ||
14209 | 2006-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 | ||
14255 | 2006-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 | ||
14272 | 2006-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 | ||
14285 | 2006-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 | ||
14294 | 2006-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 | ||
14306 | 2006-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 | ||
14312 | 2006-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 | ||
14320 | 2006-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 | ||
14329 | 2006-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 | ||
14334 | 2006-10-31 Vincent Celier <celier@adacore.com> | |
14335 | ||
14336 | * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005 | |
14337 | ||
14338 | 2006-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 | ||
14350 | 2006-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 | ||
14399 | 2006-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 | ||
14404 | 2006-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 | ||
14410 | 2006-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 | ||
14419 | 2006-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 | ||
14483 | 2006-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 | 14653 | 2006-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 |
14662 | 2006-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 |
14667 | 2006-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 |
14672 | 2006-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 | 14682 | 2006-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 |
14687 | 2006-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 |
14696 | 2006-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 |
14702 | 2006-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 |
14712 | 2006-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 |
14719 | 2006-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 |
14729 | 2006-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 |
14733 | 2006-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 | 14738 | 2006-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 |
14745 | 2006-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 |
14750 | 2006-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 | 14755 | 2006-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 |
14760 | 2006-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 |
14769 | 2006-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 |
14774 | 2006-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 |
14780 | 2006-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 |
14785 | 2006-03-29 Carlos O'Donell <carlos@codesourcery.com> |
14786 | ||
14787 | * Make-lang.in: Rename docdir to gcc_docdir. | |
14788 | ||
936a6fa7 EB |
14789 | 2006-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 |
14795 | 2006-03-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
14796 | ||
14797 | * uintp.adb (Num_Bits): Handle Uint_Int_First specially. | |
14798 | ||
434aeebb RS |
14799 | 2006-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 |