OSDN Git Service

2008-04-07 Aurelien Jarno <aurelien@aurel32.net>
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
2
3         * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
4         detect systems using GNU libc.
5         * gsocket.h: ditto.
6         * socket.c: ditto.
7         * adaint.c: ditto.
8         * link.c: ditto.
9
10 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
11
12         * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New 
13         constant constant for sysconf call.
14         (bit_field): New packed boolean type used by cpu_set_t.
15         (cpu_set_t): New type corresponding to the C type with
16         the same name. Note that on the Ada side we use a bit
17         field array for the affinity mask. There is not need
18         for the C macro for setting individual bit.
19         (pthread_setaffinity_np): New imported routine.
20         * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
21         on GNU/kFreeBSD.
22
23 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
24
25         * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
26
27 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
28
29         * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
30         * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
31         * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
32         * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
33         Return by Depressed Stack Pointer.
34
35 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
36
37         * decl.c (is_variable_size): Do not unconditionally return false
38         on non-strict alignment platforms.
39
40 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
41
42         * decl.c (rest_of_type_decl_compilation_no_defer): New local function
43         used to process all the variants of the specified type.
44         (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
45         types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
46         (rest_of_type_decl_compilation): Likewise.
47         * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
48
49 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
50
51         * gigi.h (insert_block): Kill.
52         * utils.c (insert_block): Kill.
53
54 2008-04-02  Eric Botcazou  <ebotcazou@adacore.com>
55
56         * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
57         type has self-referential size, get the size from the initializing
58         expression directly if it is also a constant whose nominal type
59         has self-referential size.
60
61 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
62
63         PR ada/33688
64         * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
65
66         PR ada/33857
67         * env.c: Always include crt_externs.h if __APPLE__ is defined.
68         (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
69
70 2008-04-01  Andreas Jaeger  <aj@suse.de>
71
72         * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
73         IP_PKTINFO.
74
75 2008-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
76
77         * g-table.adb, g-tasloc.adb, g-traceb.ads,
78         g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
79         gnatbind.adb, gnatchop.adb, gnatcmd.adb,
80         gnatcmd.ads, gnatdll.adb, gnatfind.adb,
81         gnatlink.adb, gnatmem.adb, gprep.adb,
82         i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
83         i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
84         layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
85         lib-xref.ads, lib.adb, link.c, live.ads,
86         make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
87         mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
88         misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
89         mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
90         namet.adb, namet.h, nlists.adb, nlists.ads,
91         nlists.h, opt.ads, osint-b.ads, osint-c.adb,
92         osint-c.ads, osint.adb, osint.ads, output.ads,
93         par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
94         par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
95         par-endh.adb, par-labl.adb, par-prag.adb,
96         par-sync.adb, par-tchk.adb, par-util.adb,
97         par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
98         prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
99         prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
100         prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
101
102 2008-03-31  Eric Botcazou  <ebotcazou@adacore.com>
103
104         * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
105         size if it has overflowed.
106
107 2008-03-31  Olivier Hainque  <hainque@adacore.com>
108             Eric Botcazou  <ebotcazou@adacore.com>
109
110         * utils2.c (find_common_type): Document assumption on t1/t2 vs
111         lhs/rhs. Force use of lhs type if smaller, whatever the modes.
112
113 2008-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
114
115         * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
116         einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
117         exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
118         exp_pakd.ads, exp_prag.adb, exp_smem.adb,
119         exp_tss.ads, exp_util.adb, exp_util.ads,
120         exp_vfpt.adb, freeze.adb, freeze.ads,
121         frontend.adb, g-alleve.adb, g-altcon.adb,
122         g-altive.ads, g-alveop.ads, g-alvevi.ads,
123         g-arrspl.adb, g-busorg.ads, g-calend.adb,
124         g-calend.ads, g-casuti.ads, g-cgideb.adb,
125         g-comlin.adb, g-comlin.ads, g-curexc.ads,
126         g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
127         g-dirope.adb, g-dirope.ads, g-dynhta.ads,
128         g-dyntab.adb, g-encstr.ads, g-excact.ads,
129         g-except.ads, g-expect.ads, g-heasor.adb,
130         g-hesora.adb, g-hesorg.adb, g-htable.ads,
131         g-locfil.ads, g-md5.adb, g-md5.ads,
132         g-memdum.ads, g-moreex.ads, g-os_lib.adb,
133         g-pehage.adb, g-pehage.ads, g-regexp.adb,
134         g-regexp.ads, g-regpat.adb, g-regpat.ads,
135         g-soccon-aix.ads, g-soccon-darwin.ads,
136         g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
137         g-soccon-hpux.ads, g-soccon-irix.ads,
138         g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
139         g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
140         g-soccon-mingw.ads, g-soccon-solaris-64.ads,
141         g-soccon-solaris.ads, g-soccon-tru64.ads,
142         g-soccon-vms.ads, g-soccon-vxworks.ads,
143         g-soccon.ads, g-socket.adb, g-socket.ads,
144         g-socthi-mingw.adb, g-socthi-vms.adb,
145         g-socthi-vxworks.adb, g-soliop-mingw.ads,
146         g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
147         g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
148         typos.
149
150 2008-03-27  Eric Botcazou  <ebotcazou@adacore.com>
151
152         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
153         if the procedure is imported.
154
155 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
156
157         * adaint.c: Fix warnings.
158
159 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
160
161         * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
162
163 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
164
165         * a-witeio.adb: Fix problem with Current_Output (introduce Self).
166         Fix problem of status check for null file
167
168 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
169
170         * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
171         s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
172         s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
173         i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
174         s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
175         comments.
176
177 2008-03-26  Thomas Quinot  <quinot@adacore.com>
178
179         PR ada/33688
180         * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
181         Get_Socket_Option): Add support for Receive_Packet_Info.
182
183         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
184         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
185         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
186         g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
187         g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
188         new constants SO_REUSEPORT and IP_PKTINFO
189
190 2008-03-26  Robert Dewar  <dewar@adacore.com>
191
192         * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
193         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
194         a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
195         a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
196         a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
197         a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
198         s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
199         s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
200         a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
201         s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
202         s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
203         s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
204         s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
205         s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
206         s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
207         s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
208         s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
209         s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
210         s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
211         s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
212         a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
213         a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
214         s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
215         s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
216         s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
217         s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
218         s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
219         a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
220         a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
221         s-tasloc.adb: Minor reformatting.
222         Update comments.
223         Remove "used for" sections from comments.
224
225 2008-03-26  Robert Dewar  <dewar@adacore.com>
226
227         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
228         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
229         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
230         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
231         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
232         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
233         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
234         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
235         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
236         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
237         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
238         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
239         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
240         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
241         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
242         double spaced if it fits on one line and otherwise single spaced.
243
244 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
245
246         * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb, 
247         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb, 
248         s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
249         or task info if the thread could not be created.
250
251 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
252
253         * gnatvsn.ads (Library_Version): Bump to 4.4.
254         (Current_Year): Bump to 2008.
255
256 2008-03-26  Robert Dewar  <dewar@adacore.com>
257
258         * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
259
260         * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
261
262         * debug.adb: Add debug flags d.r and d.v
263         Add debug flag .T (Optimize_Alignment (Time))
264         Add debug flag .S (Optimize_Alignment (Space))
265
266         * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
267         depending on setting of relevant debug flags.
268         Replace use of Warnings_Off by Has_Warnings_Off
269         (Freeze_Entity): In circuit for warning on suspicious convention
270         actuals, do not give warning if subprogram has same entity as formal
271         type, or if subprogram does not come from source.
272         (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
273         if Optimize_Alignment set to Space.
274
275         * frontend.adb: Add call to Sem_Warn.Initialize
276         Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
277         Reset Optimize_Alignment mode from debug switches .S and .T
278
279         * layout.adb (Layout_Composite_Object): Rewritten for
280         Optimize_Aligment pragma.
281
282         * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
283         mode.
284
285         * opt.ads, opt.adb: (Optimize_Alignment): New global switch
286
287         * par-prag.adb (N_Pragma): Chars field removed, use Chars
288         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
289         this change. Add entry for pragma Optimize_Alignment
290
291         * sem_prag.adb (N_Pragma): Chars field removed, use Chars
292         (Pragma_Identifier (..
293         instead, adjustments throughout to accomodate this change.
294         (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
295         (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
296         Add implementation of pragma Optimize_Alignment
297
298 2008-03-26  Vincent Celier  <celier@adacore.com>
299
300         * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
301         Improve memory usage to avoid use of stack.
302
303 2008-03-26  Robert Dewar  <dewar@adacore.com>
304
305         * a-teioed.ads: Correct value of Default_Fill
306
307         * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
308
309 2008-03-26  Robert Dewar  <dewar@adacore.com>
310
311         * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
312         with Current_Output (introduce Self).
313
314 2008-03-26  Robert Dewar  <dewar@adacore.com>
315
316         * checks.adb (Ensure_Valid): Capture valid status if possible
317         (eliminate checks)
318
319 2008-03-26  Robert Dewar  <dewar@adacore.com>
320
321         * stand.ads: Deal with reordering of package standard declarations
322
323         * cstand.adb: Put package Standard declarations in proper order
324
325 2008-03-26  Robert Dewar  <dewar@adacore.com>
326
327         * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
328         (Pragma_Identifier (.. instead.
329         (OK_To_Reorder_Components): New flag
330         (Has_Entries): Code cleanup.
331         (Warnings_Off_Used): New flag
332         (Warnings_Off_Used_Unmodified): New flag
333         (Warnings_Off_Used_Unreferenced): New flag
334         (Has_Warnings_Off): New function
335         (Has_Unmodified): New function
336         (Has_Unreferenced): New function
337         (Is_Trivial_Subprogram): New flag
338         (Is_Static_Dispatch_Table_Entity): New attribute.
339         Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
340         (more consistent with other similar names)
341         (Access_Subprogram_Type): New classification function
342
343 2008-03-26  Robert Dewar  <dewar@adacore.com>
344
345         * errout.ads: Document new !! insertion sequence
346
347         * errout.adb (N_Pragma): Chars field removed, use Chars
348         (Pragma_Identifier (..  instead.
349         Replace use of Warnings_Off by Has_Warnings_Off
350         (Error_Msg_Internal): Don't delete warning ending in !!
351
352 2008-03-26  Robert Dewar  <dewar@adacore.com>
353
354         * par.adb (Check_No_Right_Paren): Removed no longer used
355
356         * par-ch10.adb (N_Pragma): Chars field removed, use Chars
357         (Pragma_Identifier (..  instead.
358
359         * par-ch10.adb (P_Subunit): Improvement in error recovery and message
360
361         * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
362         par-ch4.adb: Minor improvements in error recovery and messages.
363
364         * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
365         non-serious
366
367         * par-ch9.adb: Minor improvements in error recovery and messages
368         (P_Protected): Better error recovery for "protected type x;"
369
370         * par-util.adb: Minor improvements in error recovery and messages
371         (Check_No_Right_Paren): Removed no longer used
372
373 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
374
375         * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
376         that the prefix of an attribute is the type of the aggregate being
377         expanded.
378
379 2008-03-26  Javier Miranda  <miranda@adacore.com>
380             Robert Dewar  <dewar@adacore.com>
381
382         * exp_attr.adb (N_Pragma): Chars field removed.
383         (Expand_N_Attribute_Reference): If the designated type associated with
384         attribute 'Unrestricted_Access is a subprogram entity then replace it
385         by an E_Subprogram_Type itype.
386         Implement attribute Old
387
388         * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
389
390         * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
391         Replace call to
392         New_Internal_Entity by call to Create_Itype to centralize calls
393         building itypes, ad propagate the convention of the designated
394         subprogram. In addition, disable the machinery cleaning constant
395         indications from all entities in current scope when 'Unrestricted_Access
396         corresponds with a node initializing a dispatch table slot.
397         (Analyze_Attribute): Parameterless attributes returning a string or a
398         type will not be called with improper arguments, so we can remove junk
399         code that was dealing with this case.
400         Implement attribute Old
401
402         * snames.ads, snames.h, snames.adb: Add entries for attribute Old
403         Add entry for pragma Optimize_Alignment
404         New standard names Sync and Synchronize
405
406 2008-03-26  Robert Dewar  <dewar@adacore.com>
407             Arnaud Charlet  <charlet@adacore.com>
408
409         * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
410         stmt.
411         (No_Exception_Propagation_Active): New function.
412         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
413         Update comments, and review all uses of No_Exception_Propagation, which
414         are now correct and in sync with what gigi expects.
415
416         * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
417         function.
418         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
419         Update comments, and review all uses of No_Exception_Propagation, which
420         are now correct and in sync with what gigi expects.
421
422 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
423
424         * sem_ch3.adb (Access_Definition): If the access type is the return
425         result of a protected function, create an itype reference for it
426         because usage will be in an inner scope from the point of declaration.
427         (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
428         OK_To_Reorder_Components.
429         (Make_Index): If an overloaded range includes a universal integer
430         interpretation, resolve to Standard.Integer.
431         (Analyze_Subtype_Indication): Copy Convention to subtype
432         (Check_Abstract_Interfaces): Complete semantic checks on the legality of
433         limited an synchronized progenitors in type declaration and private
434         extension declarations.
435
436         * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
437         protected subprogram body, determine proper scope from subprogram
438         declaration.
439
440 2008-03-26  Robert Dewar  <dewar@adacore.com>
441
442         * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
443         No_Run_Time_Mode
444
445 2008-03-26  Gary Dismukes  <dismukes@adacore.com>
446
447         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
448         of a heap allocator for a limited unconstrained function return when
449         resstriction No_Allocators is active.
450         (Analyze_Allocator): The restriction No_Allocators is now only checked
451         on allocators that have Comes_From_Source set, as per RM-H.4(7).
452
453         * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
454         of a heap allocator for a limited unconstrained function return when
455         resstriction No_Allocators is active.
456         (Analyze_Allocator): The restriction No_Allocators is now only checked
457         on allocators that have Comes_From_Source set, as per RM-H.4(7).
458         (Has_Fixed_Op):  If the name in a function call is Standard."*" and the
459         operands are fixed-point types, the universal_fixed predefined operation
460         is used, regardless of whether the operand type (s) have a primitive
461         operation of the same name.
462
463 2008-03-26  Javier Miranda  <miranda@adacore.com>
464
465         * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
466         Is_Static_Dispatch_Table
467         (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
468         to Exchange_Declarations to exchange the private and full-view. Bug
469         found working in this issue.
470         (Expand_Dispatching_Call): Propagate the convention of the subprogram
471         to the subprogram pointer type.
472         (Make_Secondary_DT): Replace generation of Prim'Address by
473         Address (Prim'Unrestricted_Access)
474         (Make_DT): Replace generation of Prim'Address by
475         Address (Prim'Unrestricted_Access)
476         (Make_Disp_*_Bodies): When compiling for a restricted profile, use
477         simple call form for single entry.
478         (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
479         tables of predefined primitives).
480         (Make_Secondary_DT): Add support to handle access to dispatch tables of
481         predefined primitives.
482         (Make_Tags): Add entities to Access_Dispatch_Table associated with
483         access to dispatch tables containing predefined primitives.
484
485         * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
486         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
487         this change.
488         (Register_Predefined_DT_Entry): Updated to handle the new contents
489         of attribute Access_Disp_Table (pointers to dispatch tables containing
490         predefined primitives).
491
492         * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
493         subprogram.
494         (Find_Interface_ADT): Updated to skip the new contents of attribute
495         Access_Dispatch_Table (pointers to dispatch tables containing predefined
496         primitives).
497
498         * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
499         concurrent types.
500         (Set_Convention): Use new function Is_Access_Subprogram_Type
501         (Collect_Interfaces_Info): Updated to skip the new contents of attribute
502         Access_Dispatch_Table (pointers to dispatch tables containing predefined
503         primitives).
504
505         * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
506         expanded code avoiding calls to Build_Predef_Prims.
507         (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
508         call to Build_Get_Predefined_Prim_Op_Address.
509
510 2008-03-26  Javier Miranda  <miranda@adacore.com>
511
512         * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
513         subprogram Corresponding_Runtime_Package to know the runtime package
514         that will provide support to a given protected type.
515
516         * exp_ch9.adb (Add_Private_Declarations,
517         Build_Protected_Subprogram_Call,
518         Build_Protected_Entry, Build_Simple_Entry_Call,
519         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
520         Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
521         cleanup using the new centralized subprogram Corresponding_Runtime
522         Package to know the runtime package that provides support to
523         a given protected type.
524
525 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
526
527         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
528         assignment is within the initialization procedure for a packed array,
529         and Initialize_Scalars is enabled, compile right-hand side with checks
530         off, because the value is purposely out of range.
531
532 2008-03-26  Vincent Celier  <celier@adacore.com>
533
534         * gnatcmd.adb: Add processing for GNAT SYNC
535
536         * vms_conv.ads: (Command_Type): Add command Sync
537
538         * vms_conv.adb (Initialize): Add Command_List data for new command Sync
539
540         * vms_data.ads: Add entries for -gnatw.w
541         Add qualifier for gnatstub --header-file option
542         Add switches for GNAT SYNC
543
544         * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
545         (Add_Package_Name): New procedure
546         (Package_Name_List): New function
547         (Initialize): Add known package names to the list
548         (Register_New_Package): Add the new package name to the list
549
550 2008-03-26  Robert Dewar  <dewar@adacore.com>
551
552         * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
553         s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
554         Raise_Exception by "raise with" construct.
555
556 2008-03-26  Pascal Obry  <obry@adacore.com>
557
558         * Makefile.in: Add proper GNAT.Serial_Communications implementation on
559         supported platforms.
560         
561         * Makefile.rtl: Add g-sercom.o.
562         
563         * impunit.adb: Add g-sercom.adb.
564         
565         * s-crtl.ads (open): New routine.
566         (close): Likewise.
567         (write): Likewise.
568         
569         * s-osinte-mingw.ads (BYTE): New type.
570         (CHAR): Likewise.
571         (OVERLAPPED): Likewise.
572         (GENERIC_READ): New constant.
573         (GENERIC_WRITE): Likewise.
574         (OPEN_EXISTING): Likewise.
575         (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
576         type instead.
577         (CreateFile): New routine.
578         (WriteFile): Likewise.
579         (ReadFile): Likewise.
580         (CloseHandle): Move next to the other file oriented routines.
581
582         * g-sercom.ads: New unit.
583
584         * g-sercom.adb: Default implementation, calls to this unit will raise
585         a program error exception.
586         
587         * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
588         GNU/Linux implementations.
589
590 2008-03-26  Robert Dewar  <dewar@adacore.com>
591
592         * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
593
594         * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
595         unchecked conversion for different conventions only for subprogram
596         pointers or on VMS.
597
598 2008-03-26  Vincent Celier  <celier@adacore.com>
599
600         * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
601         to check if the specified object file is correct.
602
603 2008-03-26  Thomas Quinot  <quinot@adacore.com>
604
605         * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
606         Comes_From_Source to exclude primitives from being checked. We want to
607         exclude predefined primitives only, so use the appropriate specific
608         predicate. Also, flag a formal parameter of an anonymous
609         access-to-subprogram type as illegal for a primitive operation of a
610         remote access to class-wide type.
611
612 2008-03-26  Vincent Celier  <celier@adacore.com>
613
614         * prj-dect.adb (Parse_Package_Declaration): When a package name is not
615         known, check if it may be a missspelling of a known package name. In
616         not verbose, not mode, issue warnings only if the package name is a
617         possible misspelling.
618         In verbose mode, always issue a warning for a not known package name,
619         plus a warning if the name is a misspelling of a known package name.
620
621         * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
622         limited withs or limited withs are parse during one call.
623         (Parse_Single_Project): Post parse context clause in two passes: non
624         limited withs before current project and limited withs after current
625         project.
626
627         * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
628         project with the name With_Name, even if it is only extended indirectly.
629         (Recursive_Process): Process projects in order: first single withs, then
630         current project, then limited withs.
631
632         * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
633         project with the name With_Name, even if it is only extended indirectly.
634
635 2008-03-26  Robert Dewar  <dewar@adacore.com>
636
637         * scn.adb (Initialize_Scanner): Format messages belong on standard error
638
639 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
640
641         * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
642         a generic subprogram that is imported, do not attempt to compile
643         non-existent body.
644
645         * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
646         imported, do not generate a raise_program_error for the non-existent
647         body.
648         (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
649         perform minimal name resolution on the generic to avoid spurious
650         warnings.
651         (Find_Actual_Type): the designated type of the actual in a child unit
652         may be declared in a parent unit without being an actual.
653
654 2008-03-26  Robert Dewar  <dewar@adacore.com>
655
656         * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
657         * sinfo.ads, sinfo.adb (From_At_End): New flag
658
659 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
660
661         * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
662         operations that have an interface parameter.
663         (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
664         Don't treat No_Return call as raise.
665
666         * sem_disp.adb (Check_Dispatching_Operations): apply check for
667         non-primitive interface primitives to access parameters, not to all
668         parameters of an access type.
669
670 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
671
672         * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
673         declarations of a parent unit are made visible when compiling a child
674         instance, the parent is not a hidden open scope, even though it may
675         contain other pending instance.
676         
677         * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
678         hidden open scope for some child instance, it does affect the
679         visibility status of other stach entries.
680         (Analyze_Object_Renaming): Check that a class-wide object cannot be
681         renamed as an object of a specific type.
682
683 2008-03-26  Robert Dewar  <dewar@adacore.com>
684
685         * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
686         recursion and raise SE directly.
687         (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
688         set for formal type for IN mode parameter.
689
690 2008-03-26  Robert Dewar  <dewar@adacore.com>
691
692         * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
693         (Initialize): New procedure
694         (Output_Warnings_Off_Warnings): New procedure
695         (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
696         (Output_Non_Modifed_In_Out_Warnings): Ditto
697         (Warn_On_Unreferenced_Entity): Ditto
698
699 2008-03-26  Vincent Celier  <celier@adacore.com>
700
701         * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
702         readable.
703
704 2008-03-26  Matthew Heaney  <heaney@adacore.com>
705
706         * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads, 
707         a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
708         Marked with clauses as private, and controlled operations as overriding
709
710 2008-03-26  Robert Dewar  <dewar@adacore.com>
711
712         * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
713
714 2008-03-26  Robert Dewar  <dewar@adacore.com>
715
716         * back_end.adb, back_end.ads: Minor reformatting
717
718         * bindgen.adb: Minor clarification of comments
719
720         * fname.ads: Minor comment fixes
721
722         * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
723         prj-nmsc.adb, sem_aggr.adb: Minor reformatting
724
725         * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
726         xsnames.adb: Remove warnings off pragma no longer needed
727
728         * a-catizo.ads, a-calari.ads, a-calfor.adb,
729         a-calfor.ads: Fix header.
730
731 2008-03-26  Tristan Gingold  <gingold@adacore.com>
732
733         * init.c: Do not adjust pc for HPARITH on alpha/vms.
734
735 2008-03-26  Robert Dewar  <dewar@adacore.com>
736
737         * lib-xref.adb: (OK_To_Set_Reference): New function
738         (Generate_Reference): Don't set referenced from occurrence in Warnings,
739         Unmodified, or Unreferenced pragma
740
741 2008-03-26  Robert Dewar  <dewar@adacore.com>
742
743         * alloc.ads: Add entries for Warnings_Off_Pragmas table
744
745 2008-03-26  GNAT Script  <nobody@adacore.com>
746
747         * Make-lang.in: Makefile automatically updated
748
749 2008-03-26  Robert Dewar  <dewar@adacore.com>
750
751         * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
752         par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
753         removed, use Chars (Pragma_Identifier (..  instead, adjustments
754         throughout to accomodate this change.
755
756         * s-pooglo.ads, s-pooloc.ads: Minor comment updates
757
758         * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
759         Einfo.Set_Needs_Debug_Info)
760
761 2008-03-26  Robert Dewar  <dewar@adacore.com>
762
763         * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
764         Add description for the new gnatstub option '--header-file'
765         clarification of -gnatwz/-gnatwZ
766         Add a "Irix-Specific Considerations" section to document the need to
767         set LD_LIBRARY_PATH when using the default shared runtime library.
768         Added documentation for both gcov and gprof.
769
770         * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
771         messages that are not suppressed when clients are compiled.
772         Add documentation of s-pooglo s-pooloc
773         Document the new GNAT.Serial_Communications API.
774         Add documentation for 'Old attribute
775         Add description of pragma Optimize_Alignment
776
777         * ug_words: Add entries for -gnatw.w -gnatw.W
778
779         * usage.adb: Add line for -gnatw.w (warn on warnings off)
780
781 2008-03-25  Eric Botcazou  <ebotcazou@adacore.com>
782
783         Revert
784         2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
785         PR ada/35186
786         * decl.c (maybe_pad_type): Avoid padding an integral type when
787         bumping its alignment is sufficient.
788
789 2008-03-25  Arnaud Charlet  <charlet@adacore.com>
790
791         * exp_ch6.adb, exp_disp.adb: Update copyright notice.
792         Fix wrong formatting (lines too long)
793
794 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
795
796         * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
797         a-calend-vms.adb, a-calend.adb, a-calend.ads,
798         a-calfor.adb, a-chahan.ads, a-chtgke.adb,
799         a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
800         a-cohama.ads, a-comlin.ads, a-coorse.adb,
801         a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
802         a-except-2005.ads, a-except.adb, a-except.ads,
803         a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
804         a-exextr.adb, a-filico.ads, a-finali.ads,
805         a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
806         a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
807         a-sequio.ads, a-strbou.ads, a-strfix.adb,
808         checks.adb, exp_ch3.adb, exp_ch4.adb,
809         exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
810         exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
811         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
812         exp_dbug.ads, exp_disp.adb, exp_dist.adb,
813         exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
814
815 2008-03-24  Robert Dewar  <dewar@adacore.com>
816
817         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
818         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
819         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
820         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
821         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
822         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
823         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
824         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
825         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
826         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
827         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
828         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
829         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
830         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
831         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
832         double spaced if it fits on one line and otherwise single spaced.
833
834 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
835
836         PR documentation/15479
837         * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
838         (doc/gnat_ugn_unw.texi): ... this, and adjusted.
839         (doc/gnat_ugn.info): Renamed from ...
840         (doc/gnat_ugn_unw.info): ... this.
841         (doc/gnat_ugn.dvi): Renamed from ...
842         (doc/gnat_ugn_unw.dvi): ... this.
843         (doc/gnat_ugn.pdf): Renamed from ...
844         (doc/gnat_ugn_unw.pdf): ... this.
845         (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
846         Adjusted.
847         * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
848         unconditionally to gnat_ugn.info.  Fix cross references to the
849         GNAT Reference Manual.  Convert links to the GCC, GDB, Emacs,
850         and GNU make manuals to be proper texinfo links.
851         * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
852
853 2008-03-21  Olivier Hainque  <hainque@adacore.com>
854
855         * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
856         ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
857
858 2008-03-21  Eric Botcazou  <ebotcazou@adacore.com>
859
860         * trans.c (addressable_p): Add notes on addressability issues.
861
862 2008-03-21  Olivier Hainque  <hainque@adacore.com>
863             Ed Schonberg  <schonberg@adacore.com>
864
865         * trans.c (addressable_p): Accept COND_EXPR when both arms
866         are addressable.
867         (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
868         (call_to_gnu): Do not use name reference in the error message
869         for a misaligned by_reference_parameter. The actual may be a
870         general expression.
871
872 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
873
874         * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
875         
876 2008-03-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
877
878         * gnat_rm.texi (Implementation Defined Characteristics)
879         (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
880         appropriate.
881         * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
882         (Switches for gnatchop, Installing a library): Likewise.
883
884 2008-03-10  Eric Botcazou  <ebotcazou@adacore.com>
885
886         * trans.c (emit_range_check): Do not emit the check if the base type
887         of the expression is the type against which its range must be checked.
888
889 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
890
891         * decl.c (maybe_pad_type): Use value_factor_p.
892
893 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
894
895         * lang.opt (nostdlib): Move around.
896         * misc.c (gnat_handle_option): Fix formatting.
897         (gnat_dwarf_name): Move around.
898         * trans.c (Case_Statement_to_gnu): Fix formatting.
899         (gnat_to_gnu): Likewise.
900         * utils.c (aggregate_type_contains_array_p): Likewise.
901         (create_subprog_decl): Likewise.
902
903 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
904
905         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
906         bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
907
908 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
909
910         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
911         BIGGEST_ALIGNMENT when capping the alignment of records with
912         strict alignment and size clause.
913
914 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
915
916         * lang-specs.h: Pass -gnatwa if -Wall is passed.
917         * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
918         and -Wuninitialized.
919         (gnat_post_options): Clear warn_unused_parameter.
920
921 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
922
923         * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
924         aligned bit-fields, bumping the alignment of the record type if deemed
925         profitable.
926         (value_factor_p): Return false instead of 0.
927
928 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
929
930         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
931         for scalar types with small alignment.
932
933 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
934
935         * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
936         from that of the front-end's end label.
937         (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
938         from that of the loop label.
939
940 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
941
942         * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
943         comment for the packed array type case.
944         * utils.c (build_template): Use a loop to strip padding or
945         containing records for justified modular types.
946
947 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
948
949         * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
950         large alignments specified for types.
951         (validate_alignment): Minor cleanup.
952
953 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
954
955         * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
956         (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
957         the component for packing, if possible, as well as if a component
958         size clause is specified.
959         <E_Record_Subtype>: For an array type used to implement a packed
960         array, get the component type from the original array type.
961         Try to get a smaller form of the component for packing, if possible,
962         as well as if a component size clause is specified.
963         (round_up_to_align): New function.
964         (make_packable_type): Add in_record parameter.
965         For a padding record, preserve the size.  If not in_record and the
966         size is too large for an integral mode, attempt to shrink the size
967         by lowering the alignment.
968         Ditch the padding bits of the last component.
969         Compute sizes and mode manually, and propagate the RM size.
970         Return a BLKmode record type if its size has shrunk.
971         (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
972         Use Original_Array_Type to retrieve the type in case of an error.
973         Adjust call to make_packable_type.
974         (gnat_to_gnu_field): Likewise.
975         (concat_id_with_name): Minor tweak.
976         * trans.c (larger_record_type_p): New predicate.
977         (call_to_gnu): Compute the nominal type of the object only if the
978         parameter is by-reference.  Do the conversion actual type -> nominal
979         type if the nominal type is a larger record.
980         (gnat_to_gnu): Do not require integral modes on the source type to
981         avoid the conversion for types with identical names.
982         (addressable_p): Add gnu_type parameter.  If it is specified, do not
983         return true if the expression is not addressable in gnu_type.
984         Adjust recursive calls.
985         * utils.c (finish_record_type): Remove dead code.
986
987 2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
988
989         PR ada/35186
990         * decl.c (maybe_pad_type): Avoid padding an integral type when
991         bumping its alignment is sufficient.
992
993 2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
994
995         * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
996         * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
997         statement.
998         * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
999         gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
1000         sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
1001         code output strings.
1002         * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
1003         system-vms_64.ads: Fix typos in ada source code comments.
1004         * sinfo-cn.adb: Remove incomplete sentence.
1005
1006         PR documentation/15479
1007         * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
1008
1009 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
1010
1011         PR ada/22255
1012         * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
1013
1014 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
1015
1016         PR ada/34799
1017         * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
1018         that underlying type is present.
1019
1020 2008-02-26  Tom Tromey  <tromey@redhat.com>
1021
1022         * misc.c (internal_error_function): Remove test of
1023         USE_MAPPED_LOCATION.
1024         * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
1025         (Sloc_to_locus): Remove old location code.
1026
1027 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1028
1029         * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
1030         `i.e.' by adding comma or `@:' as appropriate.
1031         * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
1032         plain characters `C', use `@samp{C}'.
1033         * gnat_ugn.texi (File Naming Rules, About gnatkr)
1034         (Krunching Method): Likewise.
1035
1036         * gnat_ugn.texi (Conventions): List environment variables and
1037         metasyntactic variables.
1038         (Compiling Programs): Fix notation of metasyntactic variables.
1039         Add @file where appropriate.  Use @file for file extensions,
1040         @samp for strings.
1041         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
1042         instead of @file, @env instead of @code.
1043
1044 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1045
1046         PR documentation/15479
1047         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
1048         and `...' with `@dots{}' or `@enddots{}'.
1049
1050         PR documentation/15479
1051         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
1052         use @command instead of @code, @option instead of @samp or @code,
1053         @code instead of @var, @samp instead of @file.
1054
1055         PR documentation/15479
1056         * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
1057         in Makefile rules, by using `&&' rather than `;'.
1058
1059 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1060
1061         PR documentation/15479
1062         * gnat_ugn.texi: In non-code, avoid space before colon.
1063         (Regular Expressions in gnatfind and gnatxref): Fix indentation.
1064         (Examples of gnatxref Usage): Use @command{vi} instead of
1065         @file{vi}.
1066         (Character Set Control): Do not use @code for UTF-8.
1067         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
1068         use @code for IEEE.
1069         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
1070         sample.
1071         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
1072
1073 2008-02-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
1074
1075         PR ada/35143
1076         * env.c: Add __rtems__ to if defined.
1077         * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
1078         * s-osinte-rtems.ads: Add To_Target_Priority prototype and
1079         PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
1080         pragma Convention as required.
1081         * gsocket.h: Make compile in and out of RTS.
1082         * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
1083         Use g-soccon-rtems.ads.
1084         * g-soccon-rtems.ads, system-rtems.ads: New files.
1085
1086 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1087
1088         PR other/35107
1089         * Make-lang.in (gnat1): Add $(GMPLIBS).
1090
1091 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
1092
1093         * decl.c (components_to_record): Improve comment.
1094
1095 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
1096
1097         * decl.c (components_to_record): Do not reuse the empty union type
1098         if there is a representation clause on the record.
1099         * trans.c (addressable_p): Return true for INTEGER_CST.
1100
1101 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
1102
1103         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
1104         in pointer arithmetics.
1105         * utils2.c (build_allocator): Likewise.
1106
1107 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
1108
1109         * utils.c (build_function_stub): Properly build the call expression.
1110
1111 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
1112
1113         * decl.c (gnat_to_gnu_entity) <object>: Process renamings
1114         before converting the expression to the type of the object.
1115         * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
1116         Stabilize constructors for special wrapping types.
1117
1118 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
1119
1120         * trans.c (call_to_gnu): Invoke the addressable_p predicate only
1121         when necessary.  Merge some conditional statements.  Update comments.
1122         Rename unchecked_convert_p local variable to suppress_type_conversion.
1123         Do not suppress conversions in the In case.
1124         (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
1125         into account on non strict-alignment platforms.
1126
1127 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
1128
1129         * utils.c (aggregate_type_contains_array_p): New predicate.
1130         (create_field_decl): In a packed record, force byte alignment
1131         for fields without specified position that contain an array.
1132
1133 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
1134
1135         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
1136
1137 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
1138
1139         PR ada/34466
1140         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
1141         sysconf call.
1142         (bit_field): New packed boolean type used by cpu_set_t.
1143         (cpu_set_t): New type corresponding to the C type with
1144         the same name. Note that on the Ada side we use a bit
1145         field array for the affinity mask. There is not need
1146         for the C macro for setting individual bit.
1147         (pthread_setaffinity_np): New imported routine.
1148
1149 2008-01-03  Tero Koskinen  <tero.koskinen@iki.fi>
1150
1151         PR ada/34647
1152         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
1153         on OpenBSD as is done on other BSD systems.
1154
1155         PR ada/34645
1156         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
1157         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
1158         I/O.
1159
1160         PR ada/34644
1161         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
1162         clearenv().
1163
1164         PR ada/34646
1165         * init.c (__gnat_error_handler, __gnat_install_handler,
1166         __gnat_init_float): Define for OpenBSD.
1167
1168         * initialize.c (__gnat_initialize): Define for OpenBSD.
1169
1170 2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
1171
1172         PR ada/34553
1173         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
1174         instead of mktemp() or tmpnam() on NetBSD.
1175
1176 2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
1177
1178         * trans.c (call_to_gnu): Make the temporary for non-addressable
1179         In parameters passed by reference.
1180         (addressable_p): Return true for STRING_CST and CALL_EXPR.
1181
1182 2007-12-19  Robert Dewar  <dewar@adacore.com>
1183
1184         * g-expect-vms.adb, g-expect.adb, s-poosiz.adb: 
1185         Add pragma Warnings (Off) for unassigned IN OUT arguments
1186
1187         * sem_warn.adb (Output_Reference): Suppress messages for internal names
1188         (Check_References): Extensive changes to tune up warnings
1189         (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
1190         (Has_Pragma_Unmodifed_Check_Spec): New function
1191         (Check_References): Implement pragma Unmodified
1192         (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
1193
1194         * par-prag.adb: Dummy entry for pragma Unmodified
1195
1196         * sem_prag.adb: Implement pragma Unmodified
1197
1198         * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
1199         (Proc_Next_Component_Or_Discriminant): Fix typo.
1200         Update comments.
1201
1202         * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
1203         Unmodified.
1204         (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
1205         because the former already takes care of discarding the result.
1206         (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
1207         Add comment.
1208
1209         * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
1210
1211 2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
1212
1213         * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
1214         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
1215         system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
1216         system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
1217         system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
1218         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
1219         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
1220         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
1221         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
1222         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
1223         (Dynamic_Trampolines_Used): Delete.
1224
1225         * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
1226         Turn on stack probing mechanism on LynxOS.
1227
1228 2007-12-19  Bob Duff  <duff@adacore.com>
1229
1230         * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
1231         the resulting tail recursion by hand. This prevents running out of
1232         memory on deeply nested concatenations, since Field2 is where the left
1233         operand of concatenations is stored.
1234         Fix bug (was returning OK_Orig in some cases). Fix return subtype to
1235         clarify that it can only return OK or Abandon.
1236
1237         * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
1238         operand by iteration, in order to avoid running out of memory on
1239         deeply-nested concatenations. Use the Parent pointer to get back up the
1240         tree.
1241         (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
1242          Resolve_Op_Concat_Rest): New procedures split out of
1243         Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
1244         clearer.
1245
1246         * checks.adb (Remove_Checks): Use Traverse_Proc instead of
1247         Traverse_Func, because the former already takes care of discarding the
1248         result.
1249
1250         * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
1251         because the former already takes care of discarding the result.
1252         (Remove_Warning_Messages): Use appropriate subtype for Status and
1253         Discard 
1254
1255 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1256
1257         * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
1258         discriminants forces expansion of the aggregate into assignments.
1259         (Init_Record_Controller):  If the type of the aggregate is untagged and
1260         is not inherently limited, the record controller is not limited either.
1261
1262 2007-12-19  Robert Dewar  <dewar@adacore.com>
1263
1264         * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
1265         handling compile time known size of record or array (case of front end
1266         layout active, e.g. in GNAAMP).
1267
1268 2007-12-19  Javier Miranda  <miranda@adacore.com>
1269
1270         * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
1271         that forces the construction of static dispatch tables in case of
1272         record subtypes.
1273
1274 2007-12-19  Robert Dewar  <dewar@adacore.com>
1275
1276         * exp_ch9.adb (Null_Statements): Moved to library level
1277         (Trivial_Accept_OK): New function
1278         (Expand_Accept_Declaration): Use Trivial_Accept_OK
1279         (Expand_N_Accept_Statement): Use Trivial_Accept_OK
1280
1281 2007-12-19  Robert Dewar  <dewar@adacore.com>
1282
1283         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
1284         in complex case where array is Volatile.
1285
1286 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1287
1288         * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
1289         properly the Ada2005 rules concerning when the current instance of a
1290         record type is aliased.
1291
1292 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1293
1294         * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
1295         mangled declaration
1296         (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
1297         declarations.
1298         (P_Variant_Part): Cleaner patch for parenthesized discriminant
1299
1300 2007-12-19  Vincent Celier  <celier@adacore.com>
1301
1302         * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
1303         package is not known
1304
1305         * prj-attr.ads (Unknown_Package): New constant
1306         Do not crash when an unknown package is in several projects
1307
1308         * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
1309         ignored
1310
1311         * prj-nmsc.adb (Check): Remove obsolete code related to no longer
1312         existing package Language_Processing.
1313
1314 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1315             Gary Dismukes  <dismukes@adacore.com>
1316             Samuel Tardieu  <sam@rfc1149.net>
1317
1318         PR ada/15803, ada/15805
1319         * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
1320         illegal access subtypes when there is a constrained partial view.
1321         (Check_For_Premature_Usage): New procedure inside
1322         Access_Subprogram_Declaration for checking that an access-to-subprogram
1323         type doesn't reference its own name within any formal parameters or
1324         result type (including within nested anonymous access types).
1325         (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
1326         (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
1327         context is an access_to_variable, the expression cannot be an
1328         access_to_constant.
1329
1330 2007-12-19  Bob Duff  <duff@adacore.com>
1331
1332         * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
1333         (Analyze_Concatenation): Use iteration instead of recursion in order
1334         to avoid running out of stack space for deeply nested concatenations.
1335
1336 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
1337             Gary Dismukes  <dismukes@adacore.com>
1338
1339         * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
1340         whose renamed entity is a subprogram that requires overriding.
1341         (Premature_Usage): Test for the case of N_Full_Type_Declaration when
1342         issuing an error for premature usage and issue a message that says
1343         'type' rather than 'object'.
1344
1345 2007-12-19  Gary Dismukes  <dismukes@adacore.com>
1346
1347         PR ada/34149
1348         * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
1349         presence of a statically tagged operand (Present (Static_Tag)) with
1350         test for Indeterm_Ancestor_Call when determining whether to propagate
1351         the static tag to tag-indeterminate operands (which forces dispatching
1352         on such calls).
1353         (Check_Controlling_Formals): Ada2005, access parameters can have
1354         defaults.
1355         (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
1356         not insert subprogram in list of primitive operations if already there.
1357
1358 2007-12-19  Tristan Gingold  <gingold@adacore.com>
1359
1360         * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
1361         global variable.
1362
1363 2007-12-19  Thomas Quinot  <quinot@adacore.com>
1364
1365         Part of PR ada/33688
1366         * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
1367         datagram info on Linux.
1368
1369 2007-12-19  Vincent Celier  <celier@adacore.com>
1370
1371         * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
1372         that the source path name is always found in the dependencies.
1373
1374 2007-12-19  Robert Dewar  <dewar@adacore.com>
1375
1376         * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
1377         Fix name of Wide_Wide_Latin_1/9 file names
1378         Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
1379         Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
1380         Add missing documentation for Ada.Command_Line.Response_File
1381         Update list of warning letters for Warnings pragma
1382         Add documentation for pragma Unmodified
1383
1384 2007-12-19  Samuel Tardieu  <sam@rfc1149.net>
1385
1386         * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
1387
1388 2007-12-17  Arnaud Charlet  <charlet@adacore.com>
1389
1390         * s-vxwork-alpha.ads: Removed, no longer used.
1391
1392 2007-12-15  Jakub Jelinek  <jakub@redhat.com>
1393
1394         * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
1395
1396 2007-12-13  Samuel Tardieu  <sam@rfc1149.net>
1397
1398         PR ada/34360
1399         * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
1400         mlib-tgt-specific.adb.
1401
1402 2007-12-13  Bob Duff  <duff@adacore.com>
1403
1404         * trans.c (Attribute_to_gnu): Check for violations of the
1405         No_Implicit_Dynamic_Code restriction. This checking used to be done in
1406         the front end, but is moved here so we can make it more accurate.
1407
1408 2007-12-13  Pascal Obry  <obry@adacore.com>
1409
1410         * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
1411          version is provided for older GNU/Linux distribution not
1412          supporting thread affinity sets.
1413         
1414         * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
1415         call.
1416         (bit_field): New packed boolean type used by cpu_set_t.
1417         (cpu_set_t): New type corresponding to the C type with
1418         the same name. Note that on the Ada side we use a bit
1419         field array for the affinity mask. There is not need
1420         for the C macro for setting individual bit.
1421         (pthread_setaffinity_np): New imported routine.
1422         
1423         * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
1424         no null.
1425         (Create_Task): Set the processor affinity mask if information
1426         is present.
1427         
1428         * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
1429         
1430 2007-12-13  Robert Dewar  <dewar@adacore.com>
1431
1432         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, 
1433         s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads, 
1434         s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads, 
1435         s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
1436         s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
1437         s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads, 
1438         s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads, 
1439         i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
1440         for subprogram pointers.
1441
1442         * g-ctrl_c.adb: New file.
1443
1444         * g-ctrl_c.ads (Install_Handler): New body.
1445
1446         * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
1447         instead of obsolete function Is_Always_Inlined.
1448         (Freeze_Entity): check for tagged type in imported C subprogram
1449         (Freeze_Entity): check for 8-bit boolean in imported C subprogram
1450         (Freeze_Entity): check for convention Ada subprogram pointer in
1451         imported C subprogram.
1452         (Freeze_Fixed_Point_Type): In the case of a base type where the low
1453         bound would be chopped off and go from negative to zero, force
1454         Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
1455         bound) so that the size computation for the base type will take
1456         negative values into account.
1457
1458 2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
1459             Bob Duff  <duff@adacore.com>
1460             Tristan Gingold  <gingold@adacore.com>
1461
1462         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
1463         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, 
1464         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
1465         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
1466         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, 
1467         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
1468         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
1469         system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
1470         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
1471         system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
1472         system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
1473         (Always_Compatible_Rep): New flag to control trampolines globally.
1474         (Dynamic_Trampolines_Used): New flag for implementing the
1475         No_Implicit_Dynamic_Code restriction more correctly (not yet used,
1476         and not yet set correctly for some targets).
1477
1478         * s-taprop-vxworks.adb: Use stack limit method of stack checking.
1479         Simply indirectly call s-stchop when a task is created.
1480
1481         * ali.ads: 
1482         New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
1483         appears as an argument (entries A) in an ALI file.
1484
1485         * fe.h (Stack_Check_Limits): Declare new target parameter.
1486         (Check_Implicit_Dynamic_Code_Allowed): New procedure.
1487
1488         * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
1489         This variable is declared in C to be sure not subject to elaboration
1490         code.
1491         (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
1492         Storage_Error.
1493
1494         * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
1495         (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
1496
1497         * s-stchop.ads: Add comments.
1498
1499         * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
1500         limit method of stack checking.
1501
1502         * s-stchop-limit.ads: New file.
1503
1504 2007-12-13  Robert Dewar  <dewar@adacore.com>
1505
1506         * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb, 
1507         a-cihama.adb, g-awk.adb, 
1508         s-inmaop-posix.adb: Update handling of assigned value/unreferenced
1509         warnings
1510
1511         * exp_smem.adb: Update handling of assigned value/unreferenced warnings
1512
1513         * sem.adb: Update handling of assigned value/unreferenced warnings
1514
1515         * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
1516
1517         * lib-xref.ads: Improve documentation for k xref type
1518
1519         * lib-xref.adb: 
1520         Update handling of assigned value/unreferenced warnings
1521         (Generate_Reference): Warning for reference to entity for which a
1522         pragma Unreferenced has been given should be unconditional.
1523         If the entity is a discriminal, mark the original
1524         discriminant as referenced.
1525
1526         * sem_warn.ads, sem_warn.adb
1527         (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
1528         no entities referenced in package
1529         (Check_One_Unit): Don't give message about no entities referenced in
1530         a package if a pragma Unreferenced has appeared.
1531         Handle new warning flag -gnatw.a/-gnatw.A
1532         Update handling of assigned value/unreferenced warnings
1533
1534         * atree.h: Add flags up to Flag247
1535         (Flag231): New macro.
1536
1537 2007-12-13  Jose Ruiz  <ruiz@adacore.com>
1538
1539         * adaint.h: (__gnat_plist_init): Not defined for RTX.
1540
1541         * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
1542         RTX systems.
1543
1544         * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
1545         (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
1546         EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
1547         GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
1548
1549         * mingw32.h: 
1550         Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
1551
1552         * sysdep.c (winflush_function for RTX): Procedure that does nothing
1553         since we only have problems with Windows 95/98, which are not
1554         supported by RTX.
1555         (__gnat_ttyname): Return the empty string on Nucleus, just as
1556         done on vxworks.
1557
1558 2007-12-13  Robert Dewar  <dewar@adacore.com>
1559
1560         * a-textio.adb, a-textio.ads: 
1561         Extensive changes to private part for wide character encoding
1562
1563         * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
1564         (Look_Ahead): Fix mishandling of encoded sequences
1565         Move declaration of Wch_Con to private part (should not be visible)
1566
1567         * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
1568         UTF-8. Probably this is never used, but if it is, brackets is
1569         clearly correct.
1570
1571         * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
1572         setting wide character encoding for no main program case and when
1573         encoding is specified using -W?
1574         Initialize stack limit of environment task if stack limit method of
1575         stack checking is enabled.
1576         (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
1577         (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
1578         (Get_Main_Unit_Name): New function.
1579         (Gen_Adainit_Ada): Add call to main program for .NET when needed.
1580         (Gen_Output_File): Set Bind_Main_Program to True for .NET
1581
1582         * bindusg.adb: Add line for -Wx switch
1583
1584         * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
1585         Add comments
1586         Add new useful constant WC_Longest_Sequences
1587
1588         * switch-b.adb: Clean up handling of -Wx switch
1589         For -gnatWx, set Wide_Character_Encoding_Method_Specified
1590
1591         * switch-c.adb: -gnatg activates warning on assertion errors
1592         For -gnatWx, set Wide_Character_Encoding_Method_Specified
1593
1594         * s-wchcon.adb: (Is_Start_Of_Encoding): New function
1595
1596 2007-12-13  Robert Dewar  <dewar@adacore.com>
1597             Ed Schonberg  <schonberg@adacore.com>
1598
1599         * a-ngcoty.adb: New pragma Fast_Math
1600
1601         * opt.adb: New pragma Fast_Math
1602
1603         * par-prag.adb: 
1604         Add Implemented_By_Entry to the list of pragmas which do not require any
1605         special processing.
1606         (Favor_Top_Level): New pragma.
1607         New pragma Fast_Math
1608
1609         * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
1610         (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
1611         Expand_Allocator_Expression): Take into account VM_Target
1612         (Expand_Attribute, case 'Identity):  Handle properly the case where
1613         the prefix is a task interface.
1614         New pragma Fast_Math
1615
1616         * par.adb (Next_Token_Is): New function
1617         (P_Pragma): Add Skipping parameter
1618         (U_Left_Paren): New procedure
1619         (U_Right_Paren): New procedure
1620         New pragma Fast_Math
1621
1622         * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
1623         subunit
1624         New pragma Fast_Math
1625
1626         * sem_prag.adb: Add significance value to table Sig_Flag for pragma
1627         Implemented_By_Entry.
1628         (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
1629         (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
1630         items, since it can apply to more than one overloadable entity. Set
1631         new flag Has_Pragma_Inline_Always for Inline_Always case.
1632         (Analyze_Pragma, case Complex_Representation): Improve error message.
1633         (Analyze_Pragma, case Assert): When assertions are disabled build the
1634         rewritten code with Sloc of expression rather than pragma, so new
1635         warning about failing is not deleted.
1636         (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
1637         protected types and update error message to reflect that. Test whether
1638         the protected type is allowed for the pragma (an error is issued if the
1639         type has any entries, or components that do not have preelaborable
1640         initialization).
1641         New pragma Fast_Math
1642         (Analyze_Pragma, case No_Return): Handle generic instance
1643
1644         * snames.h, snames.ads, snames.adb: 
1645         Add new predefined name for interface primitive _Disp_Requeue.
1646         New pragma Fast_Math
1647
1648         * a-tags.ads, a-tags.adb: New calling sequence for
1649         String_To_Wide_[Wide_]String
1650         (Secondary_Tag): New subprogram.
1651
1652         * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
1653         from Exp_Attr
1654         New calling sequence for String_To_Wide_[Wide_]String
1655         (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
1656         the use of the secondary stack for image routines.
1657
1658         * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
1659         calling sequence for String_To_Wide_[Wide_]String
1660
1661         * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
1662         Ada 95 mode
1663         (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
1664         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1665
1666         * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
1667         (P_Formal_Part): Use Skipping parameter in P_Pragma call
1668         to improve error recovery
1669
1670         * par-util.adb (Next_Token_Is): New function
1671         (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
1672
1673         * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
1674         semicolon if missing
1675         (P_Pragma): Implement new Skipping parameter
1676         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1677         Fix location of flag for unrecognized pragma message
1678
1679         * par-tchk.adb (U_Left_Paren): New procedure
1680         (U_Right_Paren): New procedure
1681
1682 2007-12-13  Geert Bosch  <bosch@adacore.com>
1683
1684         * a-tifiio.adb: 
1685         (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
1686         the second or later Scaled_Divide would omit leading zeroes,
1687         resulting in too few digits produced and a Layout_Error as result.
1688         (Put): Initialize Pos.
1689
1690 2007-12-13  Robert Dewar  <dewar@adacore.com>
1691
1692         atree.ads, atree.adb (Flag231..Flag247): New functions
1693         (Set_Flag231..Set_Flag247): New procedures
1694         (Basic_Set_Convention): Rename Set_Convention to be
1695         Basic_Set_Convention
1696         (Nkind_In): New functions
1697         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1698
1699         * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
1700         instead
1701          of obsolete function Is_Always_Inlined
1702         (Register_Predefined_DT_Entry): Initialize slots of the second
1703         secondary dispatch table.
1704         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1705         (Expand_N_Function_Call): Remove special provision for stack checking.
1706
1707         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
1708         Include _Disp_Requeue in the list of predefined operations.
1709         (Find_Interface_ADT): Modified to fulfill the new specification.
1710         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1711
1712         * par-ch4.adb, nlists.ads, nlists.adb: 
1713         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
1714
1715         * sinfo.ads, sinfo.adb: (Nkind_In): New functions
1716         Fix location of flag for unrecognized pragma message
1717
1718         * sem_ch7.adb: Use Nkind_In
1719
1720 2007-12-13  Vincent Celier  <celier@adacore.com>
1721
1722         * opt.ads: 
1723         Indicate what flags are used by the Project Manager, gprbuild and
1724         gprclean.
1725         (Opt.Follow_Links_For_Dirs): New flag
1726         (Warn_On_Assertion_Failure): New flag
1727         (Wide_Character_Encoding_Method_Specified): New flag
1728         (Suppress_All_Inlining): New switch set by -fno-inline
1729         (Real_VMS_Target): New flag
1730         New pragma Fast_Math
1731
1732 2007-12-13  Robert Dewar  <dewar@adacore.com>
1733
1734         * back_end.adb: Recognize -fno-inline
1735
1736 2007-12-13  Robert Dewar  <dewar@adacore.com>
1737
1738         * checks.adb: Fix optimization problem with short-circuited form
1739
1740 2007-12-13  Bob Duff  <duff@adacore.com>
1741
1742         * clean.adb (Usage): Add line for -aP
1743         (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
1744         with a parameter "procedure Usage", instead of passing a pointer to a
1745         procedure. This is to eliminate trampolines (since the Usage procedure
1746         is often nested in a main procedure, and it would be inconvenient to
1747         unnest it).
1748
1749         * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
1750         to be generic, with a parameter "procedure Callback (...)", instead of
1751         passing a pointer to a procedure. This is to eliminate trampolines
1752         (since the Callback procedure is usually nested).
1753
1754         * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb, 
1755         gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
1756         (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
1757
1758         * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
1759         Use the generic Heap_Sort_G instead of Heap_Sort_A.
1760
1761 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1762
1763         * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
1764         (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
1765         (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
1766         (Renamed_In_Spec): New flag
1767         (Has_Pragma_Inline_Always): New flag
1768         Add missing doc for pragma Obsolescent_Warning
1769         Add missing doc for 17 additional unused flags (230-247)
1770         (Is_Derived_Type): Remove condition "not Is_Generic_Type".
1771         Alphabetize with clauses.
1772         Separate Is_Thunk and Has_Thunks flags
1773         (Write_Entity_Flags): Add forgotten entry for Has_Thunks
1774         (Related_Interface): Renamed to Related_Type.
1775         (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
1776         (Set_Is_Flag): Restrict the assertion.
1777
1778 2007-12-13  Vincent Celier  <celier@adacore.com>
1779
1780         * errout.adb (Output_Source_Line): Do not keep a trailing space after
1781         the source line number if the source line is empty.
1782
1783 2007-12-13  Geert Bosch  <bosch@adacore.com>
1784
1785         * eval_fat.adb (Decompose_Int): Handle argument of zero.
1786         (Compose): Remove special casing of zero.
1787         (Exponent): Likewise.
1788         (Fraction): Likewise.
1789         (Machine): Likewise.
1790         (Decompose): Update comment.
1791
1792 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
1793
1794         * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
1795         limited ancestor part, initialize controllers of enclosing record
1796         before expanding ancestor aggregate.
1797         (Gen_Assign): If a component of the aggregate is box-initialized, add
1798         code to call Initialize if the component is controlled, and explicit
1799         assignment of null if the component is an access type.
1800
1801         Handle properly aggregates for limited types that appear in object
1802         declarations when the aggregate contains controlled values such as
1803         protected types.
1804         When expanding limited aggregates into individual components, do not
1805         call Adjust on controlled components that are limited.
1806
1807 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
1808
1809         * expander.adb: Take into account N_Subprogram_Renaming_Declaration
1810
1811 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1812
1813         * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
1814         predefined primitive _Disp_Requeue.
1815         (Make_Predefined_Primitive_Specs): Create the spec for predefined
1816         primitive _Disp_Requeue.
1817         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
1818         type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
1819         (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
1820         an interface type. In case of limited interfaces we now declare all the
1821         predefined primitives associated with synchronized interfaces as
1822         abstract.
1823         (Predef_Spec_Or_Body): For interface types generate abstract subprogram
1824         declarations.
1825         (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
1826         tagged type is an interface type and there is no user-defined equality
1827         function.
1828         Add also bodies of predefined primitives associated with synchronized
1829         interfaces.
1830         (Freeze_Record_Type): Do not build bodies of predefined primitives of
1831         interface types because they are now defined abstract.
1832         Add missing documentation.
1833         (Expand_Record_Controller): Update occurrence of Related_Interface
1834         to Related_Type.
1835         (Build_Offset_To_Top_Functions): Do nothing in case of VM.
1836         (Expand_N_Object_Declaration): Take into account VM_Target when handling
1837         class wide interface object declaration.
1838         (Expand_Previous_Access_Type): Do not create a duplicate master entity
1839         if the access type already has one.
1840         (Expand_N_Object_Declaration): Defend against attempt to validity check
1841         generic types. Noticed for -gnatVcf specified with previous errors.
1842
1843 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
1844
1845         * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
1846         Expand_Allocator_Expression): Take into account VM_Target
1847
1848         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
1849         secondary stack when VM_Target /= No_VM
1850
1851 2007-12-13  Javier Miranda  <miranda@adacore.com>
1852             Ed Schonberg  <schonberg@adacore.com>
1853
1854         * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
1855         Is_Complation_Unit by Is_Library_Level_Entity in the code
1856         that decides if the static dispatch tables need to be built.
1857         (Wrap_Transient_Declaration): Do not generate a finalization call if
1858         this is a renaming declaration and the renamed object is a component
1859         of a controlled type.
1860
1861 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
1862
1863         * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
1864         In the case where the renamed subprogram is a dereference, call
1865         Force_Evaluation on the prefix.
1866
1867 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1868             Ed Schonberg  <schonberg@adacore.com>
1869
1870         * exp_ch9.adb (Expand_N_Asynchronous_Select,
1871         Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
1872         comment reformatting.
1873         (Set_Privals): Inherit aliased flag from formal. From code reading.
1874         (Build_Simple_Entry_Call): Out parameters of an access type are passed
1875         by copy and initialized from the actual. This includes entry parameters.
1876         (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
1877         and Ada 2005 models of requeue.
1878         (Null_Statements): Still connsider do-end block null if it contains
1879         Unreferenced and Warnings pragmas.
1880         (Expand_N_Accept_Statement): Do not optimize away null do end if
1881         dispatching policy is other than defaulted.
1882         (Expand_N_Timed_Entry_Call): When the triggering statement is a
1883         dispatching call, manually analyze the delay statement.
1884         (Find_Parameter_Type): Move subprogram to Sem_Util.
1885
1886 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1887             Javier Miranda  <miranda@adacore.com>
1888
1889         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
1890         _Disp_Requeue occupies dispatch table slot number 15. Move
1891         _Disp_Timed_Select to slot 16.
1892         (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
1893         generate the spec and body of _Disp_Reqeueue.
1894         (Make_DT): Build and initialize the second dispatch table.
1895         Handle initialization of RC_Offset when the parent
1896         is a private type with variable size components.
1897         (Make_Secondary_DT): Complete documentation. Add support to
1898         initialize the second dispatch table.
1899         (Make_Tags): Generate the tag of the second dispatch table.
1900         (Register_Primitive): Add support to register primitives in the
1901         second dispatch table.
1902
1903 2007-12-13  Pascal Obry  <obry@adacore.com>
1904
1905         * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
1906         Windows. This signal is used by gnatmake to kill child processes for
1907         example.
1908
1909 2007-12-13  Javier Miranda  <miranda@adacore.com>
1910
1911         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
1912         support for generic dispatching constructor calls in which we need to
1913         locate the tag of a secondary dispatch table associated with an
1914         interface type to properly dispatch the call.
1915         (Expand_N_Attribute_Reference [case Address],
1916         Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
1917         handling of VM targets.
1918
1919 2007-12-13  Robert Dewar  <dewar@adacore.com>
1920             Ed Schonberg  <schonberg@adacore.com>
1921
1922         * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
1923         assert fail
1924
1925         * ug_words: Add entries for -gnatw.a -gnatw.A
1926
1927         * sem_res.adb (Set_String_Literal_Subtype): If the context of the
1928         literal is a subtype with non-static constraints, use the base type of
1929         the context as the base of the string subtype, to prevent type
1930         mismatches in gigi.
1931         (Resolve_Actuals): If the actual is an entity name, generate a
1932         reference before the actual is resolved and expanded, to prevent
1933         spurious warnings on formals of enclosing protected operations.
1934         (Analyze_Overloaded_Selected_Component): If type of prefix if
1935         class-wide, use visible components of base type.
1936         (Resolve_Selected_Component): Ditto.
1937         (Resolve_Short_Circuit): Detect case of pragma Assert argument
1938         evaluating to False, and issue warning message.
1939
1940         * usage.adb: Add lines for -gnatw.a and -gnatw.A
1941
1942 2007-12-13  Emmanuel Briot  <briot@adacore.com>
1943
1944         * g-calend.ads (No_Time): New constant, to represent an uninitialized
1945         time value
1946
1947         * g-catiio.ads, g-catiio.adb (Value): Added support for more date
1948         formats.
1949         (Month_Name_To_Number): New subprogram
1950
1951         * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
1952         letter to upper-case.
1953
1954 2007-12-13  Robert Dewar  <dewar@adacore.com>
1955             Ed Schonberg  <schonberg@adacore.com>
1956
1957         * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
1958
1959         * layout.adb (Resolve_Attribute, case 'Access): If designated type of
1960         context is a limited view, use non-limited view when available. If the
1961         non-limited view is an unconstrained array, this enforces consistency
1962         requirements in 3.10.2 (27).
1963         (Layout_Type): For an access type whose designated type is a limited
1964         view, examine its declaration to determine if it is an unconstrained
1965         array, and size the access type accordingly.
1966         (Layout_Type): Do not force 32-bits for convention c subprogram
1967         pointers in -gnatdm mode, only if real vms target.
1968
1969         * sem_attr.adb (Analyze_Access_Attribute): Use new flag
1970         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
1971         (Analyze_Access_Attribute,Attribute_Address): Remove checks for
1972         violations of the No_Implicit_Dynamic_Code restriction.
1973         (Resolve_Attribute, case 'Access): If designated type of context is a
1974         limited view, use non-limited view when available. If the non-limited
1975         view is an unconstrained array, this enforces consistency requirements
1976         in 3.10.2 (27).
1977         (Layout_Type): For an access type whose designated type is a limited
1978         view, examine its declaration to determine if it is an unconstrained
1979         array, and size the access type accordingly.
1980
1981 2007-12-13  Vincent Celier  <celier@adacore.com>
1982
1983         * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
1984         object directory of main project does not exist.
1985         On VMS, correctly set then environment variable for the source
1986         directories.
1987
1988 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
1989
1990         * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
1991         set to True this procedure will create the value of type REG_EXPAND_SZ.
1992         It was only possible to create REG_SZ values before.
1993
1994 2007-12-13  Robert Dewar  <dewar@adacore.com>
1995
1996         * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
1997         g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
1998         namet-sp.adb, namet-sp.ads: New files.
1999
2000         * g-speche.adb: Use generic routine in g-spchge
2001
2002         * s-wchcnv.ads, s-wchcnv.adb: 
2003         Minor code cleanup (make formal type consistent with spec)
2004
2005         * namet.adb: Update comments.
2006
2007         * par-endh.adb (Evaluate_End_Entry): Use new
2008         Namet.Sp.Is_Bad_Spelling_Of function
2009
2010         * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
2011
2012         * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
2013         ancestor is an access type initialized with a box, set its type
2014         explicitly, for use in subsequent expansion.
2015         (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
2016         function
2017
2018 2007-12-13  Robert Dewar  <dewar@adacore.com>
2019
2020         * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
2021         access Vstring)
2022
2023 2007-12-13  Robert Dewar  <dewar@adacore.com>
2024
2025         * inline.adb (Back_End_Cannot_Inline): Use new flag
2026         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
2027
2028         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
2029         Has_Pragma_Inline_Always instead.
2030         of obsolete function Is_Always_Inlined
2031         (Build_Body_To_Inline): Same change
2032         (Cannot_Inline): Same change
2033         Do not give warning on exception raise in No_Return function
2034
2035         * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
2036         component has two inconsistent component clauses in the same record
2037         representation clause, favor the message that complains about
2038         duplication rather than inconsistency.
2039         Update comments.
2040         (Record_Representation_Clause): Do not warn on missing component
2041         clauses for inherited components of a type extension.
2042         (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
2043         an overloadable item if it is a pragma that can apply to multiple
2044         overloadable entities (e.g. Inline) because a pragma cannot be on
2045         more than one chain at a time.
2046         (Validate_Unchecked_Conversion): Add code to warn on unchecked
2047         conversion where one of the operands is Ada.Calendar.Time.
2048         (Analyze_Attribute_Definition_Clause): Fix typo in error message.
2049         For now, ignore Component_Size clause on VM targets, as done for
2050         pragma Pack.
2051
2052 2007-12-13  Emmanuel Briot  <briot@adacore.com>
2053             Vincent Celier  <celier@adacore.com>
2054
2055         * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
2056         string
2057         (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
2058         prj.ads
2059         (Hash): Move instantiation of System.HTable.Hash from spec to body
2060         (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
2061         systems, since we do not need to recompute the Name_Id for the canonical
2062         file name.
2063         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
2064         as a parameter. This parameter is in fact always "ada" in all calls, and
2065         we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
2066         while loading a project with 40000 files
2067
2068         * prj-attr.adb: Fix name of attribute Dependency_Driver
2069         Change the kind of indexing for attribute Root
2070
2071         * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
2072         variables already declared, in case constructions.
2073
2074         * prj-env.adb (Initialize): Reset Current_Source_Path_File and
2075         Current_Object_Path_File to No_Path.
2076
2077         * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
2078         ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
2079
2080         * prj-makr.adb: new parameter Current_Dir
2081
2082         * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
2083         Ada sources when language is not Ada.
2084         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
2085         (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
2086         (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
2087         (Locate_Directory): Always resolve links when computing Canonical_Path
2088         (Look_For_Sources): Make sure that Name_Buffer contains the file name
2089         in Source_Files before checking for the presence of a directory
2090         separator.
2091         Optimize calls to Name_Find when on case sensitive systems.
2092         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
2093         as a parameter.
2094         (Prj.Nmsc.Check): new parameter Current_Dir
2095         (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
2096         cannot be empty and the spec suffix cannot be the same as the body or
2097         separate suffix.
2098         (Get_Unit): When a file name can be of several unit kinds (spec, body or
2099         subunit), always consider the longest suffix.
2100         (Check_Configuration): Do not issue an error if there is no compiler
2101         for a language. Just issue a warning and ignore the sources for the
2102         language.
2103         (Check_Library_Attributes): Only check Library_Dir if Library_Name is
2104         not empty.
2105         (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
2106         (Unit_Exceptions): New hash table
2107         (Check_Naming_Schemes): Check if a file that could be a unit because of
2108         the naming scheme is not in fact a source because there is an exception
2109         for the unit.
2110         (Look_For_Sources): Put the unit exceptions in hash table
2111         Unit_Exceptions
2112         (Get_Unit_Exceptions): Give initial value No_Source to local variable
2113         Other_Part to avoid exception when code is compiled with validity
2114         checking.
2115         (Get_Sources_From_File): Check that there is no directory information
2116         in the file names.
2117         (Look_For_Sources): Check that there is no directory information in the
2118         list of file names in Source_Files.
2119         (Look_For_Sources): In multi-language mode, do not allow exception file
2120         names that are excluded.
2121         (Excluded_Sources_Htable): New hash table
2122         (Search_Directories.Check_File): New procedure to simplify
2123         Search_Directories.
2124         (Search_Directories): Do not consider excluded sources
2125         (Look_For_Sources): Populate Excluded_Sources_Htable before calling
2126         Search_Directories.
2127         (Get_Exceptions): Set component Lang_Kind of Source_Data
2128         (Get_Unit_Exceptions): Ditto
2129         (Search_Directories): Ditto
2130
2131         * prj-pars.adb: new parameter Current_Dir
2132
2133         * prj-part.ads, prj-part.adb: 
2134         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
2135         (Opt.Follow_Links_For_Dirs): New flag
2136         (Project_Path_Name_Of): Cache information returned by this routine as
2137         Locate_Regular_File is a costly routine. The code to output a log
2138         information and the effective call to Locate_Regular_File is now
2139         factorized into a routine (code clean-up).
2140         (Parse, Parse_Single_Project): new parameter Current_Dir
2141         When main project file cannot be found, indicate in the error
2142         message the project path that was used to do the search.
2143
2144         * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
2145         (Prj.Proc.Process*): new parameter Current_Dir
2146
2147         * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
2148
2149 2007-12-13  Bob Duff  <duff@adacore.com>
2150
2151         * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
2152         procedure to be called from the back end to check the
2153         No_Implicit_Dynamic_Code restriction.
2154
2155 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
2156
2157         * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
2158         Fixes another case where RTE_Available_Call was ignored instead of being
2159         taken into account.
2160         (Load_Fail): Ditto.
2161
2162         * rtsfind.ads: Add new entries.
2163
2164 2007-12-13  Robert Dewar  <dewar@adacore.com>
2165
2166         * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
2167         g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
2168
2169         * scn.adb: Implement BOM recognition
2170
2171 2007-12-13  Thomas Quinot  <quinot@adacore.com>
2172             Ed Schonberg  <schonberg@adacore.com>
2173
2174         * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
2175         subprogram body that acts as its own spec may not have a non-private
2176         WITH clause on a private sibling.
2177         (Build_Unit_Name): If the parent unit in the name in a with_clause on a
2178         child unit is a renaming, create an implicit with_clause on that
2179         parent, and not on the unit it renames, to prevent visibility errors
2180         in the current unit.
2181
2182 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
2183
2184         * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
2185         renaming declaration, use the Slocs of the formal parameters from the
2186         declaration of the formal subprogram when creating the formal parameter
2187         entities in the renaming declaration.
2188         (Analyze_Formal_Type_Declaration): Change the placement of the error
2189         message concerning illegal known discriminants. It is now posted on the
2190         type rather than on the first discriminant. This change ensures early
2191         error report.
2192         (Freeze_Subprogram_Body): If the generic subprogram is nested within
2193         the package body that contains the instance, do not generate an
2194         out-of-place freeze node for the enclosing package.
2195         (Collect_Previous_Instantiations): Ignore internal instantiations
2196         generated for formal packages.
2197         (Validate_Derived_Type_Instance): Add a check that when a formal
2198         derived type is Known_To_Have_Preelab_Init then the actual type must
2199         have preelaborable initialization, and issue an error when this
2200         condition is violated.
2201
2202 2007-12-13  Robert Dewar  <dewar@adacore.com>
2203
2204         * s-imenne.adb, s-imenne.ads: New files.
2205
2206         * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb, 
2207         s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb, 
2208         s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads, 
2209         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb, 
2210         s-imgwch.ads: New calling sequence for Image routines to avoid sec
2211         stack usage.
2212
2213 2007-12-13  Javier Miranda  <miranda@adacore.com>
2214             Ed Schonberg  <schonberg@adacore.com>
2215
2216         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
2217         generation of spurious error if parent is an interface type; caused
2218         because predefined primitive bodies will be generated later by
2219         Freeze_Record_Type.
2220         (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
2221         flag.
2222         (Derive_Subprograms): Handle derivations of predefined primitives
2223         after all the user-defined primitives to ensure that they are
2224         found in proper order in instantiations.
2225         (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
2226         of Related_Interface to Related_Type.
2227         (Record_Type_Declaration): Minor reordering of calls to decorate the
2228         Tag component because the entity must have set its Ekind attribute
2229         before setting its Is_Tag attribute.
2230         (Analyze_Subtype_Declaration): In the case of subtypes with
2231         Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
2232
2233 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
2234             Ed Schonberg  <schonberg@adacore.com>
2235
2236         * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
2237         statement to the list of contexts where a selected component with a
2238         concurrent tagged type prefix should yield a primitive operation.
2239         (Find_Primitive_Operation): Handle case of class-wide types.
2240         (Analyze_Overloaded_Selected_Component): If type of prefix is
2241         class-wide, use visible components of base type.
2242         (Resolve_Selected_Component): Ditto.
2243         (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
2244         formal of a generic subprogram. find candidate interpretations by
2245         scanning the list of generic formal declarations.:
2246         (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
2247         type from a limited_with_clause, and the full view is available, use it
2248         for subsequent semantic checks.
2249         (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
2250         (Find_Primitive_Operation): New function.
2251         (Analyze_Overloaded_Selected_Component): insert explicit dereference
2252         only once if several interpretations of the prefix yield an access type.
2253         (Try_Object_Operation): Code and comment cleanup.
2254         (Analyze_Selected_Component): Reorder local variables. Minot comment and
2255         code reformatting. When the type of the prefix is tagged concurrent, a
2256         correct interpretation might be available in the primitive and
2257         class-wide operations of the type.
2258
2259 2007-12-13  Robert Dewar  <dewar@adacore.com>
2260             Ed Schonberg  <schonberg@adacore.com>
2261
2262         * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
2263         renaming entry as subprogram using rename-as-body if subprogram spec
2264         frozen.
2265         (Use_One_Type): The clause is legal on an access type whose designated
2266         type has a limited view.
2267         (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
2268         (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
2269         (Analyze_Renamed_Primitive_Operation): new procedure to determine the
2270         operation denoted by a selected component.
2271         (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
2272         it can be an expression, possibly overloaded, that returns a task or
2273         an access to one.
2274
2275 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
2276             Gary Dismukes  <dismukes@adacore.com>
2277
2278         * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
2279         requeue statement is dispatching. Do not emit an error when the name is
2280         not an entry and the context is a dispatching select. Add code to
2281         perform subtype conformance between the formals of the current entry
2282         and those of the target interface primitive.
2283         (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
2284         Timed_Entry_Call): Analyze the triggering statement as the first step of
2285         the processing. If this is a dispatching select, postpone the analysis
2286         of all select statements until the Expander transforms the select. This
2287         approach avoids generating duplicate identifiers after the Expander has
2288         replicated some of the select statements. In case the Expander is
2289         disabled, perform regular analysis.
2290         (Check_Triggering_Statement): New routine.
2291         (Analyze_Requeue): Exclude any interpretations that are not entries when
2292         checking overloaded names in a requeue. Also test type conformance for
2293         matching interpretations rather than requiring subtype conformance at
2294         that point to conform with the RM's resolution rule for requeues.
2295
2296 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
2297
2298         * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
2299         inherited operation is a defaulted tag-indeterminate call, and there is
2300         a statically tagged actual, use the static tag as a controlling actual
2301         for the defaulted actual.
2302
2303 2007-12-13  Geert Bosch  <bosch@adacore.com>
2304
2305         * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
2306         context, so do not call Check_Non_Static_Context.
2307
2308 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
2309
2310         * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
2311         whether formal E is an entity which may have parameters.
2312
2313 2007-12-13  Bob Duff  <duff@adacore.com>
2314             Javier Miranda  <miranda@adacore.com>
2315             Robert Dewar  <dewar@adacore.com>
2316
2317         * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
2318         (Set_Convention): New procedure to set the Convention flag, and in
2319         addition make sure the Favor_Top_Level flag is kept in sync (all
2320         foreign-language conventions require Favor_Top_Level = True).
2321         (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
2322         to Related_Type.
2323         (Collect_Interfaces_Info): Minor update to handle the two secondary
2324         dispatch tables. Update occurrence of Related_Interface to Related_Type.
2325         (Generate_Parent_Ref): Add parameter to specify entity to check
2326         (Is_Preelaborable_Expression): Allow the name of a discriminant to
2327         initialize a component of a type with preelaborable initialization.
2328         This includes the case of a discriminal used in such a context.
2329         (Is_Dependent_Component_Of_Mutable_Object): Take into account the
2330         latest Ada 2005 rules about renaming and 'Access of
2331         discriminant-dependent components.
2332         (Check_Nested_Access): Add handling when there are no enclosing
2333         subprograms (e.g. case of a package body).
2334         (Find_Parameter_Type): Factor routine from several other compiler files.
2335         Remove routine from Find_Overridden_Synchronized_Primitive.
2336
2337 2007-12-13  Thomas Quinot  <quinot@adacore.com>
2338
2339         * sinput.adb (Get_Source_File_Index): Add assertion to guard against
2340         an invalid access to an uninitialized slot in the
2341         Source_File_Index_Table.
2342
2343 2007-12-13  Thomas Quinot  <quinot@adacore.com>
2344
2345         * sinput-l.adb (Load_File): Disable style checks when preprocessing.
2346
2347 2007-12-13  Bob Duff  <duff@adacore.com>
2348
2349         * s-soflin.ads: Apply new pragma Favor_Top_Level to all
2350         access-to-subprogram types in this package.
2351
2352 2007-12-13  Olivier Hainque  <hainque@adacore.com>
2353
2354         * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
2355         with Stack_Grows_Down in System.Parameters. Rename Array_Address into
2356         Stack_Overlay_Address and document that we are using an internal
2357         abstraction.
2358         (Byte_Size, Unsigned_32_Size): Remove, now useless.
2359         (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
2360         consistently throughout the various implementation pieces.
2361
2362         * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
2363         overlay we are using to fill the stack area with patterns.
2364         (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
2365         (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
2366         (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
2367
2368 2007-12-13  Robert Dewar  <dewar@adacore.com>
2369
2370         * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
2371
2372 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
2373
2374         * s-tassta.adb: 
2375         (Create_Task): Take into account tasks created by foreign threads.
2376         Code clean up: use constants instead of hard coded values.
2377
2378 2007-12-13  Robert Dewar  <dewar@adacore.com>
2379
2380         * styleg.adb (Check_Comment): More liberal rules for comment placement
2381
2382 2007-12-13  Olivier Hainque  <hainque@adacore.com>
2383
2384         * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
2385         of Procedure Value instead of Frame Pointer as the invocation
2386         identifier associated with the instruction pointer in each traceback
2387         entry.
2388
2389         * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
2390         TB_Entry_For): Revert back to use of Procedure Value instead of Frame
2391         Pointer as the invocation identifier passed to tbk$symbolize.
2392
2393         * s-traent-vms.ads, s-traent-vms.adb
2394         (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
2395         Procedure Value instead of Frame Pointer as the invocation identifier
2396         passed to tbk$symbolize.
2397
2398 2007-12-13  Robert Dewar  <dewar@adacore.com>
2399
2400         * tbuild.ads, tbuild.adb: 
2401         Fix location of flag for unrecognized pragma message
2402
2403 2007-12-13  Robert Dewar  <dewar@adacore.com>
2404
2405         * treepr.ads, treepr.adb: (pl): implement use of positive value
2406         shorthands
2407
2408 2007-12-13  Robert Dewar  <dewar@adacore.com>
2409
2410         * xeinfo.adb: Remove warnings
2411         * xnmake.adb: Remove warnings
2412         * xsinfo.adb: Remove warnings
2413         * xtreeprs.adb: Remove warnings
2414         * xsnames.adb: Remove warnings
2415
2416         * a-ngcoar.adb: Fix typo.
2417         * s-interr.adb: Minor reformatting
2418         * env.c: Minor reformatting.
2419         * g-bytswa.adb: Minor reformatting.
2420         * g-rannum.ads: Minor documentation improvements
2421         * s-tasinf-mingw.adb: Minor header fix
2422         * a-clrefi.adb: Minor reformatting
2423         * g-sttsne.ads: Minor documentation improvement
2424         * g-sttsne-locking.ads: Minor documentation improvement
2425         * g-soliop-solaris.ads: Minor documentation improvement
2426         * g-soliop-mingw.ads: Minor documentation improvement
2427         * g-soliop.ads: Minor documentation improvement
2428         * exp_aggr.ads: Minor reformatting
2429         * debug.adb: Add documentation for the gprbuild debug flags
2430         * exp_ch2.adb: Use Nkind_In to simplify code throughout
2431         * exp_pakd.adb: Minor reformatting
2432
2433         * g-altive.ads, g-alleve.adb: Remove assertions.
2434         Add comment about minor differences between targets regarding
2435         floating-point operations.
2436
2437         * g-thread.adb: Remove pragma unreferenced.
2438         * lib.ads: Minor reformatting
2439         * par-ch9.adb: Minor reformatting of error messages
2440         * sem_case.adb: Minor reformatting
2441         * s-fileio.adb: Minor reformattinng
2442         * s-vmexta.ads: Minor typo
2443         * vxaddr2line.adb: 
2444         Take into account 'Success' value as per new GNAT warning.
2445
2446 2007-12-13  Vincent Celier  <celier@adacore.com>
2447
2448         * a-direct.adb (Create_Path): Always take '/' as a directory separator,
2449         even on Windows
2450
2451 2007-12-13  Robert Dewar  <dewar@adacore.com>
2452             Bob Duff  <duff@adacore.com>
2453
2454         * gnat_ugn.texi: Dcoument new rules for style check comment alignment
2455         Document that suffixes may be terminations of each others
2456         Add doc for -gnatw.a and -gnatw.A
2457         Document gnatbind -Wx switch
2458         Document BOM recognition
2459         Document pragma Implemented_By_Entry.
2460         Document new units.
2461
2462         * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
2463         Add doc for pragma Unreferenced suppressing no entities referenced msg
2464         Add documentation of GNAT.Directory_Operations.Iteration
2465         Add documentation of GNAT.Random_Numbers
2466         Add documentation for pragma Shared.
2467         Correct documentation for Bit_Order
2468         Add documentation for the Pool_Address attribute.
2469         Fix and improve documentation of pragma machine_attribute.
2470         New pragma Fast_Math
2471         Document BOM recognition
2472
2473         * vms_data.ads: Add entries for -gnatw.a -gnatw.A
2474         Add /Wide_Character_Encoding for binder
2475         Add qualifier for the new gnatpp option --no-separate-loop-then
2476
2477 2007-12-13  Matthew Heaney  <heaney@adacore.com>
2478
2479         * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
2480         which generic formal operations are called for each operation.
2481
2482 2007-12-13  Olivier Hainque  <hainque@adacore.com>
2483
2484         * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
2485         (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
2486
2487 2007-12-13  Emmanuel Briot  <briot@adacore.com>
2488
2489         * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
2490         Reference_Dir unless we actually need it.
2491
2492 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
2493             Tristan Gingold  <gingold@adacore.com>
2494
2495         * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
2496
2497         * s-osprim-vms.adb,
2498         a-calend-vms.adb: Remove pragma warning off and add pragma
2499         unreferenced.
2500
2501 2007-12-13  Robert Dewar  <dewar@adacore.com>
2502
2503         * impunit.adb: Add entries for missing units
2504
2505         * Makefile.rtl: Add new run-time units.
2506
2507         * Make-lang.in:  Update dependencies.
2508
2509 2007-12-13  Bob Duff  <duff@adacore.com>
2510
2511         * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
2512         types, set Can_Use_Internal_Rep appropriately, based on
2513         Always_Compatible_Rep_On_Target.
2514
2515 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
2516             Arnaud Charlet  <charlet@adacore.com>
2517
2518         * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
2519         it to the front end and setting the aamp_target environment variable
2520         to the switch's argument to ensure that gnaampbind and gnaamplink will
2521         take the specified library into account.
2522         (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
2523         target, since the CIL compiler supports an "object" file (.il files).
2524
2525 2007-12-13  Vincent Celier  <celier@adacore.com>
2526
2527         * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
2528         (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
2529
2530 2007-12-13  Geert Bosch  <bosch@adacore.com>
2531
2532         * s-parame-vxworks.adb: 
2533         Update comments to reflect usage of this package by Nucleus.
2534
2535 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
2536
2537         * i-vxwork.ads: Kill new warning on Convention C, since changing the
2538         spec would break code.
2539
2540         * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
2541
2542         * system-vxworks-alpha.ads: Removed.
2543
2544 2007-12-10  Eric Botcazou  <ebotcazou@adacore.com>
2545
2546         * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
2547
2548 2007-12-09  Samuel Tardieu  <sam@rfc1149.net>
2549
2550         PR ada/34366
2551         * sem_ch3.adb (Designates_T): New function.
2552         (Mentions_T): Factor reusable part of the logic into Designates_T.
2553         Consider non-access parameters and access and non-access result.
2554         (Check_Anonymous_Access_Components): Set ekind of anonymous access to
2555         E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
2556
2557         * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
2558
2559 2007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>
2560
2561         PR ada/34361
2562         * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
2563         the new implementation of target-specific calls.
2564
2565 2007-12-07  Olivier Hainque  <hainque@adacore.com>
2566
2567         * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
2568         the designated full view, only follow a second level Full_View link
2569         for Non_Limited_Views of from_limited_with references.
2570         
2571 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
2572
2573         PR ada/15805
2574         * sem_ch6.adb (Process_Formals): Prevent an access type formal
2575         to be initialized with an access to constant object.
2576
2577         * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
2578         when an access to constant is used to initialize an access
2579         value.
2580
2581         PR ada/21346
2582         * a-direct.adb (Compose): Containing_Directory can be an empty string.
2583
2584 2007-12-07  Olivier Hainque  <hainque@adacore.com>
2585
2586         PR ada/34173
2587         * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
2588         the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
2589         this is from an alignment clause on the GNAT entity.
2590         * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
2591         to distinguish the case where we set it from the type's alignment.
2592         When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
2593         whether this alignment was set from an explicit alignment clause.
2594
2595 2007-12-06  Eric Botcazou  <ebotcazou@adacore.com>
2596
2597         * decl.c (make_packable_type): Revert last change.
2598         (gnat_to_gnu_field): Avoid setting size and position multiple times.
2599         * utils.c (finish_record_type): Retrieve the real name of the type.
2600
2601 2007-12-05  Eric Botcazou  <ebotcazou@adacore.com>
2602
2603         * trans.c (lvalue_required_p): Take base node directly instead
2604         of its parent.  Rename second parameter to 'gnu_type'.
2605         <N_Indexed_Component>: Return 0 if the node isn't the prefix.
2606         <N_Slice>: Likewise.
2607         (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
2608         Adjust calls to lvalue_required_p.
2609
2610 2007-12-05  Samuel Tardieu  <sam@rfc1149.net>
2611
2612         PR ada/21489
2613         * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
2614         parameters of an entry call.
2615
2616 2007-12-03  Robert Dewar  <dewar@adacore.com>
2617             Samuel Tardieu  <sam@rfc1149.net>
2618
2619         PR ada/34287
2620         * sem_util.adb (Safe_To_Capture_Value): Do not capture values
2621         of variables declared in a library-level package.
2622     
2623 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
2624
2625         * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
2626         of Empty_String'Unchecked_Access.
2627
2628         * Makefile.in: Add support for sh4-linux.
2629
2630         * system-linux-sh4.ads: New file.
2631
2632 2007-12-01  Kostik Belousov  <kostikbel@ukr.net>
2633
2634         PR ada/33722
2635         * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
2636         and its argument must not be free()ed.
2637
2638 2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
2639
2640         * decl.c (make_packable_type): Retrieve the real name of the type.
2641         (maybe_pad_type): Simplify similar code.
2642
2643 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
2644
2645         PR ada/15804
2646         * par-ch3.adb (P_Variant_Part): Signal an error when anything other
2647         than an identifier is used after "case" in a variant_part.
2648
2649         PR ada/17318
2650         * par-ch4.adb (Is_Parameterless_Attribute): New map.
2651         (P_Name, Scan_Apostrophe block): Parse left parenthesis following
2652         attribute name or not depending on the new map.
2653
2654         * sem-attr.adb (Analyze_Attribute): Parameterless attributes
2655         returning a string or a type will not be called with improper
2656         arguments.
2657
2658         * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
2659
2660         * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
2661
2662         PR ada/32792
2663         * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
2664         Signal an error when attribute argument is a fixed-point value of
2665         an unknown type.
2666
2667         PR ada/22559
2668         * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
2669         a derived ordinary fixed point type.
2670
2671         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
2672         RM_Size when a Small clause is found.
2673
2674 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
2675
2676         PR 34081/C++
2677         * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
2678         Pass 'false' for the new allocate_struct_function parameter.
2679         * utils.c (build_function_stub): Likewise.
2680
2681 2007-11-25  Richard Guenther  <rguenther@suse.de>
2682
2683         * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
2684         (gnat_poplevel): Likewise.
2685
2686 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
2687
2688         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
2689         strict alignment, no alignment clause and a known static size, cap
2690         the type alignment to the greatest power of 2 factor of the size.
2691         (gnat_to_gnu_field): If the field has a component clause, is aliased
2692         or of a type with strict alignment, require that its size be equal to
2693         that of the type.
2694         (validate_size): Use the type size as the minimum size for a type with
2695         strict alignment.
2696
2697 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
2698
2699         * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
2700         s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
2701         s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
2702         Use 'Access instead of 'Unchecked_Access in second and third
2703         arguments of pthread_sigmask.
2704
2705 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
2706
2707         * decl.c (ceil_alignment): New function.
2708         (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
2709         (make_packable_type): Likewise.
2710
2711 2007-11-22  Olivier Hainque  <hainque@adacore.com>
2712
2713         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
2714         to fit in 80 columns.
2715
2716 2007-11-21  Aurelien Jarno  <aurelien@aurel32.net>
2717
2718         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
2719         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
2720
2721 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
2722
2723         PR ada/34098
2724         * misc.c (gnat_adjust_rli): Delete.
2725         (gnat_init): Do not initialize the translation code here.
2726         Do not call set_lang_adjust_rli.
2727         * trans.c (init_code_table): Make static.
2728         (gnat_init_stmt_group): Delete.
2729         (gigi): Initialize the translation code entirely here.
2730         Emit debug info for the common types here instead of...
2731         * utils.c (gnat_init_decl_processing): ...here.
2732         * gigi.h (init_code_table): Delete.
2733         (gnat_init_stmt_group): Likewise.
2734
2735 2007-11-16  Olivier Hainque  <hainque@adacore.com>
2736
2737         * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
2738         retrieving an allocator return value from a super-aligned address from
2739         here to ...
2740         * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
2741         expect a super-aligned address for a fat or thin pointer.
2742         
2743 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
2744
2745         * trans.c (call_to_gnu): Always set the source location on the call
2746         expression.  If the function returns-by-target, also set it on the
2747         address expression.
2748
2749 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
2750
2751         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
2752         sections of non-supported Interix target.
2753
2754         * s-osinte-interix.ads: Removed.
2755
2756         * i-cstrin.ads (chars_ptr): Make it a C convention type.
2757
2758 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
2759
2760         * a-tasatt.adb: Add a comment at the beginning of the package
2761         explaining why in general 'Unchecked_Access must be used instead
2762         of 'Access.
2763
2764         * sem_prag.adb (Process_Convention): Move the test for the
2765         entity on which the Convention pragma applies down to also
2766         forbid pragma Convention on enumeration literals reached
2767         through renamings.
2768
2769 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
2770
2771         * a-tasatt.adb: Revert previous change for this file as it will
2772         generate an error when this package is instantiated from a
2773         local context.
2774
2775 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
2776
2777         * a-tasatt.adb: Type Wrapper should be declared in comment instead
2778         of already declared type Node_Access.
2779         Use 'Access instead of 'Unchecked_Access when applicable. Local
2780         lifetime is the one of the package.
2781         (Set_Value): W is allocated on the heap.
2782
2783         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
2784         applicable.
2785         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
2786         access type.
2787         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
2788         access type.
2789
2790         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
2791         applicable.
2792         (elaboration code): Timer_Queue lifetime is the one of the
2793         package.
2794
2795         * tracebak.c (i386 alternative): Remove useless comparaison
2796         which is always false; LOWEST_ADDRESS is 0 and is never greater
2797         than an unsigned integer.
2798
2799         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
2800         embedded check for "Ada_Version >= Ada_05".
2801
2802 2007-11-07  Olivier Hainque  <hainque@adacore.com>
2803
2804         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
2805         craft and expand comment.
2806
2807 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
2808
2809         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
2810
2811 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
2812
2813         * misc.c (gnat_handle_option): Replace call to abort with
2814         call to gcc_unreachable.
2815         (gnat_init): Likewise.
2816         (gnat_expand_expr): Likewise.
2817         (fp_prec_to_size): Likewise.
2818         (fp_size_to_prec): Likewise.
2819
2820 2007-10-23  Richard Guenther  <rguenther@suse.de>
2821
2822         PR bootstrap/33608
2823         * tracebak.c: #undef abort after including system.h.
2824
2825 2007-10-20  Danny Smith  <dannysmith@users.sourceforge.net>
2826
2827         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
2828         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
2829         for win32 targets.
2830         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
2831
2832 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
2833
2834         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
2835         Set the protection status of the guard page based on the value of On.
2836
2837         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
2838
2839         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
2840         (Exit_Task): Pass False to Hide_Yellow_Zone.
2841
2842 2007-10-15  Robert Dewar  <dewar@adacore.com>
2843
2844         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
2845         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
2846         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb, 
2847         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb, 
2848         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb, 
2849         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb, 
2850         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb, 
2851         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb, 
2852         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb, 
2853         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
2854         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb, 
2855         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb, 
2856         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb, 
2857         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb, 
2858         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb, 
2859         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
2860         Minor reformatting.
2861         Add Unreferenced and Warnings (Off) pragmas for cases of
2862         variables modified calls where they are IN OUT or OUT parameters and
2863         the resulting values are not subsequently referenced. In a few cases,
2864         we also remove redundant code found by the new warnings.
2865
2866         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads, 
2867         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
2868         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
2869         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
2870         warning controlled by -gnatw.o that warns on cases of out parameter
2871         values being ignored.
2872
2873 2007-10-15  Geert Bosch  <bosch@adacore.com>
2874
2875         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
2876
2877         * expect.c: Initial port to arm-mentor-nucleus.
2878         Use kill for __gnat_kill() on VMS.
2879
2880 2007-10-15  Emmanuel Briot  <briot@adacore.com>
2881
2882         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
2883         value.
2884         (Xref_Record): Change type for Line, since in the case of a reference to
2885         a predefined entity (as happens for array index types), the line is set
2886         to 0.
2887         Add support for parsing multiple array index types info, or
2888         multiple inherited interfaces info. This information cannot be stored
2889         in Xref_Entity_Record, which only supports a single instance of Tref_*,
2890         and is therefore stored in the list of references instead. It has a
2891         special treatement later on in tools that use this information.
2892
2893 2007-10-15  Tristan Gingold  <gingold@adacore.com>
2894
2895         * debug.adb: Document use of -gnatd.a and -gnatd.I
2896
2897         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
2898
2899 2007-10-15  Javier Miranda  <miranda@adacore.com>
2900
2901         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
2902         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
2903         care of access to class-wide interface types plus removal of bizarre
2904         conversion of tagged object to access type (reported by Gary
2905         Dismukes). After this patch there is no need to perform any
2906         additional management on these nodes in Expand_Interface_Actuals.
2907
2908         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
2909         that handles use of 'Access and 'Unchecked_Access applied to
2910         actuals covering interface types. Such code is now
2911         centralized in Expand_N_Attribute_Reference.
2912
2913 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
2914
2915         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
2916         of tagged types whose ultimate ancestor is a CPP type.
2917         (Freeze_Array_Type): For a packed array type, generate an initialization
2918         procedure if the type is public, to handle properly a client that
2919         specifies Normalize_Scalars.
2920
2921 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
2922
2923         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
2924         inside a generic body, retrieve the full view of the entry family
2925         discrete subtype if available.
2926
2927 2007-10-15  Thomas Quinot  <quinot@adacore.com>
2928
2929         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
2930         attempt to generate stubs for hidden primitive operations.
2931
2932 2007-10-15  Vincent Celier  <celier@adacore.com>
2933
2934         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
2935         returning None, used when there is no platform specific body for
2936         MLib.Tgt.Specific.
2937
2938 2007-10-15  Bob Duff  <duff@adacore.com>
2939
2940         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
2941         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
2942         the generic Heap_Sort_G, in order to avoid trampolines.
2943
2944 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
2945             Jose Ruiz  <ruiz@adacore.com>
2946
2947         * vx_stack_info.c: New file.
2948
2949         * i-forbla-unimplemented.ads: New file.
2950
2951         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
2952         for unsupported configurations; use it on VMS targets instead of the
2953         real one.
2954         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
2955         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
2956         used by VxWorks targets to have access to task-specific data and be
2957         able to extract the stack boundaries for stack checking.
2958         Use system-vms-ia64.ads on ivms.
2959
2960         * Make-lang.in: Update dependencies.
2961
2962         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
2963         (vx_stack_info.c).
2964
2965 2007-10-15  Vincent Celier  <celier@adacore.com>
2966
2967         * snames.adb, snames.ads: Add new standard name runtime_library_dir
2968
2969         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
2970
2971         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
2972
2973         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
2974         the source is unknown.
2975
2976         * prj-ext.adb: Spelling error fix
2977
2978         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
2979         95 reserved word in its name.
2980         (Process_Project_Level_Array_Attributes): Process new attribute
2981         Runtime_Library_Dir.
2982
2983         * prj-part.adb (Parse_Single_Project): Do not check the name of the
2984         config project against the user project names.
2985
2986         * prj-proc.adb (Expression): In multi-language mode, indexes that do
2987         not include a dot are always case insensitive.
2988         (Process_Declarative_Items): Ditto
2989         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
2990         detected.
2991
2992         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
2993         True, compare both indexes in lower case.
2994
2995 2007-10-15  Robert Dewar  <dewar@adacore.com>
2996
2997         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
2998
2999 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
3000
3001         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
3002         association for an access component, add an association with null as
3003         the expression. Remove testing for array subtypes and the setting in
3004         that case of Ctyp to the array component type, which prevented proper
3005         inclusion of an association for null-initialized arrays. Collapse
3006         condition that tests for array subtypes into just a test of
3007         Is_Partially_Initialized_Type (which already covers arrays anyway).
3008
3009 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
3010
3011         * sem_ch12.adb: Minor code reformatting.
3012         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
3013         find the parent package which may have been hidden by local
3014         declarations.
3015
3016 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
3017
3018         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
3019         flag of derived concurrent types, taking into account the flag setting
3020         on the parent subtype and any new set of discriminants.
3021
3022 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
3023
3024         * sem_ch4.adb: Minor code and comment reformatting.
3025         (Analyze_Allocator): When the designated type of an unconstrained
3026         allocator is a record with unknown discriminants or an array with
3027         unknown range bounds, emit a detailed error message depending on the
3028         compilation mode and whether the designated type is limited.
3029
3030 2007-10-15  Tristan Gingold  <gingold@adacore.com>
3031
3032         * system-vms-ia64.ads: New file.
3033
3034         * system-vms_64.ads: Minor comment fix.
3035
3036 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
3037
3038         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
3039         body generated for a function with a controlling result that is a null
3040         extension, discard the generated body in favor of the current explicit
3041         one.
3042
3043 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
3044
3045         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
3046         examining its original form, to handle properly operator calls that
3047         have been rewritten.
3048
3049 2007-10-15  Olivier Hainque  <hainque@adacore.com>
3050
3051         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
3052         instead of a procedure value in each traceback entry.
3053
3054         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
3055         instead of procedure value to TBK$SYMBOLIZE.
3056
3057         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
3058         field.
3059         (TB_Entry_For): Account for the PV/FP renaming.
3060
3061         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
3062         add comment.
3063         (Null_TB_Entry): Account for change of component name.
3064         (PV_For): Rename as FP_For.
3065
3066 2007-10-15  Tristan Gingold  <gingold@adacore.com>
3067
3068         * trans.c (gnat_to_gnu): Remove the padding structure more often.
3069         This optimize assignment to over-aligned record.
3070
3071 2007-10-15  Emmanuel Briot  <briot@adacore.com>
3072
3073         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
3074         interfaces.
3075
3076         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
3077         type, for dispatching calls.
3078
3079 2007-10-15  Vincent Celier  <celier@adacore.com>
3080             Robert Dewar  <dewar@adacore.com>
3081
3082         * gnat_ugn.texi: Add documentation for switches --version and --help
3083         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
3084         gnatxref, gnatfind, gnatls, and gnatclean.
3085         Document -gnatw.o.
3086         Mention attribute Excluded_Source_Dirs
3087         Replace obsolescent attribute Locally_Removed_Files with attribute
3088         Excluded_Source_Files.
3089         Improve documentation of -u (gnatbind)
3090         Document how to do reliable stack checking for the environmental task
3091         on iVMS.
3092
3093         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
3094         Document attribute Excluded_Source_Files and indicate that attribute
3095         Locally_Removed_Files is obsolescent.
3096
3097 2007-10-15  Thomas Quinot  <quinot@adacore.com>
3098
3099         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
3100
3101         * gen-soccon.c: 
3102         Update documentation to note that OpenVMS 8.3 or later must be used
3103         to generate g-soccon-vms.ads.
3104
3105         * atree.adb: Add ??? comment
3106
3107         * exp_util.adb: Minor reformatting.
3108         Add ??? comment in Kill_Dead_Code.
3109
3110 2007-10-15  Robert Dewar  <dewar@adacore.com>
3111
3112         * errout.ads: Comment clarification
3113
3114         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
3115         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
3116
3117         * lib.ads: Comment update
3118
3119         * init.c: Minor reformatting.
3120
3121         * sem_attr.adb: Minor formatting
3122
3123         * osint-b.ads: Minor reformatting
3124
3125         * sem_ch9.adb: Implement -gnatd.I switch
3126
3127         * g-comlin.adb: (Start): Fix handling of empty command line.
3128
3129         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
3130         even when -rules follows the -cargs section.
3131
3132 2007-10-08  Ollie Wild  <aaw@google.com>
3133
3134         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
3135         gnat_return_tree.
3136         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
3137         gnat_return_tree.
3138         (gnat_eh_runtime_type): Removed.
3139         (gnat_return_tree): New function.
3140
3141 2007-10-08  Ben Elliston  <bje@au.ibm.com>
3142
3143         PR ada/33454
3144         Revert:
3145         2007-08-31  Ben Elliston  <bje@au.ibm.com>
3146
3147         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
3148         when compiling for powerpc64-*-linux.
3149         * system-linux-ppc64.ads: New file.
3150
3151 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
3152
3153         Mapped location support
3154         * back_end.adb (Call_Back_End): Pass information about source
3155         files instead of units to gigi.
3156         * gigi.h (struct File_Info_Type): New.
3157         (gigi): Rename and change type of number_units parameter, change
3158         type of file_info_ptr parameter.
3159         * trans.c (number_files): New global variable.
3160         (gigi): Rename and change type of number_units parameter, change
3161         type of file_info_ptr parameter.
3162         If mapped location support is enabled, create the isomorphic mapping
3163         between source files and line maps.
3164         (Sloc_to_locus): If mapped location support is enabled, translate
3165         source location into mapped location.
3166         (annotate_with_node): Rename into set_expr_location_from_node.
3167         Call set_expr_location instead of annotate_with_locus.
3168         (Pragma_to_gnu): Adjust for above change.
3169         (Loop_Statement_to_gnu): Likewise.
3170         (call_to_gnu): Likewise.
3171         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
3172         (gnat_to_gnu): Likewise.
3173         (add_stmt_with_node): Likewise.
3174         (add_cleanup): Likewise.
3175         * utils.c (gnat_init_decl_processing): Do not set input_line.
3176
3177 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
3178
3179         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
3180         (Applicable_Use): Emit a warning when a package tries to use itself.
3181         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
3182         is already in use or the package where it is declared is in use or is
3183         declared in the current package.
3184         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
3185
3186         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
3187         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
3188         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
3189
3190 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
3191
3192         * a-calend-vms.adb, a-calend.adb: 
3193         Add a section on leap seconds control along with two entities used to
3194         enable and disable leap seconds support. The array Leap_Second_Times is
3195         now constant and contains hard time values pre-generated. Remove
3196         all elaboration code used to populate the table of leap seconds.
3197
3198         * bindgen.adb: 
3199         Add entity Leap_Seconds_Support to the list of global run-time variables
3200         along with a comment on its usage and values.
3201         (Gen_Adainit_Ada): Add code to generate the declaration and import of
3202         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
3203         or one (enabled) depending on the presence of binder switch "-y".
3204         (Gen_Adainit_C): Add code to generate the declaration of external int
3205         __gl_leap_seconds_support. Set is value to zero (disabled) or one
3206         (enabled) depending on the presence of binder switch "-y".
3207
3208         * init.c: Add __gl_leap_seconds_support to the list of global values
3209         computed by the binder.
3210
3211 2007-09-26  Jerome Guitton  <guitton@adacore.com>
3212
3213         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
3214         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
3215          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
3216         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
3217
3218         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
3219
3220         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
3221         function which can be called by the debugger to interrupt the tasks of
3222         an Ada application asynchronously, as needed on VxWorks.
3223         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
3224
3225         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
3226         renamed from Stop_All_Tasks. Update comments.
3227         (Stop_All_tasks): New function declaration.
3228
3229 2007-09-26  Olivier Hainque  <hainque@adacore.com>
3230
3231         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
3232         #include <utime.h> and #define GCC_RESOURCE_H before
3233         #include <sys/wait.h>.
3234         Add more protections in __gnat_translate_vms.
3235
3236         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
3237         #include <sys/wait.h>.
3238
3239 2007-09-26  Thomas Quinot  <quinot@adacore.com>
3240             Sergey Rybin  <rybin@adacore.com>
3241
3242         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
3243
3244         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
3245         where it belongs.
3246
3247         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
3248
3249         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
3250         where it belongs.
3251
3252         * sem_dist.ads: Minor comment fix
3253
3254         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
3255
3256 2007-09-26  Javier Miranda  <miranda@adacore.com>
3257             Eric Botcazou  <ebotcazou@adacore.com>
3258
3259         * a-tags.adb: 
3260         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
3261          indirection added to the HT_Link component of the TSD. This is required
3262          to statically allocate the TSD.
3263
3264         * a-tags.ads: 
3265         Minor reordering of the declarations in the private part. Required to
3266         add a level of indirection to the contents of the TSD component HT_Link.
3267         This is required to statically allocate the TSD.
3268
3269         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
3270         Is_Statically_Allocated set from constant objects.
3271         Do not make exported constants created by the compiler volatile.
3272         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
3273         as read-only.
3274
3275         * trans.c (Identifier_to_gnu): For constants, unshare initializers
3276         before returning them.
3277
3278         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
3279         public part of the package.
3280         (Make_DT): Move HT_Link component out of the TSD record. For this
3281         purpose Make_DT now declares a separate object that stores the
3282         HT_Link value, and initializes the TSD component with the address
3283         of this new object. The addition of this level of indirection is
3284         required to statically allocate the TSD because the TSD cannot
3285         have variable components.
3286         (Expand_Interface_Conversion): Improve the expanded code.
3287         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
3288
3289         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
3290         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
3291         if we are building static dispatch tables then we must not generate
3292         extra code to register the primitive because the dispatch table will
3293         be built at the end of the library package; otherwise we notify that
3294         we cannot build the static dispatch table.
3295
3296 2007-09-26  Robert Dewar  <dewar@adacore.com>
3297
3298         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
3299         overlays.
3300
3301         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
3302         (Analyze_Record_Representation_Clause): Suppress junk warning for
3303         missing component clause.
3304         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
3305         tests for controlled type overlay to composites with controlled
3306         components.
3307         (Analyze_Record_Representation_Clause): Add reference for component name
3308
3309 2007-09-26  Javier Miranda  <miranda@adacore.com>
3310             Gary Dismukes  <dismukes@adacore.com>
3311
3312         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
3313         for thunks associated with interface types.
3314
3315         * einfo.ads: Improve documentatation of Is_Internal
3316         (Is_Thunk): New attribute applicable to subprograms. True for thunks
3317         associated with interface types.
3318         Extensive comment fixes regarding flags that appear in all entities. The
3319         documentation is now consistent for all such flags (there were a number
3320         of errors in the documentation in this regard).
3321
3322         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
3323
3324         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
3325         of these procedures are passed a function call that already has
3326         build-in-place actuals (testing new flag
3327         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
3328         the case where processing continues.
3329         (Expand_Call): If the call is generated from a thunk body then we
3330     &n