OSDN Git Service

826cd0dfa9987dd8e0d8c1fcfb717e929a6359d4
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
2
3         * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
4
5 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6
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.
12
13 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
14
15         * decl.c (is_variable_size): Do not unconditionally return false
16         on non-strict alignment platforms.
17
18 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
19
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.
26
27 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
28
29         * gigi.h (insert_block): Kill.
30         * utils.c (insert_block): Kill.
31
32 2008-04-02  Eric Botcazou  <ebotcazou@adacore.com>
33
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.
38
39 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
40
41         PR ada/33688
42         * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
43
44         PR ada/33857
45         * env.c: Always include crt_externs.h if __APPLE__ is defined.
46         (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
47
48 2008-04-01  Andreas Jaeger  <aj@suse.de>
49
50         * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
51         IP_PKTINFO.
52
53 2008-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
54
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.
79
80 2008-03-31  Eric Botcazou  <ebotcazou@adacore.com>
81
82         * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
83         size if it has overflowed.
84
85 2008-03-31  Olivier Hainque  <hainque@adacore.com>
86             Eric Botcazou  <ebotcazou@adacore.com>
87
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.
90
91 2008-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
92
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
126         typos.
127
128 2008-03-27  Eric Botcazou  <ebotcazou@adacore.com>
129
130         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
131         if the procedure is imported.
132
133 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
134
135         * adaint.c: Fix warnings.
136
137 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
138
139         * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
140
141 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
142
143         * a-witeio.adb: Fix problem with Current_Output (introduce Self).
144         Fix problem of status check for null file
145
146 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
147
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
153         comments.
154
155 2008-03-26  Thomas Quinot  <quinot@adacore.com>
156
157         PR ada/33688
158         * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
159         Get_Socket_Option): Add support for Receive_Packet_Info.
160
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
167
168 2008-03-26  Robert Dewar  <dewar@adacore.com>
169
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.
200         Update comments.
201         Remove "used for" sections from comments.
202
203 2008-03-26  Robert Dewar  <dewar@adacore.com>
204
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.
221
222 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
223
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.
228
229 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
230
231         * gnatvsn.ads (Library_Version): Bump to 4.4.
232         (Current_Year): Bump to 2008.
233
234 2008-03-26  Robert Dewar  <dewar@adacore.com>
235
236         * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
237
238         * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
239
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))
243
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.
252
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
256
257         * layout.adb (Layout_Composite_Object): Rewritten for
258         Optimize_Aligment pragma.
259
260         * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
261         mode.
262
263         * opt.ads, opt.adb: (Optimize_Alignment): New global switch
264
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
268
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
275
276 2008-03-26  Vincent Celier  <celier@adacore.com>
277
278         * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
279         Improve memory usage to avoid use of stack.
280
281 2008-03-26  Robert Dewar  <dewar@adacore.com>
282
283         * a-teioed.ads: Correct value of Default_Fill
284
285         * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
286
287 2008-03-26  Robert Dewar  <dewar@adacore.com>
288
289         * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
290         with Current_Output (introduce Self).
291
292 2008-03-26  Robert Dewar  <dewar@adacore.com>
293
294         * checks.adb (Ensure_Valid): Capture valid status if possible
295         (eliminate checks)
296
297 2008-03-26  Robert Dewar  <dewar@adacore.com>
298
299         * stand.ads: Deal with reordering of package standard declarations
300
301         * cstand.adb: Put package Standard declarations in proper order
302
303 2008-03-26  Robert Dewar  <dewar@adacore.com>
304
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
320
321 2008-03-26  Robert Dewar  <dewar@adacore.com>
322
323         * errout.ads: Document new !! insertion sequence
324
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 !!
329
330 2008-03-26  Robert Dewar  <dewar@adacore.com>
331
332         * par.adb (Check_No_Right_Paren): Removed no longer used
333
334         * par-ch10.adb (N_Pragma): Chars field removed, use Chars
335         (Pragma_Identifier (..  instead.
336
337         * par-ch10.adb (P_Subunit): Improvement in error recovery and message
338
339         * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
340         par-ch4.adb: Minor improvements in error recovery and messages.
341
342         * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
343         non-serious
344
345         * par-ch9.adb: Minor improvements in error recovery and messages
346         (P_Protected): Better error recovery for "protected type x;"
347
348         * par-util.adb: Minor improvements in error recovery and messages
349         (Check_No_Right_Paren): Removed no longer used
350
351 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
352
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
355         expanded.
356
357 2008-03-26  Javier Miranda  <miranda@adacore.com>
358             Robert Dewar  <dewar@adacore.com>
359
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
365
366         * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
367
368         * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
369         Replace call to
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
379
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
383
384 2008-03-26  Robert Dewar  <dewar@adacore.com>
385             Arnaud Charlet  <charlet@adacore.com>
386
387         * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
388         stmt.
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.
393
394         * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
395         function.
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.
399
400 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
401
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.
413
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
416         declaration.
417
418 2008-03-26  Robert Dewar  <dewar@adacore.com>
419
420         * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
421         No_Run_Time_Mode
422
423 2008-03-26  Gary Dismukes  <dismukes@adacore.com>
424
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).
430
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.
440
441 2008-03-26  Javier Miranda  <miranda@adacore.com>
442
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.
462
463         * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
464         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
465         this change.
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).
469
470         * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
471         subprogram.
472         (Find_Interface_ADT): Updated to skip the new contents of attribute
473         Access_Dispatch_Table (pointers to dispatch tables containing predefined
474         primitives).
475
476         * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
477         concurrent types.
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
481         primitives).
482
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.
487
488 2008-03-26  Javier Miranda  <miranda@adacore.com>
489
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.
493
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.
502
503 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
504
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.
509
510 2008-03-26  Vincent Celier  <celier@adacore.com>
511
512         * gnatcmd.adb: Add processing for GNAT SYNC
513
514         * vms_conv.ads: (Command_Type): Add command Sync
515
516         * vms_conv.adb (Initialize): Add Command_List data for new command Sync
517
518         * vms_data.ads: Add entries for -gnatw.w
519         Add qualifier for gnatstub --header-file option
520         Add switches for GNAT SYNC
521
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
527
528 2008-03-26  Robert Dewar  <dewar@adacore.com>
529
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.
533
534 2008-03-26  Pascal Obry  <obry@adacore.com>
535
536         * Makefile.in: Add proper GNAT.Serial_Communications implementation on
537         supported platforms.
538         
539         * Makefile.rtl: Add g-sercom.o.
540         
541         * impunit.adb: Add g-sercom.adb.
542         
543         * s-crtl.ads (open): New routine.
544         (close): Likewise.
545         (write): Likewise.
546         
547         * s-osinte-mingw.ads (BYTE): New type.
548         (CHAR): Likewise.
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
554         type instead.
555         (CreateFile): New routine.
556         (WriteFile): Likewise.
557         (ReadFile): Likewise.
558         (CloseHandle): Move next to the other file oriented routines.
559
560         * g-sercom.ads: New unit.
561
562         * g-sercom.adb: Default implementation, calls to this unit will raise
563         a program error exception.
564         
565         * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
566         GNU/Linux implementations.
567
568 2008-03-26  Robert Dewar  <dewar@adacore.com>
569
570         * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
571
572         * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
573         unchecked conversion for different conventions only for subprogram
574         pointers or on VMS.
575
576 2008-03-26  Vincent Celier  <celier@adacore.com>
577
578         * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
579         to check if the specified object file is correct.
580
581 2008-03-26  Thomas Quinot  <quinot@adacore.com>
582
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.
589
590 2008-03-26  Vincent Celier  <celier@adacore.com>
591
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.
598
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
603         project.
604
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.
609
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.
612
613 2008-03-26  Robert Dewar  <dewar@adacore.com>
614
615         * scn.adb (Initialize_Scanner): Format messages belong on standard error
616
617 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
618
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
621         non-existent body.
622
623         * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
624         imported, do not generate a raise_program_error for the non-existent
625         body.
626         (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
627         perform minimal name resolution on the generic to avoid spurious
628         warnings.
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.
631
632 2008-03-26  Robert Dewar  <dewar@adacore.com>
633
634         * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
635         * sinfo.ads, sinfo.adb (From_At_End): New flag
636
637 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
638
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.
643
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.
647
648 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
649
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.
654         
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.
660
661 2008-03-26  Robert Dewar  <dewar@adacore.com>
662
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.
667
668 2008-03-26  Robert Dewar  <dewar@adacore.com>
669
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
676
677 2008-03-26  Vincent Celier  <celier@adacore.com>
678
679         * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
680         readable.
681
682 2008-03-26  Matthew Heaney  <heaney@adacore.com>
683
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
687
688 2008-03-26  Robert Dewar  <dewar@adacore.com>
689
690         * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
691
692 2008-03-26  Robert Dewar  <dewar@adacore.com>
693
694         * back_end.adb, back_end.ads: Minor reformatting
695
696         * bindgen.adb: Minor clarification of comments
697
698         * fname.ads: Minor comment fixes
699
700         * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
701         prj-nmsc.adb, sem_aggr.adb: Minor reformatting
702
703         * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
704         xsnames.adb: Remove warnings off pragma no longer needed
705
706         * a-catizo.ads, a-calari.ads, a-calfor.adb,
707         a-calfor.ads: Fix header.
708
709 2008-03-26  Tristan Gingold  <gingold@adacore.com>
710
711         * init.c: Do not adjust pc for HPARITH on alpha/vms.
712
713 2008-03-26  Robert Dewar  <dewar@adacore.com>
714
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
718
719 2008-03-26  Robert Dewar  <dewar@adacore.com>
720
721         * alloc.ads: Add entries for Warnings_Off_Pragmas table
722
723 2008-03-26  GNAT Script  <nobody@adacore.com>
724
725         * Make-lang.in: Makefile automatically updated
726
727 2008-03-26  Robert Dewar  <dewar@adacore.com>
728
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.
733
734         * s-pooglo.ads, s-pooloc.ads: Minor comment updates
735
736         * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
737         Einfo.Set_Needs_Debug_Info)
738
739 2008-03-26  Robert Dewar  <dewar@adacore.com>
740
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.
747
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
754
755         * ug_words: Add entries for -gnatw.w -gnatw.W
756
757         * usage.adb: Add line for -gnatw.w (warn on warnings off)
758
759 2008-03-25  Eric Botcazou  <ebotcazou@adacore.com>
760
761         Revert
762         2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
763         PR ada/35186
764         * decl.c (maybe_pad_type): Avoid padding an integral type when
765         bumping its alignment is sufficient.
766
767 2008-03-25  Arnaud Charlet  <charlet@adacore.com>
768
769         * exp_ch6.adb, exp_disp.adb: Update copyright notice.
770         Fix wrong formatting (lines too long)
771
772 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
773
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.
792
793 2008-03-24  Robert Dewar  <dewar@adacore.com>
794
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.
811
812 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
813
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):
824         Adjusted.
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.
830
831 2008-03-21  Olivier Hainque  <hainque@adacore.com>
832
833         * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
834         ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
835
836 2008-03-21  Eric Botcazou  <ebotcazou@adacore.com>
837
838         * trans.c (addressable_p): Add notes on addressability issues.
839
840 2008-03-21  Olivier Hainque  <hainque@adacore.com>
841             Ed Schonberg  <schonberg@adacore.com>
842
843         * trans.c (addressable_p): Accept COND_EXPR when both arms
844         are addressable.
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
848         general expression.
849
850 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
851
852         * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
853         
854 2008-03-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
855
856         * gnat_rm.texi (Implementation Defined Characteristics)
857         (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
858         appropriate.
859         * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
860         (Switches for gnatchop, Installing a library): Likewise.
861
862 2008-03-10  Eric Botcazou  <ebotcazou@adacore.com>
863
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.
866
867 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
868
869         * decl.c (maybe_pad_type): Use value_factor_p.
870
871 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
872
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.
880
881 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
882
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.
885
886 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
887
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.
891
892 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
893
894         * lang-specs.h: Pass -gnatwa if -Wall is passed.
895         * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
896         and -Wuninitialized.
897         (gnat_post_options): Clear warn_unused_parameter.
898
899 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
900
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
903         profitable.
904         (value_factor_p): Return false instead of 0.
905
906 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
907
908         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
909         for scalar types with small alignment.
910
911 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
912
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.
917
918 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
919
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.
924
925 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
926
927         * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
928         large alignments specified for types.
929         (validate_alignment): Minor cleanup.
930
931 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
932
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.
964
965 2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
966
967         PR ada/35186
968         * decl.c (maybe_pad_type): Avoid padding an integral type when
969         bumping its alignment is sufficient.
970
971 2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
972
973         * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
974         * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
975         statement.
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
979         code output strings.
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.
983
984         PR documentation/15479
985         * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
986
987 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
988
989         PR ada/22255
990         * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
991
992 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
993
994         PR ada/34799
995         * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
996         that underlying type is present.
997
998 2008-02-26  Tom Tromey  <tromey@redhat.com>
999
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.
1004
1005 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1006
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.
1013
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,
1018         @samp for strings.
1019         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
1020         instead of @file, @env instead of @code.
1021
1022 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1023
1024         PR documentation/15479
1025         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
1026         and `...' with `@dots{}' or `@enddots{}'.
1027
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.
1032
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 `;'.
1036
1037 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1038
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
1043         @file{vi}.
1044         (Character Set Control): Do not use @code for UTF-8.
1045         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
1046         use @code for IEEE.
1047         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
1048         sample.
1049         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
1050
1051 2008-02-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
1052
1053         PR ada/35143
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.
1063
1064 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1065
1066         PR other/35107
1067         * Make-lang.in (gnat1): Add $(GMPLIBS).
1068
1069 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
1070
1071         * decl.c (components_to_record): Improve comment.
1072
1073 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
1074
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.
1078
1079 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
1080
1081         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
1082         in pointer arithmetics.
1083         * utils2.c (build_allocator): Likewise.
1084
1085 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
1086
1087         * utils.c (build_function_stub): Properly build the call expression.
1088
1089 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
1090
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.
1095
1096 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
1097
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.
1104
1105 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
1106
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.
1110
1111 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
1112
1113         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
1114
1115 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
1116
1117         PR ada/34466
1118         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
1119         sysconf call.
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.
1126
1127 2008-01-03  Tero Koskinen  <tero.koskinen@iki.fi>
1128
1129         PR ada/34647
1130         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
1131         on OpenBSD as is done on other BSD systems.
1132
1133         PR ada/34645
1134         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
1135         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
1136         I/O.
1137
1138         PR ada/34644
1139         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
1140         clearenv().
1141
1142         PR ada/34646
1143         * init.c (__gnat_error_handler, __gnat_install_handler,
1144         __gnat_init_float): Define for OpenBSD.
1145
1146         * initialize.c (__gnat_initialize): Define for OpenBSD.
1147
1148 2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
1149
1150         PR ada/34553
1151         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
1152         instead of mktemp() or tmpnam() on NetBSD.
1153
1154 2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
1155
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.
1159
1160 2007-12-19  Robert Dewar  <dewar@adacore.com>
1161
1162         * g-expect-vms.adb, g-expect.adb, s-poosiz.adb: 
1163         Add pragma Warnings (Off) for unassigned IN OUT arguments
1164
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
1171
1172         * par-prag.adb: Dummy entry for pragma Unmodified
1173
1174         * sem_prag.adb: Implement pragma Unmodified
1175
1176         * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
1177         (Proc_Next_Component_Or_Discriminant): Fix typo.
1178         Update comments.
1179
1180         * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
1181         Unmodified.
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.
1185         Add comment.
1186
1187         * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
1188
1189 2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
1190
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.
1202
1203         * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
1204         Turn on stack probing mechanism on LynxOS.
1205
1206 2007-12-19  Bob Duff  <duff@adacore.com>
1207
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.
1214
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
1218         tree.
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
1222         clearer.
1223
1224         * checks.adb (Remove_Checks): Use Traverse_Proc instead of
1225         Traverse_Func, because the former already takes care of discarding the
1226         result.
1227
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
1231         Discard 
1232
1233 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1234
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.
1239
1240 2007-12-19  Robert Dewar  <dewar@adacore.com>
1241
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).
1245
1246 2007-12-19  Javier Miranda  <miranda@adacore.com>
1247
1248         * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
1249         that forces the construction of static dispatch tables in case of
1250         record subtypes.
1251
1252 2007-12-19  Robert Dewar  <dewar@adacore.com>
1253
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
1258
1259 2007-12-19  Robert Dewar  <dewar@adacore.com>
1260
1261         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
1262         in complex case where array is Volatile.
1263
1264 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1265
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.
1269
1270 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1271
1272         * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
1273         mangled declaration
1274         (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
1275         declarations.
1276         (P_Variant_Part): Cleaner patch for parenthesized discriminant
1277
1278 2007-12-19  Vincent Celier  <celier@adacore.com>
1279
1280         * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
1281         package is not known
1282
1283         * prj-attr.ads (Unknown_Package): New constant
1284         Do not crash when an unknown package is in several projects
1285
1286         * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
1287         ignored
1288
1289         * prj-nmsc.adb (Check): Remove obsolete code related to no longer
1290         existing package Language_Processing.
1291
1292 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1293             Gary Dismukes  <dismukes@adacore.com>
1294             Samuel Tardieu  <sam@rfc1149.net>
1295
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
1306         access_to_constant.
1307
1308 2007-12-19  Bob Duff  <duff@adacore.com>
1309
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.
1313
1314 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1315             Gary Dismukes  <dismukes@adacore.com>
1316
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'.
1322
1323 2007-12-19  Gary Dismukes  <dismukes@adacore.com>
1324
1325         PR ada/34149
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
1330         on such calls).
1331         (Check_Controlling_Formals): Ada2005, access parameters can have
1332         defaults.
1333         (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
1334         not insert subprogram in list of primitive operations if already there.
1335
1336 2007-12-19  Tristan Gingold  <gingold@adacore.com>
1337
1338         * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
1339         global variable.
1340
1341 2007-12-19  Thomas Quinot  <quinot@adacore.com>
1342
1343         Part of PR ada/33688
1344         * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
1345         datagram info on Linux.
1346
1347 2007-12-19  Vincent Celier  <celier@adacore.com>
1348
1349         * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
1350         that the source path name is always found in the dependencies.
1351
1352 2007-12-19  Robert Dewar  <dewar@adacore.com>
1353
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
1361
1362 2007-12-19  Samuel Tardieu  <sam@rfc1149.net>
1363
1364         * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
1365
1366 2007-12-17  Arnaud Charlet  <charlet@adacore.com>
1367
1368         * s-vxwork-alpha.ads: Removed, no longer used.
1369
1370 2007-12-15  Jakub Jelinek  <jakub@redhat.com>
1371
1372         * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
1373
1374 2007-12-13  Samuel Tardieu  <sam@rfc1149.net>
1375
1376         PR ada/34360
1377         * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
1378         mlib-tgt-specific.adb.
1379
1380 2007-12-13  Bob Duff  <duff@adacore.com>
1381
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.
1385
1386 2007-12-13  Pascal Obry  <obry@adacore.com>
1387
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.
1391         
1392         * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
1393         call.
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.
1400         
1401         * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
1402         no null.
1403         (Create_Task): Set the processor affinity mask if information
1404         is present.
1405         
1406         * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
1407         
1408 2007-12-13  Robert Dewar  <dewar@adacore.com>
1409
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.
1419
1420         * g-ctrl_c.adb: New file.
1421
1422         * g-ctrl_c.ads (Install_Handler): New body.
1423
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.
1435
1436 2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
1437             Bob Duff  <duff@adacore.com>
1438             Tristan Gingold  <gingold@adacore.com>
1439
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).
1455
1456         * s-taprop-vxworks.adb: Use stack limit method of stack checking.
1457         Simply indirectly call s-stchop when a task is created.
1458
1459         * ali.ads: 
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.
1462
1463         * fe.h (Stack_Check_Limits): Declare new target parameter.
1464         (Check_Implicit_Dynamic_Code_Allowed): New procedure.
1465
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
1468         code.
1469         (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
1470         Storage_Error.
1471
1472         * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
1473         (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
1474
1475         * s-stchop.ads: Add comments.
1476
1477         * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
1478         limit method of stack checking.
1479
1480         * s-stchop-limit.ads: New file.
1481
1482 2007-12-13  Robert Dewar  <dewar@adacore.com>
1483
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
1487         warnings
1488
1489         * exp_smem.adb: Update handling of assigned value/unreferenced warnings
1490
1491         * sem.adb: Update handling of assigned value/unreferenced warnings
1492
1493         * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
1494
1495         * lib-xref.ads: Improve documentation for k xref type
1496
1497         * lib-xref.adb: 
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.
1503
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
1511
1512         * atree.h: Add flags up to Flag247
1513         (Flag231): New macro.
1514
1515 2007-12-13  Jose Ruiz  <ruiz@adacore.com>
1516
1517         * adaint.h: (__gnat_plist_init): Not defined for RTX.
1518
1519         * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
1520         RTX systems.
1521
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.
1526
1527         * mingw32.h: 
1528         Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
1529
1530         * sysdep.c (winflush_function for RTX): Procedure that does nothing
1531         since we only have problems with Windows 95/98, which are not
1532         supported by RTX.
1533         (__gnat_ttyname): Return the empty string on Nucleus, just as
1534         done on vxworks.
1535
1536 2007-12-13  Robert Dewar  <dewar@adacore.com>
1537
1538         * a-textio.adb, a-textio.ads: 
1539         Extensive changes to private part for wide character encoding
1540
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)
1544
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
1547         clearly correct.
1548
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
1559
1560         * bindusg.adb: Add line for -Wx switch
1561
1562         * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
1563         Add comments
1564         Add new useful constant WC_Longest_Sequences
1565
1566         * switch-b.adb: Clean up handling of -Wx switch
1567         For -gnatWx, set Wide_Character_Encoding_Method_Specified
1568
1569         * switch-c.adb: -gnatg activates warning on assertion errors
1570         For -gnatWx, set Wide_Character_Encoding_Method_Specified
1571
1572         * s-wchcon.adb: (Is_Start_Of_Encoding): New function
1573
1574 2007-12-13  Robert Dewar  <dewar@adacore.com>
1575             Ed Schonberg  <schonberg@adacore.com>
1576
1577         * a-ngcoty.adb: New pragma Fast_Math
1578
1579         * opt.adb: New pragma Fast_Math
1580
1581         * par-prag.adb: 
1582         Add Implemented_By_Entry to the list of pragmas which do not require any
1583         special processing.
1584         (Favor_Top_Level): New pragma.
1585         New pragma Fast_Math
1586
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
1593
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
1599
1600         * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
1601         subunit
1602         New pragma Fast_Math
1603
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
1618         initialization).
1619         New pragma Fast_Math
1620         (Analyze_Pragma, case No_Return): Handle generic instance
1621
1622         * snames.h, snames.ads, snames.adb: 
1623         Add new predefined name for interface primitive _Disp_Requeue.
1624         New pragma Fast_Math
1625
1626         * a-tags.ads, a-tags.adb: New calling sequence for
1627         String_To_Wide_[Wide_]String
1628         (Secondary_Tag): New subprogram.
1629
1630         * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
1631         from Exp_Attr
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.
1635
1636         * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
1637         calling sequence for String_To_Wide_[Wide_]String
1638
1639         * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
1640         Ada 95 mode
1641         (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
1642         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1643
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
1647
1648         * par-util.adb (Next_Token_Is): New function
1649         (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
1650
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
1656
1657         * par-tchk.adb (U_Left_Paren): New procedure
1658         (U_Right_Paren): New procedure
1659
1660 2007-12-13  Geert Bosch  <bosch@adacore.com>
1661
1662         * a-tifiio.adb: 
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.
1667
1668 2007-12-13  Robert Dewar  <dewar@adacore.com>
1669
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
1676
1677         * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
1678         instead
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.
1684
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
1689
1690         * par-ch4.adb, nlists.ads, nlists.adb: 
1691         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1692
1693         * sinfo.ads, sinfo.adb: (Nkind_In): New functions
1694         Fix location of flag for unrecognized pragma message
1695
1696         * sem_ch7.adb: Use Nkind_In
1697
1698 2007-12-13  Vincent Celier  <celier@adacore.com>
1699
1700         * opt.ads: 
1701         Indicate what flags are used by the Project Manager, gprbuild and
1702         gprclean.
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
1709
1710 2007-12-13  Robert Dewar  <dewar@adacore.com>
1711
1712         * back_end.adb: Recognize -fno-inline
1713
1714 2007-12-13  Robert Dewar  <dewar@adacore.com>
1715
1716         * checks.adb: Fix optimization problem with short-circuited form
1717
1718 2007-12-13  Bob Duff  <duff@adacore.com>
1719
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
1725         unnest it).
1726
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).
1731
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.
1735
1736         * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
1737         Use the generic Heap_Sort_G instead of Heap_Sort_A.
1738
1739 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1740
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.
1755
1756 2007-12-13  Vincent Celier  <celier@adacore.com>
1757
1758         * errout.adb (Output_Source_Line): Do not keep a trailing space after
1759         the source line number if the source line is empty.
1760
1761 2007-12-13  Geert Bosch  <bosch@adacore.com>
1762
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.
1769
1770 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
1771
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.
1778
1779         Handle properly aggregates for limited types that appear in object
1780         declarations when the aggregate contains controlled values such as
1781         protected types.
1782         When expanding limited aggregates into individual components, do not
1783         call Adjust on controlled components that are limited.
1784
1785 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
1786
1787         * expander.adb: Take into account N_Subprogram_Renaming_Declaration
1788
1789 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1790
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
1800         abstract.
1801         (Predef_Spec_Or_Body): For interface types generate abstract subprogram
1802         declarations.
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
1805         function.
1806         Add also bodies of predefined primitives associated with synchronized
1807         interfaces.
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
1812         to Related_Type.
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.
1820
1821 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
1822
1823         * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
1824         Expand_Allocator_Expression): Take into account VM_Target
1825
1826         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
1827         secondary stack when VM_Target /= No_VM
1828
1829 2007-12-13  Javier Miranda  <miranda@adacore.com>
1830             Ed Schonberg  <schonberg@adacore.com>
1831
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.
1838
1839 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
1840
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.
1844
1845 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1846             Ed Schonberg  <schonberg@adacore.com>
1847
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.
1863
1864 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1865             Javier Miranda  <miranda@adacore.com>
1866
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.
1880
1881 2007-12-13  Pascal Obry  <obry@adacore.com>
1882
1883         * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
1884         Windows. This signal is used by gnatmake to kill child processes for
1885         example.
1886
1887 2007-12-13  Javier Miranda  <miranda@adacore.com>
1888
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.
1896
1897 2007-12-13  Robert Dewar  <dewar@adacore.com>
1898             Ed Schonberg  <schonberg@adacore.com>
1899
1900         * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
1901         assert fail
1902
1903         * ug_words: Add entries for -gnatw.a -gnatw.A
1904
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
1908         mismatches in gigi.
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.
1917
1918         * usage.adb: Add lines for -gnatw.a and -gnatw.A
1919
1920 2007-12-13  Emmanuel Briot  <briot@adacore.com>
1921
1922         * g-calend.ads (No_Time): New constant, to represent an uninitialized
1923         time value
1924
1925         * g-catiio.ads, g-catiio.adb (Value): Added support for more date
1926         formats.
1927         (Month_Name_To_Number): New subprogram
1928
1929         * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
1930         letter to upper-case.
1931
1932 2007-12-13  Robert Dewar  <dewar@adacore.com>
1933             Ed Schonberg  <schonberg@adacore.com>
1934
1935         * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
1936
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.
1946
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
1954         in 3.10.2 (27).
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.
1958
1959 2007-12-13  Vincent Celier  <celier@adacore.com>
1960
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
1964         directories.
1965
1966 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
1967
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.
1971
1972 2007-12-13  Robert Dewar  <dewar@adacore.com>
1973
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.
1977
1978         * g-speche.adb: Use generic routine in g-spchge
1979
1980         * s-wchcnv.ads, s-wchcnv.adb: 
1981         Minor code cleanup (make formal type consistent with spec)
1982
1983         * namet.adb: Update comments.
1984
1985         * par-endh.adb (Evaluate_End_Entry): Use new
1986         Namet.Sp.Is_Bad_Spelling_Of function
1987
1988         * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
1989
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
1994         function
1995
1996 2007-12-13  Robert Dewar  <dewar@adacore.com>
1997
1998         * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
1999         access Vstring)
2000
2001 2007-12-13  Robert Dewar  <dewar@adacore.com>
2002
2003         * inline.adb (Back_End_Cannot_Inline): Use new flag
2004         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
2005
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
2012
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.
2017         Update comments.
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
2028         pragma Pack.
2029
2030 2007-12-13  Emmanuel Briot  <briot@adacore.com>
2031             Vincent Celier  <celier@adacore.com>
2032
2033         * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
2034         string
2035         (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
2036         prj.ads
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
2040         file name.
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
2045
2046         * prj-attr.adb: Fix name of attribute Dependency_Driver
2047         Change the kind of indexing for attribute Root
2048
2049         * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
2050         variables already declared, in case constructions.
2051
2052         * prj-env.adb (Initialize): Reset Current_Source_Path_File and
2053         Current_Object_Path_File to No_Path.
2054
2055         * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
2056         ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
2057
2058         * prj-makr.adb: new parameter Current_Dir
2059
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
2068         separator.
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
2071         as a parameter.
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
2075         separate suffix.
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
2080         language.
2081         (Check_Library_Attributes): Only check Library_Dir if Library_Name is
2082         not empty.
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
2087         for the unit.
2088         (Look_For_Sources): Put the unit exceptions in hash table
2089         Unit_Exceptions
2090         (Get_Unit_Exceptions): Give initial value No_Source to local variable
2091         Other_Part to avoid exception when code is compiled with validity
2092         checking.
2093         (Get_Sources_From_File): Check that there is no directory information
2094         in the file names.
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
2101         Search_Directories.
2102         (Search_Directories): Do not consider excluded sources
2103         (Look_For_Sources): Populate Excluded_Sources_Htable before calling
2104         Search_Directories.
2105         (Get_Exceptions): Set component Lang_Kind of Source_Data
2106         (Get_Unit_Exceptions): Ditto
2107         (Search_Directories): Ditto
2108
2109         * prj-pars.adb: new parameter Current_Dir
2110
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.
2121
2122         * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
2123         (Prj.Proc.Process*): new parameter Current_Dir
2124
2125         * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
2126
2127 2007-12-13  Bob Duff  <duff@adacore.com>
2128
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.
2132
2133 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
2134
2135         * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
2136         Fixes another case where RTE_Available_Call was ignored instead of being
2137         taken into account.
2138         (Load_Fail): Ditto.
2139
2140         * rtsfind.ads: Add new entries.
2141
2142 2007-12-13  Robert Dewar  <dewar@adacore.com>
2143
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.
2146
2147         * scn.adb: Implement BOM recognition
2148
2149 2007-12-13  Thomas Quinot  <quinot@adacore.com>
2150             Ed Schonberg  <schonberg@adacore.com>
2151
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.
2159
2160 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
2161
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
2169         error report.
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.
2179
2180 2007-12-13  Robert Dewar  <dewar@adacore.com>
2181
2182         * s-imenne.adb, s-imenne.ads: New files.
2183
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
2189         stack usage.
2190
2191 2007-12-13  Javier Miranda  <miranda@adacore.com>
2192             Ed Schonberg  <schonberg@adacore.com>
2193
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
2197         Freeze_Record_Type.
2198         (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
2199         flag.
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.
2210
2211 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
2212             Ed Schonberg  <schonberg@adacore.com>
2213
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.
2236
2237 2007-12-13  Robert Dewar  <dewar@adacore.com>
2238             Ed Schonberg  <schonberg@adacore.com>
2239
2240         * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
2241         renaming entry as subprogram using rename-as-body if subprogram spec
2242         frozen.
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
2251         an access to one.
2252
2253 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
2254             Gary Dismukes  <dismukes@adacore.com>
2255
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.
2273
2274 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
2275
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.
2280
2281 2007-12-13  Geert Bosch  <bosch@adacore.com>
2282
2283         * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
2284         context, so do not call Check_Non_Static_Context.
2285
2286 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
2287
2288         * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
2289         whether formal E is an entity which may have parameters.
2290
2291 2007-12-13  Bob Duff  <duff@adacore.com>
2292             Javier Miranda  <miranda@adacore.com>
2293             Robert Dewar  <dewar@adacore.com>
2294
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
2300         to Related_Type.
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.
2314
2315 2007-12-13  Thomas Quinot  <quinot@adacore.com>
2316
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.
2320
2321 2007-12-13  Thomas Quinot  <quinot@adacore.com>
2322
2323         * sinput-l.adb (Load_File): Disable style checks when preprocessing.
2324
2325 2007-12-13  Bob Duff  <duff@adacore.com>
2326
2327         * s-soflin.ads: Apply new pragma Favor_Top_Level to all
2328         access-to-subprogram types in this package.
2329
2330 2007-12-13  Olivier Hainque  <hainque@adacore.com>
2331
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
2335         abstraction.
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.
2339
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.
2345
2346 2007-12-13  Robert Dewar  <dewar@adacore.com>
2347
2348         * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
2349
2350 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
2351
2352         * s-tassta.adb: 
2353         (Create_Task): Take into account tasks created by foreign threads.
2354         Code clean up: use constants instead of hard coded values.
2355
2356 2007-12-13  Robert Dewar  <dewar@adacore.com>
2357
2358         * styleg.adb (Check_Comment): More liberal rules for comment placement
2359
2360 2007-12-13  Olivier Hainque  <hainque@adacore.com>
2361
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
2365         entry.
2366
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.
2370
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.
2375
2376 2007-12-13  Robert Dewar  <dewar@adacore.com>
2377
2378         * tbuild.ads, tbuild.adb: 
2379         Fix location of flag for unrecognized pragma message
2380
2381 2007-12-13  Robert Dewar  <dewar@adacore.com>
2382
2383         * treepr.ads, treepr.adb: (pl): implement use of positive value
2384         shorthands
2385
2386 2007-12-13  Robert Dewar  <dewar@adacore.com>
2387
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
2393
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
2410
2411         * g-altive.ads, g-alleve.adb: Remove assertions.
2412         Add comment about minor differences between targets regarding
2413         floating-point operations.
2414
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
2421         * vxaddr2line.adb: 
2422         Take into account 'Success' value as per new GNAT warning.
2423
2424 2007-12-13  Vincent Celier  <celier@adacore.com>
2425
2426         * a-direct.adb (Create_Path): Always take '/' as a directory separator,
2427         even on Windows
2428
2429 2007-12-13  Robert Dewar  <dewar@adacore.com>
2430             Bob Duff  <duff@adacore.com>
2431
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.
2438         Document new units.
2439
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
2450
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
2454
2455 2007-12-13  Matthew Heaney  <heaney@adacore.com>
2456
2457         * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
2458         which generic formal operations are called for each operation.
2459
2460 2007-12-13  Olivier Hainque  <hainque@adacore.com>
2461
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.
2464
2465 2007-12-13  Emmanuel Briot  <briot@adacore.com>
2466
2467         * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
2468         Reference_Dir unless we actually need it.
2469
2470 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
2471             Tristan Gingold  <gingold@adacore.com>
2472
2473         * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
2474
2475         * s-osprim-vms.adb,
2476         a-calend-vms.adb: Remove pragma warning off and add pragma
2477         unreferenced.
2478
2479 2007-12-13  Robert Dewar  <dewar@adacore.com>
2480
2481         * impunit.adb: Add entries for missing units
2482
2483         * Makefile.rtl: Add new run-time units.
2484
2485         * Make-lang.in:  Update dependencies.
2486
2487 2007-12-13  Bob Duff  <duff@adacore.com>
2488
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.
2492
2493 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
2494             Arnaud Charlet  <charlet@adacore.com>
2495
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).
2502
2503 2007-12-13  Vincent Celier  <celier@adacore.com>
2504
2505         * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
2506         (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
2507
2508 2007-12-13  Geert Bosch  <bosch@adacore.com>
2509
2510         * s-parame-vxworks.adb: 
2511         Update comments to reflect usage of this package by Nucleus.
2512
2513 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
2514
2515         * i-vxwork.ads: Kill new warning on Convention C, since changing the
2516         spec would break code.
2517
2518         * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
2519
2520         * system-vxworks-alpha.ads: Removed.
2521
2522 2007-12-10  Eric Botcazou  <ebotcazou@adacore.com>
2523
2524         * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
2525
2526 2007-12-09  Samuel Tardieu  <sam@rfc1149.net>
2527
2528         PR ada/34366
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.
2534
2535         * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
2536
2537 2007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>
2538
2539         PR ada/34361
2540         * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
2541         the new implementation of target-specific calls.
2542
2543 2007-12-07  Olivier Hainque  <hainque@adacore.com>
2544
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.
2548         
2549 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
2550
2551         PR ada/15805
2552         * sem_ch6.adb (Process_Formals): Prevent an access type formal
2553         to be initialized with an access to constant object.
2554
2555         * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
2556         when an access to constant is used to initialize an access
2557         value.
2558
2559         PR ada/21346
2560         * a-direct.adb (Compose): Containing_Directory can be an empty string.
2561
2562 2007-12-07  Olivier Hainque  <hainque@adacore.com>
2563
2564         PR ada/34173
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.
2572
2573 2007-12-06  Eric Botcazou  <ebotcazou@adacore.com>
2574
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.
2578
2579 2007-12-05  Eric Botcazou  <ebotcazou@adacore.com>
2580
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.
2587
2588 2007-12-05  Samuel Tardieu  <sam@rfc1149.net>
2589
2590         PR ada/21489
2591         * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
2592         parameters of an entry call.
2593
2594 2007-12-03  Robert Dewar  <dewar@adacore.com>
2595             Samuel Tardieu  <sam@rfc1149.net>
2596
2597         PR ada/34287
2598         * sem_util.adb (Safe_To_Capture_Value): Do not capture values
2599         of variables declared in a library-level package.
2600     
2601 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
2602
2603         * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
2604         of Empty_String'Unchecked_Access.
2605
2606         * Makefile.in: Add support for sh4-linux.
2607
2608         * system-linux-sh4.ads: New file.
2609
2610 2007-12-01  Kostik Belousov  <kostikbel@ukr.net>
2611
2612         PR ada/33722
2613         * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
2614         and its argument must not be free()ed.
2615
2616 2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
2617
2618         * decl.c (make_packable_type): Retrieve the real name of the type.
2619         (maybe_pad_type): Simplify similar code.
2620
2621 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
2622
2623         PR ada/15804
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.
2626
2627         PR ada/17318
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.
2631
2632         * sem-attr.adb (Analyze_Attribute): Parameterless attributes
2633         returning a string or a type will not be called with improper
2634         arguments.
2635
2636         * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
2637
2638         * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
2639
2640         PR ada/32792
2641         * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
2642         Signal an error when attribute argument is a fixed-point value of
2643         an unknown type.
2644
2645         PR ada/22559
2646         * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
2647         a derived ordinary fixed point type.
2648
2649         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
2650         RM_Size when a Small clause is found.
2651
2652 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
2653
2654         PR 34081/C++
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.
2658
2659 2007-11-25  Richard Guenther  <rguenther@suse.de>
2660
2661         * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
2662         (gnat_poplevel): Likewise.
2663
2664 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
2665
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
2671         that of the type.
2672         (validate_size): Use the type size as the minimum size for a type with
2673         strict alignment.
2674
2675 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
2676
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.
2682
2683 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
2684
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.
2688
2689 2007-11-22  Olivier Hainque  <hainque@adacore.com>
2690
2691         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
2692         to fit in 80 columns.
2693
2694 2007-11-21  Aurelien Jarno  <aurelien@aurel32.net>
2695
2696         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
2697         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
2698
2699 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
2700
2701         PR ada/34098
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.
2712
2713 2007-11-16  Olivier Hainque  <hainque@adacore.com>
2714
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
2717         here to ...
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.
2720         
2721 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
2722
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
2725         address expression.
2726
2727 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
2728
2729         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
2730         sections of non-supported Interix target.
2731
2732         * s-osinte-interix.ads: Removed.
2733
2734         * i-cstrin.ads (chars_ptr): Make it a C convention type.
2735
2736 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
2737
2738         * a-tasatt.adb: Add a comment at the beginning of the package
2739         explaining why in general 'Unchecked_Access must be used instead
2740         of 'Access.
2741
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
2745         through renamings.
2746
2747 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
2748
2749         * a-tasatt.adb: Revert previous change for this file as it will
2750         generate an error when this package is instantiated from a
2751         local context.
2752
2753 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
2754
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.
2760
2761         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
2762         applicable.
2763         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
2764         access type.
2765         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
2766         access type.
2767
2768         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
2769         applicable.
2770         (elaboration code): Timer_Queue lifetime is the one of the
2771         package.
2772
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.
2776
2777         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
2778         embedded check for "Ada_Version >= Ada_05".
2779
2780 2007-11-07  Olivier Hainque  <hainque@adacore.com>
2781
2782         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
2783         craft and expand comment.
2784
2785 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
2786
2787         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
2788
2789 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
2790
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.
2797
2798 2007-10-23  Richard Guenther  <rguenther@suse.de>
2799
2800         PR bootstrap/33608
2801         * tracebak.c: #undef abort after including system.h.
2802
2803 2007-10-20  Danny Smith  <dannysmith@users.sourceforge.net>
2804
2805         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
2806         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
2807         for win32 targets.
2808         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
2809
2810 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
2811
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.
2814
2815         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
2816
2817         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
2818         (Exit_Task): Pass False to Hide_Yellow_Zone.
2819
2820 2007-10-15  Robert Dewar  <dewar@adacore.com>
2821
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:
2838         Minor reformatting.
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.
2843
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.
2850
2851 2007-10-15  Geert Bosch  <bosch@adacore.com>
2852
2853         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
2854
2855         * expect.c: Initial port to arm-mentor-nucleus.
2856         Use kill for __gnat_kill() on VMS.
2857
2858 2007-10-15  Emmanuel Briot  <briot@adacore.com>
2859
2860         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
2861         value.
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
2864         to 0.
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.
2870
2871 2007-10-15  Tristan Gingold  <gingold@adacore.com>
2872
2873         * debug.adb: Document use of -gnatd.a and -gnatd.I
2874
2875         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
2876
2877 2007-10-15  Javier Miranda  <miranda@adacore.com>
2878
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.
2885
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.
2890
2891 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
2892
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.
2898
2899 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
2900
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.
2904
2905 2007-10-15  Thomas Quinot  <quinot@adacore.com>
2906
2907         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
2908         attempt to generate stubs for hidden primitive operations.
2909
2910 2007-10-15  Vincent Celier  <celier@adacore.com>
2911
2912         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
2913         returning None, used when there is no platform specific body for
2914         MLib.Tgt.Specific.
2915
2916 2007-10-15  Bob Duff  <duff@adacore.com>
2917
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.
2921
2922 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
2923             Jose Ruiz  <ruiz@adacore.com>
2924
2925         * vx_stack_info.c: New file.
2926
2927         * i-forbla-unimplemented.ads: New file.
2928
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
2931         real one.
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.
2937
2938         * Make-lang.in: Update dependencies.
2939
2940         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
2941         (vx_stack_info.c).
2942
2943 2007-10-15  Vincent Celier  <celier@adacore.com>
2944
2945         * snames.adb, snames.ads: Add new standard name runtime_library_dir
2946
2947         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
2948
2949         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
2950
2951         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
2952         the source is unknown.
2953
2954         * prj-ext.adb: Spelling error fix
2955
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.
2960
2961         * prj-part.adb (Parse_Single_Project): Do not check the name of the
2962         config project against the user project names.
2963
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
2968         detected.
2969
2970         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
2971         True, compare both indexes in lower case.
2972
2973 2007-10-15  Robert Dewar  <dewar@adacore.com>
2974
2975         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
2976
2977 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
2978
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).
2986
2987 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
2988
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
2992         declarations.
2993
2994 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
2995
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.
2999
3000 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
3001
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.
3007
3008 2007-10-15  Tristan Gingold  <gingold@adacore.com>
3009
3010         * system-vms-ia64.ads: New file.
3011
3012         * system-vms_64.ads: Minor comment fix.
3013
3014 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
3015
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
3019         one.
3020
3021 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
3022
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.
3026
3027 2007-10-15  Olivier Hainque  <hainque@adacore.com>
3028
3029         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
3030         instead of a procedure value in each traceback entry.
3031
3032         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
3033         instead of procedure value to TBK$SYMBOLIZE.
3034
3035         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
3036         field.
3037         (TB_Entry_For): Account for the PV/FP renaming.
3038
3039         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
3040         add comment.
3041         (Null_TB_Entry): Account for change of component name.
3042         (PV_For): Rename as FP_For.
3043
3044 2007-10-15  Tristan Gingold  <gingold@adacore.com>
3045
3046         * trans.c (gnat_to_gnu): Remove the padding structure more often.
3047         This optimize assignment to over-aligned record.
3048
3049 2007-10-15  Emmanuel Briot  <briot@adacore.com>
3050
3051         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
3052         interfaces.
3053
3054         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
3055         type, for dispatching calls.
3056
3057 2007-10-15  Vincent Celier  <celier@adacore.com>
3058             Robert Dewar  <dewar@adacore.com>
3059
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.
3063         Document -gnatw.o.
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
3069         on iVMS.
3070
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.
3074
3075 2007-10-15  Thomas Quinot  <quinot@adacore.com>
3076
3077         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
3078
3079         * gen-soccon.c: 
3080         Update documentation to note that OpenVMS 8.3 or later must be used
3081         to generate g-soccon-vms.ads.
3082
3083         * atree.adb: Add ??? comment
3084
3085         * exp_util.adb: Minor reformatting.
3086         Add ??? comment in Kill_Dead_Code.
3087
3088 2007-10-15  Robert Dewar  <dewar@adacore.com>
3089
3090         * errout.ads: Comment clarification
3091
3092         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
3093         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
3094
3095         * lib.ads: Comment update
3096
3097         * init.c: Minor reformatting.
3098
3099         * sem_attr.adb: Minor formatting
3100
3101         * osint-b.ads: Minor reformatting
3102
3103         * sem_ch9.adb: Implement -gnatd.I switch
3104
3105         * g-comlin.adb: (Start): Fix handling of empty command line.
3106
3107         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
3108         even when -rules follows the -cargs section.
3109
3110 2007-10-08  Ollie Wild  <aaw@google.com>
3111
3112         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
3113         gnat_return_tree.
3114         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
3115         gnat_return_tree.
3116         (gnat_eh_runtime_type): Removed.
3117         (gnat_return_tree): New function.
3118
3119 2007-10-08  Ben Elliston  <bje@au.ibm.com>
3120
3121         PR ada/33454
3122         Revert:
3123         2007-08-31  Ben Elliston  <bje@au.ibm.com>
3124
3125         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
3126         when compiling for powerpc64-*-linux.
3127         * system-linux-ppc64.ads: New file.
3128
3129 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
3130
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.
3154
3155 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
3156
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.
3163
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.
3167
3168 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
3169
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.
3175
3176         * bindgen.adb: 
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".
3185
3186         * init.c: Add __gl_leap_seconds_support to the list of global values
3187         computed by the binder.
3188
3189 2007-09-26  Jerome Guitton  <guitton@adacore.com>
3190
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.
3195
3196         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
3197
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.
3202
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.
3206
3207 2007-09-26  Olivier Hainque  <hainque@adacore.com>
3208
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.
3213
3214         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
3215         #include <sys/wait.h>.
3216
3217 2007-09-26  Thomas Quinot  <quinot@adacore.com>
3218             Sergey Rybin  <rybin@adacore.com>
3219
3220         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
3221
3222         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
3223         where it belongs.
3224
3225         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
3226
3227         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
3228         where it belongs.
3229
3230         * sem_dist.ads: Minor comment fix
3231
3232         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
3233
3234 2007-09-26  Javier Miranda  <miranda@adacore.com>
3235             Eric Botcazou  <ebotcazou@adacore.com>
3236
3237         * a-tags.adb: 
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.
3241
3242         * a-tags.ads: 
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.
3246
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
3251         as read-only.
3252
3253         * trans.c (Identifier_to_gnu): For constants, unshare initializers
3254         before returning them.
3255
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.
3266
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.
3273
3274 2007-09-26  Robert Dewar  <dewar@adacore.com>
3275
3276         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
3277         overlays.
3278
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
3284         components.
3285         (Analyze_Record_Representation_Clause): Add reference for component name
3286
3287 2007-09-26  Javier Miranda  <miranda@adacore.com>
3288             Gary Dismukes  <dismukes@adacore.com>
3289
3290         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
3291         for thunks associated with interface types.
3292
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).
3299
3300         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
3301
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.
3310
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.
3315         
3316         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
3317         N_Function_Call nodes.
3318
3319 2007-09-26  Robert Dewar  <dewar@adacore.com>
3320
3321         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
3322
3323         * debug.adb: Add d.s flag.
3324
3325 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
3326
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.
3330
3331 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
3332
3333         * freeze.adb (Freeze_Entity): Remove check for preelaborable
3334         initialization of a full view. This is moved to
3335         Analyze_Package_Specification.
3336
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.
3341
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
3351         type.
3352
3353 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
3354
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.
3362
3363         * g-calend.ads (Week_In_Year): Change comment to reflect new
3364         implementation.
3365
3366 2007-09-26  Emmanuel Briot  <briot@adacore.com>
3367
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
3374         -gnatwbcef...)
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
3378         command line.
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.
3397
3398 2007-09-26  Florian Villoing  <villoing@adacore.com>
3399
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.
3404
3405 2007-09-26  Vincent Celier  <celier@adacore.com>
3406
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
3412
3413 2007-09-26  Vincent Celier  <celier@adacore.com>
3414
3415         * gnatcmd.adb (Check_Files): Do not include sources that have been
3416         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
3417
3418 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
3419
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.
3423
3424 2007-09-26  Vincent Celier  <celier@adacore.com>
3425
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.
3431
3432         (Gnatmake): If project files are used, create the mapping of all the
3433         sources, so that the correct paths will be found.
3434
3435         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
3436
3437 2007-09-26  Vincent Celier  <celier@adacore.com>
3438
3439         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
3440
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
3444         Language_Config.
3445         Remove components Default_Language and Config in Project_Tree_Data,
3446         no longer used.
3447
3448         * prj-attr.adb: New attributes Required_Switches (<language>) in
3449         packages Compiler and Binder.
3450
3451         * prj-nmsc.adb: Major rewrite of the processing of configuration
3452         attributes for gprbuild. No impact on GNAT tools.
3453
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
3461
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.
3464
3465 2007-09-26  Vincent Celier  <celier@adacore.com>
3466
3467         * Make-lang.in: Update dependencies..
3468
3469 2007-09-26  Vincent Celier  <celier@adacore.com>
3470
3471         * osint.adb, osint.ads: Minor reformatting
3472
3473         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
3474
3475 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
3476
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.
3480
3481 2007-09-26  Robert Dewar  <dewar@adacore.com>
3482
3483         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
3484         Address_Taken.
3485
3486 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
3487
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.
3493
3494 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
3495
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.
3499
3500 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
3501
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
3504         navigation.
3505         (Valid_Conversion): A tagged conversion is legal if both operands are
3506         tagged.
3507
3508 2007-09-26  Robert Dewar  <dewar@adacore.com>
3509
3510         * sem_warn.adb (Check_References): Catch more cases of unreferenced
3511         packages.
3512
3513 2007-09-26  Vincent Celier  <celier@adacore.com>
3514
3515         * snames.adb, snames.ads: Change Include_Option to Include_Switches
3516
3517 2007-09-26  Robert Dewar  <dewar@adacore.com>
3518
3519         * s-wchstw.adb: provide messages for run time unit exceptions
3520
3521         * a-witeio.adb: Minor reformatting
3522
3523         * exp_ch13.adb: Minor reformatting
3524
3525 2007-09-26  Sergey Rybin  <rybin@adacore.com>
3526
3527         * vms_data.ads: Revise gnatmetric qualifiers.
3528         Add qualified for the new gnatbind option '-y'
3529
3530         * gnat_ugn.texi: Revise the gnatmetric section.
3531         Add entry for new gnatbind option '-y'.
3532
3533         * gnat_rm.texi: Minor spelling correction.
3534         Document restriction on overlaying controlled types
3535
3536 2007-09-26  Vincent Celier  <celier@adacore.com>
3537
3538         * makegpr.adb (Link_Executables): Do not fail when the root project has
3539         no sources, but is an extending project.
3540
3541 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
3542
3543         * trans.c: Fix misplaced #define.
3544
3545 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
3546
3547         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
3548         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
3549
3550 2007-09-21  Olivier Hainque  <hainque@adacore.com>
3551
3552         * utils.c (type_for_nonaliased_component_p): Return false for
3553         all AGGREGATE_TYPEs.
3554
3555 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
3556
3557         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
3558         object covered by 13.3(19) volatile.
3559
3560 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
3561
3562         PR ada/26797
3563         PR ada/32407
3564         * utils.c (unchecked_convert): Use a subtype as the intermediate type
3565         in the special VIEW_CONVERT_EXPR case.
3566
3567 2007-09-12  Robert Dewar  <dewar@adacore.com>
3568
3569         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
3570
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.
3589
3590 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
3591
3592         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
3593         a box need not correspond to any component.
3594
3595 2007-09-12  Robert Dewar  <dewar@adacore.com>
3596
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.
3600
3601         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
3602
3603 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
3604
3605         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
3606         the usage of switch -y.
3607
3608         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
3609         when switch -y is present.
3610
3611         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
3612         leap seconds in Ada.Calendar and its children.
3613
3614 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
3615
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.
3619
3620 2007-09-12  Robert Dewar  <dewar@adacore.com>
3621
3622         * a-swuwha.adb: Remove junk RM header
3623
3624 2007-09-12  Vincent Celier  <celier@adacore.com>
3625
3626         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
3627         indicator
3628
3629         * g-bytswa.ads: Minor reformatting
3630
3631 2007-09-12  Thomas Quinot  <quinot@adacore.com>
3632
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.
3637
3638 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
3639
3640         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
3641         Added renames for corresponding functions in System.Partition_Interface.
3642
3643 2007-09-12  Doug Rupp  <rupp@adacore.com>
3644
3645         * Makefile.in: Remove VMS specific System.CRTL packages which are no
3646         longer needed.
3647
3648         * s-crtl-vms64.ads: Removed.
3649
3650 2007-09-12  Olivier Hainque  <hainque@adacore.com>
3651
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.
3655
3656 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
3657
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.
3666
3667 2007-09-11  Javier Miranda  <miranda@adacore.com>
3668
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.
3672
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.
3680
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.
3687
3688 2007-09-11  Jan Hubicka  <jh@suse.cz>
3689
3690         * misc.c (gnat_expand_body): Kill.
3691         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
3692
3693 2007-09-10  Robert Dewar  <dewar@adacore.com>
3694
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.
3778
3779 2007-09-10  Emmanuel Briot  <briot@adacore.com>
3780
3781         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
3782         classes ("[]").
3783
3784 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
3785
3786         * adaint.c (__gnat_translate_vms): new function.
3787
3788 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
3789             Thomas Quinot  <quinot@adacore.com>
3790
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
3801         return statement.
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).
3807
3808 2007-09-10  Vincent Celier  <celier@adacore.com>
3809
3810         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
3811         parameter Runtime_Project.
3812
3813 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
3814
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
3819         been supplied.
3820
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
3827         hidden.
3828
3829 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
3830
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.
3834
3835 2007-09-10  Sergey Rybin  <rybin@adacore.com>
3836
3837         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
3838
3839 2007-09-10  Sergey Rybin  <rybin@adacore.com>
3840
3841         * gnat_ugn.texi: Add description of the new '-lratio' option
3842         Update 7.3.1 section about availability of the feature.
3843
3844 2007-09-10  Thomas Quinot  <quinot@adacore.com>
3845
3846         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
3847         inserted node.
3848
3849 2007-09-10  Olivier Hainque  <hainque@adacore.com>
3850
3851         * Makefile.in: (mips-irix section): Activate build of libgmem.
3852
3853 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
3854
3855         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
3856         x87 registers.
3857
3858 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
3859
3860         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
3861         a debug renaming declaration specially.
3862
3863 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
3864
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>