1 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
3 * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
5 2008-04-07 Eric Botcazou <ebotcazou@adacore.com>
7 * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
8 * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
9 * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
10 * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
11 Return by Depressed Stack Pointer.
13 2008-04-06 Eric Botcazou <ebotcazou@adacore.com>
15 * decl.c (is_variable_size): Do not unconditionally return false
16 on non-strict alignment platforms.
18 2008-04-06 Eric Botcazou <ebotcazou@adacore.com>
20 * decl.c (rest_of_type_decl_compilation_no_defer): New local function
21 used to process all the variants of the specified type.
22 (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
23 types too. Call rest_of_type_decl_compilation_no_defer if undeferring.
24 (rest_of_type_decl_compilation): Likewise.
25 * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
27 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
29 * gigi.h (insert_block): Kill.
30 * utils.c (insert_block): Kill.
32 2008-04-02 Eric Botcazou <ebotcazou@adacore.com>
34 * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
35 type has self-referential size, get the size from the initializing
36 expression directly if it is also a constant whose nominal type
37 has self-referential size.
39 2008-04-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
42 * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
45 * env.c: Always include crt_externs.h if __APPLE__ is defined.
46 (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
48 2008-04-01 Andreas Jaeger <aj@suse.de>
50 * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
53 2008-03-31 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
55 * g-table.adb, g-tasloc.adb, g-traceb.ads,
56 g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
57 gnatbind.adb, gnatchop.adb, gnatcmd.adb,
58 gnatcmd.ads, gnatdll.adb, gnatfind.adb,
59 gnatlink.adb, gnatmem.adb, gprep.adb,
60 i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
61 i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
62 layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
63 lib-xref.ads, lib.adb, link.c, live.ads,
64 make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
65 mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
66 misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
67 mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
68 namet.adb, namet.h, nlists.adb, nlists.ads,
69 nlists.h, opt.ads, osint-b.ads, osint-c.adb,
70 osint-c.ads, osint.adb, osint.ads, output.ads,
71 par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
72 par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
73 par-endh.adb, par-labl.adb, par-prag.adb,
74 par-sync.adb, par-tchk.adb, par-util.adb,
75 par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
76 prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
77 prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
78 prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
80 2008-03-31 Eric Botcazou <ebotcazou@adacore.com>
82 * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
83 size if it has overflowed.
85 2008-03-31 Olivier Hainque <hainque@adacore.com>
86 Eric Botcazou <ebotcazou@adacore.com>
88 * utils2.c (find_common_type): Document assumption on t1/t2 vs
89 lhs/rhs. Force use of lhs type if smaller, whatever the modes.
91 2008-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
93 * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
94 einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
95 exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
96 exp_pakd.ads, exp_prag.adb, exp_smem.adb,
97 exp_tss.ads, exp_util.adb, exp_util.ads,
98 exp_vfpt.adb, freeze.adb, freeze.ads,
99 frontend.adb, g-alleve.adb, g-altcon.adb,
100 g-altive.ads, g-alveop.ads, g-alvevi.ads,
101 g-arrspl.adb, g-busorg.ads, g-calend.adb,
102 g-calend.ads, g-casuti.ads, g-cgideb.adb,
103 g-comlin.adb, g-comlin.ads, g-curexc.ads,
104 g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
105 g-dirope.adb, g-dirope.ads, g-dynhta.ads,
106 g-dyntab.adb, g-encstr.ads, g-excact.ads,
107 g-except.ads, g-expect.ads, g-heasor.adb,
108 g-hesora.adb, g-hesorg.adb, g-htable.ads,
109 g-locfil.ads, g-md5.adb, g-md5.ads,
110 g-memdum.ads, g-moreex.ads, g-os_lib.adb,
111 g-pehage.adb, g-pehage.ads, g-regexp.adb,
112 g-regexp.ads, g-regpat.adb, g-regpat.ads,
113 g-soccon-aix.ads, g-soccon-darwin.ads,
114 g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
115 g-soccon-hpux.ads, g-soccon-irix.ads,
116 g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
117 g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
118 g-soccon-mingw.ads, g-soccon-solaris-64.ads,
119 g-soccon-solaris.ads, g-soccon-tru64.ads,
120 g-soccon-vms.ads, g-soccon-vxworks.ads,
121 g-soccon.ads, g-socket.adb, g-socket.ads,
122 g-socthi-mingw.adb, g-socthi-vms.adb,
123 g-socthi-vxworks.adb, g-soliop-mingw.ads,
124 g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
125 g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
128 2008-03-27 Eric Botcazou <ebotcazou@adacore.com>
130 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
131 if the procedure is imported.
133 2008-03-26 Arnaud Charlet <charlet@adacore.com>
135 * adaint.c: Fix warnings.
137 2008-03-26 Arnaud Charlet <charlet@adacore.com>
139 * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
141 2008-03-26 Arnaud Charlet <charlet@adacore.com>
143 * a-witeio.adb: Fix problem with Current_Output (introduce Self).
144 Fix problem of status check for null file
146 2008-03-26 Arnaud Charlet <charlet@adacore.com>
148 * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
149 s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
150 s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
151 i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
152 s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
155 2008-03-26 Thomas Quinot <quinot@adacore.com>
158 * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
159 Get_Socket_Option): Add support for Receive_Packet_Info.
161 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
162 g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
163 g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
164 g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
165 g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
166 new constants SO_REUSEPORT and IP_PKTINFO
168 2008-03-26 Robert Dewar <dewar@adacore.com>
170 * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
171 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
172 a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
173 a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
174 a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
175 a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
176 s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
177 s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
178 a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
179 s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
180 s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
181 s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
182 s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
183 s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
184 s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
185 s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
186 s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
187 s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
188 s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
189 s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
190 a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
191 a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
192 s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
193 s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
194 s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
195 s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
196 s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
197 a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
198 a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
199 s-tasloc.adb: Minor reformatting.
201 Remove "used for" sections from comments.
203 2008-03-26 Robert Dewar <dewar@adacore.com>
205 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
206 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
207 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
208 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
209 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
210 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
211 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
212 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
213 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
214 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
215 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
216 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
217 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
218 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
219 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
220 double spaced if it fits on one line and otherwise single spaced.
222 2008-03-26 Arnaud Charlet <charlet@adacore.com>
224 * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
225 s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
226 s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
227 or task info if the thread could not be created.
229 2008-03-26 Arnaud Charlet <charlet@adacore.com>
231 * gnatvsn.ads (Library_Version): Bump to 4.4.
232 (Current_Year): Bump to 2008.
234 2008-03-26 Robert Dewar <dewar@adacore.com>
236 * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
238 * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
240 * debug.adb: Add debug flags d.r and d.v
241 Add debug flag .T (Optimize_Alignment (Time))
242 Add debug flag .S (Optimize_Alignment (Space))
244 * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
245 depending on setting of relevant debug flags.
246 Replace use of Warnings_Off by Has_Warnings_Off
247 (Freeze_Entity): In circuit for warning on suspicious convention
248 actuals, do not give warning if subprogram has same entity as formal
249 type, or if subprogram does not come from source.
250 (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
251 if Optimize_Alignment set to Space.
253 * frontend.adb: Add call to Sem_Warn.Initialize
254 Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
255 Reset Optimize_Alignment mode from debug switches .S and .T
257 * layout.adb (Layout_Composite_Object): Rewritten for
258 Optimize_Aligment pragma.
260 * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
263 * opt.ads, opt.adb: (Optimize_Alignment): New global switch
265 * par-prag.adb (N_Pragma): Chars field removed, use Chars
266 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
267 this change. Add entry for pragma Optimize_Alignment
269 * sem_prag.adb (N_Pragma): Chars field removed, use Chars
270 (Pragma_Identifier (..
271 instead, adjustments throughout to accomodate this change.
272 (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
273 (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
274 Add implementation of pragma Optimize_Alignment
276 2008-03-26 Vincent Celier <celier@adacore.com>
278 * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
279 Improve memory usage to avoid use of stack.
281 2008-03-26 Robert Dewar <dewar@adacore.com>
283 * a-teioed.ads: Correct value of Default_Fill
285 * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
287 2008-03-26 Robert Dewar <dewar@adacore.com>
289 * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
290 with Current_Output (introduce Self).
292 2008-03-26 Robert Dewar <dewar@adacore.com>
294 * checks.adb (Ensure_Valid): Capture valid status if possible
297 2008-03-26 Robert Dewar <dewar@adacore.com>
299 * stand.ads: Deal with reordering of package standard declarations
301 * cstand.adb: Put package Standard declarations in proper order
303 2008-03-26 Robert Dewar <dewar@adacore.com>
305 * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
306 (Pragma_Identifier (.. instead.
307 (OK_To_Reorder_Components): New flag
308 (Has_Entries): Code cleanup.
309 (Warnings_Off_Used): New flag
310 (Warnings_Off_Used_Unmodified): New flag
311 (Warnings_Off_Used_Unreferenced): New flag
312 (Has_Warnings_Off): New function
313 (Has_Unmodified): New function
314 (Has_Unreferenced): New function
315 (Is_Trivial_Subprogram): New flag
316 (Is_Static_Dispatch_Table_Entity): New attribute.
317 Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
318 (more consistent with other similar names)
319 (Access_Subprogram_Type): New classification function
321 2008-03-26 Robert Dewar <dewar@adacore.com>
323 * errout.ads: Document new !! insertion sequence
325 * errout.adb (N_Pragma): Chars field removed, use Chars
326 (Pragma_Identifier (.. instead.
327 Replace use of Warnings_Off by Has_Warnings_Off
328 (Error_Msg_Internal): Don't delete warning ending in !!
330 2008-03-26 Robert Dewar <dewar@adacore.com>
332 * par.adb (Check_No_Right_Paren): Removed no longer used
334 * par-ch10.adb (N_Pragma): Chars field removed, use Chars
335 (Pragma_Identifier (.. instead.
337 * par-ch10.adb (P_Subunit): Improvement in error recovery and message
339 * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
340 par-ch4.adb: Minor improvements in error recovery and messages.
342 * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
345 * par-ch9.adb: Minor improvements in error recovery and messages
346 (P_Protected): Better error recovery for "protected type x;"
348 * par-util.adb: Minor improvements in error recovery and messages
349 (Check_No_Right_Paren): Removed no longer used
351 2008-03-26 Ed Schonberg <schonberg@adacore.com>
353 * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
354 that the prefix of an attribute is the type of the aggregate being
357 2008-03-26 Javier Miranda <miranda@adacore.com>
358 Robert Dewar <dewar@adacore.com>
360 * exp_attr.adb (N_Pragma): Chars field removed.
361 (Expand_N_Attribute_Reference): If the designated type associated with
362 attribute 'Unrestricted_Access is a subprogram entity then replace it
363 by an E_Subprogram_Type itype.
364 Implement attribute Old
366 * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
368 * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
370 New_Internal_Entity by call to Create_Itype to centralize calls
371 building itypes, ad propagate the convention of the designated
372 subprogram. In addition, disable the machinery cleaning constant
373 indications from all entities in current scope when 'Unrestricted_Access
374 corresponds with a node initializing a dispatch table slot.
375 (Analyze_Attribute): Parameterless attributes returning a string or a
376 type will not be called with improper arguments, so we can remove junk
377 code that was dealing with this case.
378 Implement attribute Old
380 * snames.ads, snames.h, snames.adb: Add entries for attribute Old
381 Add entry for pragma Optimize_Alignment
382 New standard names Sync and Synchronize
384 2008-03-26 Robert Dewar <dewar@adacore.com>
385 Arnaud Charlet <charlet@adacore.com>
387 * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
389 (No_Exception_Propagation_Active): New function.
390 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
391 Update comments, and review all uses of No_Exception_Propagation, which
392 are now correct and in sync with what gigi expects.
394 * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
396 (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
397 Update comments, and review all uses of No_Exception_Propagation, which
398 are now correct and in sync with what gigi expects.
400 2008-03-26 Ed Schonberg <schonberg@adacore.com>
402 * sem_ch3.adb (Access_Definition): If the access type is the return
403 result of a protected function, create an itype reference for it
404 because usage will be in an inner scope from the point of declaration.
405 (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
406 OK_To_Reorder_Components.
407 (Make_Index): If an overloaded range includes a universal integer
408 interpretation, resolve to Standard.Integer.
409 (Analyze_Subtype_Indication): Copy Convention to subtype
410 (Check_Abstract_Interfaces): Complete semantic checks on the legality of
411 limited an synchronized progenitors in type declaration and private
412 extension declarations.
414 * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
415 protected subprogram body, determine proper scope from subprogram
418 2008-03-26 Robert Dewar <dewar@adacore.com>
420 * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
423 2008-03-26 Gary Dismukes <dismukes@adacore.com>
425 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
426 of a heap allocator for a limited unconstrained function return when
427 resstriction No_Allocators is active.
428 (Analyze_Allocator): The restriction No_Allocators is now only checked
429 on allocators that have Comes_From_Source set, as per RM-H.4(7).
431 * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
432 of a heap allocator for a limited unconstrained function return when
433 resstriction No_Allocators is active.
434 (Analyze_Allocator): The restriction No_Allocators is now only checked
435 on allocators that have Comes_From_Source set, as per RM-H.4(7).
436 (Has_Fixed_Op): If the name in a function call is Standard."*" and the
437 operands are fixed-point types, the universal_fixed predefined operation
438 is used, regardless of whether the operand type (s) have a primitive
439 operation of the same name.
441 2008-03-26 Javier Miranda <miranda@adacore.com>
443 * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
444 Is_Static_Dispatch_Table
445 (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
446 to Exchange_Declarations to exchange the private and full-view. Bug
447 found working in this issue.
448 (Expand_Dispatching_Call): Propagate the convention of the subprogram
449 to the subprogram pointer type.
450 (Make_Secondary_DT): Replace generation of Prim'Address by
451 Address (Prim'Unrestricted_Access)
452 (Make_DT): Replace generation of Prim'Address by
453 Address (Prim'Unrestricted_Access)
454 (Make_Disp_*_Bodies): When compiling for a restricted profile, use
455 simple call form for single entry.
456 (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
457 tables of predefined primitives).
458 (Make_Secondary_DT): Add support to handle access to dispatch tables of
459 predefined primitives.
460 (Make_Tags): Add entities to Access_Dispatch_Table associated with
461 access to dispatch tables containing predefined primitives.
463 * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
464 (Pragma_Identifier (.. instead, adjustments throughout to accomodate
466 (Register_Predefined_DT_Entry): Updated to handle the new contents
467 of attribute Access_Disp_Table (pointers to dispatch tables containing
468 predefined primitives).
470 * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
472 (Find_Interface_ADT): Updated to skip the new contents of attribute
473 Access_Dispatch_Table (pointers to dispatch tables containing predefined
476 * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
478 (Set_Convention): Use new function Is_Access_Subprogram_Type
479 (Collect_Interfaces_Info): Updated to skip the new contents of attribute
480 Access_Dispatch_Table (pointers to dispatch tables containing predefined
483 * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
484 expanded code avoiding calls to Build_Predef_Prims.
485 (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
486 call to Build_Get_Predefined_Prim_Op_Address.
488 2008-03-26 Javier Miranda <miranda@adacore.com>
490 * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
491 subprogram Corresponding_Runtime_Package to know the runtime package
492 that will provide support to a given protected type.
494 * exp_ch9.adb (Add_Private_Declarations,
495 Build_Protected_Subprogram_Call,
496 Build_Protected_Entry, Build_Simple_Entry_Call,
497 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
498 Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
499 cleanup using the new centralized subprogram Corresponding_Runtime
500 Package to know the runtime package that provides support to
501 a given protected type.
503 2008-03-26 Ed Schonberg <schonberg@adacore.com>
505 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
506 assignment is within the initialization procedure for a packed array,
507 and Initialize_Scalars is enabled, compile right-hand side with checks
508 off, because the value is purposely out of range.
510 2008-03-26 Vincent Celier <celier@adacore.com>
512 * gnatcmd.adb: Add processing for GNAT SYNC
514 * vms_conv.ads: (Command_Type): Add command Sync
516 * vms_conv.adb (Initialize): Add Command_List data for new command Sync
518 * vms_data.ads: Add entries for -gnatw.w
519 Add qualifier for gnatstub --header-file option
520 Add switches for GNAT SYNC
522 * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
523 (Add_Package_Name): New procedure
524 (Package_Name_List): New function
525 (Initialize): Add known package names to the list
526 (Register_New_Package): Add the new package name to the list
528 2008-03-26 Robert Dewar <dewar@adacore.com>
530 * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
531 s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
532 Raise_Exception by "raise with" construct.
534 2008-03-26 Pascal Obry <obry@adacore.com>
536 * Makefile.in: Add proper GNAT.Serial_Communications implementation on
539 * Makefile.rtl: Add g-sercom.o.
541 * impunit.adb: Add g-sercom.adb.
543 * s-crtl.ads (open): New routine.
547 * s-osinte-mingw.ads (BYTE): New type.
549 (OVERLAPPED): Likewise.
550 (GENERIC_READ): New constant.
551 (GENERIC_WRITE): Likewise.
552 (OPEN_EXISTING): Likewise.
553 (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
555 (CreateFile): New routine.
556 (WriteFile): Likewise.
557 (ReadFile): Likewise.
558 (CloseHandle): Move next to the other file oriented routines.
560 * g-sercom.ads: New unit.
562 * g-sercom.adb: Default implementation, calls to this unit will raise
563 a program error exception.
565 * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
566 GNU/Linux implementations.
568 2008-03-26 Robert Dewar <dewar@adacore.com>
570 * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
572 * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
573 unchecked conversion for different conventions only for subprogram
576 2008-03-26 Vincent Celier <celier@adacore.com>
578 * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
579 to check if the specified object file is correct.
581 2008-03-26 Thomas Quinot <quinot@adacore.com>
583 * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
584 Comes_From_Source to exclude primitives from being checked. We want to
585 exclude predefined primitives only, so use the appropriate specific
586 predicate. Also, flag a formal parameter of an anonymous
587 access-to-subprogram type as illegal for a primitive operation of a
588 remote access to class-wide type.
590 2008-03-26 Vincent Celier <celier@adacore.com>
592 * prj-dect.adb (Parse_Package_Declaration): When a package name is not
593 known, check if it may be a missspelling of a known package name. In
594 not verbose, not mode, issue warnings only if the package name is a
595 possible misspelling.
596 In verbose mode, always issue a warning for a not known package name,
597 plus a warning if the name is a misspelling of a known package name.
599 * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
600 limited withs or limited withs are parse during one call.
601 (Parse_Single_Project): Post parse context clause in two passes: non
602 limited withs before current project and limited withs after current
605 * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
606 project with the name With_Name, even if it is only extended indirectly.
607 (Recursive_Process): Process projects in order: first single withs, then
608 current project, then limited withs.
610 * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
611 project with the name With_Name, even if it is only extended indirectly.
613 2008-03-26 Robert Dewar <dewar@adacore.com>
615 * scn.adb (Initialize_Scanner): Format messages belong on standard error
617 2008-03-26 Ed Schonberg <schonberg@adacore.com>
619 * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
620 a generic subprogram that is imported, do not attempt to compile
623 * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
624 imported, do not generate a raise_program_error for the non-existent
626 (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
627 perform minimal name resolution on the generic to avoid spurious
629 (Find_Actual_Type): the designated type of the actual in a child unit
630 may be declared in a parent unit without being an actual.
632 2008-03-26 Robert Dewar <dewar@adacore.com>
634 * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
635 * sinfo.ads, sinfo.adb (From_At_End): New flag
637 2008-03-26 Ed Schonberg <schonberg@adacore.com>
639 * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
640 operations that have an interface parameter.
641 (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
642 Don't treat No_Return call as raise.
644 * sem_disp.adb (Check_Dispatching_Operations): apply check for
645 non-primitive interface primitives to access parameters, not to all
646 parameters of an access type.
648 2008-03-26 Ed Schonberg <schonberg@adacore.com>
650 * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
651 declarations of a parent unit are made visible when compiling a child
652 instance, the parent is not a hidden open scope, even though it may
653 contain other pending instance.
655 * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
656 hidden open scope for some child instance, it does affect the
657 visibility status of other stach entries.
658 (Analyze_Object_Renaming): Check that a class-wide object cannot be
659 renamed as an object of a specific type.
661 2008-03-26 Robert Dewar <dewar@adacore.com>
663 * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
664 recursion and raise SE directly.
665 (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
666 set for formal type for IN mode parameter.
668 2008-03-26 Robert Dewar <dewar@adacore.com>
670 * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
671 (Initialize): New procedure
672 (Output_Warnings_Off_Warnings): New procedure
673 (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
674 (Output_Non_Modifed_In_Out_Warnings): Ditto
675 (Warn_On_Unreferenced_Entity): Ditto
677 2008-03-26 Vincent Celier <celier@adacore.com>
679 * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
682 2008-03-26 Matthew Heaney <heaney@adacore.com>
684 * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
685 a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
686 Marked with clauses as private, and controlled operations as overriding
688 2008-03-26 Robert Dewar <dewar@adacore.com>
690 * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
692 2008-03-26 Robert Dewar <dewar@adacore.com>
694 * back_end.adb, back_end.ads: Minor reformatting
696 * bindgen.adb: Minor clarification of comments
698 * fname.ads: Minor comment fixes
700 * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
701 prj-nmsc.adb, sem_aggr.adb: Minor reformatting
703 * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
704 xsnames.adb: Remove warnings off pragma no longer needed
706 * a-catizo.ads, a-calari.ads, a-calfor.adb,
707 a-calfor.ads: Fix header.
709 2008-03-26 Tristan Gingold <gingold@adacore.com>
711 * init.c: Do not adjust pc for HPARITH on alpha/vms.
713 2008-03-26 Robert Dewar <dewar@adacore.com>
715 * lib-xref.adb: (OK_To_Set_Reference): New function
716 (Generate_Reference): Don't set referenced from occurrence in Warnings,
717 Unmodified, or Unreferenced pragma
719 2008-03-26 Robert Dewar <dewar@adacore.com>
721 * alloc.ads: Add entries for Warnings_Off_Pragmas table
723 2008-03-26 GNAT Script <nobody@adacore.com>
725 * Make-lang.in: Makefile automatically updated
727 2008-03-26 Robert Dewar <dewar@adacore.com>
729 * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
730 par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
731 removed, use Chars (Pragma_Identifier (.. instead, adjustments
732 throughout to accomodate this change.
734 * s-pooglo.ads, s-pooloc.ads: Minor comment updates
736 * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
737 Einfo.Set_Needs_Debug_Info)
739 2008-03-26 Robert Dewar <dewar@adacore.com>
741 * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
742 Add description for the new gnatstub option '--header-file'
743 clarification of -gnatwz/-gnatwZ
744 Add a "Irix-Specific Considerations" section to document the need to
745 set LD_LIBRARY_PATH when using the default shared runtime library.
746 Added documentation for both gcov and gprof.
748 * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
749 messages that are not suppressed when clients are compiled.
750 Add documentation of s-pooglo s-pooloc
751 Document the new GNAT.Serial_Communications API.
752 Add documentation for 'Old attribute
753 Add description of pragma Optimize_Alignment
755 * ug_words: Add entries for -gnatw.w -gnatw.W
757 * usage.adb: Add line for -gnatw.w (warn on warnings off)
759 2008-03-25 Eric Botcazou <ebotcazou@adacore.com>
762 2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
764 * decl.c (maybe_pad_type): Avoid padding an integral type when
765 bumping its alignment is sufficient.
767 2008-03-25 Arnaud Charlet <charlet@adacore.com>
769 * exp_ch6.adb, exp_disp.adb: Update copyright notice.
770 Fix wrong formatting (lines too long)
772 2008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
774 * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
775 a-calend-vms.adb, a-calend.adb, a-calend.ads,
776 a-calfor.adb, a-chahan.ads, a-chtgke.adb,
777 a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
778 a-cohama.ads, a-comlin.ads, a-coorse.adb,
779 a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
780 a-except-2005.ads, a-except.adb, a-except.ads,
781 a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
782 a-exextr.adb, a-filico.ads, a-finali.ads,
783 a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
784 a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
785 a-sequio.ads, a-strbou.ads, a-strfix.adb,
786 checks.adb, exp_ch3.adb, exp_ch4.adb,
787 exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
788 exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
789 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
790 exp_dbug.ads, exp_disp.adb, exp_dist.adb,
791 exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
793 2008-03-24 Robert Dewar <dewar@adacore.com>
795 * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
796 s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
797 s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
798 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
799 s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
800 a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
801 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
802 a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
803 a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
804 a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
805 a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
806 i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
807 a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
808 s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
809 s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
810 double spaced if it fits on one line and otherwise single spaced.
812 2008-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
814 PR documentation/15479
815 * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
816 (doc/gnat_ugn_unw.texi): ... this, and adjusted.
817 (doc/gnat_ugn.info): Renamed from ...
818 (doc/gnat_ugn_unw.info): ... this.
819 (doc/gnat_ugn.dvi): Renamed from ...
820 (doc/gnat_ugn_unw.dvi): ... this.
821 (doc/gnat_ugn.pdf): Renamed from ...
822 (doc/gnat_ugn_unw.pdf): ... this.
823 (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
825 * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
826 unconditionally to gnat_ugn.info. Fix cross references to the
827 GNAT Reference Manual. Convert links to the GCC, GDB, Emacs,
828 and GNU make manuals to be proper texinfo links.
829 * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
831 2008-03-21 Olivier Hainque <hainque@adacore.com>
833 * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
834 ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
836 2008-03-21 Eric Botcazou <ebotcazou@adacore.com>
838 * trans.c (addressable_p): Add notes on addressability issues.
840 2008-03-21 Olivier Hainque <hainque@adacore.com>
841 Ed Schonberg <schonberg@adacore.com>
843 * trans.c (addressable_p): Accept COND_EXPR when both arms
845 (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
846 (call_to_gnu): Do not use name reference in the error message
847 for a misaligned by_reference_parameter. The actual may be a
850 2008-03-18 Paolo Bonzini <bonzini@gnu.org>
852 * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
854 2008-03-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
856 * gnat_rm.texi (Implementation Defined Characteristics)
857 (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
859 * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
860 (Switches for gnatchop, Installing a library): Likewise.
862 2008-03-10 Eric Botcazou <ebotcazou@adacore.com>
864 * trans.c (emit_range_check): Do not emit the check if the base type
865 of the expression is the type against which its range must be checked.
867 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
869 * decl.c (maybe_pad_type): Use value_factor_p.
871 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
873 * lang.opt (nostdlib): Move around.
874 * misc.c (gnat_handle_option): Fix formatting.
875 (gnat_dwarf_name): Move around.
876 * trans.c (Case_Statement_to_gnu): Fix formatting.
877 (gnat_to_gnu): Likewise.
878 * utils.c (aggregate_type_contains_array_p): Likewise.
879 (create_subprog_decl): Likewise.
881 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
883 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
884 bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
886 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
888 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
889 BIGGEST_ALIGNMENT when capping the alignment of records with
890 strict alignment and size clause.
892 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
894 * lang-specs.h: Pass -gnatwa if -Wall is passed.
895 * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
897 (gnat_post_options): Clear warn_unused_parameter.
899 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
901 * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
902 aligned bit-fields, bumping the alignment of the record type if deemed
904 (value_factor_p): Return false instead of 0.
906 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
908 * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
909 for scalar types with small alignment.
911 2008-03-08 Eric Botcazou <ebotcazou@adacore.com>
913 * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
914 from that of the front-end's end label.
915 (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
916 from that of the loop label.
918 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
920 * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
921 comment for the packed array type case.
922 * utils.c (build_template): Use a loop to strip padding or
923 containing records for justified modular types.
925 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
927 * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
928 large alignments specified for types.
929 (validate_alignment): Minor cleanup.
931 2008-03-07 Eric Botcazou <ebotcazou@adacore.com>
933 * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
934 (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
935 the component for packing, if possible, as well as if a component
936 size clause is specified.
937 <E_Record_Subtype>: For an array type used to implement a packed
938 array, get the component type from the original array type.
939 Try to get a smaller form of the component for packing, if possible,
940 as well as if a component size clause is specified.
941 (round_up_to_align): New function.
942 (make_packable_type): Add in_record parameter.
943 For a padding record, preserve the size. If not in_record and the
944 size is too large for an integral mode, attempt to shrink the size
945 by lowering the alignment.
946 Ditch the padding bits of the last component.
947 Compute sizes and mode manually, and propagate the RM size.
948 Return a BLKmode record type if its size has shrunk.
949 (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
950 Use Original_Array_Type to retrieve the type in case of an error.
951 Adjust call to make_packable_type.
952 (gnat_to_gnu_field): Likewise.
953 (concat_id_with_name): Minor tweak.
954 * trans.c (larger_record_type_p): New predicate.
955 (call_to_gnu): Compute the nominal type of the object only if the
956 parameter is by-reference. Do the conversion actual type -> nominal
957 type if the nominal type is a larger record.
958 (gnat_to_gnu): Do not require integral modes on the source type to
959 avoid the conversion for types with identical names.
960 (addressable_p): Add gnu_type parameter. If it is specified, do not
961 return true if the expression is not addressable in gnu_type.
962 Adjust recursive calls.
963 * utils.c (finish_record_type): Remove dead code.
965 2008-03-05 Eric Botcazou <ebotcazou@adacore.com>
968 * decl.c (maybe_pad_type): Avoid padding an integral type when
969 bumping its alignment is sufficient.
971 2008-03-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
973 * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
974 * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
976 * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
977 gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
978 sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
980 * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
981 system-vms_64.ads: Fix typos in ada source code comments.
982 * sinfo-cn.adb: Remove incomplete sentence.
984 PR documentation/15479
985 * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
987 2008-02-27 Samuel Tardieu <sam@rfc1149.net>
990 * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
992 2008-02-27 Samuel Tardieu <sam@rfc1149.net>
995 * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
996 that underlying type is present.
998 2008-02-26 Tom Tromey <tromey@redhat.com>
1000 * misc.c (internal_error_function): Remove test of
1001 USE_MAPPED_LOCATION.
1002 * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
1003 (Sloc_to_locus): Remove old location code.
1005 2008-02-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1007 * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
1008 `i.e.' by adding comma or `@:' as appropriate.
1009 * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
1010 plain characters `C', use `@samp{C}'.
1011 * gnat_ugn.texi (File Naming Rules, About gnatkr)
1012 (Krunching Method): Likewise.
1014 * gnat_ugn.texi (Conventions): List environment variables and
1015 metasyntactic variables.
1016 (Compiling Programs): Fix notation of metasyntactic variables.
1017 Add @file where appropriate. Use @file for file extensions,
1019 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
1020 instead of @file, @env instead of @code.
1022 2008-02-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1024 PR documentation/15479
1025 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
1026 and `...' with `@dots{}' or `@enddots{}'.
1028 PR documentation/15479
1029 * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
1030 use @command instead of @code, @option instead of @samp or @code,
1031 @code instead of @var, @samp instead of @file.
1033 PR documentation/15479
1034 * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
1035 in Makefile rules, by using `&&' rather than `;'.
1037 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1039 PR documentation/15479
1040 * gnat_ugn.texi: In non-code, avoid space before colon.
1041 (Regular Expressions in gnatfind and gnatxref): Fix indentation.
1042 (Examples of gnatxref Usage): Use @command{vi} instead of
1044 (Character Set Control): Do not use @code for UTF-8.
1045 (Validity Checking): Fix typo "NaNs" instead of "NaN's". Do not
1047 * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
1049 * gnat_rm.texi, gnat_ugn.texi: Fix typos. Bump copyright years.
1051 2008-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>
1054 * env.c: Add __rtems__ to if defined.
1055 * s-osinte-rtems.adb: Add To_Target_Priority. Fix formatting.
1056 * s-osinte-rtems.ads: Add To_Target_Priority prototype and
1057 PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants. Add
1058 pragma Convention as required.
1059 * gsocket.h: Make compile in and out of RTS.
1060 * Makefile.in: Add system-rtems.ads. Build DEC extensions.
1061 Use g-soccon-rtems.ads.
1062 * g-soccon-rtems.ads, system-rtems.ads: New files.
1064 2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1067 * Make-lang.in (gnat1): Add $(GMPLIBS).
1069 2008-01-26 Eric Botcazou <ebotcazou@adacore.com>
1071 * decl.c (components_to_record): Improve comment.
1073 2008-01-22 Eric Botcazou <ebotcazou@adacore.com>
1075 * decl.c (components_to_record): Do not reuse the empty union type
1076 if there is a representation clause on the record.
1077 * trans.c (addressable_p): Return true for INTEGER_CST.
1079 2008-01-21 Eric Botcazou <ebotcazou@adacore.com>
1081 * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
1082 in pointer arithmetics.
1083 * utils2.c (build_allocator): Likewise.
1085 2008-01-17 Eric Botcazou <ebotcazou@adacore.com>
1087 * utils.c (build_function_stub): Properly build the call expression.
1089 2008-01-14 Eric Botcazou <ebotcazou@adacore.com>
1091 * decl.c (gnat_to_gnu_entity) <object>: Process renamings
1092 before converting the expression to the type of the object.
1093 * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
1094 Stabilize constructors for special wrapping types.
1096 2008-01-13 Eric Botcazou <ebotcazou@adacore.com>
1098 * trans.c (call_to_gnu): Invoke the addressable_p predicate only
1099 when necessary. Merge some conditional statements. Update comments.
1100 Rename unchecked_convert_p local variable to suppress_type_conversion.
1101 Do not suppress conversions in the In case.
1102 (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
1103 into account on non strict-alignment platforms.
1105 2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
1107 * utils.c (aggregate_type_contains_array_p): New predicate.
1108 (create_field_decl): In a packed record, force byte alignment
1109 for fields without specified position that contain an array.
1111 2008-01-12 Eric Botcazou <ebotcazou@adacore.com>
1113 * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
1115 2008-01-10 John David Anglin <dave.anglin.@nrc-cnrc.gc.ca>
1118 * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
1120 (bit_field): New packed boolean type used by cpu_set_t.
1121 (cpu_set_t): New type corresponding to the C type with
1122 the same name. Note that on the Ada side we use a bit
1123 field array for the affinity mask. There is not need
1124 for the C macro for setting individual bit.
1125 (pthread_setaffinity_np): New imported routine.
1127 2008-01-03 Tero Koskinen <tero.koskinen@iki.fi>
1130 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
1131 on OpenBSD as is done on other BSD systems.
1134 * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
1135 getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
1139 * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
1143 * init.c (__gnat_error_handler, __gnat_install_handler,
1144 __gnat_init_float): Define for OpenBSD.
1146 * initialize.c (__gnat_initialize): Define for OpenBSD.
1148 2007-12-27 Samuel Tardieu <sam@rfc1149.net>
1151 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
1152 instead of mktemp() or tmpnam() on NetBSD.
1154 2007-12-23 Eric Botcazou <ebotcazou@adacore.com>
1156 * trans.c (call_to_gnu): Make the temporary for non-addressable
1157 In parameters passed by reference.
1158 (addressable_p): Return true for STRING_CST and CALL_EXPR.
1160 2007-12-19 Robert Dewar <dewar@adacore.com>
1162 * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
1163 Add pragma Warnings (Off) for unassigned IN OUT arguments
1165 * sem_warn.adb (Output_Reference): Suppress messages for internal names
1166 (Check_References): Extensive changes to tune up warnings
1167 (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
1168 (Has_Pragma_Unmodifed_Check_Spec): New function
1169 (Check_References): Implement pragma Unmodified
1170 (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
1172 * par-prag.adb: Dummy entry for pragma Unmodified
1174 * sem_prag.adb: Implement pragma Unmodified
1176 * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
1177 (Proc_Next_Component_Or_Discriminant): Fix typo.
1180 * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
1182 (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
1183 because the former already takes care of discarding the result.
1184 (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
1187 * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
1189 2007-12-19 Eric Botcazou <ebotcazou@adacore.com>
1191 * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
1192 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
1193 system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
1194 system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
1195 system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
1196 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
1197 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
1198 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
1199 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
1200 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
1201 (Dynamic_Trampolines_Used): Delete.
1203 * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
1204 Turn on stack probing mechanism on LynxOS.
1206 2007-12-19 Bob Duff <duff@adacore.com>
1208 * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
1209 the resulting tail recursion by hand. This prevents running out of
1210 memory on deeply nested concatenations, since Field2 is where the left
1211 operand of concatenations is stored.
1212 Fix bug (was returning OK_Orig in some cases). Fix return subtype to
1213 clarify that it can only return OK or Abandon.
1215 * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
1216 operand by iteration, in order to avoid running out of memory on
1217 deeply-nested concatenations. Use the Parent pointer to get back up the
1219 (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
1220 Resolve_Op_Concat_Rest): New procedures split out of
1221 Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
1224 * checks.adb (Remove_Checks): Use Traverse_Proc instead of
1225 Traverse_Func, because the former already takes care of discarding the
1228 * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
1229 because the former already takes care of discarding the result.
1230 (Remove_Warning_Messages): Use appropriate subtype for Status and
1233 2007-12-19 Ed Schonberg <schonberg@adacore.com>
1235 * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
1236 discriminants forces expansion of the aggregate into assignments.
1237 (Init_Record_Controller): If the type of the aggregate is untagged and
1238 is not inherently limited, the record controller is not limited either.
1240 2007-12-19 Robert Dewar <dewar@adacore.com>
1242 * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
1243 handling compile time known size of record or array (case of front end
1244 layout active, e.g. in GNAAMP).
1246 2007-12-19 Javier Miranda <miranda@adacore.com>
1248 * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
1249 that forces the construction of static dispatch tables in case of
1252 2007-12-19 Robert Dewar <dewar@adacore.com>
1254 * exp_ch9.adb (Null_Statements): Moved to library level
1255 (Trivial_Accept_OK): New function
1256 (Expand_Accept_Declaration): Use Trivial_Accept_OK
1257 (Expand_N_Accept_Statement): Use Trivial_Accept_OK
1259 2007-12-19 Robert Dewar <dewar@adacore.com>
1261 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
1262 in complex case where array is Volatile.
1264 2007-12-19 Ed Schonberg <schonberg@adacore.com>
1266 * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
1267 properly the Ada2005 rules concerning when the current instance of a
1268 record type is aliased.
1270 2007-12-19 Ed Schonberg <schonberg@adacore.com>
1272 * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
1274 (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
1276 (P_Variant_Part): Cleaner patch for parenthesized discriminant
1278 2007-12-19 Vincent Celier <celier@adacore.com>
1280 * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
1281 package is not known
1283 * prj-attr.ads (Unknown_Package): New constant
1284 Do not crash when an unknown package is in several projects
1286 * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
1289 * prj-nmsc.adb (Check): Remove obsolete code related to no longer
1290 existing package Language_Processing.
1292 2007-12-19 Ed Schonberg <schonberg@adacore.com>
1293 Gary Dismukes <dismukes@adacore.com>
1294 Samuel Tardieu <sam@rfc1149.net>
1296 PR ada/15803, ada/15805
1297 * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
1298 illegal access subtypes when there is a constrained partial view.
1299 (Check_For_Premature_Usage): New procedure inside
1300 Access_Subprogram_Declaration for checking that an access-to-subprogram
1301 type doesn't reference its own name within any formal parameters or
1302 result type (including within nested anonymous access types).
1303 (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
1304 (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
1305 context is an access_to_variable, the expression cannot be an
1308 2007-12-19 Bob Duff <duff@adacore.com>
1310 * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
1311 (Analyze_Concatenation): Use iteration instead of recursion in order
1312 to avoid running out of stack space for deeply nested concatenations.
1314 2007-12-19 Ed Schonberg <schonberg@adacore.com>
1315 Gary Dismukes <dismukes@adacore.com>
1317 * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
1318 whose renamed entity is a subprogram that requires overriding.
1319 (Premature_Usage): Test for the case of N_Full_Type_Declaration when
1320 issuing an error for premature usage and issue a message that says
1321 'type' rather than 'object'.
1323 2007-12-19 Gary Dismukes <dismukes@adacore.com>
1326 * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
1327 presence of a statically tagged operand (Present (Static_Tag)) with
1328 test for Indeterm_Ancestor_Call when determining whether to propagate
1329 the static tag to tag-indeterminate operands (which forces dispatching
1331 (Check_Controlling_Formals): Ada2005, access parameters can have
1333 (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
1334 not insert subprogram in list of primitive operations if already there.
1336 2007-12-19 Tristan Gingold <gingold@adacore.com>
1338 * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
1341 2007-12-19 Thomas Quinot <quinot@adacore.com>
1343 Part of PR ada/33688
1344 * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
1345 datagram info on Linux.
1347 2007-12-19 Vincent Celier <celier@adacore.com>
1349 * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
1350 that the source path name is always found in the dependencies.
1352 2007-12-19 Robert Dewar <dewar@adacore.com>
1354 * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
1355 Fix name of Wide_Wide_Latin_1/9 file names
1356 Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
1357 Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
1358 Add missing documentation for Ada.Command_Line.Response_File
1359 Update list of warning letters for Warnings pragma
1360 Add documentation for pragma Unmodified
1362 2007-12-19 Samuel Tardieu <sam@rfc1149.net>
1364 * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
1366 2007-12-17 Arnaud Charlet <charlet@adacore.com>
1368 * s-vxwork-alpha.ads: Removed, no longer used.
1370 2007-12-15 Jakub Jelinek <jakub@redhat.com>
1372 * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
1374 2007-12-13 Samuel Tardieu <sam@rfc1149.net>
1377 * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
1378 mlib-tgt-specific.adb.
1380 2007-12-13 Bob Duff <duff@adacore.com>
1382 * trans.c (Attribute_to_gnu): Check for violations of the
1383 No_Implicit_Dynamic_Code restriction. This checking used to be done in
1384 the front end, but is moved here so we can make it more accurate.
1386 2007-12-13 Pascal Obry <obry@adacore.com>
1388 * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
1389 version is provided for older GNU/Linux distribution not
1390 supporting thread affinity sets.
1392 * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
1394 (bit_field): New packed boolean type used by cpu_set_t.
1395 (cpu_set_t): New type corresponding to the C type with
1396 the same name. Note that on the Ada side we use a bit
1397 field array for the affinity mask. There is not need
1398 for the C macro for setting individual bit.
1399 (pthread_setaffinity_np): New imported routine.
1401 * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
1403 (Create_Task): Set the processor affinity mask if information
1406 * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
1408 2007-12-13 Robert Dewar <dewar@adacore.com>
1410 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
1411 s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
1412 s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
1413 s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
1414 s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
1415 s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
1416 s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
1417 i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
1418 for subprogram pointers.
1420 * g-ctrl_c.adb: New file.
1422 * g-ctrl_c.ads (Install_Handler): New body.
1424 * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
1425 instead of obsolete function Is_Always_Inlined.
1426 (Freeze_Entity): check for tagged type in imported C subprogram
1427 (Freeze_Entity): check for 8-bit boolean in imported C subprogram
1428 (Freeze_Entity): check for convention Ada subprogram pointer in
1429 imported C subprogram.
1430 (Freeze_Fixed_Point_Type): In the case of a base type where the low
1431 bound would be chopped off and go from negative to zero, force
1432 Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
1433 bound) so that the size computation for the base type will take
1434 negative values into account.
1436 2007-12-13 Eric Botcazou <ebotcazou@adacore.com>
1437 Bob Duff <duff@adacore.com>
1438 Tristan Gingold <gingold@adacore.com>
1440 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
1441 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
1442 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
1443 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
1444 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
1445 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
1446 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
1447 system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
1448 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
1449 system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
1450 system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
1451 (Always_Compatible_Rep): New flag to control trampolines globally.
1452 (Dynamic_Trampolines_Used): New flag for implementing the
1453 No_Implicit_Dynamic_Code restriction more correctly (not yet used,
1454 and not yet set correctly for some targets).
1456 * s-taprop-vxworks.adb: Use stack limit method of stack checking.
1457 Simply indirectly call s-stchop when a task is created.
1460 New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
1461 appears as an argument (entries A) in an ALI file.
1463 * fe.h (Stack_Check_Limits): Declare new target parameter.
1464 (Check_Implicit_Dynamic_Code_Allowed): New procedure.
1466 * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
1467 This variable is declared in C to be sure not subject to elaboration
1469 (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
1472 * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
1473 (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
1475 * s-stchop.ads: Add comments.
1477 * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
1478 limit method of stack checking.
1480 * s-stchop-limit.ads: New file.
1482 2007-12-13 Robert Dewar <dewar@adacore.com>
1484 * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
1485 a-cihama.adb, g-awk.adb,
1486 s-inmaop-posix.adb: Update handling of assigned value/unreferenced
1489 * exp_smem.adb: Update handling of assigned value/unreferenced warnings
1491 * sem.adb: Update handling of assigned value/unreferenced warnings
1493 * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
1495 * lib-xref.ads: Improve documentation for k xref type
1498 Update handling of assigned value/unreferenced warnings
1499 (Generate_Reference): Warning for reference to entity for which a
1500 pragma Unreferenced has been given should be unconditional.
1501 If the entity is a discriminal, mark the original
1502 discriminant as referenced.
1504 * sem_warn.ads, sem_warn.adb
1505 (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
1506 no entities referenced in package
1507 (Check_One_Unit): Don't give message about no entities referenced in
1508 a package if a pragma Unreferenced has appeared.
1509 Handle new warning flag -gnatw.a/-gnatw.A
1510 Update handling of assigned value/unreferenced warnings
1512 * atree.h: Add flags up to Flag247
1513 (Flag231): New macro.
1515 2007-12-13 Jose Ruiz <ruiz@adacore.com>
1517 * adaint.h: (__gnat_plist_init): Not defined for RTX.
1519 * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
1522 * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
1523 (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
1524 EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
1525 GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
1528 Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
1530 * sysdep.c (winflush_function for RTX): Procedure that does nothing
1531 since we only have problems with Windows 95/98, which are not
1533 (__gnat_ttyname): Return the empty string on Nucleus, just as
1536 2007-12-13 Robert Dewar <dewar@adacore.com>
1538 * a-textio.adb, a-textio.ads:
1539 Extensive changes to private part for wide character encoding
1541 * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
1542 (Look_Ahead): Fix mishandling of encoded sequences
1543 Move declaration of Wch_Con to private part (should not be visible)
1545 * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
1546 UTF-8. Probably this is never used, but if it is, brackets is
1549 * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
1550 setting wide character encoding for no main program case and when
1551 encoding is specified using -W?
1552 Initialize stack limit of environment task if stack limit method of
1553 stack checking is enabled.
1554 (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
1555 (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
1556 (Get_Main_Unit_Name): New function.
1557 (Gen_Adainit_Ada): Add call to main program for .NET when needed.
1558 (Gen_Output_File): Set Bind_Main_Program to True for .NET
1560 * bindusg.adb: Add line for -Wx switch
1562 * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
1564 Add new useful constant WC_Longest_Sequences
1566 * switch-b.adb: Clean up handling of -Wx switch
1567 For -gnatWx, set Wide_Character_Encoding_Method_Specified
1569 * switch-c.adb: -gnatg activates warning on assertion errors
1570 For -gnatWx, set Wide_Character_Encoding_Method_Specified
1572 * s-wchcon.adb: (Is_Start_Of_Encoding): New function
1574 2007-12-13 Robert Dewar <dewar@adacore.com>
1575 Ed Schonberg <schonberg@adacore.com>
1577 * a-ngcoty.adb: New pragma Fast_Math
1579 * opt.adb: New pragma Fast_Math
1582 Add Implemented_By_Entry to the list of pragmas which do not require any
1584 (Favor_Top_Level): New pragma.
1585 New pragma Fast_Math
1587 * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
1588 (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
1589 Expand_Allocator_Expression): Take into account VM_Target
1590 (Expand_Attribute, case 'Identity): Handle properly the case where
1591 the prefix is a task interface.
1592 New pragma Fast_Math
1594 * par.adb (Next_Token_Is): New function
1595 (P_Pragma): Add Skipping parameter
1596 (U_Left_Paren): New procedure
1597 (U_Right_Paren): New procedure
1598 New pragma Fast_Math
1600 * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
1602 New pragma Fast_Math
1604 * sem_prag.adb: Add significance value to table Sig_Flag for pragma
1605 Implemented_By_Entry.
1606 (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
1607 (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
1608 items, since it can apply to more than one overloadable entity. Set
1609 new flag Has_Pragma_Inline_Always for Inline_Always case.
1610 (Analyze_Pragma, case Complex_Representation): Improve error message.
1611 (Analyze_Pragma, case Assert): When assertions are disabled build the
1612 rewritten code with Sloc of expression rather than pragma, so new
1613 warning about failing is not deleted.
1614 (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
1615 protected types and update error message to reflect that. Test whether
1616 the protected type is allowed for the pragma (an error is issued if the
1617 type has any entries, or components that do not have preelaborable
1619 New pragma Fast_Math
1620 (Analyze_Pragma, case No_Return): Handle generic instance
1622 * snames.h, snames.ads, snames.adb:
1623 Add new predefined name for interface primitive _Disp_Requeue.
1624 New pragma Fast_Math
1626 * a-tags.ads, a-tags.adb: New calling sequence for
1627 String_To_Wide_[Wide_]String
1628 (Secondary_Tag): New subprogram.
1630 * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
1632 New calling sequence for String_To_Wide_[Wide_]String
1633 (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
1634 the use of the secondary stack for image routines.
1636 * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
1637 calling sequence for String_To_Wide_[Wide_]String
1639 * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
1641 (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
1642 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1644 * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
1645 (P_Formal_Part): Use Skipping parameter in P_Pragma call
1646 to improve error recovery
1648 * par-util.adb (Next_Token_Is): New function
1649 (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
1651 * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
1652 semicolon if missing
1653 (P_Pragma): Implement new Skipping parameter
1654 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1655 Fix location of flag for unrecognized pragma message
1657 * par-tchk.adb (U_Left_Paren): New procedure
1658 (U_Right_Paren): New procedure
1660 2007-12-13 Geert Bosch <bosch@adacore.com>
1663 (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
1664 the second or later Scaled_Divide would omit leading zeroes,
1665 resulting in too few digits produced and a Layout_Error as result.
1666 (Put): Initialize Pos.
1668 2007-12-13 Robert Dewar <dewar@adacore.com>
1670 atree.ads, atree.adb (Flag231..Flag247): New functions
1671 (Set_Flag231..Set_Flag247): New procedures
1672 (Basic_Set_Convention): Rename Set_Convention to be
1673 Basic_Set_Convention
1674 (Nkind_In): New functions
1675 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1677 * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
1679 of obsolete function Is_Always_Inlined
1680 (Register_Predefined_DT_Entry): Initialize slots of the second
1681 secondary dispatch table.
1682 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1683 (Expand_N_Function_Call): Remove special provision for stack checking.
1685 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
1686 Include _Disp_Requeue in the list of predefined operations.
1687 (Find_Interface_ADT): Modified to fulfill the new specification.
1688 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1690 * par-ch4.adb, nlists.ads, nlists.adb:
1691 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1693 * sinfo.ads, sinfo.adb: (Nkind_In): New functions
1694 Fix location of flag for unrecognized pragma message
1696 * sem_ch7.adb: Use Nkind_In
1698 2007-12-13 Vincent Celier <celier@adacore.com>
1701 Indicate what flags are used by the Project Manager, gprbuild and
1703 (Opt.Follow_Links_For_Dirs): New flag
1704 (Warn_On_Assertion_Failure): New flag
1705 (Wide_Character_Encoding_Method_Specified): New flag
1706 (Suppress_All_Inlining): New switch set by -fno-inline
1707 (Real_VMS_Target): New flag
1708 New pragma Fast_Math
1710 2007-12-13 Robert Dewar <dewar@adacore.com>
1712 * back_end.adb: Recognize -fno-inline
1714 2007-12-13 Robert Dewar <dewar@adacore.com>
1716 * checks.adb: Fix optimization problem with short-circuited form
1718 2007-12-13 Bob Duff <duff@adacore.com>
1720 * clean.adb (Usage): Add line for -aP
1721 (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
1722 with a parameter "procedure Usage", instead of passing a pointer to a
1723 procedure. This is to eliminate trampolines (since the Usage procedure
1724 is often nested in a main procedure, and it would be inconvenient to
1727 * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
1728 to be generic, with a parameter "procedure Callback (...)", instead of
1729 passing a pointer to a procedure. This is to eliminate trampolines
1730 (since the Callback procedure is usually nested).
1732 * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
1733 gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
1734 (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
1736 * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
1737 Use the generic Heap_Sort_G instead of Heap_Sort_A.
1739 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
1741 * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
1742 (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
1743 (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
1744 (Renamed_In_Spec): New flag
1745 (Has_Pragma_Inline_Always): New flag
1746 Add missing doc for pragma Obsolescent_Warning
1747 Add missing doc for 17 additional unused flags (230-247)
1748 (Is_Derived_Type): Remove condition "not Is_Generic_Type".
1749 Alphabetize with clauses.
1750 Separate Is_Thunk and Has_Thunks flags
1751 (Write_Entity_Flags): Add forgotten entry for Has_Thunks
1752 (Related_Interface): Renamed to Related_Type.
1753 (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
1754 (Set_Is_Flag): Restrict the assertion.
1756 2007-12-13 Vincent Celier <celier@adacore.com>
1758 * errout.adb (Output_Source_Line): Do not keep a trailing space after
1759 the source line number if the source line is empty.
1761 2007-12-13 Geert Bosch <bosch@adacore.com>
1763 * eval_fat.adb (Decompose_Int): Handle argument of zero.
1764 (Compose): Remove special casing of zero.
1765 (Exponent): Likewise.
1766 (Fraction): Likewise.
1767 (Machine): Likewise.
1768 (Decompose): Update comment.
1770 2007-12-13 Ed Schonberg <schonberg@adacore.com>
1772 * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
1773 limited ancestor part, initialize controllers of enclosing record
1774 before expanding ancestor aggregate.
1775 (Gen_Assign): If a component of the aggregate is box-initialized, add
1776 code to call Initialize if the component is controlled, and explicit
1777 assignment of null if the component is an access type.
1779 Handle properly aggregates for limited types that appear in object
1780 declarations when the aggregate contains controlled values such as
1782 When expanding limited aggregates into individual components, do not
1783 call Adjust on controlled components that are limited.
1785 2007-12-13 Ed Schonberg <schonberg@adacore.com>
1787 * expander.adb: Take into account N_Subprogram_Renaming_Declaration
1789 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
1791 * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
1792 predefined primitive _Disp_Requeue.
1793 (Make_Predefined_Primitive_Specs): Create the spec for predefined
1794 primitive _Disp_Requeue.
1795 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
1796 type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
1797 (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
1798 an interface type. In case of limited interfaces we now declare all the
1799 predefined primitives associated with synchronized interfaces as
1801 (Predef_Spec_Or_Body): For interface types generate abstract subprogram
1803 (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
1804 tagged type is an interface type and there is no user-defined equality
1806 Add also bodies of predefined primitives associated with synchronized
1808 (Freeze_Record_Type): Do not build bodies of predefined primitives of
1809 interface types because they are now defined abstract.
1810 Add missing documentation.
1811 (Expand_Record_Controller): Update occurrence of Related_Interface
1813 (Build_Offset_To_Top_Functions): Do nothing in case of VM.
1814 (Expand_N_Object_Declaration): Take into account VM_Target when handling
1815 class wide interface object declaration.
1816 (Expand_Previous_Access_Type): Do not create a duplicate master entity
1817 if the access type already has one.
1818 (Expand_N_Object_Declaration): Defend against attempt to validity check
1819 generic types. Noticed for -gnatVcf specified with previous errors.
1821 2007-12-13 Arnaud Charlet <charlet@adacore.com>
1823 * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
1824 Expand_Allocator_Expression): Take into account VM_Target
1826 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
1827 secondary stack when VM_Target /= No_VM
1829 2007-12-13 Javier Miranda <miranda@adacore.com>
1830 Ed Schonberg <schonberg@adacore.com>
1832 * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
1833 Is_Complation_Unit by Is_Library_Level_Entity in the code
1834 that decides if the static dispatch tables need to be built.
1835 (Wrap_Transient_Declaration): Do not generate a finalization call if
1836 this is a renaming declaration and the renamed object is a component
1837 of a controlled type.
1839 2007-12-13 Gary Dismukes <dismukes@adacore.com>
1841 * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
1842 In the case where the renamed subprogram is a dereference, call
1843 Force_Evaluation on the prefix.
1845 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
1846 Ed Schonberg <schonberg@adacore.com>
1848 * exp_ch9.adb (Expand_N_Asynchronous_Select,
1849 Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
1850 comment reformatting.
1851 (Set_Privals): Inherit aliased flag from formal. From code reading.
1852 (Build_Simple_Entry_Call): Out parameters of an access type are passed
1853 by copy and initialized from the actual. This includes entry parameters.
1854 (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
1855 and Ada 2005 models of requeue.
1856 (Null_Statements): Still connsider do-end block null if it contains
1857 Unreferenced and Warnings pragmas.
1858 (Expand_N_Accept_Statement): Do not optimize away null do end if
1859 dispatching policy is other than defaulted.
1860 (Expand_N_Timed_Entry_Call): When the triggering statement is a
1861 dispatching call, manually analyze the delay statement.
1862 (Find_Parameter_Type): Move subprogram to Sem_Util.
1864 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
1865 Javier Miranda <miranda@adacore.com>
1867 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
1868 _Disp_Requeue occupies dispatch table slot number 15. Move
1869 _Disp_Timed_Select to slot 16.
1870 (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
1871 generate the spec and body of _Disp_Reqeueue.
1872 (Make_DT): Build and initialize the second dispatch table.
1873 Handle initialization of RC_Offset when the parent
1874 is a private type with variable size components.
1875 (Make_Secondary_DT): Complete documentation. Add support to
1876 initialize the second dispatch table.
1877 (Make_Tags): Generate the tag of the second dispatch table.
1878 (Register_Primitive): Add support to register primitives in the
1879 second dispatch table.
1881 2007-12-13 Pascal Obry <obry@adacore.com>
1883 * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
1884 Windows. This signal is used by gnatmake to kill child processes for
1887 2007-12-13 Javier Miranda <miranda@adacore.com>
1889 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
1890 support for generic dispatching constructor calls in which we need to
1891 locate the tag of a secondary dispatch table associated with an
1892 interface type to properly dispatch the call.
1893 (Expand_N_Attribute_Reference [case Address],
1894 Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
1895 handling of VM targets.
1897 2007-12-13 Robert Dewar <dewar@adacore.com>
1898 Ed Schonberg <schonberg@adacore.com>
1900 * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
1903 * ug_words: Add entries for -gnatw.a -gnatw.A
1905 * sem_res.adb (Set_String_Literal_Subtype): If the context of the
1906 literal is a subtype with non-static constraints, use the base type of
1907 the context as the base of the string subtype, to prevent type
1909 (Resolve_Actuals): If the actual is an entity name, generate a
1910 reference before the actual is resolved and expanded, to prevent
1911 spurious warnings on formals of enclosing protected operations.
1912 (Analyze_Overloaded_Selected_Component): If type of prefix if
1913 class-wide, use visible components of base type.
1914 (Resolve_Selected_Component): Ditto.
1915 (Resolve_Short_Circuit): Detect case of pragma Assert argument
1916 evaluating to False, and issue warning message.
1918 * usage.adb: Add lines for -gnatw.a and -gnatw.A
1920 2007-12-13 Emmanuel Briot <briot@adacore.com>
1922 * g-calend.ads (No_Time): New constant, to represent an uninitialized
1925 * g-catiio.ads, g-catiio.adb (Value): Added support for more date
1927 (Month_Name_To_Number): New subprogram
1929 * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
1930 letter to upper-case.
1932 2007-12-13 Robert Dewar <dewar@adacore.com>
1933 Ed Schonberg <schonberg@adacore.com>
1935 * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
1937 * layout.adb (Resolve_Attribute, case 'Access): If designated type of
1938 context is a limited view, use non-limited view when available. If the
1939 non-limited view is an unconstrained array, this enforces consistency
1940 requirements in 3.10.2 (27).
1941 (Layout_Type): For an access type whose designated type is a limited
1942 view, examine its declaration to determine if it is an unconstrained
1943 array, and size the access type accordingly.
1944 (Layout_Type): Do not force 32-bits for convention c subprogram
1945 pointers in -gnatdm mode, only if real vms target.
1947 * sem_attr.adb (Analyze_Access_Attribute): Use new flag
1948 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
1949 (Analyze_Access_Attribute,Attribute_Address): Remove checks for
1950 violations of the No_Implicit_Dynamic_Code restriction.
1951 (Resolve_Attribute, case 'Access): If designated type of context is a
1952 limited view, use non-limited view when available. If the non-limited
1953 view is an unconstrained array, this enforces consistency requirements
1955 (Layout_Type): For an access type whose designated type is a limited
1956 view, examine its declaration to determine if it is an unconstrained
1957 array, and size the access type accordingly.
1959 2007-12-13 Vincent Celier <celier@adacore.com>
1961 * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
1962 object directory of main project does not exist.
1963 On VMS, correctly set then environment variable for the source
1966 2007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
1968 * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
1969 set to True this procedure will create the value of type REG_EXPAND_SZ.
1970 It was only possible to create REG_SZ values before.
1972 2007-12-13 Robert Dewar <dewar@adacore.com>
1974 * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
1975 g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
1976 namet-sp.adb, namet-sp.ads: New files.
1978 * g-speche.adb: Use generic routine in g-spchge
1980 * s-wchcnv.ads, s-wchcnv.adb:
1981 Minor code cleanup (make formal type consistent with spec)
1983 * namet.adb: Update comments.
1985 * par-endh.adb (Evaluate_End_Entry): Use new
1986 Namet.Sp.Is_Bad_Spelling_Of function
1988 * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
1990 * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
1991 ancestor is an access type initialized with a box, set its type
1992 explicitly, for use in subsequent expansion.
1993 (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
1996 2007-12-13 Robert Dewar <dewar@adacore.com>
1998 * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
2001 2007-12-13 Robert Dewar <dewar@adacore.com>
2003 * inline.adb (Back_End_Cannot_Inline): Use new flag
2004 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
2006 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
2007 Has_Pragma_Inline_Always instead.
2008 of obsolete function Is_Always_Inlined
2009 (Build_Body_To_Inline): Same change
2010 (Cannot_Inline): Same change
2011 Do not give warning on exception raise in No_Return function
2013 * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
2014 component has two inconsistent component clauses in the same record
2015 representation clause, favor the message that complains about
2016 duplication rather than inconsistency.
2018 (Record_Representation_Clause): Do not warn on missing component
2019 clauses for inherited components of a type extension.
2020 (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
2021 an overloadable item if it is a pragma that can apply to multiple
2022 overloadable entities (e.g. Inline) because a pragma cannot be on
2023 more than one chain at a time.
2024 (Validate_Unchecked_Conversion): Add code to warn on unchecked
2025 conversion where one of the operands is Ada.Calendar.Time.
2026 (Analyze_Attribute_Definition_Clause): Fix typo in error message.
2027 For now, ignore Component_Size clause on VM targets, as done for
2030 2007-12-13 Emmanuel Briot <briot@adacore.com>
2031 Vincent Celier <celier@adacore.com>
2033 * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
2035 (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
2037 (Hash): Move instantiation of System.HTable.Hash from spec to body
2038 (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
2039 systems, since we do not need to recompute the Name_Id for the canonical
2041 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
2042 as a parameter. This parameter is in fact always "ada" in all calls, and
2043 we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
2044 while loading a project with 40000 files
2046 * prj-attr.adb: Fix name of attribute Dependency_Driver
2047 Change the kind of indexing for attribute Root
2049 * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
2050 variables already declared, in case constructions.
2052 * prj-env.adb (Initialize): Reset Current_Source_Path_File and
2053 Current_Object_Path_File to No_Path.
2055 * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
2056 ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
2058 * prj-makr.adb: new parameter Current_Dir
2060 * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
2061 Ada sources when language is not Ada.
2062 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
2063 (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
2064 (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
2065 (Locate_Directory): Always resolve links when computing Canonical_Path
2066 (Look_For_Sources): Make sure that Name_Buffer contains the file name
2067 in Source_Files before checking for the presence of a directory
2069 Optimize calls to Name_Find when on case sensitive systems.
2070 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
2072 (Prj.Nmsc.Check): new parameter Current_Dir
2073 (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
2074 cannot be empty and the spec suffix cannot be the same as the body or
2076 (Get_Unit): When a file name can be of several unit kinds (spec, body or
2077 subunit), always consider the longest suffix.
2078 (Check_Configuration): Do not issue an error if there is no compiler
2079 for a language. Just issue a warning and ignore the sources for the
2081 (Check_Library_Attributes): Only check Library_Dir if Library_Name is
2083 (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
2084 (Unit_Exceptions): New hash table
2085 (Check_Naming_Schemes): Check if a file that could be a unit because of
2086 the naming scheme is not in fact a source because there is an exception
2088 (Look_For_Sources): Put the unit exceptions in hash table
2090 (Get_Unit_Exceptions): Give initial value No_Source to local variable
2091 Other_Part to avoid exception when code is compiled with validity
2093 (Get_Sources_From_File): Check that there is no directory information
2095 (Look_For_Sources): Check that there is no directory information in the
2096 list of file names in Source_Files.
2097 (Look_For_Sources): In multi-language mode, do not allow exception file
2098 names that are excluded.
2099 (Excluded_Sources_Htable): New hash table
2100 (Search_Directories.Check_File): New procedure to simplify
2102 (Search_Directories): Do not consider excluded sources
2103 (Look_For_Sources): Populate Excluded_Sources_Htable before calling
2105 (Get_Exceptions): Set component Lang_Kind of Source_Data
2106 (Get_Unit_Exceptions): Ditto
2107 (Search_Directories): Ditto
2109 * prj-pars.adb: new parameter Current_Dir
2111 * prj-part.ads, prj-part.adb:
2112 Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
2113 (Opt.Follow_Links_For_Dirs): New flag
2114 (Project_Path_Name_Of): Cache information returned by this routine as
2115 Locate_Regular_File is a costly routine. The code to output a log
2116 information and the effective call to Locate_Regular_File is now
2117 factorized into a routine (code clean-up).
2118 (Parse, Parse_Single_Project): new parameter Current_Dir
2119 When main project file cannot be found, indicate in the error
2120 message the project path that was used to do the search.
2122 * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
2123 (Prj.Proc.Process*): new parameter Current_Dir
2125 * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
2127 2007-12-13 Bob Duff <duff@adacore.com>
2129 * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
2130 procedure to be called from the back end to check the
2131 No_Implicit_Dynamic_Code restriction.
2133 2007-12-13 Arnaud Charlet <charlet@adacore.com>
2135 * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
2136 Fixes another case where RTE_Available_Call was ignored instead of being
2140 * rtsfind.ads: Add new entries.
2142 2007-12-13 Robert Dewar <dewar@adacore.com>
2144 * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
2145 g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
2147 * scn.adb: Implement BOM recognition
2149 2007-12-13 Thomas Quinot <quinot@adacore.com>
2150 Ed Schonberg <schonberg@adacore.com>
2152 * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
2153 subprogram body that acts as its own spec may not have a non-private
2154 WITH clause on a private sibling.
2155 (Build_Unit_Name): If the parent unit in the name in a with_clause on a
2156 child unit is a renaming, create an implicit with_clause on that
2157 parent, and not on the unit it renames, to prevent visibility errors
2158 in the current unit.
2160 2007-12-13 Ed Schonberg <schonberg@adacore.com>
2162 * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
2163 renaming declaration, use the Slocs of the formal parameters from the
2164 declaration of the formal subprogram when creating the formal parameter
2165 entities in the renaming declaration.
2166 (Analyze_Formal_Type_Declaration): Change the placement of the error
2167 message concerning illegal known discriminants. It is now posted on the
2168 type rather than on the first discriminant. This change ensures early
2170 (Freeze_Subprogram_Body): If the generic subprogram is nested within
2171 the package body that contains the instance, do not generate an
2172 out-of-place freeze node for the enclosing package.
2173 (Collect_Previous_Instantiations): Ignore internal instantiations
2174 generated for formal packages.
2175 (Validate_Derived_Type_Instance): Add a check that when a formal
2176 derived type is Known_To_Have_Preelab_Init then the actual type must
2177 have preelaborable initialization, and issue an error when this
2178 condition is violated.
2180 2007-12-13 Robert Dewar <dewar@adacore.com>
2182 * s-imenne.adb, s-imenne.ads: New files.
2184 * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
2185 s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
2186 s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
2187 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
2188 s-imgwch.ads: New calling sequence for Image routines to avoid sec
2191 2007-12-13 Javier Miranda <miranda@adacore.com>
2192 Ed Schonberg <schonberg@adacore.com>
2194 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
2195 generation of spurious error if parent is an interface type; caused
2196 because predefined primitive bodies will be generated later by
2198 (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
2200 (Derive_Subprograms): Handle derivations of predefined primitives
2201 after all the user-defined primitives to ensure that they are
2202 found in proper order in instantiations.
2203 (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
2204 of Related_Interface to Related_Type.
2205 (Record_Type_Declaration): Minor reordering of calls to decorate the
2206 Tag component because the entity must have set its Ekind attribute
2207 before setting its Is_Tag attribute.
2208 (Analyze_Subtype_Declaration): In the case of subtypes with
2209 Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
2211 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
2212 Ed Schonberg <schonberg@adacore.com>
2214 * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
2215 statement to the list of contexts where a selected component with a
2216 concurrent tagged type prefix should yield a primitive operation.
2217 (Find_Primitive_Operation): Handle case of class-wide types.
2218 (Analyze_Overloaded_Selected_Component): If type of prefix is
2219 class-wide, use visible components of base type.
2220 (Resolve_Selected_Component): Ditto.
2221 (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
2222 formal of a generic subprogram. find candidate interpretations by
2223 scanning the list of generic formal declarations.:
2224 (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
2225 type from a limited_with_clause, and the full view is available, use it
2226 for subsequent semantic checks.
2227 (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
2228 (Find_Primitive_Operation): New function.
2229 (Analyze_Overloaded_Selected_Component): insert explicit dereference
2230 only once if several interpretations of the prefix yield an access type.
2231 (Try_Object_Operation): Code and comment cleanup.
2232 (Analyze_Selected_Component): Reorder local variables. Minot comment and
2233 code reformatting. When the type of the prefix is tagged concurrent, a
2234 correct interpretation might be available in the primitive and
2235 class-wide operations of the type.
2237 2007-12-13 Robert Dewar <dewar@adacore.com>
2238 Ed Schonberg <schonberg@adacore.com>
2240 * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
2241 renaming entry as subprogram using rename-as-body if subprogram spec
2243 (Use_One_Type): The clause is legal on an access type whose designated
2244 type has a limited view.
2245 (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
2246 (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
2247 (Analyze_Renamed_Primitive_Operation): new procedure to determine the
2248 operation denoted by a selected component.
2249 (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
2250 it can be an expression, possibly overloaded, that returns a task or
2253 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
2254 Gary Dismukes <dismukes@adacore.com>
2256 * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
2257 requeue statement is dispatching. Do not emit an error when the name is
2258 not an entry and the context is a dispatching select. Add code to
2259 perform subtype conformance between the formals of the current entry
2260 and those of the target interface primitive.
2261 (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
2262 Timed_Entry_Call): Analyze the triggering statement as the first step of
2263 the processing. If this is a dispatching select, postpone the analysis
2264 of all select statements until the Expander transforms the select. This
2265 approach avoids generating duplicate identifiers after the Expander has
2266 replicated some of the select statements. In case the Expander is
2267 disabled, perform regular analysis.
2268 (Check_Triggering_Statement): New routine.
2269 (Analyze_Requeue): Exclude any interpretations that are not entries when
2270 checking overloaded names in a requeue. Also test type conformance for
2271 matching interpretations rather than requiring subtype conformance at
2272 that point to conform with the RM's resolution rule for requeues.
2274 2007-12-13 Ed Schonberg <schonberg@adacore.com>
2276 * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
2277 inherited operation is a defaulted tag-indeterminate call, and there is
2278 a statically tagged actual, use the static tag as a controlling actual
2279 for the defaulted actual.
2281 2007-12-13 Geert Bosch <bosch@adacore.com>
2283 * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
2284 context, so do not call Check_Non_Static_Context.
2286 2007-12-13 Hristian Kirtchev <kirtchev@adacore.com>
2288 * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
2289 whether formal E is an entity which may have parameters.
2291 2007-12-13 Bob Duff <duff@adacore.com>
2292 Javier Miranda <miranda@adacore.com>
2293 Robert Dewar <dewar@adacore.com>
2295 * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
2296 (Set_Convention): New procedure to set the Convention flag, and in
2297 addition make sure the Favor_Top_Level flag is kept in sync (all
2298 foreign-language conventions require Favor_Top_Level = True).
2299 (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
2301 (Collect_Interfaces_Info): Minor update to handle the two secondary
2302 dispatch tables. Update occurrence of Related_Interface to Related_Type.
2303 (Generate_Parent_Ref): Add parameter to specify entity to check
2304 (Is_Preelaborable_Expression): Allow the name of a discriminant to
2305 initialize a component of a type with preelaborable initialization.
2306 This includes the case of a discriminal used in such a context.
2307 (Is_Dependent_Component_Of_Mutable_Object): Take into account the
2308 latest Ada 2005 rules about renaming and 'Access of
2309 discriminant-dependent components.
2310 (Check_Nested_Access): Add handling when there are no enclosing
2311 subprograms (e.g. case of a package body).
2312 (Find_Parameter_Type): Factor routine from several other compiler files.
2313 Remove routine from Find_Overridden_Synchronized_Primitive.
2315 2007-12-13 Thomas Quinot <quinot@adacore.com>
2317 * sinput.adb (Get_Source_File_Index): Add assertion to guard against
2318 an invalid access to an uninitialized slot in the
2319 Source_File_Index_Table.
2321 2007-12-13 Thomas Quinot <quinot@adacore.com>
2323 * sinput-l.adb (Load_File): Disable style checks when preprocessing.
2325 2007-12-13 Bob Duff <duff@adacore.com>
2327 * s-soflin.ads: Apply new pragma Favor_Top_Level to all
2328 access-to-subprogram types in this package.
2330 2007-12-13 Olivier Hainque <hainque@adacore.com>
2332 * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
2333 with Stack_Grows_Down in System.Parameters. Rename Array_Address into
2334 Stack_Overlay_Address and document that we are using an internal
2336 (Byte_Size, Unsigned_32_Size): Remove, now useless.
2337 (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
2338 consistently throughout the various implementation pieces.
2340 * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
2341 overlay we are using to fill the stack area with patterns.
2342 (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
2343 (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
2344 (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
2346 2007-12-13 Robert Dewar <dewar@adacore.com>
2348 * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
2350 2007-12-13 Arnaud Charlet <charlet@adacore.com>
2353 (Create_Task): Take into account tasks created by foreign threads.
2354 Code clean up: use constants instead of hard coded values.
2356 2007-12-13 Robert Dewar <dewar@adacore.com>
2358 * styleg.adb (Check_Comment): More liberal rules for comment placement
2360 2007-12-13 Olivier Hainque <hainque@adacore.com>
2362 * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
2363 of Procedure Value instead of Frame Pointer as the invocation
2364 identifier associated with the instruction pointer in each traceback
2367 * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
2368 TB_Entry_For): Revert back to use of Procedure Value instead of Frame
2369 Pointer as the invocation identifier passed to tbk$symbolize.
2371 * s-traent-vms.ads, s-traent-vms.adb
2372 (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
2373 Procedure Value instead of Frame Pointer as the invocation identifier
2374 passed to tbk$symbolize.
2376 2007-12-13 Robert Dewar <dewar@adacore.com>
2378 * tbuild.ads, tbuild.adb:
2379 Fix location of flag for unrecognized pragma message
2381 2007-12-13 Robert Dewar <dewar@adacore.com>
2383 * treepr.ads, treepr.adb: (pl): implement use of positive value
2386 2007-12-13 Robert Dewar <dewar@adacore.com>
2388 * xeinfo.adb: Remove warnings
2389 * xnmake.adb: Remove warnings
2390 * xsinfo.adb: Remove warnings
2391 * xtreeprs.adb: Remove warnings
2392 * xsnames.adb: Remove warnings
2394 * a-ngcoar.adb: Fix typo.
2395 * s-interr.adb: Minor reformatting
2396 * env.c: Minor reformatting.
2397 * g-bytswa.adb: Minor reformatting.
2398 * g-rannum.ads: Minor documentation improvements
2399 * s-tasinf-mingw.adb: Minor header fix
2400 * a-clrefi.adb: Minor reformatting
2401 * g-sttsne.ads: Minor documentation improvement
2402 * g-sttsne-locking.ads: Minor documentation improvement
2403 * g-soliop-solaris.ads: Minor documentation improvement
2404 * g-soliop-mingw.ads: Minor documentation improvement
2405 * g-soliop.ads: Minor documentation improvement
2406 * exp_aggr.ads: Minor reformatting
2407 * debug.adb: Add documentation for the gprbuild debug flags
2408 * exp_ch2.adb: Use Nkind_In to simplify code throughout
2409 * exp_pakd.adb: Minor reformatting
2411 * g-altive.ads, g-alleve.adb: Remove assertions.
2412 Add comment about minor differences between targets regarding
2413 floating-point operations.
2415 * g-thread.adb: Remove pragma unreferenced.
2416 * lib.ads: Minor reformatting
2417 * par-ch9.adb: Minor reformatting of error messages
2418 * sem_case.adb: Minor reformatting
2419 * s-fileio.adb: Minor reformattinng
2420 * s-vmexta.ads: Minor typo
2422 Take into account 'Success' value as per new GNAT warning.
2424 2007-12-13 Vincent Celier <celier@adacore.com>
2426 * a-direct.adb (Create_Path): Always take '/' as a directory separator,
2429 2007-12-13 Robert Dewar <dewar@adacore.com>
2430 Bob Duff <duff@adacore.com>
2432 * gnat_ugn.texi: Dcoument new rules for style check comment alignment
2433 Document that suffixes may be terminations of each others
2434 Add doc for -gnatw.a and -gnatw.A
2435 Document gnatbind -Wx switch
2436 Document BOM recognition
2437 Document pragma Implemented_By_Entry.
2440 * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
2441 Add doc for pragma Unreferenced suppressing no entities referenced msg
2442 Add documentation of GNAT.Directory_Operations.Iteration
2443 Add documentation of GNAT.Random_Numbers
2444 Add documentation for pragma Shared.
2445 Correct documentation for Bit_Order
2446 Add documentation for the Pool_Address attribute.
2447 Fix and improve documentation of pragma machine_attribute.
2448 New pragma Fast_Math
2449 Document BOM recognition
2451 * vms_data.ads: Add entries for -gnatw.a -gnatw.A
2452 Add /Wide_Character_Encoding for binder
2453 Add qualifier for the new gnatpp option --no-separate-loop-then
2455 2007-12-13 Matthew Heaney <heaney@adacore.com>
2457 * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
2458 which generic formal operations are called for each operation.
2460 2007-12-13 Olivier Hainque <hainque@adacore.com>
2462 * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
2463 (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
2465 2007-12-13 Emmanuel Briot <briot@adacore.com>
2467 * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
2468 Reference_Dir unless we actually need it.
2470 2007-12-13 Vasiliy Fofanov <fofanov@adacore.com>
2471 Tristan Gingold <gingold@adacore.com>
2473 * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
2476 a-calend-vms.adb: Remove pragma warning off and add pragma
2479 2007-12-13 Robert Dewar <dewar@adacore.com>
2481 * impunit.adb: Add entries for missing units
2483 * Makefile.rtl: Add new run-time units.
2485 * Make-lang.in: Update dependencies.
2487 2007-12-13 Bob Duff <duff@adacore.com>
2489 * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
2490 types, set Can_Use_Internal_Rep appropriately, based on
2491 Always_Compatible_Rep_On_Target.
2493 2007-12-13 Gary Dismukes <dismukes@adacore.com>
2494 Arnaud Charlet <charlet@adacore.com>
2496 * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
2497 it to the front end and setting the aamp_target environment variable
2498 to the switch's argument to ensure that gnaampbind and gnaamplink will
2499 take the specified library into account.
2500 (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
2501 target, since the CIL compiler supports an "object" file (.il files).
2503 2007-12-13 Vincent Celier <celier@adacore.com>
2505 * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
2506 (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
2508 2007-12-13 Geert Bosch <bosch@adacore.com>
2510 * s-parame-vxworks.adb:
2511 Update comments to reflect usage of this package by Nucleus.
2513 2007-12-13 Arnaud Charlet <charlet@adacore.com>
2515 * i-vxwork.ads: Kill new warning on Convention C, since changing the
2516 spec would break code.
2518 * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
2520 * system-vxworks-alpha.ads: Removed.
2522 2007-12-10 Eric Botcazou <ebotcazou@adacore.com>
2524 * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
2526 2007-12-09 Samuel Tardieu <sam@rfc1149.net>
2529 * sem_ch3.adb (Designates_T): New function.
2530 (Mentions_T): Factor reusable part of the logic into Designates_T.
2531 Consider non-access parameters and access and non-access result.
2532 (Check_Anonymous_Access_Components): Set ekind of anonymous access to
2533 E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
2535 * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
2537 2007-12-07 Ludovic Brenta <ludovic@ludovic-brenta.org>
2540 * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
2541 the new implementation of target-specific calls.
2543 2007-12-07 Olivier Hainque <hainque@adacore.com>
2545 * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
2546 the designated full view, only follow a second level Full_View link
2547 for Non_Limited_Views of from_limited_with references.
2549 2007-12-07 Samuel Tardieu <sam@rfc1149.net>
2552 * sem_ch6.adb (Process_Formals): Prevent an access type formal
2553 to be initialized with an access to constant object.
2555 * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
2556 when an access to constant is used to initialize an access
2560 * a-direct.adb (Compose): Containing_Directory can be an empty string.
2562 2007-12-07 Olivier Hainque <hainque@adacore.com>
2565 * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
2566 the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
2567 this is from an alignment clause on the GNAT entity.
2568 * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
2569 to distinguish the case where we set it from the type's alignment.
2570 When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
2571 whether this alignment was set from an explicit alignment clause.
2573 2007-12-06 Eric Botcazou <ebotcazou@adacore.com>
2575 * decl.c (make_packable_type): Revert last change.
2576 (gnat_to_gnu_field): Avoid setting size and position multiple times.
2577 * utils.c (finish_record_type): Retrieve the real name of the type.
2579 2007-12-05 Eric Botcazou <ebotcazou@adacore.com>
2581 * trans.c (lvalue_required_p): Take base node directly instead
2582 of its parent. Rename second parameter to 'gnu_type'.
2583 <N_Indexed_Component>: Return 0 if the node isn't the prefix.
2584 <N_Slice>: Likewise.
2585 (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
2586 Adjust calls to lvalue_required_p.
2588 2007-12-05 Samuel Tardieu <sam@rfc1149.net>
2591 * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
2592 parameters of an entry call.
2594 2007-12-03 Robert Dewar <dewar@adacore.com>
2595 Samuel Tardieu <sam@rfc1149.net>
2598 * sem_util.adb (Safe_To_Capture_Value): Do not capture values
2599 of variables declared in a library-level package.
2601 2007-12-02 Samuel Tardieu <sam@rfc1149.net>
2603 * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
2604 of Empty_String'Unchecked_Access.
2606 * Makefile.in: Add support for sh4-linux.
2608 * system-linux-sh4.ads: New file.
2610 2007-12-01 Kostik Belousov <kostikbel@ukr.net>
2613 * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
2614 and its argument must not be free()ed.
2616 2007-11-29 Eric Botcazou <ebotcazou@adacore.com>
2618 * decl.c (make_packable_type): Retrieve the real name of the type.
2619 (maybe_pad_type): Simplify similar code.
2621 2007-11-28 Samuel Tardieu <sam@rfc1149.net>
2624 * par-ch3.adb (P_Variant_Part): Signal an error when anything other
2625 than an identifier is used after "case" in a variant_part.
2628 * par-ch4.adb (Is_Parameterless_Attribute): New map.
2629 (P_Name, Scan_Apostrophe block): Parse left parenthesis following
2630 attribute name or not depending on the new map.
2632 * sem-attr.adb (Analyze_Attribute): Parameterless attributes
2633 returning a string or a type will not be called with improper
2636 * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
2638 * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
2641 * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
2642 Signal an error when attribute argument is a fixed-point value of
2646 * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
2647 a derived ordinary fixed point type.
2649 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
2650 RM_Size when a Small clause is found.
2652 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
2655 * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
2656 Pass 'false' for the new allocate_struct_function parameter.
2657 * utils.c (build_function_stub): Likewise.
2659 2007-11-25 Richard Guenther <rguenther@suse.de>
2661 * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
2662 (gnat_poplevel): Likewise.
2664 2007-11-25 Eric Botcazou <ebotcazou@adacore.com>
2666 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
2667 strict alignment, no alignment clause and a known static size, cap
2668 the type alignment to the greatest power of 2 factor of the size.
2669 (gnat_to_gnu_field): If the field has a component clause, is aliased
2670 or of a type with strict alignment, require that its size be equal to
2672 (validate_size): Use the type size as the minimum size for a type with
2675 2007-11-23 Samuel Tardieu <sam@rfc1149.net>
2677 * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
2678 s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
2679 s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
2680 Use 'Access instead of 'Unchecked_Access in second and third
2681 arguments of pthread_sigmask.
2683 2007-11-23 Eric Botcazou <ebotcazou@adacore.com>
2685 * decl.c (ceil_alignment): New function.
2686 (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
2687 (make_packable_type): Likewise.
2689 2007-11-22 Olivier Hainque <hainque@adacore.com>
2691 * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
2692 to fit in 80 columns.
2694 2007-11-21 Aurelien Jarno <aurelien@aurel32.net>
2696 * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
2697 * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
2699 2007-11-19 Eric Botcazou <ebotcazou@adacore.com>
2702 * misc.c (gnat_adjust_rli): Delete.
2703 (gnat_init): Do not initialize the translation code here.
2704 Do not call set_lang_adjust_rli.
2705 * trans.c (init_code_table): Make static.
2706 (gnat_init_stmt_group): Delete.
2707 (gigi): Initialize the translation code entirely here.
2708 Emit debug info for the common types here instead of...
2709 * utils.c (gnat_init_decl_processing): ...here.
2710 * gigi.h (init_code_table): Delete.
2711 (gnat_init_stmt_group): Likewise.
2713 2007-11-16 Olivier Hainque <hainque@adacore.com>
2715 * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
2716 retrieving an allocator return value from a super-aligned address from
2718 * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
2719 expect a super-aligned address for a fat or thin pointer.
2721 2007-11-14 Eric Botcazou <ebotcazou@adacore.com>
2723 * trans.c (call_to_gnu): Always set the source location on the call
2724 expression. If the function returns-by-target, also set it on the
2727 2007-11-14 Samuel Tardieu <sam@rfc1149.net>
2729 * adaint.c, init.c, initialize.c, link.c: Remove system-specific
2730 sections of non-supported Interix target.
2732 * s-osinte-interix.ads: Removed.
2734 * i-cstrin.ads (chars_ptr): Make it a C convention type.
2736 2007-11-13 Samuel Tardieu <sam@rfc1149.net>
2738 * a-tasatt.adb: Add a comment at the beginning of the package
2739 explaining why in general 'Unchecked_Access must be used instead
2742 * sem_prag.adb (Process_Convention): Move the test for the
2743 entity on which the Convention pragma applies down to also
2744 forbid pragma Convention on enumeration literals reached
2747 2007-11-10 Samuel Tardieu <sam@rfc1149.net>
2749 * a-tasatt.adb: Revert previous change for this file as it will
2750 generate an error when this package is instantiated from a
2753 2007-11-07 Samuel Tardieu <sam@rfc1149.net>
2755 * a-tasatt.adb: Type Wrapper should be declared in comment instead
2756 of already declared type Node_Access.
2757 Use 'Access instead of 'Unchecked_Access when applicable. Local
2758 lifetime is the one of the package.
2759 (Set_Value): W is allocated on the heap.
2761 * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
2763 (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
2765 (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
2768 * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
2770 (elaboration code): Timer_Queue lifetime is the one of the
2773 * tracebak.c (i386 alternative): Remove useless comparaison
2774 which is always false; LOWEST_ADDRESS is 0 and is never greater
2775 than an unsigned integer.
2777 * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
2778 embedded check for "Ada_Version >= Ada_05".
2780 2007-11-07 Olivier Hainque <hainque@adacore.com>
2782 * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
2783 craft and expand comment.
2785 2007-11-01 Eric Botcazou <ebotcazou@adacore.com>
2787 * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
2789 2007-10-23 Eric Botcazou <ebotcazou@adacore.com>
2791 * misc.c (gnat_handle_option): Replace call to abort with
2792 call to gcc_unreachable.
2793 (gnat_init): Likewise.
2794 (gnat_expand_expr): Likewise.
2795 (fp_prec_to_size): Likewise.
2796 (fp_size_to_prec): Likewise.
2798 2007-10-23 Richard Guenther <rguenther@suse.de>
2801 * tracebak.c: #undef abort after including system.h.
2803 2007-10-20 Danny Smith <dannysmith@users.sourceforge.net>
2805 * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
2806 s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
2808 (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
2810 2007-10-15 Eric Botcazou <ebotcazou@adacore.com>
2812 * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
2813 Set the protection status of the guard page based on the value of On.
2815 * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
2817 * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
2818 (Exit_Task): Pass False to Hide_Yellow_Zone.
2820 2007-10-15 Robert Dewar <dewar@adacore.com>
2822 * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
2823 s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
2824 a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
2825 checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
2826 freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
2827 gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
2828 mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
2829 prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
2830 sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
2831 s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
2832 uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
2833 a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
2834 a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
2835 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
2836 a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
2837 a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
2839 Add Unreferenced and Warnings (Off) pragmas for cases of
2840 variables modified calls where they are IN OUT or OUT parameters and
2841 the resulting values are not subsequently referenced. In a few cases,
2842 we also remove redundant code found by the new warnings.
2844 * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
2845 sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
2846 sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
2847 sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
2848 warning controlled by -gnatw.o that warns on cases of out parameter
2849 values being ignored.
2851 2007-10-15 Geert Bosch <bosch@adacore.com>
2853 * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
2855 * expect.c: Initial port to arm-mentor-nucleus.
2856 Use kill for __gnat_kill() on VMS.
2858 2007-10-15 Emmanuel Briot <briot@adacore.com>
2860 * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
2862 (Xref_Record): Change type for Line, since in the case of a reference to
2863 a predefined entity (as happens for array index types), the line is set
2865 Add support for parsing multiple array index types info, or
2866 multiple inherited interfaces info. This information cannot be stored
2867 in Xref_Entity_Record, which only supports a single instance of Tref_*,
2868 and is therefore stored in the list of references instead. It has a
2869 special treatement later on in tools that use this information.
2871 2007-10-15 Tristan Gingold <gingold@adacore.com>
2873 * debug.adb: Document use of -gnatd.a and -gnatd.I
2875 * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
2877 2007-10-15 Javier Miranda <miranda@adacore.com>
2879 * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
2880 Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
2881 care of access to class-wide interface types plus removal of bizarre
2882 conversion of tagged object to access type (reported by Gary
2883 Dismukes). After this patch there is no need to perform any
2884 additional management on these nodes in Expand_Interface_Actuals.
2886 * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
2887 that handles use of 'Access and 'Unchecked_Access applied to
2888 actuals covering interface types. Such code is now
2889 centralized in Expand_N_Attribute_Reference.
2891 2007-10-15 Ed Schonberg <schonberg@adacore.com>
2893 * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
2894 of tagged types whose ultimate ancestor is a CPP type.
2895 (Freeze_Array_Type): For a packed array type, generate an initialization
2896 procedure if the type is public, to handle properly a client that
2897 specifies Normalize_Scalars.
2899 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
2901 * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
2902 inside a generic body, retrieve the full view of the entry family
2903 discrete subtype if available.
2905 2007-10-15 Thomas Quinot <quinot@adacore.com>
2907 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
2908 attempt to generate stubs for hidden primitive operations.
2910 2007-10-15 Vincent Celier <celier@adacore.com>
2912 * mlib-tgt-specific.adb (Support_For_Libraries): New function,
2913 returning None, used when there is no platform specific body for
2916 2007-10-15 Bob Duff <duff@adacore.com>
2918 * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
2919 (passing'Unrestricted_Access of nested subprograms to Sort) with use of
2920 the generic Heap_Sort_G, in order to avoid trampolines.
2922 2007-10-15 Vasiliy Fofanov <fofanov@adacore.com>
2923 Jose Ruiz <ruiz@adacore.com>
2925 * vx_stack_info.c: New file.
2927 * i-forbla-unimplemented.ads: New file.
2929 * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
2930 for unsupported configurations; use it on VMS targets instead of the
2932 (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
2933 vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
2934 used by VxWorks targets to have access to task-specific data and be
2935 able to extract the stack boundaries for stack checking.
2936 Use system-vms-ia64.ads on ivms.
2938 * Make-lang.in: Update dependencies.
2940 * sysdep.c (__gnat_get_stack_info): Move to a standalone file
2943 2007-10-15 Vincent Celier <celier@adacore.com>
2945 * snames.adb, snames.ads: Add new standard name runtime_library_dir
2947 * prj.ads (Language_Config): Add new component Runtime_Library_Dir
2949 * prj-attr.adb: Add project level attribute Runtime_Library_Dir
2951 * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
2952 the source is unknown.
2954 * prj-ext.adb: Spelling error fix
2956 * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
2957 95 reserved word in its name.
2958 (Process_Project_Level_Array_Attributes): Process new attribute
2959 Runtime_Library_Dir.
2961 * prj-part.adb (Parse_Single_Project): Do not check the name of the
2962 config project against the user project names.
2964 * prj-proc.adb (Expression): In multi-language mode, indexes that do
2965 not include a dot are always case insensitive.
2966 (Process_Declarative_Items): Ditto
2967 (Process_Project_Tree_Phase_1): Set Success to False in case an error is
2970 * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
2971 True, compare both indexes in lower case.
2973 2007-10-15 Robert Dewar <dewar@adacore.com>
2975 * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
2977 2007-10-15 Gary Dismukes <dismukes@adacore.com>
2979 * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
2980 association for an access component, add an association with null as
2981 the expression. Remove testing for array subtypes and the setting in
2982 that case of Ctyp to the array component type, which prevented proper
2983 inclusion of an association for null-initialized arrays. Collapse
2984 condition that tests for array subtypes into just a test of
2985 Is_Partially_Initialized_Type (which already covers arrays anyway).
2987 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
2989 * sem_ch12.adb: Minor code reformatting.
2990 (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
2991 find the parent package which may have been hidden by local
2994 2007-10-15 Gary Dismukes <dismukes@adacore.com>
2996 * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
2997 flag of derived concurrent types, taking into account the flag setting
2998 on the parent subtype and any new set of discriminants.
3000 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
3002 * sem_ch4.adb: Minor code and comment reformatting.
3003 (Analyze_Allocator): When the designated type of an unconstrained
3004 allocator is a record with unknown discriminants or an array with
3005 unknown range bounds, emit a detailed error message depending on the
3006 compilation mode and whether the designated type is limited.
3008 2007-10-15 Tristan Gingold <gingold@adacore.com>
3010 * system-vms-ia64.ads: New file.
3012 * system-vms_64.ads: Minor comment fix.
3014 2007-10-15 Ed Schonberg <schonberg@adacore.com>
3016 * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
3017 body generated for a function with a controlling result that is a null
3018 extension, discard the generated body in favor of the current explicit
3021 2007-10-15 Ed Schonberg <schonberg@adacore.com>
3023 * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
3024 examining its original form, to handle properly operator calls that
3025 have been rewritten.
3027 2007-10-15 Olivier Hainque <hainque@adacore.com>
3029 * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
3030 instead of a procedure value in each traceback entry.
3032 * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
3033 instead of procedure value to TBK$SYMBOLIZE.
3035 * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
3037 (TB_Entry_For): Account for the PV/FP renaming.
3039 * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
3041 (Null_TB_Entry): Account for change of component name.
3042 (PV_For): Rename as FP_For.
3044 2007-10-15 Tristan Gingold <gingold@adacore.com>
3046 * trans.c (gnat_to_gnu): Remove the padding structure more often.
3047 This optimize assignment to over-aligned record.
3049 2007-10-15 Emmanuel Briot <briot@adacore.com>
3051 * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
3054 * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
3055 type, for dispatching calls.
3057 2007-10-15 Vincent Celier <celier@adacore.com>
3058 Robert Dewar <dewar@adacore.com>
3060 * gnat_ugn.texi: Add documentation for switches --version and --help
3061 for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
3062 gnatxref, gnatfind, gnatls, and gnatclean.
3064 Mention attribute Excluded_Source_Dirs
3065 Replace obsolescent attribute Locally_Removed_Files with attribute
3066 Excluded_Source_Files.
3067 Improve documentation of -u (gnatbind)
3068 Document how to do reliable stack checking for the environmental task
3071 * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
3072 Document attribute Excluded_Source_Files and indicate that attribute
3073 Locally_Removed_Files is obsolescent.
3075 2007-10-15 Thomas Quinot <quinot@adacore.com>
3077 * g-soccon-vms.ads: Fix value of MSG_WAITALL.
3080 Update documentation to note that OpenVMS 8.3 or later must be used
3081 to generate g-soccon-vms.ads.
3083 * atree.adb: Add ??? comment
3085 * exp_util.adb: Minor reformatting.
3086 Add ??? comment in Kill_Dead_Code.
3088 2007-10-15 Robert Dewar <dewar@adacore.com>
3090 * errout.ads: Comment clarification
3092 * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
3093 (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
3095 * lib.ads: Comment update
3097 * init.c: Minor reformatting.
3099 * sem_attr.adb: Minor formatting
3101 * osint-b.ads: Minor reformatting
3103 * sem_ch9.adb: Implement -gnatd.I switch
3105 * g-comlin.adb: (Start): Fix handling of empty command line.
3107 * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
3108 even when -rules follows the -cargs section.
3110 2007-10-08 Ollie Wild <aaw@google.com>
3112 * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
3114 (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
3116 (gnat_eh_runtime_type): Removed.
3117 (gnat_return_tree): New function.
3119 2007-10-08 Ben Elliston <bje@au.ibm.com>
3123 2007-08-31 Ben Elliston <bje@au.ibm.com>
3125 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
3126 when compiling for powerpc64-*-linux.
3127 * system-linux-ppc64.ads: New file.
3129 2007-09-27 Eric Botcazou <ebotcazou@adacore.com>
3131 Mapped location support
3132 * back_end.adb (Call_Back_End): Pass information about source
3133 files instead of units to gigi.
3134 * gigi.h (struct File_Info_Type): New.
3135 (gigi): Rename and change type of number_units parameter, change
3136 type of file_info_ptr parameter.
3137 * trans.c (number_files): New global variable.
3138 (gigi): Rename and change type of number_units parameter, change
3139 type of file_info_ptr parameter.
3140 If mapped location support is enabled, create the isomorphic mapping
3141 between source files and line maps.
3142 (Sloc_to_locus): If mapped location support is enabled, translate
3143 source location into mapped location.
3144 (annotate_with_node): Rename into set_expr_location_from_node.
3145 Call set_expr_location instead of annotate_with_locus.
3146 (Pragma_to_gnu): Adjust for above change.
3147 (Loop_Statement_to_gnu): Likewise.
3148 (call_to_gnu): Likewise.
3149 (Handled_Sequence_Of_Statements_to_gnu): Likewise.
3150 (gnat_to_gnu): Likewise.
3151 (add_stmt_with_node): Likewise.
3152 (add_cleanup): Likewise.
3153 * utils.c (gnat_init_decl_processing): Do not set input_line.
3155 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
3157 * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
3158 (Applicable_Use): Emit a warning when a package tries to use itself.
3159 (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
3160 is already in use or the package where it is declared is in use or is
3161 declared in the current package.
3162 (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
3164 * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
3165 s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
3166 s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
3168 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
3170 * a-calend-vms.adb, a-calend.adb:
3171 Add a section on leap seconds control along with two entities used to
3172 enable and disable leap seconds support. The array Leap_Second_Times is
3173 now constant and contains hard time values pre-generated. Remove
3174 all elaboration code used to populate the table of leap seconds.
3177 Add entity Leap_Seconds_Support to the list of global run-time variables
3178 along with a comment on its usage and values.
3179 (Gen_Adainit_Ada): Add code to generate the declaration and import of
3180 Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
3181 or one (enabled) depending on the presence of binder switch "-y".
3182 (Gen_Adainit_C): Add code to generate the declaration of external int
3183 __gl_leap_seconds_support. Set is value to zero (disabled) or one
3184 (enabled) depending on the presence of binder switch "-y".
3186 * init.c: Add __gl_leap_seconds_support to the list of global values
3187 computed by the binder.
3189 2007-09-26 Jerome Guitton <guitton@adacore.com>
3191 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
3192 s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
3193 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
3194 s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
3196 * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
3198 * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
3199 function which can be called by the debugger to interrupt the tasks of
3200 an Ada application asynchronously, as needed on VxWorks.
3201 (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
3203 * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
3204 renamed from Stop_All_Tasks. Update comments.
3205 (Stop_All_tasks): New function declaration.
3207 2007-09-26 Olivier Hainque <hainque@adacore.com>
3209 * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
3210 #include <utime.h> and #define GCC_RESOURCE_H before
3211 #include <sys/wait.h>.
3212 Add more protections in __gnat_translate_vms.
3214 * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
3215 #include <sys/wait.h>.
3217 2007-09-26 Thomas Quinot <quinot@adacore.com>
3218 Sergey Rybin <rybin@adacore.com>
3220 * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
3222 * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
3225 * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
3227 * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
3230 * sem_dist.ads: Minor comment fix
3232 * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
3234 2007-09-26 Javier Miranda <miranda@adacore.com>
3235 Eric Botcazou <ebotcazou@adacore.com>
3238 (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
3239 indirection added to the HT_Link component of the TSD. This is required
3240 to statically allocate the TSD.
3243 Minor reordering of the declarations in the private part. Required to
3244 add a level of indirection to the contents of the TSD component HT_Link.
3245 This is required to statically allocate the TSD.
3247 * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
3248 Is_Statically_Allocated set from constant objects.
3249 Do not make exported constants created by the compiler volatile.
3250 (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
3253 * trans.c (Identifier_to_gnu): For constants, unshare initializers
3254 before returning them.
3256 * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
3257 public part of the package.
3258 (Make_DT): Move HT_Link component out of the TSD record. For this
3259 purpose Make_DT now declares a separate object that stores the
3260 HT_Link value, and initializes the TSD component with the address
3261 of this new object. The addition of this level of indirection is
3262 required to statically allocate the TSD because the TSD cannot
3263 have variable components.
3264 (Expand_Interface_Conversion): Improve the expanded code.
3265 (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
3267 * sem_disp.adb (Check_Dispatching_Operation): In case of a body
3268 declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
3269 if we are building static dispatch tables then we must not generate
3270 extra code to register the primitive because the dispatch table will
3271 be built at the end of the library package; otherwise we notify that
3272 we cannot build the static dispatch table.
3274 2007-09-26 Robert Dewar <dewar@adacore.com>
3276 * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
3279 * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
3280 (Analyze_Record_Representation_Clause): Suppress junk warning for
3281 missing component clause.
3282 (Analyze_Attribute_Definition_Clause, case Address): Apply the special
3283 tests for controlled type overlay to composites with controlled
3285 (Analyze_Record_Representation_Clause): Add reference for component name
3287 2007-09-26 Javier Miranda <miranda@adacore.com>
3288 Gary Dismukes <dismukes@adacore.com>
3290 * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
3291 for thunks associated with interface types.
3293 * einfo.ads: Improve documentatation of Is_Internal
3294 (Is_Thunk): New attribute applicable to subprograms. True for thunks
3295 associated with interface types.
3296 Extensive comment fixes regarding flags that appear in all entities. The
3297 documentation is now consistent for all such flags (there were a number
3298 of errors in the documentation in this regard).
3300 * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
3302 * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
3303 of these procedures are passed a function call that already has
3304 build-in-place actuals (testing new flag
3305 Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
3306 the case where processing continues.
3307 (Expand_Call): If the call is generated from a thunk body then we
3308 propagate the extra actuals associated with the accessibility
3309 level of the access type actuals.
3311 * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
3312 of each extra formal of a protected operation to reference the
3313 corresponding extra formal of the subprogram denoted by the
3314 operation's Protected_Body_Subprogram.
3316 * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
3317 N_Function_Call nodes.
3319 2007-09-26 Robert Dewar <dewar@adacore.com>
3321 * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
3323 * debug.adb: Add d.s flag.
3325 2007-09-26 Gary Dismukes <dismukes@adacore.com>
3327 * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
3328 debug variable so that it won't be initialized when pragma
3329 Initialize_Scalars is in effect.
3331 2007-09-26 Gary Dismukes <dismukes@adacore.com>
3333 * freeze.adb (Freeze_Entity): Remove check for preelaborable
3334 initialization of a full view. This is moved to
3335 Analyze_Package_Specification.
3337 * sem_ch7.adb (Analyze_Package_Specification): Add check for
3338 preelaborable initialization of a full view in entity loop.
3339 (Uninstall_Declarations): If entity is a use-visible compilation unit,
3340 its child units are use-visible only if they are visible child units.
3342 * sem_util.adb (Is_Preelaborable_Expression): New function to determine
3343 whether an expression can be used within a type declaration that
3344 requires preelaborable init.
3345 (Check_Components): Replace inline code that does partial checking for
3346 preelaborable default expressions with call to
3347 Is_Preelaborable_Expression.
3348 (Has_Preelaborable_Initialization): In the case of a generic actual
3349 subtype, (that is, Is_Generic_Actual is True), return the result of
3350 applying Has_Preelaborable_Initialization to the generic actual's base
3353 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
3355 * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
3356 call to Jan_1_Day _Of_Week to optimize its performance.
3357 (Is_Leap): Move the routine to the scope of Week_In_Year.
3358 (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
3359 weekday on which January 1 falls of Year - 1 and Year + 1. This function
3360 avoids calling Time_Of and Split, thus making it more efficent.
3361 (Week_In_Year): Reimplemented in oder to follow ISO 8601.
3363 * g-calend.ads (Week_In_Year): Change comment to reflect new
3366 2007-09-26 Emmanuel Briot <briot@adacore.com>
3368 * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
3369 Command_Line): New types
3370 (Define_Alias, Define_Prefix, Free): New subprograms. These provide
3371 support for defining how switches can be grouped on a command line (as
3372 is the case for -gnatw... for GNAT), and how simple switches can be
3373 used as aliases for more complex switches (-gnatwa is same as
3375 (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
3376 (Start, Current_*): New subprograms
3377 Added support for parsing an array of strings in addition to the real
3379 (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
3380 be moved from the body to the private part of the spec.
3381 (*): All subprograms now have an extra parameter with default value to
3382 specify which parser should be used. For backward compatibility, it
3383 defaults to parsing the command line of the application. They were also
3384 modified to properly handle cases where each of the argument does not
3385 start at index 1 (which is always true for Ada.Command_Line, but not
3386 when processing any Argument_List).
3387 (Free): New subprogram
3388 (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
3389 Argument): New subprograms
3390 (Switch_Parameter_Type): New enum, which clarifies the code. The extra
3391 special characters like ':', '=',... are now handled in a single place,
3392 which makes the code more extensible eventually.
3393 (Getopt, Full_Switch): When the switch was returned as part of the
3394 special character '*', make sure it is prepended by the switch character
3395 ('-' in general), so that the application knows whether "foo" or "-foo"
3396 was specified on the command line.
3398 2007-09-26 Florian Villoing <villoing@adacore.com>
3400 * g-dirope.adb (Remove_Dir): In case we are removing directories
3401 recursively, make sure that if an exception is raised during the
3402 processing, the current working directory is reset to its initial
3403 value before propagating the exception.
3405 2007-09-26 Vincent Celier <celier@adacore.com>
3407 * gnatbind.adb: If there are several ALI files specified and there is
3408 a main program to bind, the first ALI is expected to contain the main
3409 subprogram and the names of the binder generated files will be derived
3410 from the first ALI file name.
3411 (Gnatbind): Fix insertion character in invocation of Error_Msg
3413 2007-09-26 Vincent Celier <celier@adacore.com>
3415 * gnatcmd.adb (Check_Files): Do not include sources that have been
3416 removed by attributes Exclude_Source_Files or Locally_Removed_Files.
3418 2007-09-26 Ed Schonberg <schonberg@adacore.com>
3420 * lib-xref.ads, lib-xref.adb: The entry for array types now carries
3421 information about each of its index types, following the type
3422 reference for its component type.
3424 2007-09-26 Vincent Celier <celier@adacore.com>
3426 * make.adb: (Kill): New procedure (__gnat_kill imported)
3427 (Running_Compile, Outstanding_Compiles): Global variables that
3428 were previously local to procedure Compile_Sources.
3429 (Sigint_Intercepted): Send signal SIGINT to all outstanding
3430 compilation processes.
3432 (Gnatmake): If project files are used, create the mapping of all the
3433 sources, so that the correct paths will be found.
3435 * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
3437 2007-09-26 Vincent Celier <celier@adacore.com>
3439 * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
3441 * prj.ads, prj.adb (Default_Language): Remove function, no longer used
3442 Replace components Compiler_Min_Options and Binder_Min_Options with
3443 Compiler_Required_Switches and Binder_Required_Switches in record
3445 Remove components Default_Language and Config in Project_Tree_Data,
3448 * prj-attr.adb: New attributes Required_Switches (<language>) in
3449 packages Compiler and Binder.
3451 * prj-nmsc.adb: Major rewrite of the processing of configuration
3452 attributes for gprbuild. No impact on GNAT tools.
3454 * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
3455 process configuration attributes: this is done in Prj.Nmsc.Check.
3456 (Recursive_Process): Make a full copy of packages inherited from project
3457 being extended, instead of a shallow copy.
3458 (Process_Project_Tree_Phase_1): New procedure
3459 (Process_Project_Tree_Phase_1): New procedure
3460 (Process): Implementation now uses the two new procedures
3462 * prj-util.adb (Executable_Of): Get the suffix and the default suffix
3463 from the project config, not the tree config that no longer exists.
3465 2007-09-26 Vincent Celier <celier@adacore.com>
3467 * Make-lang.in: Update dependencies..
3469 2007-09-26 Vincent Celier <celier@adacore.com>
3471 * osint.adb, osint.ads: Minor reformatting
3473 * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
3475 2007-09-26 Gary Dismukes <dismukes@adacore.com>
3477 * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
3478 message to cite use of <> in aggregate component associations rather
3479 than wrongly indicating use of limited aggregates.
3481 2007-09-26 Robert Dewar <dewar@adacore.com>
3483 * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
3486 2007-09-26 Ed Schonberg <schonberg@adacore.com>
3488 * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
3489 ancestor of the derived type, the operations are inherited from the
3490 primary dispatch table of the parent.
3491 (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
3492 when the context is an explicit type conversion.
3494 2007-09-26 Ed Schonberg <schonberg@adacore.com>
3496 * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
3497 rule for qualified expressions properly, to detect improper conversions
3498 and resolve some cases of overloading.
3500 2007-09-26 Ed Schonberg <schonberg@adacore.com>
3502 * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
3503 proper kind of reference to the primitive operation, for better source
3505 (Valid_Conversion): A tagged conversion is legal if both operands are
3508 2007-09-26 Robert Dewar <dewar@adacore.com>
3510 * sem_warn.adb (Check_References): Catch more cases of unreferenced
3513 2007-09-26 Vincent Celier <celier@adacore.com>
3515 * snames.adb, snames.ads: Change Include_Option to Include_Switches
3517 2007-09-26 Robert Dewar <dewar@adacore.com>
3519 * s-wchstw.adb: provide messages for run time unit exceptions
3521 * a-witeio.adb: Minor reformatting
3523 * exp_ch13.adb: Minor reformatting
3525 2007-09-26 Sergey Rybin <rybin@adacore.com>
3527 * vms_data.ads: Revise gnatmetric qualifiers.
3528 Add qualified for the new gnatbind option '-y'
3530 * gnat_ugn.texi: Revise the gnatmetric section.
3531 Add entry for new gnatbind option '-y'.
3533 * gnat_rm.texi: Minor spelling correction.
3534 Document restriction on overlaying controlled types
3536 2007-09-26 Vincent Celier <celier@adacore.com>
3538 * makegpr.adb (Link_Executables): Do not fail when the root project has
3539 no sources, but is an extending project.
3541 2007-09-25 Eric Botcazou <ebotcazou@adacore.com>
3543 * trans.c: Fix misplaced #define.
3545 2007-09-22 Eric Botcazou <ebotcazou@adacore.com>
3547 * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
3548 the TYPE_REF_CAN_ALIAS_ALL flag to the result.
3550 2007-09-21 Olivier Hainque <hainque@adacore.com>
3552 * utils.c (type_for_nonaliased_component_p): Return false for
3553 all AGGREGATE_TYPEs.
3555 2007-09-17 Eric Botcazou <ebotcazou@adacore.com>
3557 * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
3558 object covered by 13.3(19) volatile.
3560 2007-09-12 Eric Botcazou <ebotcazou@adacore.com>
3564 * utils.c (unchecked_convert): Use a subtype as the intermediate type
3565 in the special VIEW_CONVERT_EXPR case.
3567 2007-09-12 Robert Dewar <dewar@adacore.com>
3569 * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
3571 * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
3572 lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
3573 s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
3574 s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
3575 s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
3576 s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
3577 s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
3578 s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
3579 a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
3580 g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
3581 s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
3582 s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
3583 snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
3584 s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
3585 s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
3586 s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
3587 s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
3588 pragma Compiler_Unit and adds it to relevant library units.
3590 2007-09-12 Ed Schonberg <schonberg@adacore.com>
3592 * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
3593 a box need not correspond to any component.
3595 2007-09-12 Robert Dewar <dewar@adacore.com>
3597 * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
3598 the tasking version of the Ada run time when foreign threads are
3599 present and there are no explicit Ada tasks or tasking constructs.
3601 * gnat_rm.texi: Clarify documentation of GNAT.Threads.
3603 2007-09-12 Hristian Kirtchev <kirtchev@adacore.com>
3605 * bindusg.adb (Display): Correct comment for switch -X. Add a line for
3606 the usage of switch -y.
3608 * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
3609 when switch -y is present.
3611 * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
3612 leap seconds in Ada.Calendar and its children.
3614 2007-09-12 Jose Ruiz <ruiz@adacore.com>
3616 * a-extiti.ads (Timer): The discriminant is a "not null access
3617 constant" in the Reference Manual.
3618 (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
3620 2007-09-12 Robert Dewar <dewar@adacore.com>
3622 * a-swuwha.adb: Remove junk RM header
3624 2007-09-12 Vincent Celier <celier@adacore.com>
3626 * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
3629 * g-bytswa.ads: Minor reformatting
3631 2007-09-12 Thomas Quinot <quinot@adacore.com>
3633 * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
3634 Add new constant Thread_Blocking_IO, always True by default, set False
3635 on a per-runtime basis.
3636 (Need_Netdb_Buffer): New constant.
3638 2007-09-12 Arnaud Charlet <charlet@adacore.com>
3640 * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
3641 Added renames for corresponding functions in System.Partition_Interface.
3643 2007-09-12 Doug Rupp <rupp@adacore.com>
3645 * Makefile.in: Remove VMS specific System.CRTL packages which are no
3648 * s-crtl-vms64.ads: Removed.
3650 2007-09-12 Olivier Hainque <hainque@adacore.com>
3652 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
3653 with discriminant constraints, generalize the code for BIT_FIELDs
3654 to PACKED fields of constant size and propagate DECL_PACKED.
3656 2007-09-11 Eric Botcazou <ebotcazou@adacore.com>
3658 * decl.c (array_type_has_nonaliased_component): New predicate.
3659 (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
3660 set the TYPE_NONALIASED_COMPONENT flag on the type.
3661 <E_Array_Subtype>: Likewise.
3662 * gigi.h (type_for_nonaliased_component_p): Declare.
3663 * utils.c (type_for_nonaliased_component_p): New predicate.
3664 (create_field_decl): Invoke the above predicate to set the
3665 DECL_NONADDRESSABLE_P flag on the field.
3667 2007-09-11 Javier Miranda <miranda@adacore.com>
3669 * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
3670 in library level record type entities if we are generating statically
3671 allocated dispatch tables.
3673 * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
3674 importing/exporting the _tag declaration by new code
3675 importing/exporting the dispatch table wrapper. This change allows us
3676 to statically allocate of the TSD.
3677 (Make_DT.Export_DT): New procedure.
3678 (Build_Static_DT): New function.
3679 (Has_DT): New function.
3681 * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
3682 True_Constant and Current_Value. Required to statically
3683 allocate the dispatch tables.
3684 (Check_Allocator): Make function iterative instead of recursive.
3685 Also return inner allocator node, when present, so that we do not have
3686 to look for that node again in the caller.
3688 2007-09-11 Jan Hubicka <jh@suse.cz>
3690 * misc.c (gnat_expand_body): Kill.
3691 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
3693 2007-09-10 Robert Dewar <dewar@adacore.com>
3695 * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
3696 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
3697 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
3698 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
3699 ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
3700 bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
3701 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
3702 butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
3703 comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
3704 elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
3705 err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
3706 exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
3707 exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
3708 exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
3709 exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
3710 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
3711 exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
3712 exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
3713 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
3714 exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
3715 exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
3716 exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
3717 fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
3718 get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
3719 gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
3720 gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
3721 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
3722 gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
3723 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
3724 gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
3725 inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
3726 lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
3727 lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
3728 make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
3729 mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
3730 mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
3731 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
3732 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
3733 osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
3734 osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
3735 par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
3736 par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
3737 par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
3738 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
3739 par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
3740 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
3741 prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
3742 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
3743 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
3744 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
3745 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
3746 prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
3747 rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
3748 scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
3749 sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
3750 sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
3751 sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
3752 sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
3753 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
3754 sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
3755 sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
3756 sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
3757 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
3758 sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
3759 sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
3760 sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
3761 sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
3762 sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
3763 stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
3764 styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
3765 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
3766 switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
3767 tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
3768 treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
3769 types.h, uintp.h, urealp.h, usage.adb, usage.ads,
3770 validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
3771 xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
3772 xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
3773 gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
3774 mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
3775 symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
3776 mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
3777 mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
3779 2007-09-10 Emmanuel Briot <briot@adacore.com>
3781 * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
3784 2007-09-10 Vasiliy Fofanov <fofanov@adacore.com>
3786 * adaint.c (__gnat_translate_vms): new function.
3788 2007-09-10 Gary Dismukes <dismukes@adacore.com>
3789 Thomas Quinot <quinot@adacore.com>
3791 * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
3792 create an abstract subprogram in the case of 'Input. For 'Output we now
3793 create a real spec/body when the type is abstract, since it can
3794 potentially be called.
3795 (Predefined_Primitive_Bodies): Now allow the creation of a predefined
3796 body for 'Output when the type is abstract (only the creation of the
3797 body for 'Input is excluded when the type is abstract).
3798 (Stream_Operation_OK): Add an additional condition in the return
3799 statement, so that False will be returned for TTS_Stream_Input if the
3800 associated tagged type is an abstract extension. Add comments for
3802 (Expand_N_Object_Declaration): For the case of a shared passive
3803 variable, insert init proc call only after the shared variable
3804 procedures have been processed, because the IP call needs to undergo
3805 shared passive variable reference expansion, which requires these
3806 procedures to be available (and elaborated).
3808 2007-09-10 Vincent Celier <celier@adacore.com>
3810 * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
3811 parameter Runtime_Project.
3813 2007-09-10 Ed Schonberg <schonberg@adacore.com>
3815 * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
3816 given a box association, the type of the component is discriminated,
3817 and the value of the discriminant is the discriminant of the enclosing
3818 type, retrieve its value from the aggregate itself, where it must have
3821 * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
3822 to remove other spurious ambiguities on arithmetic operations involving
3823 literals and addresses, on systems where Address is a visible integer
3824 type, when the operator is called in functional notation.
3825 (Try_Primitive_Operation): Within an instance, a call in prefixed form
3826 is legal when the types match, even if the operation is currently
3829 2007-09-10 Ed Schonberg <schonberg@adacore.com>
3831 * sem_ch12.adb (Build_Local_Package): A formal package with no
3832 associations is legal if all formals have defaults. It is not
3833 equivalent to a formal declared with a box.
3835 2007-09-10 Sergey Rybin <rybin@adacore.com>
3837 * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
3839 2007-09-10 Sergey Rybin <rybin@adacore.com>
3841 * gnat_ugn.texi: Add description of the new '-lratio' option
3842 Update 7.3.1 section about availability of the feature.
3844 2007-09-10 Thomas Quinot <quinot@adacore.com>
3846 * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
3849 2007-09-10 Olivier Hainque <hainque@adacore.com>
3851 * Makefile.in: (mips-irix section): Activate build of libgmem.
3853 2007-09-10 Eric Botcazou <ebotcazou@adacore.com>
3855 * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
3858 2007-09-10 Eric Botcazou <ebotcazou@adacore.com>
3860 * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
3861 a debug renaming declaration specially.
3863 2007-09-08 Eric Botcazou <ebotcazou@adacore.com>
3865 * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
3866 which a constant renaming is treated as a normal object declaration.
3867 * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
3868 the N_Indexed_Component case.
3869 <N_Indexed_Component>: Fall through to above case.
3870 <N_Object_Renaming_Declaration>